/* =====================================================================
   OneVis design system v4 (2026-11-10)
   One stylesheet for Home, Work, About and legal pages.
   Motion lives in ov.js (GSAP + ScrollTrigger + Lenis). Everything is
   visible without JS; .motion on <html> enables the pre-reveal states.
   ===================================================================== */

:root{
  --bg:#040A1C; --bg2:#071230; --bg3:#0B1A42;
  --ink:#F3F6FF; --ink2:rgba(226,234,255,.72); --mute:rgba(200,214,250,.52);
  --line:rgba(150,180,255,.14); --line2:rgba(150,180,255,.24);
  --blue:#2F6BFF; --blue2:#5B8CFF; --ice:#A9CBFF; --glow:rgba(47,107,255,.45);
  --green:#2EE59D;
  --card:rgba(255,255,255,.035); --card2:rgba(255,255,255,.06);
  --r:22px; --r2:32px;
  --wrap:1320px; --gut:clamp(18px,4vw,48px);
  --ease:cubic-bezier(.16,1,.3,1);
  --f:'Poppins',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --serif:'Instrument Serif',Georgia,serif;
  --hd:76px;
  color-scheme:dark;
}
@media (min-width:1600px){:root{--wrap:1480px}}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:90px}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.6 var(--f);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip;text-rendering:optimizeLegibility}
img,video,svg,iframe{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer}
::selection{background:var(--blue);color:#fff}
:focus-visible{outline:2px solid var(--ice);outline-offset:3px;border-radius:6px}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:12px;top:-60px;z-index:300;background:#fff;color:#000;padding:10px 14px;border-radius:10px;font-weight:600}
.skip:focus{top:12px}

.wrap{width:100%;max-width:calc(var(--wrap) + var(--gut)*2);margin:0 auto;padding:0 var(--gut)}
section{position:relative}
main{overflow-x:clip}
figure{margin:0}
.sec{padding:clamp(68px,10vw,140px) 0}
.sec.tight{padding:clamp(52px,8vw,110px) 0}

/* ---------- type ---------- */
h1,h2,h3,h4{margin:0;font-weight:700;letter-spacing:-.035em;line-height:1.02}
p{margin:0}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:.74rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--ice)}
.eyebrow::before{content:"";width:22px;height:1px;background:currentColor;opacity:.7}
.eyebrow.n::before{content:attr(data-n);width:auto;height:auto;background:none;opacity:.55;letter-spacing:.08em}
.display{font-size:clamp(3rem,9.6vw,10.5rem);font-weight:700;letter-spacing:-.055em;line-height:.9}
.h2{font-size:clamp(2.4rem,6.2vw,6rem);letter-spacing:-.05em;line-height:.95}
.h3{font-size:clamp(1.5rem,2.6vw,2.3rem);letter-spacing:-.035em;line-height:1.05}
em,.it{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.01em;color:var(--ice)}
.h2 em,.display em{padding-right:.04em}
.lead{font-size:clamp(1.02rem,1.35vw,1.2rem);line-height:1.6;color:var(--ink2);max-width:58ch}
.mute{color:var(--mute)}
.grad{background:linear-gradient(100deg,#fff 10%,var(--ice) 55%,var(--blue2));-webkit-background-clip:text;background-clip:text;color:transparent}
.sec-head{display:grid;grid-template-columns:1fr;gap:22px;margin-bottom:clamp(44px,6vw,80px)}
.sec-head .lead{max-width:46ch}
@media (min-width:900px){.sec-head.split{grid-template-columns:1.25fr .75fr;align-items:end}}

/* split-text masks (built by ov.js) */
.sw{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.sw>span{display:inline-block;will-change:transform;transform-origin:50% 100%}

/* ---------- buttons ---------- */
.btn{--bh:54px;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:12px;height:var(--bh);padding:0 26px;border-radius:999px;border:0;font-weight:600;font-size:.95rem;letter-spacing:-.01em;white-space:nowrap;isolation:isolate;overflow:hidden;transition:transform .5s var(--ease),box-shadow .5s var(--ease),background .3s,color .3s}
.btn i{font-style:normal;display:inline-grid;place-items:center;width:28px;height:28px;margin-right:-12px;border-radius:50%;background:rgba(255,255,255,.16);transition:transform .5s var(--ease)}
.btn:hover i{transform:translateX(3px) rotate(-45deg)}
.btn-p{background:var(--blue);color:#fff;box-shadow:0 10px 40px -10px var(--glow),inset 0 1px 0 rgba(255,255,255,.25)}
.btn-p::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-120%);transition:transform .9s var(--ease)}
.btn-p:hover::before{transform:translateX(120%)}
.btn-p:hover{box-shadow:0 18px 60px -12px var(--glow),inset 0 1px 0 rgba(255,255,255,.3)}
.btn-g{background:rgba(255,255,255,.06);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line2);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.btn-g:hover{background:rgba(255,255,255,.12)}
.btn-w{background:#fff;color:#06112E}
.btn-w i{background:rgba(6,17,46,.08)}
.btn-sm{--bh:42px;padding:0 18px;font-size:.86rem}
.btn-sm i{width:22px;height:22px;margin-right:-8px}
.lnk{display:inline-flex;align-items:center;gap:10px;font-weight:600;color:var(--ink);border-bottom:1px solid var(--line2);padding-bottom:4px;transition:gap .4s var(--ease),border-color .3s}
.lnk:hover{gap:16px;border-color:var(--ice)}

/* ---------- preloader (home only, first visit per session) ---------- */
.pl{position:fixed;inset:0;z-index:400;display:grid;place-items:center;background:var(--bg);pointer-events:none}
.pl-in{display:flex;flex-direction:column;align-items:center;gap:22px}
.pl img{width:74px;height:auto;opacity:.95}
.pl-bar{width:160px;height:2px;background:var(--line);border-radius:2px;overflow:hidden}
.pl-bar i{display:block;height:100%;width:100%;background:linear-gradient(90deg,var(--blue),var(--ice));transform-origin:0 50%;transform:scaleX(0)}
.pl-n{font-size:.72rem;letter-spacing:.3em;color:var(--mute);font-variant-numeric:tabular-nums}
html:not(.motion) .pl,.pl.done{display:none}

/* ---------- header ---------- */
.hd{position:fixed;inset:0 0 auto;z-index:100;height:var(--hd);transition:transform .6s var(--ease),background .4s,box-shadow .4s,backdrop-filter .4s}
.hd .wrap{height:100%;display:flex;align-items:center;justify-content:space-between;gap:20px}
.hd-logo img{height:30px;width:auto}
.hd-nav{display:none;gap:4px;padding:5px;border-radius:999px;background:rgba(255,255,255,.04);box-shadow:inset 0 0 0 1px var(--line);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.hd-nav a{position:relative;padding:9px 16px;border-radius:999px;font-size:.88rem;font-weight:500;color:var(--ink2);transition:color .3s,background .3s}
.hd-nav a:hover,.hd-nav a.on{color:#fff;background:rgba(255,255,255,.08)}
.hd-r{display:flex;align-items:center;gap:10px}
.burger{width:46px;height:46px;border-radius:50%;border:0;background:rgba(255,255,255,.07);box-shadow:inset 0 0 0 1px var(--line2);display:grid;place-content:center;gap:5px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:background .3s}
.burger:hover{background:rgba(255,255,255,.14)}
.burger span{display:block;width:18px;height:1.6px;background:#fff;border-radius:2px;transition:transform .5s var(--ease),opacity .3s}
.menu-open .burger span:nth-child(1){transform:translateY(6.6px) rotate(45deg)}
.menu-open .burger span:nth-child(2){opacity:0}
.menu-open .burger span:nth-child(3){transform:translateY(-6.6px) rotate(-45deg)}
.hd.scrolled{background:rgba(4,10,28,.72);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);box-shadow:0 1px 0 var(--line)}
.hd.hide{transform:translateY(-100%)}
.menu-open .hd{transform:none;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
@media (min-width:1024px){.hd-nav{display:flex}.burger{display:none}}
@media (max-width:520px){.hd-cta{--bh:40px;padding:0 14px;font-size:.8rem}.hd-cta i{display:none}.hd-logo img{height:26px}}

/* ---------- full-screen menu ---------- */
.menu{position:fixed;inset:0;z-index:90;background:radial-gradient(120% 80% at 80% 0%,#0E2A78 0%,var(--bg) 60%);clip-path:circle(0% at calc(100% - 52px) 38px);visibility:hidden;transition:clip-path .9s var(--ease),visibility 0s .9s;overflow-y:auto}
.menu-open .menu{clip-path:circle(150% at calc(100% - 52px) 38px);visibility:visible;transition:clip-path .9s var(--ease),visibility 0s}
.menu-in{min-height:100%;display:grid;gap:40px;align-content:center;padding:calc(var(--hd) + 30px) var(--gut) 40px;max-width:calc(var(--wrap) + var(--gut)*2);margin:0 auto}
@media (min-width:900px){.menu-in{grid-template-columns:1.4fr .6fr;align-items:end}}
.menu-nav ol{list-style:none;margin:0;padding:0;counter-reset:m}
.menu-nav li{counter-increment:m;overflow:hidden}
.menu-nav li>a{display:flex;align-items:baseline;gap:18px;font-size:clamp(2.4rem,7vw,5.4rem);font-weight:700;letter-spacing:-.05em;line-height:1.05;padding:4px 0;transform:translateY(105%);transition:transform .9s var(--ease),color .3s}
.menu-nav li>a::before{content:"0" counter(m);font-size:.8rem;font-weight:500;letter-spacing:.1em;color:var(--mute);transform:translateY(-1.6em)}
.menu-nav li>a:hover{color:var(--ice)}
.menu-nav li>a:hover span{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.02em}
.menu-open .menu-nav li>a{transform:none}
.menu-open .menu-nav li:nth-child(1)>a{transition-delay:.15s}.menu-open .menu-nav li:nth-child(2)>a{transition-delay:.2s}.menu-open .menu-nav li:nth-child(3)>a{transition-delay:.25s}.menu-open .menu-nav li:nth-child(4)>a{transition-delay:.3s}.menu-open .menu-nav li:nth-child(5)>a{transition-delay:.35s}.menu-open .menu-nav li:nth-child(6)>a{transition-delay:.4s}
.menu-side{display:grid;gap:10px;color:var(--ink2);opacity:0;transform:translateY(20px);transition:opacity .6s .4s,transform .9s .4s var(--ease)}
.menu-open .menu-side{opacity:1;transform:none}
.menu-side .k{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mute);margin-bottom:6px}
.menu-side a:not(.btn){font-size:1.05rem;color:#fff}
.menu-side .btn{margin-top:16px;justify-self:start}

/* ---------- hero: split copy + 3D work wall (v4.2) ---------- */
.hero{position:relative}
.hero-pin{position:relative;height:100svh;min-height:680px;overflow:hidden;display:grid;align-items:center;isolation:isolate}
.hero-frame{position:absolute;inset:0;overflow:hidden;z-index:-3}
.hero-frame video,.hero-frame .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-frame .poster{background:url(images/home-bg-poster.jpg) center/cover}
@media (orientation:portrait) and (max-width:900px){.hero-frame .poster{background-image:url(images/home-bg-poster-portrait.jpg)}}
.hero-frame video{opacity:0;transition:opacity 1.2s}
.hero-frame.has-video video{opacity:.55}
.hero-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,10,28,.5),rgba(4,10,28,.35) 40%,rgba(4,10,28,.6) 80%,var(--bg))}
.hero-glow{position:absolute;inset:0;z-index:-2;pointer-events:none;background:radial-gradient(50% 45% at 72% 108%,rgba(255,122,89,.42),transparent 70%),radial-gradient(45% 55% at 80% 40%,rgba(47,107,255,.45),transparent 70%),radial-gradient(40% 40% at 8% 10%,rgba(47,107,255,.25),transparent 70%)}
.hero-grid{position:absolute;inset:0;z-index:-2;pointer-events:none;background-image:linear-gradient(rgba(169,203,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(169,203,255,.06) 1px,transparent 1px);background-size:64px 64px;-webkit-mask:radial-gradient(60% 60% at 70% 50%,#000,transparent);mask:radial-gradient(60% 60% at 70% 50%,#000,transparent)}
.hero-spot{position:absolute;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(600px circle at var(--mx,70%) var(--my,30%),rgba(91,140,255,.16),transparent 60%);mix-blend-mode:screen}

/* 3D orbit ring of work (v4.3) */
.ring{position:absolute;inset:0;z-index:-1;pointer-events:none;perspective:1400px;perspective-origin:50% 30%;--R:clamp(520px,58vw,1000px);--cw:clamp(150px,13vw,230px);--fly:0}
.ring-cam{position:absolute;left:50%;top:calc(70% - var(--fly)*20%);width:0;height:0;transform-style:preserve-3d;transform:translateZ(calc(var(--R)*(-.8 + var(--fly)*1.95))) rotateX(calc(var(--tilt,-14deg)*(1 - var(--fly)) + var(--rx,0)*1deg)) rotateY(calc(var(--ry,0)*1deg))}
.ring-spin{position:absolute;transform-style:preserve-3d;transform:rotateY(calc(var(--spin,0)*1deg))}
.rg{position:absolute;margin:0;left:calc(var(--cw)/-2);top:calc(var(--cw)*-.625);width:var(--cw);aspect-ratio:4/5;border-radius:18px;overflow:hidden;background:var(--bg3);transform:rotateY(calc(var(--i)*22.5deg)) translateZ(var(--R));box-shadow:0 0 0 1px rgba(255,255,255,.12),0 30px 60px -24px rgba(0,0,0,.8)}
.rg img{width:100%;height:100%;object-fit:cover;object-position:50% 0}
.hero-copy{text-align:center;display:flex;flex-direction:column;align-items:center;margin-top:-6vh}
.hero-copy::before{content:"";position:absolute;left:50%;top:52%;width:min(1100px,120vw);height:120%;transform:translate(-50%,-50%);z-index:-1;background:radial-gradient(closest-side,rgba(4,10,28,.86),rgba(4,10,28,.55) 55%,transparent);pointer-events:none}
.hero-copy>*{max-width:min(860px,100%)}
.hero .lead{margin-left:auto;margin-right:auto}
.hero-cta,.hero-trust{justify-content:center}
.hero-trust{text-align:left}
.hero-copy{position:relative;z-index:2;padding-top:var(--hd)}
.hero-badge{background:rgba(255,255,255,.08);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.hero-badge i{width:7px;height:7px;border-radius:50%;background:#3ddc97;box-shadow:0 0 10px #3ddc97}
.hero h1{margin-top:22px;font-size:clamp(3rem,6.2vw,7rem);letter-spacing:-.06em;line-height:.9;font-weight:700;max-width:none}
.hero h1 em{display:inline-block;color:var(--ice);padding-right:.06em}
.hero .lead{margin-top:clamp(20px,3vh,30px);max-width:46ch}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:clamp(22px,3.4vh,34px)}
.hero-trust{display:flex;align-items:center;gap:14px;margin-top:clamp(24px,4vh,40px);font-size:.82rem;color:var(--ink2);line-height:1.4}
.hero-logos{display:flex}
.hero-logos img{width:40px;height:40px;border-radius:50%;object-fit:contain;padding:5px;background:#0d1838;border:2px solid var(--bg);margin-left:-10px}
.hero-logos img:first-child{margin-left:0}
.stars{color:#ffc76b;letter-spacing:.12em;font-size:.8rem}
@media (max-width:899px){
  .hero-pin{align-items:end}
  .ring{--R:300px;--cw:96px;--tilt:16deg;perspective:900px;perspective-origin:50% 30%}
  .ring-cam{top:calc(30% + var(--fly)*14%)}
  .hero .hero-badge{display:none}
  .hero h1{margin-top:0}
  .hero-copy::before{top:60%}
  .hero-frame::after{background:linear-gradient(180deg,rgba(4,10,28,.3) 0%,rgba(4,10,28,.4) 38%,rgba(4,10,28,.92) 60%,var(--bg))}
  .hero-copy{padding-bottom:clamp(36px,6vh,60px)}
}
@media (max-width:520px){.hero-pin{min-height:640px}.hero-cta .btn{flex:1 1 auto}}
.scroll-cue{position:absolute;right:var(--gut);bottom:28px;z-index:3;display:none;align-items:center;gap:10px;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--mute)}
.scroll-cue i{width:1px;height:46px;background:linear-gradient(var(--ice),transparent);animation:cue 2.2s var(--ease) infinite;transform-origin:top}
@keyframes cue{0%{transform:scaleY(0)}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@media (min-width:1100px){.scroll-cue{display:flex}}

/* ---------- logo marquee ---------- */
.logos{padding:clamp(56px,8vw,96px) 0 clamp(40px,6vw,70px);position:relative}
.logos-t{text-align:center;font-size:clamp(1rem,1.3vw,1.15rem);font-weight:500;letter-spacing:-.01em;color:var(--ink2);margin-bottom:clamp(28px,4vw,44px)}
.logos-t b{color:var(--ink);font-weight:600}
.mq{overflow:hidden;--lu:84px;--gap:clamp(40px,5vw,84px);--dur:60s;display:grid;gap:clamp(22px,3vw,34px);-webkit-mask:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.mq-row{display:flex;width:max-content;animation:mq var(--dur) linear infinite}
.mq-row.rev{animation-direction:reverse;animation-duration:calc(var(--dur)*1.15)}
.mq:hover .mq-row{animation-play-state:paused}
.mq-set{display:flex;align-items:center;gap:var(--gap);padding-right:var(--gap)}
@keyframes mq{to{transform:translateX(-50%)}}
.mq:not(.ready){overflow-x:auto;-webkit-mask:none;mask:none}
.mq:not(.ready) .mq-row{animation:none}
.lg{flex:none;display:grid;place-items:center;height:calc(var(--lu)*1.2)}
.lg img{width:calc(var(--lu)*var(--w,1));height:auto;max-height:calc(var(--lu)*1.18);object-fit:contain;filter:saturate(.95) brightness(1.02);opacity:.86;transition:opacity .4s,transform .6s var(--ease),filter .4s}
.lg:hover img{opacity:1;transform:scale(1.08);filter:none}
@media (max-width:700px){.mq{--lu:60px;--gap:40px;--dur:44s}}

/* logo wall (Work page): every logo in an identical tile, optically sized */
.lwall{--lu:66px;display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media (min-width:640px){.lwall{grid-template-columns:repeat(4,1fr)}}
@media (min-width:980px){.lwall{grid-template-columns:repeat(5,1fr);gap:12px}}
.lwall a{position:relative;display:grid;place-items:center;aspect-ratio:1.25;border-radius:18px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line);transition:background .4s,box-shadow .4s,transform .6s var(--ease);overflow:hidden}
.lwall a:hover{background:var(--card2);box-shadow:inset 0 0 0 1px var(--line2)}
.lwall img{width:calc(var(--lu)*var(--w,1));max-width:78%;max-height:62%;height:auto;object-fit:contain;transition:transform .6s var(--ease)}
.lwall a:hover img{transform:scale(1.07)}
.lwall span{position:absolute;left:0;right:0;bottom:10px;text-align:center;font-size:.68rem;color:var(--mute);letter-spacing:.04em;opacity:0;transform:translateY(6px);transition:opacity .3s,transform .5s var(--ease)}
.lwall a:hover span{opacity:1;transform:none}
@media (max-width:640px){.lwall{--lu:54px}}

/* partner badges */
.partners{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;margin-top:clamp(40px,5vw,60px)}
.partners .k{width:100%;text-align:center;font-size:.95rem;font-weight:500;color:var(--ink2);margin-bottom:8px}
.partners img{height:66px;width:auto;padding:10px 18px;border-radius:18px;background:rgba(255,255,255,.94)}
@media (max-width:600px){.partners{gap:8px}.partners img{height:42px;padding:6px 9px;border-radius:12px}}

/* ---------- manifesto (scroll-lit words) ---------- */
.mf .mf-t{font-size:clamp(2rem,5.2vw,5.6rem);font-weight:600;letter-spacing:-.045em;line-height:1.04;max-width:none}
.mf .mf-t em{font-weight:400}
.mf .w{transition:none}
.motion .mf .w{opacity:.14}
.mf-foot{display:flex;flex-wrap:wrap;gap:28px;justify-content:space-between;align-items:end;margin-top:clamp(40px,6vw,70px)}

/* ---------- results: pinned horizontal 3D track ---------- */
.hs{overflow:hidden}
.hs-pin{min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:calc(var(--hd) + 10px) 0 40px}
.hs-head{display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;align-items:end;margin-bottom:clamp(24px,3vw,40px)}
.hs-prog{width:160px;height:2px;background:var(--line);border-radius:2px;overflow:hidden}
.hs-prog i{display:block;height:100%;background:var(--ice);transform-origin:0 50%;transform:scaleX(0)}
.hs-view{perspective:1600px}
.hs-track{display:flex;gap:clamp(14px,2vw,24px);padding:0 var(--gut);width:max-content;transform-style:preserve-3d}
.rc{position:relative;flex:none;width:min(84vw,440px);height:min(calc(100svh - 330px),540px);min-height:390px;border-radius:var(--r2);padding:clamp(24px,2.6vw,36px);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;background:linear-gradient(160deg,#0D1E4D,#08133A 60%);box-shadow:inset 0 0 0 1px var(--line2),0 40px 80px -40px rgba(0,0,0,.8);transform-style:preserve-3d;will-change:transform;isolation:isolate}
.rc::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(90% 70% at 100% 0%,rgba(91,140,255,.28),transparent 60%)}
.rc.img{background:#000}
.rc.img .bgimg{position:absolute;inset:-6%;z-index:-2;background:var(--bg) center/cover;opacity:.55;transform:scale(1.08)}
.rc.img::before{background:linear-gradient(180deg,rgba(4,10,28,.2),rgba(4,10,28,.92) 75%)}
.rc.blue{background:linear-gradient(160deg,#2F6BFF,#1238A8)}
.rc.blue::before{background:radial-gradient(80% 60% at 0% 100%,rgba(169,203,255,.35),transparent 60%)}
.rc.light{background:#EEF3FF;color:#06112E}
.rc.light::before{background:radial-gradient(80% 70% at 100% 0%,rgba(47,107,255,.18),transparent 60%)}
.rc.light .rc-tag,.rc.light .rc-lbl,.rc.light q{color:rgba(6,17,46,.66)}
.rc.light .rc-num em{color:var(--blue)}
.rc-top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.rc-logo{height:48px;max-width:130px;display:flex;align-items:center}
.rc-logo img{max-height:48px;width:auto;object-fit:contain}
.rc-logo.txt{width:48px;justify-content:center;border-radius:14px;background:rgba(255,255,255,.12);font-weight:700;font-size:.95rem}
.rc-tag{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink2)}
.rc-num{font-size:clamp(5rem,9vw,8.4rem);font-weight:700;letter-spacing:-.07em;line-height:.85}
.rc-num em{font-size:.62em;margin-left:.04em}
.rc-lbl{font-size:1.15rem;font-weight:600;letter-spacing:-.02em;margin-top:12px}
.rc q{display:block;font-size:.92rem;line-height:1.5;color:var(--ink2);margin-top:18px;quotes:"“" "”"}
.rc .rc-d{font-size:.92rem;line-height:1.5;color:var(--ink2);margin-top:18px}
.rc cite{display:block;font-style:normal;font-size:.75rem;color:var(--mute);margin-top:8px}
.rc.light cite{color:rgba(6,17,46,.5)}
.rc-end{width:min(84vw,420px);background:none;box-shadow:inset 0 0 0 1px var(--line2);justify-content:center;gap:20px}
.rc-end::before{display:none}
@media (max-width:899px){
  .hs-pin{min-height:0;padding:0}
  .hs-view{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:6px}
  .hs-view::-webkit-scrollbar{display:none}
  .rc{scroll-snap-align:center;height:auto;min-height:480px}
  .hs-prog{display:none}
}

/* ---------- 3D portfolio wall ---------- */
.wall{position:relative;height:clamp(640px,120vh,1150px);overflow:hidden;perspective:1800px;background:radial-gradient(60% 50% at 50% 50%,rgba(47,107,255,.16),transparent 70%)}
.wall::before,.wall::after{content:"";position:absolute;left:0;right:0;height:22%;z-index:3;pointer-events:none}
.wall::before{top:0;background:linear-gradient(var(--bg),transparent)}
.wall::after{bottom:0;background:linear-gradient(transparent,var(--bg))}
.wall-in{position:absolute;left:50%;top:50%;width:max(1400px,128vw);display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(14px,1.6vw,24px);transform:translate(-50%,-50%) rotateX(38deg) rotateZ(-14deg) scale(.95);transform-style:preserve-3d;will-change:transform}
.wall-col{display:grid;gap:clamp(14px,1.6vw,24px);align-content:start;will-change:transform}
.wall-col:nth-child(even){margin-top:-30%}
.wall figure{margin:0;position:relative;border-radius:18px;overflow:hidden;background:var(--bg3);box-shadow:0 30px 60px -20px rgba(0,0,0,.7),inset 0 0 0 1px var(--line)}
.wall img{width:100%;height:auto}
.wall figcaption{position:absolute;left:10px;bottom:10px;font-size:.7rem;font-weight:600;padding:5px 10px;border-radius:99px;background:rgba(4,10,28,.7);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.wall-copy{position:absolute;inset:0;z-index:4;display:grid;place-items:center;text-align:center;pointer-events:none;padding:0 var(--gut)}
.wall-copy>div{pointer-events:auto;max-width:880px}
.wall-copy .h2{text-shadow:0 10px 60px rgba(4,10,28,.9)}
.wall-copy .lead{margin:18px auto 28px;text-shadow:0 2px 20px rgba(4,10,28,.9)}
.wall-shade{position:absolute;inset:0;z-index:2;background:radial-gradient(55% 48% at 50% 50%,rgba(4,10,28,.92),rgba(4,10,28,.55) 60%,rgba(4,10,28,.15));pointer-events:none}
@media (max-width:700px){.wall{height:820px}.wall-in{width:220vw;grid-template-columns:repeat(4,1fr)}.wall-col:nth-child(5){display:none}}

/* ---------- work tiles (home "selected work") ---------- */
.tiles{display:grid;gap:clamp(14px,1.6vw,22px);grid-template-columns:1fr}
@media (min-width:760px){.tiles{grid-template-columns:repeat(6,1fr)}.tiles>.t-a{grid-column:span 4}.tiles>.t-b{grid-column:span 2}.tiles>.t-c{grid-column:span 3}}
.tile{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:clamp(320px,38vw,520px);border-radius:var(--r2);overflow:hidden;padding:clamp(22px,2.4vw,32px);isolation:isolate;box-shadow:inset 0 0 0 1px var(--line);transform-style:preserve-3d;background:var(--bg3)}
.tile .ph{position:absolute;inset:0;z-index:-2;overflow:hidden}
.tile .ph img{position:absolute;left:0;top:-10%;width:100%;height:120%;object-fit:cover;object-position:50% 0;transition:scale 1.2s var(--ease)}
.tile:hover .ph img{scale:1.05}
.tile::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(4,10,28,.1) 0%,rgba(4,10,28,.35) 40%,rgba(4,10,28,.9) 72%,rgba(4,10,28,.98))}
.tile .k{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ice)}
.tile h3{font-size:clamp(1.5rem,2.4vw,2.2rem);margin-top:8px}
.tile .go{position:absolute;top:20px;right:20px;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.12);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:transform .6s var(--ease),background .3s}
.tile:hover .go{transform:rotate(-45deg);background:var(--blue)}

/* ---------- services: stacked sticky cards ---------- */
.stack{display:grid;gap:clamp(18px,2vw,26px)}
.sv{position:sticky;top:calc(var(--hd) + 14px + var(--i,0)*12px);display:grid;gap:clamp(20px,3vw,48px);align-items:center;padding:clamp(22px,3vw,44px);border-radius:var(--r2);background:linear-gradient(160deg,#0C1D4A,#071433);box-shadow:inset 0 0 0 1px var(--line2),0 -30px 60px -30px rgba(0,0,0,.6);transform-origin:50% 0;will-change:transform}
@media (min-width:860px){.sv{grid-template-columns:1fr 1.05fr;min-height:min(70vh,560px)}}
.sv-n{font-size:.78rem;font-weight:600;letter-spacing:.16em;color:var(--mute)}
.sv h3{font-size:clamp(2rem,4.2vw,3.6rem);letter-spacing:-.05em;margin:14px 0 16px}
.sv p{color:var(--ink2);max-width:42ch}
.sv ul{list-style:none;padding:0;margin:22px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.sv li{font-size:.82rem;padding:8px 14px;border-radius:99px;background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px var(--line)}
.sv-media{position:relative;aspect-ratio:4/3;border-radius:var(--r);overflow:hidden;background:#0A1636}
.sv-media video,.sv-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media (max-width:859px){.sv{position:relative;top:auto}.sv-media{order:-1}}

/* ---------- appointment engine spotlight ---------- */
.ae{display:grid;gap:clamp(18px,2vw,24px)}
@media (min-width:960px){.ae{grid-template-columns:1.1fr .9fr}}
.ae-big{position:relative;border-radius:var(--r2);padding:clamp(28px,3.4vw,52px);overflow:hidden;background:linear-gradient(150deg,#2F6BFF 0%,#173FB5 55%,#0A1F66 100%);min-height:520px;display:flex;flex-direction:column;justify-content:space-between;isolation:isolate}
.ae-big::after{content:"";position:absolute;inset:auto -20% -40% auto;width:80%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(169,203,255,.45),transparent 65%);z-index:-1}
.ae-big .num{font-size:clamp(6rem,15vw,13rem);font-weight:700;letter-spacing:-.08em;line-height:.8}
.ae-big .lbl{font-size:clamp(1.1rem,1.8vw,1.5rem);font-weight:600;max-width:20ch;margin-top:14px}
.ae-big q{display:block;margin-top:28px;max-width:46ch;color:rgba(255,255,255,.86);quotes:"“" "”"}
.ae-big cite{display:block;margin-top:8px;font-style:normal;font-size:.8rem;opacity:.7}
.ae-side{display:grid;gap:clamp(18px,2vw,24px)}
.stat{border-radius:var(--r);padding:clamp(22px,2.4vw,32px);background:var(--card);box-shadow:inset 0 0 0 1px var(--line)}
.stat b{display:block;font-size:clamp(2.6rem,5vw,4.2rem);font-weight:700;letter-spacing:-.06em;line-height:.9}
.stat b em{font-size:.6em}
.stat small{display:block;color:var(--ink2);margin-top:10px;font-size:.92rem}
.stat>span{display:block;color:var(--mute);margin-top:4px;font-size:.78rem}
.ae-flow{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media (min-width:760px){.ae-flow{grid-template-columns:repeat(4,1fr)}}
.ae-flow div{border-radius:18px;padding:18px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line)}
.ae-flow b{display:block;font-size:1.05rem}
.ae-flow small{color:var(--mute);font-size:.8rem;line-height:1.45;display:block;margin-top:6px}

/* ---------- process ---------- */
.proc{position:relative;display:grid;gap:0}
.proc-line{position:absolute;left:19px;top:10px;bottom:10px;width:2px;background:var(--line)}
.proc-line i{display:block;width:100%;height:100%;background:linear-gradient(var(--blue),var(--ice));transform-origin:50% 0;transform:scaleY(0)}
.motion-off .proc-line i,html:not(.motion) .proc-line i{transform:none}
.ps{position:relative;display:grid;grid-template-columns:40px 1fr;gap:clamp(18px,3vw,40px);padding:clamp(22px,3vw,36px) 0;border-bottom:1px solid var(--line)}
.ps:last-child{border-bottom:0}
.ps .dot{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--bg);box-shadow:inset 0 0 0 1px var(--line2);font-size:.78rem;font-weight:600;position:relative;z-index:1;transition:background .5s,box-shadow .5s}
.ps.on .dot{background:var(--blue);box-shadow:0 0 0 6px rgba(47,107,255,.18)}
.ps-b{display:grid;gap:6px}
@media (min-width:760px){.ps-b{grid-template-columns:160px 1fr 1.2fr;align-items:baseline;gap:30px}}
.ps small{font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ice)}
.ps h4{font-size:clamp(1.3rem,2.2vw,1.9rem);letter-spacing:-.035em}
.ps p{color:var(--ink2)}

/* ---------- about preview ---------- */
.ab{display:grid;gap:clamp(36px,5vw,80px);align-items:center}
@media (min-width:960px){.ab{grid-template-columns:1fr 1fr}}
.ab-img{position:relative;border-radius:var(--r2);overflow:hidden;aspect-ratio:4/3.4}
.ab-img img{position:absolute;inset:-10% 0;width:100%;height:120%;object-fit:cover}
.ab-img figcaption{position:absolute;left:16px;bottom:16px;font-size:.78rem;padding:7px 14px;border-radius:99px;background:rgba(4,10,28,.66);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.pts{list-style:none;padding:0;margin:28px 0;display:grid;gap:0}
.ab>.pts{margin:0;font-size:1.06rem}.ab>.pts li{padding:22px 0}.ab>.pts li:last-child{border-bottom:1px solid var(--line)}
.ab .faces{margin:30px 0 30px}
.pts li{padding:16px 0;border-top:1px solid var(--line);color:var(--ink2);display:grid;grid-template-columns:auto 1fr;gap:14px}
.pts li::before{content:"";width:8px;height:8px;margin-top:9px;border-radius:50%;background:var(--ice);box-shadow:0 0 12px var(--ice)}
.pts b{color:var(--ink);font-weight:600}
.faces{display:flex;align-items:center;margin:8px 0 28px}
.faces img{width:48px;height:48px;border-radius:50%;object-fit:cover;border:2px solid var(--bg);margin-left:-10px}
.faces img:first-child{margin-left:0}
.faces span{margin-left:12px;font-size:.88rem;color:var(--ink2)}

/* ---------- quotes ---------- */
.qs{display:grid;gap:clamp(14px,1.6vw,22px)}
@media (min-width:860px){.qs{grid-template-columns:repeat(3,1fr)}}
.q{border-radius:var(--r);padding:clamp(24px,2.6vw,36px);background:var(--card);box-shadow:inset 0 0 0 1px var(--line);display:flex;flex-direction:column;justify-content:space-between;gap:28px;transform-style:preserve-3d}
.q p{font-size:clamp(1.05rem,1.4vw,1.25rem);line-height:1.5;letter-spacing:-.01em}
.q p::before{content:"“";display:block;font-family:var(--serif);font-size:3.4rem;line-height:.6;color:var(--ice);margin-bottom:10px}
.q footer{display:flex;align-items:center;gap:12px;font-size:.84rem;color:var(--mute)}
.q footer img{height:34px;width:auto;max-width:90px;object-fit:contain}
.q footer b{color:var(--ink);display:block;font-weight:600}

/* ---------- FAQ ---------- */
.faq-g{display:grid;gap:clamp(36px,5vw,80px)}
@media (min-width:960px){.faq-g{grid-template-columns:.8fr 1.2fr}}
.faq-l details{border-top:1px solid var(--line)}
.faq-l details:last-child{border-bottom:1px solid var(--line)}
.faq-l summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;align-items:center;padding:24px 0;font-size:clamp(1.02rem,1.5vw,1.25rem);font-weight:600;letter-spacing:-.02em}
.faq-l summary::-webkit-details-marker{display:none}
.faq-l summary::after{content:"";flex:none;width:34px;height:34px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--line2);background:linear-gradient(currentColor,currentColor) center/12px 1.5px no-repeat,linear-gradient(currentColor,currentColor) center/1.5px 12px no-repeat;transition:transform .5s var(--ease),background-color .3s}
.faq-l details[open] summary::after{transform:rotate(135deg);background-color:var(--blue)}
.faq-l details p{color:var(--ink2);padding:0 50px 24px 0;max-width:62ch}

/* ---------- booking ---------- */
.book{display:grid;gap:clamp(30px,4vw,60px);align-items:start}
@media (min-width:1000px){.book{grid-template-columns:.85fr 1.15fr}}
.book>*,.faq-g>*,.ab>*,.ae>*,.play>*,.cs-feat>*,.two>*{min-width:0}
.book .h2{font-size:clamp(2.4rem,4.8vw,4.6rem)}
@media (min-width:1000px){.book>div:first-child{position:sticky;top:calc(var(--hd) + 30px)}}
.book-side{display:grid;gap:14px;margin-top:28px}
.book-side .card{border-radius:var(--r);padding:22px 24px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line)}
.book-side h3{font-size:1.1rem;letter-spacing:-.02em;margin-bottom:6px}
.book-side p{color:var(--ink2);font-size:.92rem}
.book-side a:not(.btn){color:var(--ice)}
.bk{--muted:#5B6782;border-radius:var(--r2);background:#F6F8FD;color:#0B1732;padding:clamp(22px,3vw,40px);box-shadow:0 60px 120px -50px rgba(47,107,255,.55),0 0 0 1px rgba(255,255,255,.4)}
.bk h2{font-size:clamp(1.5rem,2.4vw,2rem);letter-spacing:-.04em;margin:12px 0 6px;line-height:1.1}
.bk-top p{color:var(--muted);margin:0 0 22px}
.bk-step{display:inline-block;font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#2155CC;background:#E4ECFF;padding:6px 11px;border-radius:999px}
.bk-label{font-size:.8rem;font-weight:700;color:#152442;margin:4px 0 10px;display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.bk-label small{font-weight:500;color:var(--muted);font-size:.74rem}
.bk-days{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 12px;margin-bottom:10px;scrollbar-width:thin}
.bk-day{flex:0 0 auto;width:64px;border:1px solid #D9E3F1;background:#fff;border-radius:14px;padding:10px 0;text-align:center;color:#0B1732;transition:border-color .2s,background .2s,transform .3s var(--ease)}
.bk-day small{display:block;font-size:.64rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.bk-day b{display:block;font-size:1.35rem;line-height:1.1;margin:2px 0}
.bk-day span{display:block;font-size:.68rem;color:var(--muted)}
.bk-day:hover{border-color:#97B8FF;transform:translateY(-2px)}
.bk-day[aria-selected="true"]{background:var(--blue);border-color:var(--blue);color:#fff}
.bk-day[aria-selected="true"] small,.bk-day[aria-selected="true"] span{color:#DCE7FF}
.bk-times{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;margin-bottom:20px;min-height:44px}
.bk-time{border:1px solid #D9E3F1;background:#fff;border-radius:12px;padding:11px 6px;font-weight:600;font-size:.85rem;line-height:1.2;color:#0B1732;transition:border-color .2s,background .2s}
.bk-time small{display:block;font-weight:500;font-size:.68rem;color:var(--muted);margin-top:2px}
.bk-time:hover{border-color:var(--blue)}
.bk-time[aria-selected="true"]{background:var(--blue);border-color:var(--blue);color:#fff}
.bk-time[aria-selected="true"] small{color:#DCE7FF}
.bk-empty{grid-column:1/-1;color:var(--muted);font-size:.88rem;margin:0}
.bk .btn{width:100%}
.bk-next:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}
#bkPane2{display:grid;gap:16px}
#bkPane2[hidden],.bk [hidden]{display:none!important}
.bk-picked{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#E9F0FF;border:1px solid #C9DBFF;border-radius:12px;padding:12px 14px;font-size:.92rem}
.bk-change{border:0;background:none;color:#2155CC;font-weight:600;font-size:.85rem;text-decoration:underline}
.bk .form-row{display:grid;gap:16px}
@media (min-width:600px){.bk .form-row{grid-template-columns:1fr 1fr}}
.bk label{display:block;font-size:.8rem;font-weight:600;color:#152442;margin-bottom:6px}
.bk label small{font-weight:400;color:var(--muted)}
.bk input:not([type=hidden]),.bk select,.bk textarea{width:100%;font:inherit;font-size:.95rem;color:#0B1732;background:#fff;border:1px solid #D4DEEE;border-radius:12px;padding:13px 14px;transition:border-color .2s,box-shadow .2s}
.bk input:focus,.bk select:focus,.bk textarea:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 4px rgba(47,107,255,.14)}
.bk-fine{font-size:.8rem;color:var(--muted);margin:0}
.bk-done{text-align:center;padding:20px 6px}
.bk-done .tick{width:58px;height:58px;border-radius:50%;margin:0 auto 14px;display:grid;place-items:center;font-size:1.6rem;background:#E7F7EE;color:#137A43}
.bk-done h3{font-size:1.5rem;margin:0 0 10px}
.bk-done p{color:var(--muted);margin:0 0 12px}
.bk-done a:not(.btn){color:#2155CC}
.bk-done .btn{background:#fff;color:#0B1732;box-shadow:inset 0 0 0 1px #D4DEEE;width:auto}
.bk .form-error{color:#B42318;font-size:.85rem;margin:0}
.bk .hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
@media (max-width:600px){.bk-day{width:58px}.bk-times{grid-template-columns:repeat(3,1fr)}}

/* ---------- CTA band ---------- */
.cta{position:relative;overflow:hidden;text-align:center;padding:clamp(110px,16vw,220px) 0;isolation:isolate}
.cta::before{content:"";position:absolute;left:50%;top:50%;width:min(1100px,140vw);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(47,107,255,.5),rgba(47,107,255,.08) 45%,transparent 65%);z-index:-1;filter:blur(10px)}
.cta .display{font-size:clamp(3rem,11vw,10rem)}
.cta .lead{margin:24px auto 34px}

/* ---------- footer ---------- */
.ft{position:relative;padding:clamp(70px,8vw,110px) 0 28px;border-top:1px solid var(--line);overflow:hidden}
.ft-g{display:grid;gap:40px}
@media (min-width:860px){.ft-g{grid-template-columns:1.4fr 1fr 1fr 1.2fr}}
.ft-g img{height:30px;width:auto;margin-bottom:16px}
.ft-g p{color:var(--mute);font-size:.9rem;max-width:34ch}
.ft h4{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mute);font-weight:600;margin-bottom:16px}
.ft ul{list-style:none;padding:0;margin:0;display:grid;gap:10px;font-size:.92rem;color:var(--ink2)}
.ft ul a{transition:color .3s}
.ft ul a:hover{color:#fff}
.ft-word{margin:clamp(50px,8vw,100px) 0 10px;font-size:clamp(5rem,24vw,24rem);font-weight:700;letter-spacing:-.08em;line-height:.78;text-align:center;background:linear-gradient(180deg,rgba(169,203,255,.5),rgba(169,203,255,0) 85%);-webkit-background-clip:text;background-clip:text;color:transparent;user-select:none;white-space:nowrap}
.ft-word span{display:inline-block;background:inherit;-webkit-background-clip:text;background-clip:text;color:transparent}
.ft-b{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;font-size:.8rem;color:var(--mute);padding-top:22px;border-top:1px solid var(--line)}
.ft-b a:hover{color:#fff}

/* ---------- generic pieces ---------- */
.chip{display:inline-flex;align-items:center;gap:8px;font-size:.74rem;font-weight:500;padding:7px 13px;border-radius:99px;background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink2)}
.chip i{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 10px var(--green)}
.glass{background:var(--card);box-shadow:inset 0 0 0 1px var(--line);border-radius:var(--r)}
.bg-soft{background:linear-gradient(180deg,var(--bg),var(--bg2) 20%,var(--bg2) 80%,var(--bg))}
.noise{position:fixed;inset:-50%;z-index:200;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* =====================================================================
   WORK PAGE
   ===================================================================== */
.pg-hero{position:relative;padding:calc(var(--hd) + clamp(60px,10vw,140px)) 0 clamp(50px,7vw,90px);overflow:hidden;isolation:isolate}
.pg-hero::before{content:"";position:absolute;right:-20%;top:-30%;width:min(1000px,120vw);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(47,107,255,.32),transparent 62%);z-index:-1}
.pg-hero .display{margin-top:0}
.pg-hero .lead{margin-top:28px}
.idx{display:flex;flex-wrap:wrap;gap:8px;margin-top:clamp(30px,4vw,48px)}
.idx a{display:inline-flex;align-items:center;gap:10px;padding:10px 16px;border-radius:99px;font-size:.86rem;font-weight:500;background:rgba(255,255,255,.05);box-shadow:inset 0 0 0 1px var(--line);transition:background .3s,box-shadow .3s,transform .5s var(--ease)}
.idx a small{font-size:.68rem;color:var(--mute)}
.idx a:hover{background:rgba(47,107,255,.2);box-shadow:inset 0 0 0 1px rgba(91,140,255,.6);transform:translateY(-2px)}
.proof4{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;margin-top:clamp(44px,6vw,80px);border-radius:var(--r);overflow:hidden;background:var(--line);box-shadow:0 0 0 1px var(--line)}
@media (min-width:860px){.proof4{grid-template-columns:repeat(4,1fr)}}
.proof4>div{background:var(--bg);padding:clamp(20px,2.4vw,30px)}
.proof4 b{display:block;font-size:clamp(2.2rem,4.4vw,3.6rem);font-weight:700;letter-spacing:-.06em;line-height:.95}
.proof4 small{display:block;margin-top:8px;font-size:.84rem;color:var(--mute)}

.chap{display:flex;align-items:baseline;gap:18px;margin-bottom:clamp(22px,3vw,34px)}
.chap .n{font-size:.78rem;font-weight:600;letter-spacing:.14em;color:var(--ice)}
.chap .ln{flex:1;height:1px;background:var(--line)}
.chap .t{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}

/* case studies */
.cs-feat{position:relative;display:grid;gap:clamp(24px,3vw,48px);border-radius:var(--r2);padding:clamp(24px,3.4vw,52px);overflow:hidden;isolation:isolate;background:#071433;box-shadow:inset 0 0 0 1px var(--line2)}
@media (min-width:960px){.cs-feat{grid-template-columns:1.1fr .9fr;align-items:end;min-height:620px}}
.cs-feat .bgimg{position:absolute;inset:-8%;z-index:-2;background:center/cover;opacity:.45}
.cs-feat::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,rgba(4,10,28,.96) 25%,rgba(4,10,28,.55))}
.cs-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.cs-logo{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px var(--line);flex:none;font-weight:700}
.cs-logo img{max-width:78%;max-height:72%;object-fit:contain}
.cs-num{font-size:clamp(5.4rem,13vw,11rem);font-weight:700;letter-spacing:-.08em;line-height:.82;margin-top:clamp(28px,4vw,56px)}
.cs-num em{font-size:.55em}
.cs-lbl{font-size:clamp(1.2rem,2vw,1.6rem);font-weight:600;letter-spacing:-.03em;margin-top:14px}
.cs-who{color:var(--mute);margin-top:6px;font-size:.92rem}
.cs-q{display:block;font-size:clamp(1.05rem,1.4vw,1.2rem);line-height:1.55;margin-top:26px;max-width:48ch;quotes:"“" "”";color:var(--ink2)}
.cs-c{display:block;font-style:normal;margin-top:8px;font-size:.8rem;color:var(--mute)}
.steps{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.steps li{display:grid;gap:4px;padding:18px 20px;border-radius:18px;background:rgba(255,255,255,.05);box-shadow:inset 0 0 0 1px var(--line);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.steps b{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ice);font-weight:600}
.steps span{color:var(--ink2);font-size:.95rem}
.cs-grid{display:grid;gap:clamp(14px,1.6vw,22px);margin-top:clamp(14px,1.6vw,22px)}
@media (min-width:760px){.cs-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cs-grid>:last-child:nth-child(odd){grid-column:1/-1}}
.cs{display:flex;flex-direction:column;gap:18px;border-radius:var(--r2);padding:clamp(22px,2.6vw,36px);background:linear-gradient(160deg,#0B1A44,#071230);box-shadow:inset 0 0 0 1px var(--line2);transform-style:preserve-3d}
.cs .cs-num{font-size:clamp(4rem,8vw,6.4rem);margin-top:6px}
.cs .cs-num.txt{font-size:clamp(2rem,4vw,3rem);letter-spacing:-.05em;line-height:1}
.cs .steps li{padding:14px 16px}
.cs.wide{grid-column:1/-1}
@media (min-width:960px){.cs.wide{display:grid;grid-template-columns:1fr 1fr;align-items:start;column-gap:40px}.cs.wide>.cs-top{grid-column:1/-1}}

/* dashboard */
.dash{border-radius:var(--r2);padding:clamp(18px,2.6vw,34px);background:linear-gradient(170deg,#0C1C48,#060F2C);box-shadow:inset 0 0 0 1px var(--line2),0 60px 120px -60px rgba(47,107,255,.5)}
.dash-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:22px}
.dash-top h3{display:flex;align-items:center;gap:14px;font-size:1.15rem;letter-spacing:-.02em}
.dash-top h3 img{width:44px;height:44px;object-fit:contain}
.dash-top h3 small{display:block;font-size:.76rem;font-weight:400;color:var(--mute);letter-spacing:0;margin-top:2px}
.kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media (min-width:860px){.kpis{grid-template-columns:repeat(4,1fr)}}
.kpi{border-radius:16px;padding:18px;background:rgba(255,255,255,.04);box-shadow:inset 0 0 0 1px var(--line)}
.kpi small{display:block;font-size:.76rem;color:var(--mute)}
.kpi b{display:block;font-size:clamp(1.7rem,2.8vw,2.4rem);font-weight:700;letter-spacing:-.05em;margin:6px 0 4px;line-height:1}
.kpi .d{font-size:.74rem;color:var(--green)}
.kpi .d.n{color:var(--ice)}
.w-chart{position:relative;margin-top:14px;border-radius:18px;padding:18px;background:rgba(255,255,255,.03);box-shadow:inset 0 0 0 1px var(--line)}
.w-chart-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}
.w-chart-head b{display:block;font-size:.95rem}
.w-chart-head small{display:block;font-size:.74rem;color:var(--mute);margin-top:2px;max-width:60ch}
.w-seg{display:flex;gap:4px;padding:4px;border-radius:99px;background:rgba(255,255,255,.05);box-shadow:inset 0 0 0 1px var(--line)}
.w-seg button{border:0;background:none;padding:7px 13px;border-radius:99px;font-size:.76rem;font-weight:600;color:var(--mute);transition:background .3s,color .3s}
.w-seg button.on{background:var(--blue);color:#fff}
.w-chart svg{width:100%;height:260px;overflow:visible}
.w-chart .grid line{stroke:rgba(150,180,255,.1)}
.w-chart .ax text{fill:rgba(200,214,250,.5);font-size:11px;font-family:var(--f)}
.w-chart .line{fill:none;stroke-width:2.5;stroke-linecap:round}
.w-chart .cur line{stroke:rgba(255,255,255,.3);stroke-dasharray:3 4}
.w-tip{position:absolute;pointer-events:none;opacity:0;transform:translate(-50%,-100%);padding:10px 12px;border-radius:12px;background:#fff;color:#0B1732;font-size:.76rem;line-height:1.5;box-shadow:0 20px 40px -10px rgba(0,0,0,.5);white-space:nowrap;transition:opacity .2s;z-index:3}
.w-tip b{display:block;margin-bottom:2px}
.w-tip i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}
.dash-foot{display:grid;gap:14px;margin-top:14px}
@media (min-width:860px){.dash-foot{grid-template-columns:1.2fr 1fr}}
.w-bars{border-radius:18px;padding:18px;background:rgba(255,255,255,.03);box-shadow:inset 0 0 0 1px var(--line)}
.w-bars h4{font-size:.9rem;margin-bottom:14px;letter-spacing:-.01em}
.w-bar{display:grid;grid-template-columns:minmax(90px,150px) 1fr 44px;gap:12px;align-items:center;font-size:.82rem;margin-top:10px}
.w-bar b{font-weight:500;color:var(--ink2)}
.w-bar span{height:8px;border-radius:8px;background:rgba(255,255,255,.06);overflow:hidden}
.w-bar i{display:block;height:100%;width:0;border-radius:8px;background:linear-gradient(90deg,var(--blue),var(--ice));transition:width 1.4s var(--ease)}
.w-bar em{font-family:var(--f);font-style:normal;color:var(--ink);font-weight:600;text-align:right}
.w-note{border-radius:18px;padding:18px;background:rgba(47,107,255,.12);box-shadow:inset 0 0 0 1px rgba(91,140,255,.3);font-size:.9rem;color:var(--ink2)}
.w-note b{color:#fff}
.shot{margin-top:14px;border-radius:18px;overflow:hidden;box-shadow:inset 0 0 0 1px var(--line)}
.shot img{width:100%}

.two{display:grid;gap:clamp(14px,1.6vw,22px);margin-top:clamp(14px,1.6vw,22px)}
@media (min-width:960px){.two{grid-template-columns:1fr 1fr}}
.setup dl{margin:0;display:grid;gap:0}
.setup dl>div{display:grid;gap:4px;padding:14px 0;border-top:1px solid var(--line)}
@media (min-width:600px){.setup dl>div{grid-template-columns:120px 1fr;gap:16px}}
.setup dt{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ice);font-weight:600}
.setup dd{margin:0;color:var(--ink2);font-size:.92rem}
.box{border-radius:var(--r2);padding:clamp(22px,2.6vw,36px);background:var(--card);box-shadow:inset 0 0 0 1px var(--line)}
.box>h4{font-size:1.2rem;letter-spacing:-.02em;margin-bottom:16px}
.seq ol{list-style:none;padding:0;margin:0;display:grid;gap:10px;counter-reset:s}
@media (min-width:860px){.seq ol{grid-template-columns:repeat(4,1fr)}}
.seq li{position:relative;border-radius:18px;padding:18px;background:rgba(255,255,255,.04);box-shadow:inset 0 0 0 1px var(--line)}
.seq li b{display:inline-block;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ice);margin-bottom:8px}
.seq li p{font-size:.9rem;color:var(--ink2)}
.chain{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:18px}
.chain span{padding:9px 14px;border-radius:99px;font-size:.82rem;background:rgba(255,255,255,.07);box-shadow:inset 0 0 0 1px var(--line)}
.chain i{font-style:normal;color:var(--ice)}

/* websites: 3D browser frames */
.sites{display:grid;gap:clamp(18px,2vw,28px);perspective:1800px}
@media (min-width:860px){.sites{grid-template-columns:repeat(2,1fr)}}
.w-site{display:block;border-radius:22px;overflow:hidden;background:#0B1736;box-shadow:inset 0 0 0 1px var(--line2),0 50px 100px -50px rgba(0,0,0,.9);transform-style:preserve-3d;transition:box-shadow .5s}
.w-site:hover{box-shadow:inset 0 0 0 1px rgba(91,140,255,.6),0 60px 120px -50px rgba(47,107,255,.5)}
.w-site .bar{display:flex;align-items:center;gap:6px;padding:12px 14px;background:rgba(255,255,255,.05);border-bottom:1px solid var(--line)}
.w-site .bar i{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.18)}
.w-site .bar em{font-family:var(--f);font-style:normal;font-size:.74rem;color:var(--mute);margin-left:10px;padding:4px 12px;border-radius:99px;background:rgba(255,255,255,.05)}
.w-site .scr{position:relative;aspect-ratio:16/10;overflow:hidden;background:radial-gradient(circle at 50% 40%,#16295C,#0A1430)}
.w-site .scr .lg{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:38%;max-height:40%;object-fit:contain;opacity:.9}
.w-site .scr .shot{position:absolute;inset:0;width:100%;height:auto;min-height:100%;object-fit:cover;object-position:top;margin:0;border-radius:0;box-shadow:none;transition:transform 4s var(--ease)}
.w-site:hover .scr .shot{transform:translateY(calc(-100% + var(--sh,300px)))}
.w-site .scr iframe.live{position:absolute;left:0;top:0;width:1280px;max-width:none;border:0;transform-origin:0 0;pointer-events:none;opacity:0;transition:opacity .8s}
.w-site .scr iframe.live.mob{width:100%;height:100%;transform:none}
.w-site .scr.has-live iframe.live{opacity:1}
.w-site .scr .badge{position:absolute;right:12px;top:12px;display:flex;align-items:center;gap:6px;font-size:.68rem;font-weight:600;padding:5px 10px;border-radius:99px;background:rgba(4,10,28,.75);backdrop-filter:blur(8px)}
.w-site .scr .badge i{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green)}
.w-site .meta{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 20px}
.w-site .meta b{display:block;font-size:1.05rem}
.w-site .meta small{color:var(--mute);font-size:.82rem}
.w-site .meta span{flex:none;font-size:.84rem;font-weight:600;color:var(--ice)}

/* phones */
.phones{display:grid;gap:clamp(24px,3vw,40px);perspective:1600px}
@media (min-width:860px){.phones{grid-template-columns:repeat(3,1fr);align-items:start}.phones>div:nth-child(2){margin-top:60px}}
.phone-col{text-align:center;transform-style:preserve-3d}
.w-phone{position:relative;width:min(100%,320px);margin:0 auto;aspect-ratio:9/19;border-radius:46px;padding:11px;background:linear-gradient(145deg,#2A3554,#0B1124);box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.14),0 60px 100px -40px rgba(0,0,0,.9),0 0 80px -30px rgba(47,107,255,.5)}
.w-phone::before{content:"";position:absolute;top:20px;left:50%;transform:translateX(-50%);width:84px;height:24px;border-radius:20px;background:#000;z-index:2}
.w-phone .scr{position:relative;width:100%;height:100%;border-radius:36px;overflow:hidden;background:#fff}
.w-phone iframe{width:390px;max-width:none;border:0;transform-origin:0 0}
.phone-col h3{font-size:1.1rem;letter-spacing:-.02em;margin-top:22px}
.phone-col p{color:var(--mute);font-size:.86rem;margin-top:4px}

/* horizontal strip (emails, sms, flyers) */
.strip{display:flex;gap:clamp(12px,1.4vw,18px);overflow-x:auto;padding:4px var(--gut) 18px;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;cursor:grab}
.strip::-webkit-scrollbar{display:none}
.strip.drag{cursor:grabbing;scroll-snap-type:none}
.strip figure{flex:none;margin:0;scroll-snap-align:start;width:auto}
.strip img{height:clamp(320px,42vw,460px);width:auto;border-radius:18px;box-shadow:inset 0 0 0 1px var(--line),0 30px 60px -30px rgba(0,0,0,.8);pointer-events:none;user-select:none}
.strip figcaption{margin-top:12px;font-size:.84rem}
.strip figcaption b{display:block}
.strip figcaption span{color:var(--mute);font-size:.78rem}
.strip-wrap{position:relative}
.strip-hint{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:10px;font-size:.78rem;color:var(--mute)}
.strip-nav{display:flex;gap:8px}
.strip-nav button{width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.07);box-shadow:inset 0 0 0 1px var(--line2);transition:background .3s}
.strip-nav button:hover{background:var(--blue)}

/* reels */
.reels{display:grid;gap:clamp(14px,1.6vw,22px)}
@media (min-width:860px){.reels{grid-template-columns:repeat(3,1fr)}}
.reel{border-radius:var(--r);overflow:hidden;background:var(--card);box-shadow:inset 0 0 0 1px var(--line)}
.reel .frame{position:relative;min-height:540px;background:#fff;display:flex;justify-content:center}
.reel .frame .ph{position:absolute;inset:0;display:grid;place-items:center;color:#5B6782;font-size:.86rem;background:#F2F5FB}
.reel .instagram-media{margin:0!important;min-width:0!important;width:100%!important;max-width:100%!important;border:0!important;border-radius:0!important;position:relative;z-index:1}
.reel .meta{display:flex;justify-content:space-between;padding:14px 18px;font-size:.84rem}
.reel .meta a{color:var(--ice)}

/* sample report playbook */
.play{display:grid;gap:clamp(14px,1.6vw,22px)}
@media (min-width:960px){.play{grid-template-columns:.9fr 1.1fr;align-items:start}}
.play-l{position:relative;border-radius:var(--r2);padding:clamp(24px,3vw,44px);background:linear-gradient(150deg,#7A0F1E,#2A0712 70%);overflow:hidden;isolation:isolate}
@media (min-width:960px){.play-l{position:sticky;top:calc(var(--hd) + 20px)}}
.play-l::after{content:"";position:absolute;right:-30%;top:-30%;width:80%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,120,140,.35),transparent 65%);z-index:-1}
.play-l h3{font-size:clamp(1.8rem,3vw,2.6rem);letter-spacing:-.045em;margin:22px 0 14px}
.play-l p{color:rgba(255,255,255,.8)}
.play-g{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:24px}
.play-g div{border-radius:14px;padding:14px;background:rgba(255,255,255,.08)}
.play-g b{display:block;font-size:1.8rem;letter-spacing:-.05em;line-height:1}
.play-g span{font-size:.74rem;color:rgba(255,255,255,.72)}
.play-r{display:grid;gap:10px}
.pl-step{display:grid;grid-template-columns:96px 1fr;gap:18px;padding:22px;border-radius:20px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line)}
.pl-step>b{font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ice);padding-top:4px}
.pl-step h4{font-size:1.15rem;letter-spacing:-.02em;margin-bottom:6px}
.pl-step p{color:var(--ink2);font-size:.92rem}
@media (max-width:520px){.pl-step{grid-template-columns:1fr;gap:6px}}

/* =====================================================================
   ABOUT + LEGAL
   ===================================================================== */
.team{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(12px,1.4vw,20px)}
@media (min-width:700px){.team{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1080px){.team{grid-template-columns:repeat(4,1fr)}}
.person{transform-style:preserve-3d}
.person .ph{position:relative;aspect-ratio:4/5;border-radius:var(--r);overflow:hidden;background:var(--bg3)}
.person img{width:100%;height:100%;object-fit:cover;filter:grayscale(.35) contrast(1.05);transition:filter .6s,transform 1s var(--ease)}
.person:hover img{filter:none;transform:scale(1.05)}
.person h3{font-size:1.05rem;letter-spacing:-.02em;margin-top:14px}
.person p{font-size:.82rem;color:var(--mute);margin-top:2px}
.founders{display:grid;gap:clamp(12px,1.4vw,20px);grid-template-columns:repeat(2,1fr);margin-bottom:clamp(30px,4vw,56px)}
@media (min-width:1080px){.founders{grid-template-columns:repeat(3,1fr)}}
.founders .person h3{font-size:1.3rem}
.story{display:grid;gap:clamp(30px,4vw,60px)}
@media (min-width:960px){.story{grid-template-columns:1fr 1fr;align-items:end}}
.story>*{min-width:0}
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.facts .stat{padding:clamp(16px,2vw,28px)}
.facts .stat b{font-size:clamp(1.8rem,4.4vw,3.6rem)}
.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(10px,1.2vw,16px)}
@media (min-width:960px){.gallery{grid-template-columns:repeat(4,1fr)}}
.gallery figure{margin:0;border-radius:var(--r);overflow:hidden;position:relative;aspect-ratio:4/5}
.gallery img{width:100%;height:100%;object-fit:cover}
.gallery figcaption{position:absolute;left:12px;right:12px;bottom:12px;font-size:.76rem;padding:7px 12px;border-radius:12px;background:rgba(4,10,28,.7);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.wide-ph{border-radius:var(--r2);overflow:hidden;margin-left:0;margin-right:0;margin-bottom:0;margin-top:clamp(30px,4vw,56px);position:relative;aspect-ratio:16/8}
.wide-ph img{position:absolute;inset:-10% 0;width:100%;height:120%;object-fit:cover}
.wide-ph figcaption{position:absolute;left:18px;bottom:18px;font-size:.8rem;padding:8px 14px;border-radius:99px;background:rgba(4,10,28,.7);backdrop-filter:blur(8px)}
@media (max-width:700px){.wide-ph{aspect-ratio:4/3}}
.wide-ph.hero-ph{margin-top:clamp(36px,5vw,64px);aspect-ratio:16/7;box-shadow:0 40px 120px -40px rgba(47,107,255,.45)}
@media (max-width:700px){.wide-ph.hero-ph{aspect-ratio:5/4}}
@media (max-width:560px){.founders{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.founders .person h3{font-size:.92rem}.founders .person p{font-size:.72rem}}

.legal{max-width:760px;color:var(--ink2)}
.legal h2{font-size:clamp(1.3rem,2vw,1.6rem);letter-spacing:-.03em;color:var(--ink);margin:44px 0 12px}
.legal p,.legal li{line-height:1.75}
.legal p+p{margin-top:12px}
.legal ul{padding-left:20px;display:grid;gap:6px;margin:12px 0}
.legal a{color:var(--ice);text-decoration:underline;text-underline-offset:3px}
.legal b{color:var(--ink)}
.legal-updated{font-size:.82rem;color:var(--mute)}

/* =====================================================================
   MOTION INITIAL STATES (only when ov.js will animate them)
   ===================================================================== */
.motion .rv{opacity:0;transform:translate3d(0,60px,0) rotateX(-14deg);transform-origin:50% 100%}
.motion [data-split] .sw>span{transform:translate3d(0,110%,0) rotate(4deg)}
.motion .hero-copy .lead,.motion .hero-cta,.motion .hero-trust,.motion .hero-badge{opacity:0}


@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .mq-row{animation:none}
  .mq{overflow-x:auto}
}

/* ---- v4.1 polish: process cards, team strip, featured quote ---- */
.pcs{display:grid;gap:clamp(14px,1.6vw,22px)}
@media (min-width:700px){.pcs{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1100px){.pcs{grid-template-columns:repeat(4,minmax(0,1fr))}}
.pc{position:relative;overflow:hidden;border-radius:var(--r2);padding:clamp(24px,2.4vw,34px);min-height:0;display:flex;flex-direction:column;justify-content:flex-start;gap:0;padding-top:clamp(34px,3vw,44px);background:linear-gradient(160deg,rgba(47,107,255,.16),rgba(255,255,255,.02) 55%);box-shadow:inset 0 0 0 1px var(--line);transform-style:preserve-3d;isolation:isolate}
.pc::after{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,var(--blue),var(--ice));transform-origin:0 50%;transform:scaleX(.18);transition:transform 1.1s var(--ease)}
.pc:hover::after{transform:scaleX(1)}
.pc-n{font-size:clamp(5rem,9vw,9rem);font-weight:700;letter-spacing:-.07em;line-height:.8;background:linear-gradient(180deg,rgba(169,203,255,.85),rgba(47,107,255,.08));-webkit-background-clip:text;background-clip:text;color:transparent}
.pc-b{display:grid;gap:8px}
.pc small{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ice)}
.pc h4{font-size:clamp(1.4rem,1.9vw,1.8rem);letter-spacing:-.035em}
.pc p{color:var(--ink2);font-size:.98rem}

.team-mq{--gap:16px;--dur:70s;margin-top:clamp(50px,7vw,90px)}
.tm{flex:none;position:relative;width:clamp(170px,17vw,240px);aspect-ratio:4/5;border-radius:var(--r);overflow:hidden;background:var(--bg3);box-shadow:inset 0 0 0 1px var(--line)}
.tm img{width:100%;height:100%;object-fit:cover;filter:grayscale(.4) contrast(1.05);transition:filter .6s,transform 1s var(--ease)}
.tm:hover img{filter:none;transform:scale(1.05)}
.tm figcaption{position:absolute;inset:auto 0 0;padding:40px 14px 14px;font-size:.74rem;color:var(--ink2);background:linear-gradient(transparent,rgba(4,10,28,.92))}
.tm b{display:block;color:#fff;font-size:.92rem;font-weight:600}

@media (min-width:860px){.qs-f{grid-template-columns:repeat(2,minmax(0,1fr))}.qs-f>.q:first-child{grid-column:1/-1}}
.qs-f>.q:first-child{background:linear-gradient(135deg,rgba(47,107,255,.32),rgba(47,107,255,.06) 60%),var(--card);padding:clamp(30px,4vw,64px)}
.qs-f>.q:first-child p{font-size:clamp(1.5rem,2.9vw,2.8rem);line-height:1.2;letter-spacing:-.03em;font-weight:500;max-width:30ch}
.qs-f>.q:first-child p::before{font-size:6rem}
.tile .ph.fan{background:radial-gradient(60% 70% at 50% 25%,rgba(47,107,255,.5),transparent 70%),var(--bg3)}
.tile .ph.fan img{top:7%;left:auto;right:auto;width:26%;height:auto;aspect-ratio:9/16;object-fit:cover;object-position:50% 0;border-radius:16px;box-shadow:0 30px 60px -20px rgba(0,0,0,.8),0 0 0 1px rgba(255,255,255,.12);transition:transform 1s var(--ease)}
.tile .ph.fan img:nth-child(1){left:9%;transform:rotate(-7deg) translateY(6%)}
.tile .ph.fan img:nth-child(2){left:37%;z-index:1;top:3%}
.tile .ph.fan img:nth-child(3){left:65%;transform:rotate(7deg) translateY(6%)}
.tile:hover .ph.fan img:nth-child(1){transform:rotate(-10deg) translate(-4%,2%)}
.tile:hover .ph.fan img:nth-child(3){transform:rotate(10deg) translate(4%,2%)}
.tile:hover .ph.fan img{scale:1}
.tile .ph.float img{left:12%;width:76%;top:9%;aspect-ratio:auto;transform:perspective(1200px) rotateX(10deg) rotateZ(-3deg)}
.tile:hover .ph.float img{transform:perspective(1200px) rotateX(4deg) rotateZ(-1deg) translateY(-2%)}
@media (max-width:699px){.pc{min-height:0;flex-direction:row;align-items:flex-start;gap:18px}.pc-n{font-size:3.8rem;flex:none}}

/* ---- results scoreboard (v4.3) ---- */
.rs-grid{display:grid;gap:clamp(24px,4vw,64px)}
.rs-list{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.rs-item{border-radius:var(--r2);padding:clamp(22px,2.4vw,32px);background:var(--card);box-shadow:inset 0 0 0 1px var(--line);display:grid;gap:16px;transition:opacity .6s,box-shadow .6s,background .6s}
.rs-id{display:flex;align-items:center;gap:14px}
.rs-logo{width:54px;height:54px;flex:none;border-radius:14px;display:grid;place-items:center;background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px var(--line)}
.rs-logo img{max-width:80%;max-height:80%;object-fit:contain}
.rs-logo b{font-size:.9rem}
.rs-id b{display:block;font-size:1.1rem;letter-spacing:-.02em}
.rs-id small{color:var(--mute);font-size:.8rem}
.rs-m{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.rs-n{font-size:clamp(3.4rem,12vw,5rem);font-weight:700;letter-spacing:-.06em;line-height:.9}
.rs-n em,.rs-big em{font-family:var(--serif);font-weight:400;color:var(--ice)}
.rs-ml{color:var(--ink2)}
.rs-item q{font-size:1.02rem;color:var(--ink2);quotes:"\201C" "\201D"}
.rs-item cite{font-style:normal;font-size:.8rem;color:var(--mute);margin-top:-8px}
.rs-item p{color:var(--ink2)}
.rs-stage{display:none}
.rs-more{margin-top:clamp(30px,4vw,50px)}
@media (min-width:900px){
  .rs-grid{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:start}
  .rs-stage{display:block;position:sticky;top:calc(var(--hd) + 24px);height:min(calc(100svh - var(--hd) - 48px),640px)}
  .rs-list{gap:0;padding:12vh 0}
  .rs-item{min-height:56vh;align-content:center;background:transparent;box-shadow:none;border-top:1px solid var(--line);border-radius:0;opacity:.3}
  .rs-item:last-child{border-bottom:1px solid var(--line)}
  .rs-item.on{opacity:1}
  .rs-m{display:none}
  .rs-item q{font-size:clamp(1.2rem,1.7vw,1.6rem);line-height:1.35;color:var(--ink);letter-spacing:-.015em}
  .rs-item p{font-size:clamp(1.2rem,1.7vw,1.6rem);line-height:1.35;color:var(--ink)}
}
.rs-card{position:relative;height:calc(100% - 34px);perspective:1600px;transform-style:preserve-3d}
.rs-face{position:absolute;inset:0;border-radius:calc(var(--r2) + 6px);overflow:hidden;isolation:isolate;padding:clamp(28px,3vw,44px);display:flex;flex-direction:column;justify-content:flex-end;background:linear-gradient(150deg,#13235a,#081233);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),0 50px 100px -40px rgba(0,0,0,.8);transform-origin:50% 50% -120px;transform:rotateX(-100deg);opacity:0;transition:transform 1.1s var(--ease),opacity .7s;backface-visibility:hidden}
.rs-face.on{transform:none;opacity:1}
.rs-face.past{transform:rotateX(100deg);opacity:0}
.rs-face.t-blue{background:linear-gradient(150deg,#2f6bff,#1a3fb8)}
.rs-face.t-light{background:linear-gradient(150deg,#eef4ff,#c9dafc);color:#06112e}
.rs-face.t-light .rs-lbl,.rs-face.t-light .rs-who{color:#2a3a66}.rs-face.t-light .rs-k{color:#2f6bff;background:rgba(47,107,255,.1)}.rs-face.t-light .rs-big em{color:#2f6bff}
.rs-face.t-warm{background:linear-gradient(150deg,#ff7a59,#b8325a 70%,#3a1450)}
.rs-face.t-warm .rs-big em{color:#ffe1c9}
.rs-bg{position:absolute;inset:0;z-index:-1;background:center/cover}
.rs-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,10,28,.2),rgba(4,10,28,.88) 75%)}
.rs-k{position:absolute;top:clamp(24px,2.6vw,36px);left:clamp(28px,3vw,44px);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;padding:7px 12px;border-radius:99px;background:rgba(255,255,255,.12);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.rs-big{font-size:clamp(7rem,15vw,15rem);font-weight:700;letter-spacing:-.07em;line-height:.8}
.rs-lbl{font-size:clamp(1.1rem,1.6vw,1.5rem);font-weight:600;letter-spacing:-.02em;margin-top:18px;max-width:20ch}
.rs-who{font-size:.86rem;color:rgba(255,255,255,.7);margin-top:8px}
.rs-dots{display:flex;gap:8px;justify-content:center;margin-top:16px}
.rs-dots i{width:8px;height:8px;border-radius:99px;background:var(--line2);transition:width .5s var(--ease),background .5s}
.rs-dots i.on{width:28px;background:var(--ice)}

/* ---- giving back events (v4.3) ---- */
.events{display:grid;gap:clamp(16px,2vw,28px)}
@media (min-width:800px){.events{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ev{border-radius:var(--r2);padding:12px 12px clamp(20px,2.4vw,30px);background:var(--card);box-shadow:inset 0 0 0 1px var(--line)}
.ev-ph{display:grid;grid-template-columns:1.25fr 1fr;gap:10px;height:clamp(240px,28vw,400px)}
.ev-ph img{width:100%;height:100%;min-height:0;object-fit:cover;border-radius:calc(var(--r) - 4px)}
.ev h3{font-size:clamp(1.3rem,1.8vw,1.7rem);letter-spacing:-.03em;margin:22px 12px 6px}
.ev p{color:var(--ink2);margin:0 12px}

/* ---- Work page v4.4: visual hero reel + stacked case studies ---- */
.w-hero{padding-bottom:0}
.w-hero-row{display:grid;gap:clamp(24px,3vw,40px);margin-top:clamp(22px,3vw,34px);align-items:end}
@media (min-width:1000px){.w-hero-row{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}}
.w-hero .lead{margin-top:0}
.w-hero .proof4{margin-top:0}
.w-reel{margin-top:clamp(40px,6vw,80px);perspective:1400px;padding-bottom:clamp(30px,4vw,60px)}
.w-reel .mq{--gap:16px;--dur:80s;gap:16px;transform:rotateX(18deg) rotateZ(-3deg) scale(1.08);transform-origin:50% 0}
.w-reel .mq-set img{flex:none;height:clamp(180px,22vw,320px);width:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 0;border-radius:18px;box-shadow:0 0 0 1px rgba(255,255,255,.1),0 30px 60px -24px rgba(0,0,0,.7)}

.cases{display:grid;gap:clamp(18px,2vw,26px)}
.case{position:relative;display:grid;border-radius:calc(var(--r2) + 4px);overflow:hidden;background:linear-gradient(160deg,#0C1D4A,#071433);box-shadow:inset 0 0 0 1px var(--line2),0 -30px 60px -30px rgba(0,0,0,.6);transform-origin:50% 0;will-change:transform;scroll-margin-top:calc(var(--hd) + 20px)}
@media (min-width:900px){
  .case{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);min-height:min(76vh,620px);position:sticky;top:calc(var(--hd) + 14px + var(--i,0)*10px)}
  .case:nth-child(even) .case-media{order:2}
}
.case-media{position:relative;min-height:340px;display:grid;place-items:center;overflow:hidden;isolation:isolate;background:radial-gradient(70% 70% at 50% 40%,rgba(47,107,255,.35),transparent 70%),#0a1640}
.case-bg{position:absolute;inset:0;z-index:-1;background:center/cover;transition:transform 1.4s var(--ease)}
.case:hover .case-bg{transform:scale(1.05)}
.case-media::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(4,10,28,.05) 30%,rgba(4,10,28,.85))}
.case-mark{position:absolute;top:22%;left:50%;transform:translateX(-50%);max-height:34%;object-fit:contain;opacity:.95;filter:drop-shadow(0 20px 40px rgba(0,0,0,.4))}
.case-glyph{position:absolute;top:16%;font-size:clamp(4rem,9vw,8rem);font-weight:700;letter-spacing:-.06em;color:rgba(255,255,255,.14)}
.case-over{position:absolute;left:0;right:0;bottom:0;padding:clamp(22px,3vw,40px)}
.case-logo{display:none}
.case-num{font-size:clamp(5rem,11vw,10rem);font-weight:700;letter-spacing:-.07em;line-height:.82}
.case-num em{font-family:var(--serif);font-weight:400;color:var(--ice)}
.case-num.txt{font-size:clamp(2.2rem,4vw,3.6rem);letter-spacing:-.04em;line-height:1}
.case-lbl{font-size:clamp(1rem,1.4vw,1.25rem);font-weight:600;margin-top:12px;color:#fff}
.case-body{padding:clamp(24px,3.4vw,52px);display:flex;flex-direction:column;justify-content:center;gap:18px}
.case-top{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
.case-top b{font-size:.95rem}
.case h3{font-size:clamp(1.6rem,2.6vw,2.4rem);letter-spacing:-.04em;line-height:1.08}
.case-steps{list-style:none;margin:0;padding:0;display:grid;gap:0}
.case-steps li{display:grid;grid-template-columns:110px 1fr;gap:14px;padding:12px 0;border-top:1px solid var(--line);font-size:.94rem}
.case-steps b{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ice);padding-top:3px}
.case-steps span{color:var(--ink2)}
.case blockquote{margin:6px 0 0;padding-left:16px;border-left:2px solid var(--ice)}
.case blockquote p{font-size:1.02rem;line-height:1.5}
.case blockquote cite{display:block;margin-top:8px;font-style:normal;font-size:.8rem;color:var(--mute)}
.case .lnk{align-self:flex-start}
.case.t-blue{background:linear-gradient(150deg,#2F6BFF,#123AA8 60%,#0A1F66)}
.case.t-blue .case-media{background:radial-gradient(60% 60% at 50% 35%,rgba(255,255,255,.22),transparent 70%)}
.case.t-blue .case-steps b,.case.t-blue .case-num em{color:#fff}
.case.t-blue .case-steps span,.case.t-blue blockquote cite{color:rgba(255,255,255,.8)}
.case.t-blue blockquote{border-color:#fff}
.case.t-blue .case-steps li{border-color:rgba(255,255,255,.2)}
.case.t-light .case-media{background:linear-gradient(150deg,#eef4ff,#c9dafc)}
.case.t-light .case-media::after{background:linear-gradient(180deg,transparent 40%,rgba(201,218,252,.6))}
.case.t-light .case-over{color:#06112e}.case.t-light .case-lbl{color:#06112e}.case.t-light .case-num em{color:#2f6bff}
.case.t-warm .case-media{background:linear-gradient(150deg,#ff7a59,#b8325a 70%,#3a1450)}
.case.t-warm .case-num em{color:#ffe1c9}
.case.t-dark{background:linear-gradient(160deg,#111a33,#05091a)}
.case.t-dark .case-media{background:radial-gradient(60% 60% at 50% 40%,rgba(169,203,255,.18),transparent 70%),#070d22}
@media (max-width:899px){.case-media{min-height:300px}.case-steps li{grid-template-columns:1fr;gap:4px}}
.two .seq ol{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:599px){.two .seq ol{grid-template-columns:1fr}}
@media (min-width:1000px){.w-hero-row{grid-template-columns:minmax(0,.62fr) minmax(0,1.38fr)}}
@media (max-width:899px){.case-media{min-height:380px}.case-mark{top:12%;max-height:28%}.case-glyph{top:8%}}
.case.t-tag .case-media{background:radial-gradient(60% 60% at 50% 35%,rgba(163,206,57,.22),transparent 70%),linear-gradient(160deg,#0c1a3a,#06102a)}
.case.t-tag .case-num em{color:#a3ce39}
.case.t-oc .case-media{background:radial-gradient(60% 55% at 50% 35%,rgba(190,40,50,.28),transparent 70%),linear-gradient(160deg,#17171c,#0b0b0f)}
.case.t-oc .case-num em{color:#e0606a}

/* ---- results v4.5: editorial number rows ---- */
.rx-list{border-top:1px solid var(--line2)}
.rx-row{position:relative;display:grid;gap:14px 28px;align-items:center;padding:clamp(26px,3.4vw,46px) clamp(4px,1.6vw,26px);border-bottom:1px solid var(--line2);isolation:isolate;overflow:hidden;color:var(--ink);transition:padding .6s var(--ease)}
@media (min-width:960px){.rx-row{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) minmax(0,1.25fr) 56px}}
.rx-bg{position:absolute;inset:0;z-index:-1;background-size:cover;background-position:center;opacity:0;clip-path:inset(50% 0 50% 0);transition:clip-path .8s var(--ease),opacity .5s}
.rx-row:hover .rx-bg,.rx-row:focus-visible .rx-bg{opacity:1;clip-path:inset(0 0 0 0)}
.rx-num{font-size:clamp(4.6rem,11vw,10rem);font-weight:700;letter-spacing:-.07em;line-height:.82;transition:transform .8s var(--ease)}
.rx-num em{font-family:var(--serif);font-weight:400;color:var(--ice);margin-left:.02em}
.rx-row:hover .rx-num{transform:translateX(12px)}
.rx-mid{display:grid;gap:6px;justify-items:start}
.rx-logo{height:46px;display:flex;align-items:center;margin-bottom:6px}
.rx-logo img{max-height:46px;max-width:140px;width:auto;object-fit:contain}
.rx-mid b{font-size:clamp(1.1rem,1.5vw,1.4rem);letter-spacing:-.02em;line-height:1.2}
.rx-mid small{font-size:.84rem;color:var(--mute)}
.rx-row:hover .rx-mid small{color:rgba(255,255,255,.75)}
.rx-q q{display:block;font-size:clamp(1rem,1.25vw,1.15rem);line-height:1.5;color:var(--ink2);quotes:"\201C" "\201D"}
.rx-q small{display:block;margin-top:8px;font-size:.78rem;color:var(--mute)}
.rx-row:hover .rx-q q{color:#fff}
.rx-go{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;font-size:1.2rem;box-shadow:inset 0 0 0 1px var(--line2);transition:transform .6s var(--ease),background .4s,box-shadow .4s}
.rx-row:hover .rx-go{transform:rotate(-45deg);background:#fff;color:#06112e;box-shadow:none}
@media (max-width:959px){.rx-go{position:absolute;top:clamp(26px,3.4vw,46px);right:4px;width:46px;height:46px}.rx-num{padding-right:56px}}
.rx-more{margin-top:clamp(30px,4vw,50px)}

/* ---- v4.6: light sections (rounded light panels set into the dark page) ---- */
.light{--bg:#F3F5FA;--bg2:#ffffff;--bg3:#E7ECF6;--ink:#0A1230;--ink2:rgba(10,18,48,.74);--mute:rgba(10,18,48,.52);--line:rgba(10,18,48,.1);--line2:rgba(10,18,48,.18);--ice:#2F6BFF;--card:#ffffff;--card2:#ffffff;color-scheme:light;background:var(--bg);color:var(--ink);margin-inline:clamp(6px,1.1vw,16px);border-radius:clamp(26px,3vw,46px)}
.light:has(+ .light){border-bottom-left-radius:0;border-bottom-right-radius:0}
.light + .light{border-top-left-radius:0;border-top-right-radius:0}
.light .q,.light .box,.light .pc,.light .ps{box-shadow:0 1px 0 rgba(10,18,48,.04),0 18px 40px -24px rgba(10,18,48,.25),inset 0 0 0 1px var(--line)}
.light .pc{background:#fff}
.light .q footer img{filter:none}
.light .btn-g{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line2)}
.light .btn-g:hover{background:#EEF2FA}
.light ::selection{color:#fff}
.btn-d{background:#0A1230;color:#fff;box-shadow:0 14px 30px -14px rgba(10,18,48,.6)}
.btn-d:hover{background:#18245a}
.btn-d i{background:rgba(255,255,255,.14)}

/* ---- Selected work, ovrcast-style ---- */
.sw-grid{display:grid;gap:clamp(12px,1.4vw,20px)}
@media (min-width:760px){.sw-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.sw-card{display:block;color:var(--ink)}
.sw-art{position:relative;display:grid;place-items:center;aspect-ratio:16/10.5;border-radius:clamp(18px,2vw,28px);overflow:hidden;isolation:isolate;background:radial-gradient(80% 80% at 30% 20%,rgba(255,255,255,.18),transparent 60%),var(--tint,#0c1a3a);background-color:#0c1a3a;box-shadow:0 30px 60px -36px rgba(10,18,48,.55)}
.sw-bg{position:absolute;inset:-8%;z-index:-2;background:center/cover;filter:blur(18px) saturate(1.5);transform:scale(1.08);transition:filter 1s var(--ease),transform 1.2s var(--ease)}
.sw-art::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(4,10,28,.12),rgba(4,10,28,.42));transition:background .8s}
.sw-card:hover .sw-bg{filter:blur(0) saturate(1.1);transform:scale(1.02)}
.sw-card:hover .sw-art::after{background:linear-gradient(180deg,rgba(4,10,28,.45),rgba(4,10,28,.7))}
.sw-logo{display:grid;place-items:center;width:100%;padding:0 12%}
.sw-logo img{width:clamp(130px,20vw,290px);max-height:clamp(70px,9vw,130px);object-fit:contain;filter:drop-shadow(0 10px 30px rgba(0,0,0,.45));transition:transform 1s var(--ease)}
.sw-card:hover .sw-logo img{transform:scale(1.06)}
.sw-go{position:absolute;top:16px;right:16px;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;color:#fff;background:rgba(255,255,255,.14);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:transform .6s var(--ease),background .3s}
.sw-card:hover .sw-go{transform:rotate(-45deg);background:var(--blue)}
.sw-cap{display:flex;justify-content:space-between;gap:12px;align-items:baseline;padding:16px 6px 4px}
.sw-cap b{font-size:1.06rem;letter-spacing:-.02em}
.sw-cap span{font-size:.86rem;color:var(--mute);text-align:right}
.sw-more{display:grid;justify-items:center;gap:18px;text-align:center;margin-top:clamp(40px,5vw,64px)}
.sw-more p{color:var(--ink2);max-width:36ch}

/* dark components keep their own palette inside light sections */
.light .dash,.light .play-l,.light .ae-big,.light .case{--ink:#F3F6FF;--ink2:rgba(226,234,255,.72);--mute:rgba(200,214,250,.52);--line:rgba(150,180,255,.14);--line2:rgba(150,180,255,.24);--ice:#A9CBFF;--card:rgba(255,255,255,.035);--card2:rgba(255,255,255,.06);color:var(--ink);color-scheme:dark}

/* ---- Websites grid (v4.6) ---- */
.wsg{display:grid;gap:clamp(14px,1.6vw,24px)}
@media (min-width:640px){.wsg{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1080px){.wsg{grid-template-columns:repeat(3,minmax(0,1fr))}}
.ws{display:block;color:var(--ink)}
.ws-frame{display:block;border-radius:18px;overflow:hidden;background:#fff;box-shadow:0 1px 0 rgba(10,18,48,.04),0 24px 50px -28px rgba(10,18,48,.4),inset 0 0 0 1px var(--line);transition:transform .7s var(--ease),box-shadow .7s var(--ease)}
.ws:hover .ws-frame{transform:translateY(-6px);box-shadow:0 40px 70px -30px rgba(10,18,48,.5),inset 0 0 0 1px var(--line2)}
.ws-bar{display:flex;align-items:center;gap:6px;height:34px;padding:0 12px;background:#EEF1F7;border-bottom:1px solid rgba(10,18,48,.08)}
.ws-bar i{width:9px;height:9px;border-radius:50%;background:#d3d9e6}
.ws-bar em{font-family:var(--f);font-style:normal;font-size:.72rem;color:rgba(10,18,48,.55);margin-left:8px;padding:3px 10px;border-radius:99px;background:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:75%}
.ws-scr{display:block;position:relative;aspect-ratio:16/10.5;overflow:hidden;background:#dfe5f1}
.ws-scr img{width:100%;height:100%;object-fit:cover;object-position:50% 0;transition:object-position 5s cubic-bezier(.45,0,.2,1)}
.ws:hover .ws-scr img{object-position:50% 100%}
.ws-cap{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:14px 4px 4px;align-items:center}
.ws-cap b{font-size:1rem;letter-spacing:-.02em}
.ws-cap span{grid-column:1;font-size:.84rem;color:var(--mute)}
.ws-cap i{grid-row:1/3;grid-column:2;font-style:normal;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;box-shadow:inset 0 0 0 1px var(--line2);transition:background .3s,color .3s,transform .5s var(--ease)}
.ws:hover .ws-cap i{background:var(--blue);color:#fff;box-shadow:none;transform:rotate(45deg)}
.light .ev{box-shadow:0 18px 40px -24px rgba(10,18,48,.25),inset 0 0 0 1px var(--line)}

.sw-art.is-site{background:#0b1230}
.sw-site{position:absolute;inset:0;z-index:-2}
.sw-site img{width:100%;height:100%;object-fit:cover;object-position:50% 0;transition:object-position 5s cubic-bezier(.45,0,.2,1)}
.sw-card:hover .sw-site img{object-position:50% 100%}
.sw-art.is-site::after{background:linear-gradient(180deg,transparent 60%,rgba(4,10,28,.25))}
.sw-card:hover .sw-art.is-site::after{background:linear-gradient(180deg,transparent 60%,rgba(4,10,28,.25))}

/* ---- Built for the phone: real mobile layouts, auto-scrolling (v4.7) ---- */
.mps{gap:clamp(16px,2vw,28px)}
.mp{flex:none;margin:0;width:clamp(200px,19vw,260px);scroll-snap-align:start}
.mp a{display:block}
.mp-ph{display:block;position:relative;padding:10px;border-radius:44px;background:linear-gradient(160deg,#2a3352,#0b1024);box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.14),0 40px 70px -30px rgba(0,0,0,.8);transition:transform .7s var(--ease)}
.mp-ph::before{content:"";position:absolute;top:18px;left:50%;width:30%;height:20px;border-radius:99px;background:#05070f;transform:translateX(-50%);z-index:2}
.mp a:hover .mp-ph{transform:translateY(-8px)}
.mp-scr{display:block;position:relative;aspect-ratio:9/19.5;border-radius:34px;overflow:hidden;background:#000}
.mp-scr img{width:100%;height:auto;animation:mpScroll var(--d,20s) ease-in-out var(--dl,0s) infinite alternate}
.mp a:hover .mp-scr img{animation-play-state:paused}
@keyframes mpScroll{0%,8%{transform:translateY(0)}92%,100%{transform:translateY(calc(-100% + 100cqh))}}
.mp-scr{container-type:size}
.mp figcaption{display:grid;gap:2px;padding:16px 6px 0}
.mp figcaption b{font-size:1rem;letter-spacing:-.02em}
.mp figcaption span{font-size:.8rem;color:var(--mute)}
@media (prefers-reduced-motion:reduce){.mp-scr img{animation:none}}
.strip figure.mp{width:clamp(210px,18vw,260px)}
.strip .mp-scr img{height:auto;width:100%;border-radius:0;box-shadow:none}
.strip .mp figcaption{margin-top:0}
.bk-step{display:none!important}
.light .q footer img{filter:brightness(0);opacity:.85}

/* ---- v4.8: logo first, hover reveals the real site (home Selected work + Work websites) ---- */
.sw-art.has-site{background:#0b1230}
.sw-art.has-site .sw-site img{filter:blur(10px) brightness(.55) saturate(1.2);transform:scale(1.06);transition:filter .8s var(--ease),transform 1s var(--ease),object-position 5s cubic-bezier(.45,0,.2,1)}
.sw-card:hover .sw-art.has-site .sw-site img{filter:none;transform:none;object-position:50% 100%}
.sw-art.has-site::after{background:none}
.sw-card:hover .sw-art.has-site::after{background:none}
.sw-art.has-site .sw-logo{transition:opacity .5s,transform .8s var(--ease)}
.sw-card:hover .sw-art.has-site .sw-logo{opacity:0;transform:scale(.9)}
.ws-scr img{filter:blur(8px) brightness(.5) saturate(1.2);transform:scale(1.06);transition:filter .8s var(--ease),transform 1s var(--ease),object-position 5s cubic-bezier(.45,0,.2,1)}
.ws:hover .ws-scr img{filter:none;transform:none}
.ws-logo{position:absolute;inset:0;display:grid;place-items:center;padding:0 14%;transition:opacity .5s,transform .8s var(--ease);pointer-events:none}
.ws-logo img{width:auto!important;height:auto!important;max-width:62%;max-height:46%;object-fit:contain;filter:drop-shadow(0 10px 26px rgba(0,0,0,.5))!important;transform:none!important}
.ws-word{font-size:clamp(1.3rem,2vw,1.8rem);font-weight:700;letter-spacing:-.03em;color:#fff;text-align:center;line-height:1.1;text-shadow:0 8px 30px rgba(0,0,0,.5)}
.ws:hover .ws-logo{opacity:0;transform:scale(.9)}
