
.vv02{max-width:1360px;margin:0 auto;padding:20px 40px 40px;font-family:'BDO Grotesk Variable','BDO Grotesk Variable Placeholder',sans-serif;color:#171717;box-sizing:border-box}
.vv02 *{box-sizing:border-box}
.vv02-head{display:flex;justify-content:space-between;align-items:center;padding:22px 0;border-top:1px solid rgba(0,0,0,.12);font-size:15px;letter-spacing:-.2px;color:#171717}
.vv02-grp{display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,2.35fr);gap:56px;padding:56px 0 20px}
.vv02-side{position:relative}
.vv02-stick{position:sticky;top:130px}
.vv02-h{font-size:clamp(38px,5.4vw,80px);line-height:.94;letter-spacing:-.03em;font-weight:500;margin:0 0 18px}
.vv02-sub{font-size:15px;line-height:1.5;color:#5b5b5b;max-width:300px;margin:0}
.vv02-col{display:flex;flex-direction:column}
.vv02-card{position:sticky;top:118px;display:block;width:100%;background:transparent;border:0;padding:0;margin:0 0 64px;cursor:pointer;text-align:left;font:inherit;color:inherit;-webkit-appearance:none}
.vv02-col .vv02-card:nth-child(2){top:136px}
.vv02-col .vv02-card:nth-child(3){top:154px}
.vv02-card:last-child{margin-bottom:0}
.vv02-frame{position:relative;display:block;width:100%;aspect-ratio:16/10;overflow:hidden;border-radius:14px;background:#ececec;box-shadow:0 12px 44px rgba(0,0,0,.10);transition:box-shadow .4s ease,transform .4s ease}
.vv02-frame:after{content:"";position:absolute;inset:0;border-radius:14px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.07);pointer-events:none;z-index:3}
.vv02-shot{position:absolute;top:0;left:0;width:100%;height:auto;display:block;transform:translateY(0);will-change:transform}
.vv02-if{position:absolute;top:0;left:0;width:1280px;height:900px;border:0;transform-origin:top left;transform:scale(.5);pointer-events:none;will-change:transform;background:#fff}
.vv02-badge{position:absolute;left:16px;bottom:16px;z-index:2;font-size:12px;letter-spacing:.01em;color:#fff;background:rgba(0,0,0,.5);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:8px 14px;border-radius:100px;opacity:0;transform:translateY(6px);transition:.35s;pointer-events:none}
.vv02-card:hover .vv02-badge{opacity:1;transform:none}
.vv02-card:hover .vv02-frame{box-shadow:0 22px 66px rgba(0,0,0,.18);transform:translateY(-3px)}
.vv02-meta{display:flex;justify-content:space-between;align-items:flex-start;margin-top:18px;font-size:16px}
.vv02-num{color:#171717;min-width:44px}
.vv02-name{font-weight:500;display:flex;flex-direction:column;align-items:center;text-align:center;flex:1}
.vv02-name em{font-style:normal;font-size:14px;color:#8a8a8a;margin-top:4px}
.vv02-year{color:#8a8a8a;min-width:66px;text-align:right}
@media(max-width:900px){.vv02-grp{grid-template-columns:1fr;gap:24px;padding:36px 0 10px}.vv02-stick{position:static}.vv02-card{position:static;margin-bottom:40px}.vv02-h{margin-bottom:12px}}

/* Sectiunea Framer parinte adauga deja 24px lateral pe toate breakpointurile.
   Cu cei 40px de aici ieseau 64px per parte, adica 128px pierduti din 375px. */
@media(max-width:900px){.vv02{padding:20px 12px 32px}}
/* Sub 480px, minimurile fixe din rand (44+66=110px) strangeau numele proiectului. */
@media(max-width:480px){.vv02-num{min-width:30px}.vv02-year{min-width:50px}.vv02-meta{font-size:15px}}

/* Pe /portfolio containerul Framer e grila de 2 coloane - il facem bloc simplu. */
.framer-5b2jqh{display:block !important;width:100% !important}
