/* ==========================================================
   Lens & Mind — "Focus"
   Palette: Aegean night, sea salt, golden hour
   ========================================================== */
:root{
  --abyss:#0A1517;      /* night Aegean — base */
  --deep:#122427;       /* panels on dark */
  --salt:#E9ECE6;       /* sea-salt white — light sections */
  --fog:#93A3A0;        /* muted text on dark */
  --stone:#5E6B68;      /* muted text on light */
  --ember:#F2A65A;      /* golden hour — single accent */
  --line-d:rgba(233,236,230,.14);
  --line-l:rgba(10,21,23,.14);

  --f-display:"Bodoni Moda", "Didot", "Bodoni 72", serif;
  --f-body:"Familjen Grotesk", "Helvetica Neue", Arial, sans-serif;
  --f-mono:"JetBrains Mono", ui-monospace, Menlo, monospace;

  --gut:clamp(16px, 4vw, 56px);
  --ease:cubic-bezier(.2,.7,.1,1);
  --ease-io:cubic-bezier(.7,0,.2,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{
  margin:0;background:var(--abyss);color:var(--salt);
  font-family:var(--f-body);font-size:clamp(16px,1.05vw,18px);line-height:1.55;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
body.is-loading{overflow:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
em{font-style:italic}
::selection{background:var(--ember);color:var(--abyss)}
:focus-visible{outline:2px solid var(--ember);outline-offset:4px;border-radius:2px}

.mono{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.eyebrow{margin:0 0 28px;color:var(--fog);display:flex;align-items:center;gap:12px}
.eyebrow::before{content:"";width:28px;height:1px;background:currentColor;opacity:.6}
.h2{
  font-family:var(--f-display);font-weight:400;font-variation-settings:"opsz" 96;
  font-size:clamp(2.6rem,6.4vw,6.6rem);line-height:.92;letter-spacing:-.025em;margin:0;
}
.h2 em,.hero__title em,.contact__title em{color:var(--ember)}
.skip{position:absolute;left:-999px;top:8px;z-index:200;background:var(--ember);color:var(--abyss);padding:8px 12px}
.skip:focus{left:8px}

/* ---------- Iris preloader ---------- */
.iris{position:fixed;inset:0;z-index:100;pointer-events:none}
.iris__svg{position:absolute;inset:0;width:100%;height:100%}
.iris__read{position:absolute;left:50%;bottom:9vh;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--salt)}
.iris__f{font-family:var(--f-display);font-size:clamp(28px,4vw,48px);letter-spacing:0;text-transform:none;font-style:italic}
.iris__label{color:var(--fog)}
.iris.is-done{display:none}

/* ---------- Cursor ---------- */
.cursor{position:fixed;left:0;top:0;z-index:90;pointer-events:none;display:none;mix-blend-mode:difference}
.has-cursor .cursor{display:block}
.has-cursor, .has-cursor a, .has-cursor button{cursor:none}
.cursor__dot{position:absolute;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:#fff}
.cursor__ring{
  position:absolute;width:38px;height:38px;margin:-19px 0 0 -19px;border-radius:50%;
  border:1px solid rgba(255,255,255,.7);display:grid;place-items:center;
  transition:width .45s var(--ease),height .45s var(--ease),margin .45s var(--ease),background .3s,border-color .3s;
}
.cursor__label{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#000;opacity:0;transition:opacity .2s}
.cursor.is-label{mix-blend-mode:normal}
.cursor.is-label .cursor__ring{width:92px;height:92px;margin:-46px 0 0 -46px;background:var(--ember);border-color:var(--ember)}
.cursor.is-label .cursor__dot{opacity:0}
.cursor__label{color:var(--abyss)}
.cursor.is-label .cursor__label{opacity:1}
.cursor.is-hidden .cursor__ring,.cursor.is-hidden .cursor__dot{opacity:0}
.cursor.is-down .cursor__ring{width:26px;height:26px;margin:-13px 0 0 -13px}

/* ---------- HUD ---------- */
.hud{position:fixed;left:var(--gut);bottom:18px;z-index:40;display:flex;gap:22px;color:var(--fog);mix-blend-mode:difference;pointer-events:none}
.hud b{font-weight:500;color:var(--salt)}

/* ---------- Nav ---------- */
.nav{
  position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;gap:32px;
  padding:20px var(--gut);mix-blend-mode:difference;color:#fff;
  transition:transform .6s var(--ease);
}
.nav.is-hidden{transform:translateY(-110%)}
.logo{display:flex;align-items:center;gap:2px;font-family:var(--f-display);font-size:30px;line-height:1;letter-spacing:-.02em}
.logo__amp{font-style:italic;margin:0 3px}
.logo__sub{font-size:7.5px;line-height:1.25;letter-spacing:.2em;margin-left:12px;padding-left:10px;border-left:1px solid currentColor;opacity:.8}
.nav__links{display:flex;gap:28px;margin-left:auto;font-size:14px}
.roll{position:relative;display:inline-block;overflow:hidden;line-height:1.3;height:1.3em}
.roll > span{display:block;transition:transform .55s var(--ease)}
.roll > span::after{content:attr(data-text);position:absolute;left:0;top:100%;font-style:italic;font-family:var(--f-display);font-size:1.06em}
.roll:hover > span,.roll:focus-visible > span{transform:translateY(-100%)}
.nav__cta{border:1px solid currentColor;border-radius:40px;padding:10px 18px;font-size:13px;display:inline-block}
.nav__burger{display:none;width:40px;height:40px;position:relative}
.nav__burger span{position:absolute;left:9px;right:9px;height:1px;background:currentColor;transition:transform .4s var(--ease)}
.nav__burger span:first-child{top:16px}.nav__burger span:last-child{top:23px}
.menu-open .nav__burger span:first-child{transform:translateY(3.5px) rotate(45deg)}
.menu-open .nav__burger span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
.menu{
  position:fixed;inset:0;z-index:45;background:var(--abyss);display:flex;flex-direction:column;justify-content:center;
  padding:0 var(--gut);gap:6px;clip-path:circle(0% at calc(100% - 40px) 40px);transition:clip-path .8s var(--ease-io);
}
.menu a{font-family:var(--f-display);font-size:clamp(44px,12vw,80px);line-height:1.05;letter-spacing:-.02em}
.menu a:nth-child(even){font-style:italic;color:var(--ember)}
.menu-open .menu{clip-path:circle(150% at calc(100% - 40px) 40px)}

/* ---------- Hero ---------- */
.hero{position:relative;height:100svh;min-height:560px;overflow:hidden;background:#0b1214}
.hero__stage{position:absolute;inset:0}
.hero__layer{position:absolute;inset:0}
.hero__layer{will-change:transform}
.hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%;opacity:0;transition:opacity 1.6s var(--ease)}
.hero__img.is-on{opacity:1}
.hero__layer--soft{filter:blur(22px) saturate(.55) brightness(.5);transform:scale(1.12)}
.hero__layer--sharp .hero__img{transform:scale(calc(1.04 * var(--z,1))) translate(var(--px,0),var(--py,0))}
.hero__layer--soft .hero__img{transform:scale(var(--z,1))}
.hero__now{font-weight:500;color:var(--ember)}
.hero__layer--sharp{
  --x:50%;--y:50%;--r:0px;
  -webkit-mask-image:radial-gradient(circle var(--r) at var(--x) var(--y),#000 0,#000 calc(100% - 2px),transparent 100%);
          mask-image:radial-gradient(circle var(--r) at var(--x) var(--y),#000 0,#000 calc(100% - 2px),transparent 100%);
}
.hero__layer--sharp .hero__img{filter:saturate(1.12) contrast(1.05)}
.hero__lens{
  position:absolute;left:0;top:0;width:0;height:0;pointer-events:none;
  --r:0px;
}
.hero__lens::before{
  content:"";position:absolute;left:calc(var(--r) * -1);top:calc(var(--r) * -1);width:calc(var(--r) * 2);height:calc(var(--r) * 2);
  border-radius:50%;border:1px solid rgba(233,236,230,.55);box-shadow:0 0 0 1px rgba(10,21,23,.15), inset 0 0 60px rgba(242,166,90,.12);
}
.hero__tick{position:absolute;width:10px;height:1px;background:var(--salt);opacity:.8}
.hero__tick.t1{left:calc(var(--r) * -1 - 16px);top:0}
.hero__tick.t2{left:calc(var(--r) + 6px);top:0}
.hero__tick.t3{width:1px;height:10px;top:calc(var(--r) * -1 - 16px);left:0}
.hero__tick.t4{width:1px;height:10px;top:calc(var(--r) + 6px);left:0}
.hero__lensread{position:absolute;left:calc(var(--r) * .72);top:calc(var(--r) * .72);white-space:nowrap;color:var(--salt);font-size:10px}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,21,23,.35),transparent 30%,transparent 55%,rgba(10,21,23,.75));pointer-events:none}
.hero__copy{position:absolute;left:var(--gut);right:var(--gut);bottom:clamp(90px,14vh,150px);z-index:2;pointer-events:none}
.hero__copy .eyebrow{color:var(--salt);opacity:.8}
.hero__title{
  font-family:var(--f-display);font-weight:400;font-variation-settings:"opsz" 96;margin:0;
  font-size:clamp(3.3rem,10.6vw,11.5rem);line-height:.86;letter-spacing:-.035em;
}
.hero__title .line{display:block;overflow:hidden;padding-bottom:.06em}
.hero__title .line > span{display:inline-block;transform:translateY(110%);transition:transform 1.3s var(--ease)}
.hero__title .line:nth-child(2) > span{transition-delay:.08s;margin-left:.9em}
.hero__title .line:nth-child(3) > span{transition-delay:.16s;margin-left:2.6em}
.is-ready .hero__title .line > span{transform:none}
.hero__meta{position:absolute;left:var(--gut);right:var(--gut);bottom:22px;z-index:2;display:flex;justify-content:space-between;gap:16px;color:var(--salt);opacity:.75;padding-left:200px}
.hero__hint{display:flex;align-items:center;gap:8px}
.hero__hint::before{content:"";width:8px;height:8px;border-radius:50%;border:1px solid currentColor;animation:pulse 2s infinite}
@keyframes pulse{50%{transform:scale(1.8);opacity:.2}}

/* ---------- Reveal helpers ---------- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.reveal.in,.is-ready .hero .reveal{opacity:1;transform:none}
.reveal-img{overflow:hidden;clip-path:inset(12% 12% 12% 12%);transition:clip-path 1.4s var(--ease)}
.reveal-img img{transform:scale(1.25);transition:transform 1.8s var(--ease)}
.reveal-img.in{clip-path:inset(0 0 0 0)}
.reveal-img.in img{transform:scale(1)}

/* ---------- Manifesto ---------- */
.manifesto{padding:clamp(120px,20vh,220px) var(--gut) clamp(100px,16vh,180px);max-width:1500px}
.manifesto__text{
  font-family:var(--f-display);font-variation-settings:"opsz" 48;font-size:clamp(1.9rem,4.1vw,4.3rem);
  line-height:1.08;letter-spacing:-.018em;margin:0;max-width:30ch;
}
.focus-text .w{display:inline-block;transition:filter .25s linear,opacity .25s linear;will-change:filter}
.manifesto__pair{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,80px);margin-top:clamp(60px,10vh,120px);max-width:980px;margin-left:auto}
.manifesto__pair span{color:var(--ember);display:block;margin-bottom:12px}
.manifesto__pair p{margin:0;color:var(--fog);font-size:1.05em}

/* ---------- Work (horizontal) ---------- */
.work{position:relative}
.work__pin{position:sticky;top:0;height:100svh;overflow:hidden;display:flex;align-items:center}
.work__head{position:absolute;left:var(--gut);top:clamp(90px,13vh,130px);z-index:2;width:min(34vw,460px)}
.work__head{will-change:opacity,transform}
.work__count{position:absolute;right:var(--gut);bottom:22px;margin:0;color:var(--fog);display:flex;align-items:center;gap:8px;z-index:2}
.work__count .work__idx{color:var(--ember)}
.work__bar{display:inline-block;width:120px;height:1px;background:var(--line-d);margin-left:10px;position:relative;overflow:hidden}
.work__bar i{position:absolute;inset:0;background:var(--ember);transform-origin:left;transform:scaleX(0)}
.work__track{display:flex;gap:clamp(18px,2.4vw,40px);padding-left:max(38vw,500px);padding-right:var(--gut);align-items:flex-end;will-change:transform;height:72vh;margin-top:12vh}
.card{position:relative;flex:0 0 auto;height:100%;display:flex;flex-direction:column;gap:14px;text-align:left}
.card:nth-child(3n+2){height:82%}
.card:nth-child(3n){height:90%;align-self:flex-start}
.card__frame{position:relative;flex:1;overflow:hidden;border-radius:2px;background:var(--deep)}
.card__frame img{position:absolute;inset:0;height:100%;width:100%;object-fit:cover;scale:calc(1.14 * var(--z,1));transition:transform 1.2s var(--ease),filter .8s var(--ease);filter:saturate(.9)}
.card:hover .card__frame img,.card:focus-visible .card__frame img{transform:scale(1.06);filter:saturate(1.1)}
.card__frame::after{
  content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),transparent 0,transparent 18%,rgba(10,21,23,.55) 60%);
  opacity:0;transition:opacity .5s;
}
.card:hover .card__frame::after{opacity:1}
.card__data{position:absolute;left:12px;top:12px;right:12px;display:flex;justify-content:space-between;color:var(--salt);opacity:0;transform:translateY(-6px);transition:.5s var(--ease)}
.card:hover .card__data{opacity:.9;transform:none}
.card__cap{display:flex;justify-content:space-between;align-items:baseline;gap:20px}
.card__name{font-family:var(--f-display);font-size:clamp(22px,2vw,32px);line-height:1;letter-spacing:-.01em}
.card:hover .card__name{font-style:italic;color:var(--ember)}
.card__place{color:var(--fog)}
.work__end{flex:0 0 auto;align-self:center;display:flex;flex-direction:column;gap:14px;padding:0 6vw 0 2vw}
.work__end p{font-family:var(--f-display);font-size:clamp(28px,3vw,44px);line-height:1.05;margin:0;max-width:12ch}
.work__end a{color:var(--ember)}

/* ---------- Services ---------- */
.services{background:var(--salt);color:var(--abyss);padding:clamp(110px,16vh,180px) var(--gut);position:relative}
.services .eyebrow{color:var(--stone)}
.services__head{display:grid;grid-template-columns:1fr;margin-bottom:clamp(50px,8vh,90px)}
.svc{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-l)}
.svc__row{border-bottom:1px solid var(--line-l);position:relative}
.svc__btn{width:100%;display:grid;grid-template-columns:minmax(0,2.1fr) minmax(0,1fr) 40px;gap:24px;align-items:center;padding:clamp(20px,3vh,34px) 0;text-align:left}
.svc__name{font-family:var(--f-display);font-size:clamp(28px,4.2vw,64px);line-height:1;letter-spacing:-.02em;transition:transform .6s var(--ease),color .3s}
.svc__tags{color:var(--stone)}
.svc__plus{width:40px;height:40px;border-radius:50%;border:1px solid var(--line-l);position:relative;transition:transform .5s var(--ease),background .3s}
.svc__plus::before,.svc__plus::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1px;background:currentColor;transform:translate(-50%,-50%)}
.svc__plus::after{transform:translate(-50%,-50%) rotate(90deg)}
.svc__row:hover .svc__name{transform:translateX(24px);font-style:italic}
.svc__row.open .svc__plus{transform:rotate(45deg);background:var(--abyss);color:var(--salt)}
.svc__body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .6s var(--ease)}
.svc__row.open .svc__body{grid-template-rows:1fr}
.svc__body > div{overflow:hidden}
.svc__body p{margin:0 0 30px;max-width:56ch;font-size:1.08em;color:#26383A;padding-left:clamp(0px,calc(var(--gut) * .5),40px)}
.svc__float{position:fixed;left:0;top:0;width:clamp(220px,22vw,340px);aspect-ratio:4/5;pointer-events:none;z-index:30;opacity:0;transition:opacity .35s;overflow:hidden;border-radius:2px}
.svc__float.on{opacity:1}
.svc__float img{width:100%;height:100%;object-fit:cover;scale:var(--z,1)}

/* ---------- Lens AI ---------- */
.mind{position:relative;background:var(--deep);overflow:hidden;padding:clamp(120px,18vh,200px) var(--gut)}
.mind__canvas{position:absolute;inset:0;width:100%;height:100%}
.mind__inner{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(40px,6vw,100px);align-items:end}
.mind__lede{font-size:1.15em;max-width:46ch;color:#C9D1CE;margin:36px 0 0}
.mind__quote{font-family:var(--f-display);font-size:clamp(22px,2.2vw,32px);margin:28px 0 0;color:var(--ember)}
.mind__list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-d)}
.mind__list li{display:grid;grid-template-columns:16px 1fr;column-gap:14px;row-gap:4px;padding:18px 0;border-bottom:1px solid var(--line-d);text-transform:none;letter-spacing:.02em;font-size:12.5px}
.mind__list b{font-weight:500;color:var(--salt);text-transform:uppercase;letter-spacing:.12em;font-size:11px}
.mind__list li span:last-child{grid-column:2;color:var(--fog);font-family:var(--f-body);font-size:15px;letter-spacing:0}
.mind__dot{width:8px;height:8px;border-radius:50%;border:1px solid var(--ember);margin-top:3px;grid-row:span 2}
.mind__dot.live{background:var(--ember);box-shadow:0 0 0 0 rgba(242,166,90,.6);animation:live 1.8s infinite}
@keyframes live{70%{box-shadow:0 0 0 10px rgba(242,166,90,0)}100%{box-shadow:0 0 0 0 rgba(242,166,90,0)}}

