@font-face{font-family:"Syne";src:url(../fonts/syne.woff2) format("woff2");font-weight:400 800;font-display:swap}
@font-face{font-family:"Geist";src:url(../fonts/geist.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Geist Mono";src:url(../fonts/geist-mono.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Instrument Serif";src:url(../fonts/instrument-serif-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}

:root{
  --ink:#08080B;--ink-2:#111116;--ink-3:#1A1A21;
  --tx:#F2F0EC;--mu:rgba(242,240,236,.6);--line:rgba(242,240,236,.12);
  --bone:#EEEBE5;--bone-tx:#111116;--bone-mu:#5E5C66;--bone-line:rgba(17,17,22,.12);
  --sig:#FF4F1F;--sig-2:#FF8A3D;
  --display:"Syne",ui-sans-serif,system-ui,sans-serif;
  --sans:"Geist",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --serif:"Instrument Serif",Georgia,serif;
  --mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --sh:0 1px 2px rgba(4,4,8,.4),0 12px 32px rgba(4,4,8,.4),0 40px 80px rgba(4,4,8,.45);
  --ease:cubic-bezier(.2,.7,.2,1);--io:cubic-bezier(.76,0,.24,1);
  --gut:clamp(16px,4vw,48px);--sec:clamp(96px,12vw,176px);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:96px}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
body{margin:0;background:var(--ink);color:var(--tx);font:400 16px/1.6 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video,svg,canvas{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
h1,h2,h3,p,ul,ol,dl,dd,blockquote,figure{margin:0}
ul,ol{list-style:none;padding:0}
[hidden]{display:none!important}
::selection{background:var(--sig);color:#fff}
:focus-visible{outline:2px solid var(--sig);outline-offset:3px;border-radius:6px}
.skip{position:fixed;left:16px;top:-80px;z-index:600;background:var(--sig);color:#fff;padding:8px 16px;border-radius:8px}
.skip:focus{top:16px}
.wrap{width:100%;max-width:1440px;margin:0 auto;padding:0 var(--gut)}
.mono{font:500 12px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase}
.hide-sm{display:none!important}
@media(min-width:768px){.hide-sm{display:inline-flex!important}}
.eyebrow{color:var(--mu);margin-bottom:32px}
.h2{font:800 clamp(39px,6vw,96px)/.95 var(--display);letter-spacing:-.045em;text-wrap:balance}
.h2 em,.hero__lead em,.flip em,.contact__h em{font:italic 400 1.1em/1 var(--serif);letter-spacing:-.01em;color:var(--sig)}

/* buttons */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 24px;border-radius:999px;font:600 15px/1 var(--sans);white-space:nowrap;overflow:hidden;isolation:isolate;transition:transform .2s var(--ease),color .3s,border-color .3s}
.btn:active{transform:scale(.97)}
.btn--block{width:100%}
.btn--line{border:1px solid var(--line);color:var(--tx)}
.btn--line::before,.btn--signal::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;transform:scaleY(0);transform-origin:bottom;transition:transform .5s var(--io)}
.btn--line::before{background:var(--tx)}
.btn--line:hover{color:var(--ink);border-color:var(--tx)}
.btn--line:hover::before,.btn--signal:hover::before{transform:scaleY(1)}
.btn--signal{background:var(--sig);color:#fff;box-shadow:0 8px 24px rgba(255,79,31,.3),0 24px 48px rgba(255,79,31,.18)}
.btn--signal::before{background:var(--tx)}
.btn--signal:hover{color:var(--ink)}
.btn span[aria-hidden]{transition:transform .3s var(--ease)}
.btn:hover span[aria-hidden]{transform:translateX(4px)}

/* cursor (blend difference) */
.cur{position:fixed;z-index:550;left:0;top:0;pointer-events:none;display:none;mix-blend-mode:difference}
.cur__c{position:absolute;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:#fff;display:grid;place-items:center;transition:width .35s var(--ease),height .35s var(--ease),margin .35s var(--ease)}
.cur__t{font:700 11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#000;opacity:0;transition:opacity .2s}
.cur.is-link .cur__c{width:48px;height:48px;margin:-24px 0 0 -24px}
.cur.is-label .cur__c{width:96px;height:96px;margin:-48px 0 0 -48px}
.cur.is-label .cur__t{opacity:1}
.cur.is-off,.cur.is-hide{opacity:0}
@media(hover:hover) and (pointer:fine){html.has-cur .cur{display:block}html.has-cur body,html.has-cur a,html.has-cur button{cursor:none}}
.hover-gl{position:fixed;inset:0;z-index:40;width:100vw;height:100vh;pointer-events:none}

/* nav */
.nav{position:fixed;z-index:200;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px var(--gut);mix-blend-mode:difference;color:#fff;transition:transform .5s var(--io)}
.nav.is-hidden{transform:translateY(-110%)}
.logo{font:800 22px/1 var(--display);letter-spacing:-.03em}
.logo sup{font-size:.5em;vertical-align:top;margin-left:2px}
.nav__clock{display:none;align-items:center;gap:8px}
@media(min-width:900px){.nav__clock{display:inline-flex}}
.nav__dot{width:8px;height:8px;border-radius:50%;background:#fff;animation:blink 2s steps(2,start) infinite}
@keyframes blink{to{visibility:hidden}}
.nav__r{display:flex;align-items:center;gap:12px}
.nav .btn--line{border-color:rgba(255,255,255,.4);color:#fff;min-height:44px}
.menu-btn{display:inline-flex;align-items:center;gap:12px;min-height:44px;padding:0 4px 0 16px;font:600 14px/1 var(--sans)}
.menu-btn__i{position:relative;width:44px;height:44px;border-radius:50%;background:#fff;display:grid;place-content:center;gap:5px;transition:transform .3s var(--ease)}
.menu-btn__i i{display:block;width:16px;height:1.5px;background:#000;transition:transform .4s var(--io)}
.menu-btn:hover .menu-btn__i{transform:scale(1.08)}
.menu-btn[aria-expanded=true] .menu-btn__i i:first-child{transform:translateY(3.25px) rotate(45deg)}
.menu-btn[aria-expanded=true] .menu-btn__i i:last-child{transform:translateY(-3.25px) rotate(-45deg)}

/* fullscreen menu: circular reveal */
.menu{position:fixed;inset:0;z-index:150;background:var(--sig);color:var(--ink);display:flex;flex-direction:column;justify-content:space-between;padding:112px var(--gut) calc(32px + env(safe-area-inset-bottom));clip-path:circle(0 at var(--mx,95%) var(--my,5%));transition:clip-path .8s var(--io)}
.menu.is-open{clip-path:circle(150% at var(--mx,95%) var(--my,5%))}
.menu__nav{display:flex;flex-direction:column}
.menu__nav a{display:flex;align-items:baseline;gap:16px;overflow:hidden;border-bottom:1px solid rgba(8,8,11,.15);padding:4px 0}
.menu__n{opacity:.6}
.menu__l{display:inline-block;font:800 clamp(49px,9vw,128px)/1 var(--display);letter-spacing:-.05em;transform:translateY(110%);transition:transform .8s var(--io),font-variation-settings .4s}
.menu.is-open .menu__l{transform:none}
.menu.is-open a:nth-child(2) .menu__l{transition-delay:.06s}
.menu.is-open a:nth-child(3) .menu__l{transition-delay:.12s}
.menu.is-open a:nth-child(4) .menu__l{transition-delay:.18s}
.menu.is-open a:nth-child(5) .menu__l{transition-delay:.24s}
.menu__nav a:hover .menu__l{font-style:italic;font-family:var(--serif);font-weight:400;letter-spacing:-.02em}
.menu__foot{display:flex;flex-wrap:wrap;gap:24px 64px;align-items:flex-end}
.menu__foot .mono{display:block;opacity:.6;margin-bottom:4px}
.menu__foot a,.menu__foot span:not(.mono){font-weight:600;font-size:18px}
.menu__img{display:none;margin-left:auto;width:280px;border-radius:16px;transform:rotate(3deg)}
@media(min-width:1000px){.menu__img{display:block}}

/* hero */
.hero{position:relative;height:100vh;height:100svh;min-height:640px;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:96px 0 32px}
.hero__gl{position:absolute;inset:0;width:100%;height:100%}
.hero__shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(8,8,11,.25),transparent 30%,transparent 60%,rgba(8,8,11,.75))}
.hero__top,.hero__bot{position:relative;z-index:4}
.hero__phys{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden}
.hero__phys .pb{pointer-events:auto}
.hero__phys .pb--h{padding:clamp(10px,1vw,16px) clamp(18px,1.8vw,28px);background:var(--tx);color:var(--ink);font-size:clamp(13px,1.6vw,24px);box-shadow:0 8px 24px rgba(4,4,8,.35)}
.hero__phys .pb--h:nth-child(3n){background:var(--sig);color:#fff}
.hero__phys .pb--h:nth-child(3n+1){background:rgba(242,240,236,.12);color:var(--tx);border:1px solid rgba(242,240,236,.3);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.hero__tag{display:flex;justify-content:space-between;color:var(--mu)}
.hero__word{position:relative;z-index:2;display:flex;justify-content:center;font:800 clamp(72px,19.5vw,360px)/.8 var(--display);letter-spacing:-.05em;color:var(--tx);user-select:none;white-space:nowrap;padding:0 var(--gut)}
.hw{display:inline-block;font-variation-settings:"wght" 800;will-change:transform;transform-origin:50% 100%}
.hero__bot{display:grid;grid-template-columns:1fr auto;align-items:end;gap:24px}
.hero__lead{max-width:520px;font-size:clamp(18px,1.6vw,22px);line-height:1.45;color:var(--tx)}
.reelbtn{position:relative;width:120px;height:120px;border-radius:50%;display:grid;place-items:center}
.reelbtn__ring{position:absolute;inset:0;animation:spin 14s linear infinite}
.reelbtn__ring text{font:600 9.5px/1 var(--mono);letter-spacing:.22em;fill:var(--tx)}
.reelbtn__play{width:56px;height:56px;border-radius:50%;background:var(--sig);display:grid;place-items:center;transition:transform .35s var(--ease)}
.reelbtn__play::after{content:"";margin-left:4px;border-left:14px solid #fff;border-top:9px solid transparent;border-bottom:9px solid transparent}
.reelbtn:hover .reelbtn__play{transform:scale(1.15)}
@keyframes spin{to{transform:rotate(360deg)}}
.hero__scroll{display:none}
@media(min-width:1000px){.hero__bot{grid-template-columns:1fr auto auto}.hero__scroll{display:inline-flex;flex-direction:column;align-items:center;gap:8px;color:var(--mu)}.hero__scroll i{width:1px;height:48px;background:linear-gradient(var(--tx),transparent);animation:drop 2s var(--ease) infinite}}
@keyframes drop{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@media(max-width:600px){.reelbtn{width:96px;height:96px}.reelbtn__play{width:44px;height:44px}.hero__word{font-size:21vw}}

/* intro */
.intro{padding:var(--sec) 0;background:var(--ink)}
.flip{font:800 clamp(34px,5.6vw,92px)/1.04 var(--display);letter-spacing:-.045em;perspective:900px}
.flip .fw{display:inline-block;transform-origin:50% 100%;will-change:transform,opacity}
.pill{display:inline-block;width:1.7em;height:.82em;vertical-align:-.04em;border-radius:999px;overflow:hidden;background:var(--ink-3)}
.pill img,.pill video{width:100%;height:100%;object-fit:cover}
.pill--v{width:2.1em}
.intro__grid{margin-top:clamp(56px,7vw,112px);display:grid;gap:40px;padding-top:40px;border-top:1px solid var(--line)}
@media(min-width:900px){.intro__grid{grid-template-columns:1fr 1fr;gap:96px}}
.intro__p{font-size:20px;line-height:1.55;color:var(--mu);max-width:560px}
.intro__caps{display:flex;flex-wrap:wrap;gap:8px;align-content:flex-start}
.intro__caps li{padding:10px 16px;border:1px solid var(--line);border-radius:999px;transition:background-color .3s,color .3s,border-color .3s}
.intro__caps li:hover{background:var(--sig);border-color:var(--sig);color:#fff}

/* work list */
.work{padding:var(--sec) 0;background:var(--bone);color:var(--bone-tx)}
.work .eyebrow{color:var(--bone-mu)}
.work__head{display:flex;justify-content:space-between;align-items:baseline}
.work__count{color:var(--bone-mu)}
.wl{border-top:1px solid var(--bone-line)}
.wl__i{border-bottom:1px solid var(--bone-line)}
.wl__b{position:relative;display:grid;grid-template-columns:40px 1fr;gap:4px 16px;width:100%;padding:24px 0;text-align:left;align-items:baseline}
.wl__n{grid-row:1/3;color:var(--bone-mu)}
.wl__t{font:800 clamp(32px,4.8vw,84px)/.98 var(--display);letter-spacing:-.05em;transition:transform .6s var(--io),color .4s;transform-origin:left center}
.wl__c{color:var(--bone-mu);font-size:15px}
.wl__y{display:none}
.wl__b::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--sig);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--io)}
.wl__thumb{grid-column:2;width:100%;max-width:520px;aspect-ratio:16/10;object-fit:cover;border-radius:12px;margin-top:12px}
@media(min-width:1000px){
  .wl__b{grid-template-columns:72px 1fr 280px 80px;align-items:center;padding:28px 0}
  .wl__n{grid-row:auto}
  .wl__c{text-align:right}
  .wl__y{display:block;text-align:right;color:var(--bone-mu)}
  .wl__thumb{display:none}
  .wl:hover .wl__t{color:rgba(17,17,22,.25)}
  .wl__b:hover .wl__t{color:var(--bone-tx);transform:translateX(24px)}
  .wl__b:hover::after{transform:scaleX(1)}
}

/* case overlay */
.case{position:fixed;inset:0;z-index:300;display:grid;background:var(--ink);overflow-y:auto}
@media(min-width:1000px){.case{grid-template-columns:1.3fr 1fr;overflow:hidden}}
.case__img{position:relative;min-height:56vh;background:#000 center/cover no-repeat;transform-origin:center}
@media(min-width:1000px){.case__img{min-height:100vh}}
.case__body{position:relative;padding:48px var(--gut) 64px;display:flex;flex-direction:column;gap:24px;justify-content:center}
.case__body>*{opacity:0;transform:translateY(24px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.case.is-in .case__body>*{opacity:1;transform:none}
.case.is-in .case__body>*:nth-child(3){transition-delay:.08s}
.case.is-in .case__body>*:nth-child(4){transition-delay:.16s}
.case.is-in .case__body>*:nth-child(5){transition-delay:.24s}
.case.is-in .case__body>*:nth-child(6){transition-delay:.32s}
.case__body .mono{color:var(--mu)}
.case h2{font:800 clamp(49px,6vw,96px)/.92 var(--display);letter-spacing:-.05em}
.case__p{font-size:18px;color:var(--mu);max-width:520px}
.case__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding-top:24px;border-top:1px solid var(--line)}
.case__stats dt{font:500 11px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mu)}
.case__stats dd{font:800 clamp(31px,3vw,49px)/1 var(--display);letter-spacing:-.04em;color:var(--sig);margin-top:8px}
.case__x{position:absolute;top:24px;right:var(--gut);width:48px;height:48px;border-radius:50%;border:1px solid var(--line);transition:background-color .2s,transform .3s var(--ease)}
.case__x:hover{background:var(--tx);color:var(--ink);transform:rotate(90deg)}
.case__next{align-self:flex-start;min-height:44px;color:var(--tx);border-bottom:1px solid var(--sig)}

/* reel */
.reel{position:relative;background:var(--ink);overflow:hidden}
.reel__pin{position:relative;height:100vh;height:100svh;display:grid;place-items:center}
.reel__h{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:min(44vw,640px);font:800 clamp(64px,13vw,220px)/1 var(--display);letter-spacing:-.05em;pointer-events:none}
.reel__h span:last-child{font:italic 400 1.1em/1 var(--serif);color:var(--sig)}
.reel__frame{position:relative;z-index:2;width:100%;height:100%;clip-path:inset(30% 30% round 24px);overflow:hidden}
.reel__frame video{width:100%;height:100%;object-fit:cover}
.reel__ui{position:absolute;left:var(--gut);bottom:32px;color:#fff}
@media(max-width:767px){.reel__pin{height:auto;padding:64px var(--gut)}.reel__h{position:static;gap:16px;font-size:64px;margin-bottom:24px;justify-content:flex-start}.reel__frame{clip-path:inset(0 round 20px);aspect-ratio:16/9;height:auto}}

/* services cylinder */
.services{position:relative;background:var(--ink)}
.services__pin{position:relative;min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:96px 0;overflow:hidden}
.services__head{margin-bottom:24px}
.cyl{position:relative;height:clamp(420px,52vh,560px);perspective:1600px}
.cyl__ring{position:absolute;left:50%;top:50%;width:min(420px,78vw);height:100%;transform-style:preserve-3d;transform:translate(-50%,-50%) rotateY(0deg)}
.face{position:absolute;inset:0;display:flex;flex-direction:column;gap:12px;padding:28px;border-radius:24px;background:linear-gradient(160deg,rgba(255,255,255,.1),rgba(255,255,255,.02)),var(--ink-2);border:1px solid rgba(255,255,255,.12);box-shadow:0 1px 0 rgba(255,255,255,.08) inset;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden}
.face .mono{color:var(--sig)}
.face h3{font:800 clamp(28px,2.6vw,39px)/1 var(--display);letter-spacing:-.04em}
.face p{color:var(--mu);font-size:15px}
.face img{margin-top:auto;width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:14px}
@media(max-width:999px){
  .cyl{height:auto;perspective:none}
  .cyl__ring{position:static;transform:none!important;width:auto;height:auto;display:grid;grid-auto-flow:column;grid-auto-columns:80vw;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 var(--gut) 8px;scrollbar-width:none}
  .cyl__ring::-webkit-scrollbar{display:none}
  .face{position:relative;inset:auto;transform:none!important;scroll-snap-align:start;min-height:440px}
}

/* numbers */
.nums{padding:var(--sec) 0 0;background:var(--bone);color:var(--bone-tx);overflow:hidden}
.nums__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:40px 24px}
@media(min-width:900px){.nums__grid{grid-template-columns:repeat(4,1fr)}.nums .num b{font-size:clamp(56px,7vw,112px)}}
@media(max-width:600px){.bigcta{min-height:72px;padding:0 12px 0 28px;font-size:22px}.bigcta__a{width:48px;height:48px}}
.num b{display:block;font:800 clamp(40px,10.5vw,112px)/.85 var(--display);white-space:nowrap;letter-spacing:-.06em;font-variant-numeric:tabular-nums}
.num span{display:block;margin-top:16px;padding-top:16px;border-top:1px solid var(--bone-line);color:var(--bone-mu)}
.tick{margin-top:var(--sec);padding:24px 0;background:var(--sig);color:#fff;overflow:hidden;transform:rotate(-2deg) scale(1.05)}
.tick__t{display:flex;align-items:center;gap:40px;width:max-content;font:800 clamp(39px,5vw,76px)/1 var(--display);letter-spacing:-.04em;animation:mq 26s linear infinite}
.tick__t i{font-style:normal;font-size:.6em}
@keyframes mq{to{transform:translateX(-50%)}}

/* process drag */
.process{padding:var(--sec) 0;background:var(--ink);overflow:hidden}
.process__head{display:grid;gap:24px;margin-bottom:48px}
@media(min-width:900px){.process__head{grid-template-columns:auto 1fr auto;align-items:end;gap:48px}.process__head .eyebrow{grid-column:1/-1;margin:0}}
.process__hint{color:var(--mu)}
.drag{overflow:hidden;padding-left:var(--gut);cursor:grab;touch-action:pan-y}
.drag.is-grab{cursor:grabbing}
.drag__track{display:flex;gap:16px;width:max-content;will-change:transform;user-select:none}
.pc{position:relative;flex:none;width:min(80vw,380px);min-height:440px;display:flex;flex-direction:column;gap:16px;padding:32px;border-radius:24px;background:var(--ink-2);border:1px solid var(--line);transition:background-color .4s,transform .3s var(--ease)}
.pc:hover{background:var(--ink-3)}
.pc__n{font:800 120px/.8 var(--display);letter-spacing:-.06em;color:transparent;-webkit-text-stroke:1.5px rgba(242,240,236,.3)}
.pc h3{margin-top:auto;font:800 39px/1 var(--display);letter-spacing:-.04em}
.pc p{color:var(--mu)}
.pc__t{color:var(--sig)}
.pc--cta{background:var(--sig);color:#fff;justify-content:flex-end;border:0}
.pc--cta:hover{background:#ff6a3d}
.pc--cta .btn--signal{background:var(--ink);box-shadow:none;align-self:flex-start}
.pc--cta .btn--signal::before{background:#fff}

/* voices swipe stack */
.voices{padding:var(--sec) 0;background:var(--bone);color:var(--bone-tx);overflow:hidden}
.voices__wrap{display:grid;gap:56px;align-items:center}
@media(min-width:1000px){.voices__wrap{grid-template-columns:1fr 1fr;gap:96px}}
.voices__hint{margin-top:24px;color:var(--bone-mu)}
.stack{position:relative;height:420px;max-width:520px;width:100%;justify-self:center;touch-action:pan-y}
.card{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;padding:40px;border-radius:28px;background:var(--ink);color:var(--tx);box-shadow:var(--sh);cursor:grab;user-select:none;transition:transform .5s var(--ease)}
.card:nth-child(2n){background:var(--sig);color:#fff}
.card:nth-child(3n){background:#fff;color:var(--bone-tx)}
.card p{font:400 clamp(25px,2.4vw,35px)/1.2 var(--serif);font-style:italic}
.card footer b{display:block;font-size:16px}
.card footer span{font-size:14px;opacity:.7}
.card.is-drag{transition:none;cursor:grabbing}

/* contact */
.contact{padding:var(--sec) 0;background:var(--ink)}
.contact__h{font:800 clamp(52px,12vw,200px)/.9 var(--display);letter-spacing:-.06em}
.contact__h .jw{display:inline-block;white-space:nowrap}
.contact__h .jc{display:inline-block;transition:transform .5s cubic-bezier(.3,1.8,.4,1),color .3s}
.contact__row{margin-top:56px;display:flex;flex-wrap:wrap;gap:40px 64px;align-items:center}
.bigcta{position:relative;display:inline-flex;align-items:center;gap:24px;min-height:96px;padding:0 16px 0 40px;white-space:nowrap;border-radius:999px;background:var(--sig);color:#fff;font:800 clamp(25px,2.6vw,39px)/1 var(--display);letter-spacing:-.03em;overflow:hidden;isolation:isolate;transition:color .4s}
.bigcta::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--tx);border-radius:inherit;clip-path:circle(0 at var(--bx,50%) var(--by,50%));transition:clip-path .6s var(--io)}
.bigcta:hover{color:var(--ink)}
.bigcta:hover::before{clip-path:circle(150% at var(--bx,50%) var(--by,50%))}
.bigcta__a{width:64px;height:64px;border-radius:50%;background:#fff;color:var(--ink);display:grid;place-items:center;transition:transform .5s var(--io)}
.bigcta:hover .bigcta__a{transform:rotate(-45deg);background:var(--sig);color:#fff}
.contact__mail .mono{display:block;color:var(--mu);margin-bottom:8px}
.copy{display:inline-flex;align-items:center;gap:12px;min-height:44px;font:800 clamp(20px,2vw,31px)/1 var(--display);letter-spacing:-.03em;border-bottom:2px solid var(--line);padding-bottom:6px;transition:border-color .3s}
.copy:hover{border-color:var(--sig)}
.copy__t{font-size:11px;padding:6px 10px;border-radius:999px;background:var(--ink-3);color:var(--mu)}

/* footer + physics */
.ftr{position:relative;height:min(100vh,760px);min-height:560px;background:var(--sig);color:var(--ink);overflow:hidden}
.phys{position:absolute;inset:0}
.phys canvas{display:none}
.pb{position:absolute;left:0;top:0;display:inline-grid;place-items:center;user-select:none;will-change:transform;touch-action:manipulation}
.pb--l{font:800 clamp(56px,13vw,200px)/.8 var(--display);letter-spacing:-.05em;color:var(--ink);cursor:grab}
.pb--t{padding:14px 24px;border-radius:999px;background:var(--ink);color:var(--tx);font:600 clamp(14px,1.4vw,20px)/1 var(--sans);white-space:nowrap;cursor:grab}
.pb--t:nth-child(even){background:var(--bone);color:var(--ink)}
.ftr__in{position:relative;z-index:2;pointer-events:none;height:100%;display:flex;flex-direction:column;justify-content:space-between;padding-top:64px;padding-bottom:calc(24px + env(safe-area-inset-bottom))}
.ftr__in a,.ftr__in button{pointer-events:auto}
.ftr__cols{display:grid;gap:24px;grid-template-columns:repeat(2,1fr)}
@media(min-width:900px){.ftr__cols{grid-template-columns:repeat(3,auto);justify-content:start;gap:80px}}
.ftr__cols .mono{display:block;opacity:.6;margin-bottom:8px}
.ftr__cols a{display:block;font-weight:600;padding:2px 0}
.ftr__cols a:hover{text-decoration:underline}
.ftr__bot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px}
.totop{min-height:44px;display:inline-flex;align-items:center}

/* reel lightbox */
.lb{position:fixed;inset:0;z-index:450;display:grid;place-items:center;padding:16px}
.lb__bg{position:absolute;inset:0;background:rgba(8,8,11,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.lb__v{position:relative;width:min(1280px,100%);aspect-ratio:16/9;border-radius:16px;background:#000;box-shadow:var(--sh);animation:pop .5s var(--ease) both}
.lb__x{position:fixed;top:16px;right:16px;width:48px;height:48px;border-radius:50%;background:var(--tx);color:var(--ink)}
@keyframes pop{from{opacity:0;transform:scale(.94)}}

/* form panel */
.panel{position:fixed;inset:0;z-index:420}
.panel__bg{position:absolute;inset:0;background:rgba(8,8,11,.6);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fade .4s both}
.panel__in{position:absolute;right:0;top:0;bottom:0;width:min(560px,100%);overflow-y:auto;padding:80px 32px 40px;background:var(--bone);color:var(--bone-tx);animation:slideIn .6s var(--io) both}
.panel__in h3{font:800 49px/1 var(--display);letter-spacing:-.05em;margin-bottom:32px}
.panel__x{position:absolute;top:24px;right:24px;width:48px;height:48px;border-radius:50%;background:var(--bone-tx);color:var(--bone)}
@keyframes slideIn{from{transform:translateX(100%)}}
@keyframes fade{from{opacity:0}}
.fld{display:block;border:0;margin:0 0 20px;padding:0}
.fld>span,.fld legend{display:block;margin-bottom:8px;padding:0;font:500 12px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--bone-mu)}
.fld input,.fld textarea{width:100%;padding:14px 0;border:0;border-bottom:1.5px solid var(--bone-line);background:transparent;color:var(--bone-tx);font:400 18px/1.4 var(--sans);resize:vertical;transition:border-color .2s}
.fld input:focus,.fld textarea:focus{outline:0;border-color:var(--sig)}
.fld input[aria-invalid=true]{border-color:#D7261E}
.pills{display:flex;flex-wrap:wrap;gap:8px}
.pills label{position:relative}
.pills input{position:absolute;opacity:0;pointer-events:none}
.pills span{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border-radius:999px;border:1px solid var(--bone-line);font-size:15px;cursor:pointer;transition:all .25s var(--ease)}
.pills label:hover span{border-color:var(--bone-tx)}
.pills input:checked+span{background:var(--bone-tx);color:var(--bone);border-color:var(--bone-tx)}
.pills input:focus-visible+span{outline:2px solid var(--sig);outline-offset:2px}
.perr{color:#D7261E;font-size:14px;margin-bottom:12px}
.pdone{margin-top:24px;padding:24px;border-radius:16px;background:var(--bone-tx);color:var(--bone);display:flex;flex-direction:column;gap:4px;animation:pop .5s var(--ease) both}
.pdone b{font:800 25px/1 var(--display)}

/* toast */
.toast{position:fixed;left:50%;bottom:24px;z-index:500;padding:12px 20px;border-radius:999px;background:var(--tx);color:var(--ink);transform:translate(-50%,240%);visibility:hidden;transition:transform .5s var(--io),visibility 0s .5s;pointer-events:none}
.toast.on{transform:translate(-50%,0);visibility:visible;transition:transform .5s var(--io),visibility 0s}

/* grain */
body::after{content:"";position:fixed;inset:-50%;z-index:520;pointer-events:none;background:url(../img/grain.png?v=1);opacity:.05;animation:grain 1s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}

/* reveal */
.js .rv{opacity:0;transform:translateY(40px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.js .rv.in{opacity:1;transform:none}

/* reduced motion: signature motion keeps running, lighter; entrances become fades */
@media (prefers-reduced-motion:reduce){
  .js .rv{transform:none;transition:opacity .8s ease}
  body::after{animation:none}
  .reelbtn__ring{animation-duration:40s}
  .tick__t{animation-duration:60s}
  .menu{transition-duration:.4s}
}