/* ---------- Process ---------- */
.process{background:var(--salt);color:var(--abyss);padding:clamp(110px,16vh,180px) var(--gut)}
.process .eyebrow{color:var(--stone)}
.steps{list-style:none;margin:clamp(60px,9vh,100px) 0 0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:0;border-top:1px solid var(--line-l)}
.step{padding:28px clamp(12px,1.6vw,26px) 10px 0;border-right:1px solid var(--line-l);margin-right:clamp(12px,1.6vw,26px);position:relative}
.step:last-child{border-right:0}
.step__f{display:block;font-family:var(--f-display);font-size:clamp(28px,3.2vw,52px);letter-spacing:-.01em;text-transform:none;font-style:italic;color:var(--abyss);margin-bottom:40px;transition:filter .6s var(--ease),opacity .6s}
.step h3{font-family:var(--f-body);font-weight:600;font-size:18px;margin:0 0 10px}
.step p{margin:0;color:#3A4B4C;font-size:15.5px}
.step::before{content:"";position:absolute;left:0;top:-1px;height:2px;width:0;background:var(--ember);transition:width 1.2s var(--ease)}
.step.in::before{width:calc(100% - clamp(12px,1.6vw,26px))}
.step .step__f{filter:blur(calc(var(--b,4) * 1px));opacity:.5}
.step.in .step__f{filter:blur(0);opacity:1}

/* ---------- Clients ---------- */
.clients{padding:clamp(100px,14vh,160px) 0;overflow:hidden}
.clients .eyebrow{padding:0 var(--gut)}
.marquee{overflow:hidden;white-space:nowrap;padding:6px 0}
.marquee__row{display:inline-flex;gap:0;will-change:transform}
.marquee__item{font-family:var(--f-display);font-size:clamp(40px,6.6vw,104px);line-height:1.08;letter-spacing:-.02em;padding:0 .35em;transition:opacity .4s,color .4s}
.marquee__item:nth-child(4n+3){font-style:italic}
.card__data{text-shadow:0 1px 8px rgba(0,0,0,.5)}
.marquee__sep{font-family:var(--f-mono);font-size:14px;color:var(--ember);align-self:center}
.marquee:hover .marquee__item{opacity:.25}
.marquee .marquee__item:hover{opacity:1;color:var(--ember)}

/* ---------- Studio ---------- */
.studio{background:var(--salt);color:var(--abyss);display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(36px,6vw,110px);padding:clamp(110px,16vh,180px) var(--gut);align-items:center}
.studio .eyebrow{color:var(--stone)}
.studio__img{aspect-ratio:4/5;max-height:86vh}
.studio__img img{width:100%;height:100%;object-fit:cover;scale:var(--z,1)}
.studio__copy > p{max-width:52ch;color:#26383A;font-size:1.08em}
.studio__copy .h2{margin-bottom:36px}
.studio__facts{margin:44px 0 0;display:grid;gap:0;border-top:1px solid var(--line-l)}
.studio__facts div{display:grid;grid-template-columns:120px 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--line-l)}
.studio__facts dt{color:var(--stone)}
.studio__facts dd{margin:0;text-transform:none;letter-spacing:.02em;font-size:12.5px}

/* ---------- Contact ---------- */
.contact{padding:clamp(130px,20vh,240px) var(--gut) clamp(80px,12vh,140px);position:relative;overflow:hidden}
.contact__title{font-family:var(--f-display);font-weight:400;font-size:clamp(3rem,9vw,10rem);line-height:.9;letter-spacing:-.035em;margin:0}
.contact__mail{
  display:inline-flex;align-items:center;margin-top:clamp(40px,7vh,80px);padding:22px 34px;border-radius:80px;
  background:var(--ember);color:var(--abyss);font-size:clamp(17px,1.7vw,26px);font-weight:500;letter-spacing:-.01em;
  transition:background .3s;
}
.contact__mail:hover{background:var(--salt)}
.contact__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:clamp(80px,12vh,140px);border-top:1px solid var(--line-d);padding-top:28px}
.contact__grid span{color:var(--fog)}
.contact__grid p{margin:10px 0 0;font-family:var(--f-body);font-size:16px;letter-spacing:0;text-transform:none;line-height:1.5}
.contact__grid a:hover{color:var(--ember)}
.foot{display:flex;justify-content:space-between;gap:16px;padding:24px var(--gut) 60px;color:var(--fog);border-top:1px solid var(--line-d)}
.foot a:hover{color:var(--ember)}

/* ---------- Case overlay ---------- */
.case{position:fixed;inset:0;z-index:80;background:var(--abyss);clip-path:circle(0px at var(--cx,50%) var(--cy,50%));transition:clip-path 1s var(--ease-io)}
.case.open{clip-path:circle(150vmax at var(--cx,50%) var(--cy,50%))}
.case[hidden]{display:block;visibility:hidden}
.case.open,.case.closing{visibility:visible}
.case__close{position:fixed;right:var(--gut);top:22px;z-index:2;padding:12px 18px;border:1px solid var(--line-d);border-radius:40px;background:rgba(10,21,23,.6);backdrop-filter:blur(8px)}
.case__close:hover{border-color:var(--ember);color:var(--ember)}
.case__scroll{height:100%;overflow-y:auto;overscroll-behavior:contain;padding:clamp(90px,14vh,140px) var(--gut) 80px}
.case__head{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,80px);align-items:end;margin-bottom:clamp(40px,8vh,90px)}
.case__meta{grid-column:1/-1;color:var(--fog);margin:0}
.case__title{font-family:var(--f-display);font-weight:400;font-size:clamp(3rem,8vw,8.4rem);line-height:.9;letter-spacing:-.03em;margin:0}
.case__text{margin:0;font-size:1.15em;color:#C9D1CE;max-width:48ch}
.case__gallery{columns:3;column-gap:clamp(12px,1.6vw,24px)}
.case__gallery figure:first-child img{max-height:82vh;object-fit:cover}
.case__gallery figure{margin:0 0 clamp(12px,1.6vw,24px);break-inside:avoid;overflow:hidden;background:var(--deep)}
.case__gallery img{width:100%;height:auto;opacity:0;transform:scale(1.04);transition:opacity .9s var(--ease),transform 1.4s var(--ease)}
.case__gallery img.in{opacity:1;transform:none}
.case__gallery figure:first-child{column-span:all}
.case__next{display:block;margin:clamp(50px,10vh,110px) auto 0;font-family:var(--f-display);font-size:clamp(32px,5vw,72px);letter-spacing:-.02em;text-transform:none;font-style:italic;color:var(--ember)}
.case__next:hover{color:var(--salt)}

/* ---------- Responsive ---------- */
@media (max-width: 960px){
  .nav__links,.nav__cta{display:none}
  .nav__burger{display:block;margin-left:auto}
  .hero__meta{padding-left:0}
  .hero__meta span:first-child,.hero__meta span:last-child{display:none}
  .manifesto__pair{grid-template-columns:1fr}
  .work__pin{position:relative;height:auto;display:block;padding:110px 0 70px}
  .work__head{position:static;width:auto;padding:0 var(--gut);margin-bottom:40px}
  .work__count{display:none}
  .work__track{height:62vh;max-height:560px;margin:0;padding:0 var(--gut);overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-left:var(--gut);transform:none!important;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .work__track::-webkit-scrollbar{display:none}
  .card{scroll-snap-align:start;height:100%!important;align-self:auto!important}
  .card__frame img{height:100%}
  .work__end{padding:0 var(--gut) 0 0;min-width:60vw}
  .svc__btn{grid-template-columns:1fr 40px}
  .svc__tags{grid-column:1;grid-row:2;font-size:10px}
  .svc__plus{grid-column:2;grid-row:1}
  .svc__float{display:none}
  .mind__inner{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .step{border-right:0;margin-right:0;border-bottom:1px solid var(--line-l);padding:24px 0}
  .step__f{margin-bottom:14px}
  .studio{grid-template-columns:1fr}
  .studio__facts div{grid-template-columns:90px 1fr}
  .contact__grid{grid-template-columns:1fr}
  .case__head{grid-template-columns:1fr}
  .case__gallery{columns:2}
  .foot{flex-direction:column}
  .hud{display:none}
}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .hero__layer--soft{display:none}
  .hero__layer--sharp{-webkit-mask-image:none;mask-image:none}
  .hero__lens{display:none}
  .focus-text .w{filter:none!important;opacity:1!important}
}
