/* Foxx Studio: shared styles. Fonts are self-hosted (css/fonts.css).
   Colors: the active color is set by <html data-accent="…"> (written by _build/build.mjs from _build/site.config.json).
   --acc/--acc2/--acc3 = accent, lighter, deeper; --fx1..--fx4 = the 4-stop gradient used by effects and special places only. */

:root{
  --bg:#0a1020;--bg2:#0e1730;--surf:#131f3a;--paper:#e7edf8;--ink:#f2f6fd;--mut:#a3b1c8;--line:rgba(255,255,255,.14);--lineD:rgba(10,16,32,.16);
  --acc:#FC7800;--acc2:#FCB430;--acc3:#F03C00;--accd:#a84400;--onacc:#1c0a00;--fx1:#D2148C;--fx2:#FA3278;--fx3:#FC7800;--fx4:#FCB430;
  --fd:"Satoshi","Segoe UI",system-ui,sans-serif;--fb:"Satoshi","Segoe UI",system-ui,sans-serif;--tr:.8;
  --ex:cubic-bezier(.16,1,.3,1);--io:cubic-bezier(.76,0,.24,1);
  --hh:72px;--pad:clamp(20px,4vw,56px);
}
html[data-accent=foxx]{--acc:#FC7800;--acc2:#FCB430;--acc3:#F03C00;--accd:#a84400;--onacc:#1c0a00;--fx1:#D2148C;--fx2:#FA3278;--fx3:#FC7800;--fx4:#FCB430}
html[data-accent=azure]{--acc:#3b82ff;--acc2:#8fc0ff;--acc3:#1d57d6;--accd:#1d57d6;--onacc:#021028;--fx1:#1d4ed8;--fx2:#3b82ff;--fx3:#6fb1ff;--fx4:#c4e0ff}
html[data-accent=teal]{--acc:#2ee6c0;--acc2:#9af5df;--acc3:#0a8c75;--accd:#0a7562;--onacc:#04201a;--fx1:#0b7f8c;--fx2:#16c2a8;--fx3:#2ee6c0;--fx4:#b8fbea}
html[data-accent=amber]{--acc:#ffb938;--acc2:#ffe08a;--acc3:#d97a00;--accd:#935a00;--onacc:#241600;--fx1:#c2410c;--fx2:#f59e0b;--fx3:#ffb938;--fx4:#ffe9a8}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;color-scheme:dark;-webkit-tap-highlight-color:transparent}
html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}
body{background:var(--bg);color:var(--ink);font:400 clamp(1rem,.95rem + .2vw,1.125rem)/1.6 var(--fb);-webkit-font-smoothing:antialiased;overflow-x:clip;min-height:100svh}
img{display:block;max-width:100%}a{color:inherit}ul,ol{list-style:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
h1,h2,h3{font-family:var(--fd);font-weight:700;letter-spacing:calc(-.045em*var(--tr));line-height:.98}
h1,h2{text-wrap:balance}
a,button,select,input,textarea{touch-action:manipulation}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--acc);outline-offset:4px;border-radius:6px}
.skip{position:fixed;left:12px;top:-80px;z-index:10000;background:var(--acc);color:var(--onacc);padding:12px 18px;border-radius:10px;font-weight:700}.skip:focus{top:12px}
.wrap{width:min(1400px,100% - 2*var(--pad));margin-inline:auto}
.sub{color:var(--mut);max-width:36rem}
/* serif accent word + gradient text + film grain (shared on every page) */
h1 em,h2 em,.sf{font-family:"Instrument Serif","Times New Roman",serif;font-style:italic;font-weight:400;letter-spacing:-.015em;font-size:1.06em;padding-right:.04em}
.shine{display:inline-block;padding:0 .08em .12em 0;background:linear-gradient(100deg,var(--fx2) 0%,var(--fx3) 22%,var(--fx4) 42%,#fff 50%,var(--fx4) 58%,var(--fx3) 78%,var(--fx2) 100%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:sweep 3s linear infinite}
@keyframes sweep{to{background-position:-200% 0}}
.grain{position:fixed;inset:0;z-index:8050;pointer-events:none;opacity:.055;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .6 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.lnk{margin-top:14px;font-weight:700;font-size:.95rem;text-decoration:none;color:var(--acc);align-self:flex-start;padding:8px 0;background:linear-gradient(currentColor,currentColor) 0 100%/0 2px no-repeat;transition:background-size .6s var(--ex)}.lnk:hover{background-size:100% 2px}
.js .split{visibility:hidden}.js .split.is-split{visibility:visible}
.sp-l{will-change:transform}.sp-l-mask,[class*=-mask]{padding-bottom:.14em;margin-bottom:-.14em}

/* ---------- loader: a tiny pulsing dot on black; fades out when the page is ready ---------- */
.ld{display:none;position:fixed;inset:0;z-index:9000;background:#000;place-items:center;transition:opacity .55s ease,visibility 0s .55s}
.js .ld{display:grid;animation:ldsafe .01s 8s forwards}
.ld i,.pt i{width:10px;height:10px;border-radius:50%;background:var(--acc);box-shadow:0 0 18px var(--acc);animation:ldp 1s ease-in-out infinite}
.ld.out{opacity:0;visibility:hidden}
@keyframes ldp{50%{transform:scale(1.9);opacity:.45}}
@keyframes ldsafe{to{opacity:0;visibility:hidden}}
.js.pre main,.js.pre .hd,.js.pre .ft{opacity:0}
main,.ft{transition:opacity .9s ease}
/* page transition: a black curtain with the same dot */
.pt{position:fixed;inset:0;z-index:8900;background:#000;display:grid;place-items:center;pointer-events:none;visibility:hidden;clip-path:inset(100% 0 0 0)}
/* smoke mouse trail (desktop only, js/fx.js) */
.trail{position:fixed;inset:0;width:100%;height:100%;z-index:95;pointer-events:none;display:none;mix-blend-mode:screen}
.trail.on{display:block}


/* sound button (bottom-right on desktop, inside the menu on phones) + back to top */
.snd,.totop{position:fixed;right:max(14px,env(safe-area-inset-right));z-index:8100;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;box-shadow:0 10px 30px -10px #000}
.snd{bottom:max(14px,env(safe-area-inset-bottom));background:rgba(10,16,32,.72);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--line);color:var(--ink);transition:border-color .3s,color .3s}
.snd:hover{border-color:var(--acc)}.snd[aria-pressed=true]{color:var(--acc);border-color:var(--acc)}
.snd svg,.snd-m svg{width:20px;height:20px}.s-on{display:none}[aria-pressed=true]>svg .s-on{display:block}[aria-pressed=true]>svg .s-off{display:none}
.snd-m{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 18px 0 14px;border-radius:99px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.22);font-weight:600}.snd-m[aria-pressed=true]{color:var(--acc);box-shadow:inset 0 0 0 1px var(--acc)}
.totop{bottom:calc(max(14px,env(safe-area-inset-bottom)) + 54px);background:var(--ink);color:var(--bg);opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .4s,transform .5s var(--ex),visibility 0s .5s,background .3s}
.totop svg{width:18px;height:18px}.totop.on{opacity:1;visibility:visible;transform:none;transition:opacity .4s,transform .5s var(--ex),visibility 0s}.totop:hover{background:var(--acc);color:var(--onacc)}
@media(max-width:1040px){.snd{display:none}.totop{bottom:max(14px,env(safe-area-inset-bottom))}}

/* ---------- header: frosted bar, pill nav, full-screen blurred menu on phones ---------- */
.hd{position:fixed;inset:0 0 auto;z-index:100;height:var(--hh);transition:transform .6s var(--ex),opacity .9s ease}
.hd::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(10,16,32,.52);backdrop-filter:blur(18px) saturate(1.5);-webkit-backdrop-filter:blur(18px) saturate(1.5);border-bottom:1px solid rgba(255,255,255,.1)}
.hd.hide{transform:translateY(-100%)}
.hd-in{height:100%;display:flex;align-items:center;justify-content:space-between;gap:16px}
.logo{position:relative;z-index:2;display:flex;align-items:center;text-decoration:none;min-height:44px}.logo img{width:180px;height:auto}
.nv{display:flex;align-items:center}
.nv-pill{display:flex;gap:2px;padding:4px;border-radius:99px;background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
.nv-pill a{font-size:.92rem;font-weight:500;text-decoration:none;padding:9px 17px;border-radius:99px;color:#d5dee8;transition:color .3s,background-color .3s}
.nv-pill a:hover{color:#fff;background:rgba(255,255,255,.1)}
.nv-pill a[aria-current]{background:var(--ink);color:var(--bg)}
.nv-x{display:none}
.hd-r{position:relative;z-index:2;display:flex;align-items:center;gap:12px}
.lang{display:flex;border-radius:99px;padding:3px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}.lang a{display:grid;place-items:center;min-width:42px;min-height:36px;border-radius:99px;font-size:.8rem;font-weight:700;color:#c5d0dc;text-decoration:none;transition:background-color .3s,color .3s}.lang a:hover{color:#fff}.lang a[aria-current]{background:var(--ink);color:var(--bg)}
/* buttons: "liquid metal" solid + frosted glass ghost */
.btn{position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border-radius:99px;border:0;font:700 1rem var(--fb);text-decoration:none;color:var(--onacc);overflow:hidden;cursor:pointer;
 background:linear-gradient(180deg,color-mix(in srgb,var(--acc) 48%,#fff) 0%,var(--acc) 42%,color-mix(in srgb,var(--acc) 76%,#000) 100%);
 box-shadow:inset 0 1px 0 rgba(255,255,255,.7),inset 0 -2px 3px rgba(0,0,0,.22),0 14px 34px -14px color-mix(in srgb,var(--acc) 85%,transparent);transition:box-shadow .4s,filter .4s}
.btn::before{content:"";position:absolute;top:-30%;bottom:-30%;left:-70%;width:46%;z-index:0;background:linear-gradient(100deg,transparent,rgba(255,255,255,.8),transparent);transform:skewX(-18deg);pointer-events:none}
.btn:hover::before,.btn:focus-visible::before{transform:translateX(560%) skewX(-18deg);transition:transform .9s var(--ex)}
.btn:hover{filter:brightness(1.06);box-shadow:inset 0 1px 0 rgba(255,255,255,.8),inset 0 -2px 3px rgba(0,0,0,.22),0 18px 40px -12px color-mix(in srgb,var(--acc) 90%,transparent)}
.btn:active{filter:brightness(.94)}
.btn>*{position:relative;z-index:1}.btn .ar{width:18px;height:18px;transition:transform .5s var(--ex)}.btn:hover .ar{transform:translateX(5px)}
.btn.ghost{color:var(--ink);background:rgba(255,255,255,.09);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.24),inset 0 1px 0 rgba(255,255,255,.3)}
.btn.ghost::before{background:linear-gradient(100deg,transparent,rgba(255,255,255,.28),transparent)}
.btn.ghost:hover{background:rgba(255,255,255,.17);filter:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.4),inset 0 1px 0 rgba(255,255,255,.4)}
.btn.sm{min-height:44px;padding:0 20px;font-size:.92rem}
.btn[disabled]{opacity:.6;cursor:default}
.burger{display:none;place-items:center;width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px rgba(255,255,255,.2)}
.burger i{position:relative;width:16px;height:2px;background:currentColor;transition:background-color .3s}.burger i::before,.burger i::after{content:"";position:absolute;left:0;width:16px;height:2px;background:currentColor;transition:transform .5s var(--ex)}.burger i::before{top:-5px}.burger i::after{top:5px}
.burger[aria-expanded=true] i{background:transparent}.burger[aria-expanded=true] i::before{transform:translateY(5px) rotate(45deg)}.burger[aria-expanded=true] i::after{transform:translateY(-5px) rotate(-45deg)}
@media(max-width:1040px){.hd-cta{display:none}.burger{display:grid}
 .nv{position:fixed;inset:0;height:100dvh;flex-direction:column;justify-content:center;align-items:stretch;gap:26px;padding:calc(var(--hh) + 16px) var(--pad) 36px;background:rgba(10,16,32,.74);backdrop-filter:blur(28px) saturate(1.4);-webkit-backdrop-filter:blur(28px) saturate(1.4);opacity:0;visibility:hidden;overflow-y:auto;overscroll-behavior:contain;transition:opacity .5s var(--ex),visibility 0s .5s}
 .nv.open{opacity:1;visibility:visible;transition:opacity .5s var(--ex)}
 .nv-pill{flex-direction:column;gap:0;padding:0;background:none;box-shadow:none;border-radius:0}
 .nv-pill a{font:700 clamp(2.1rem,10vw,3.6rem)/1.05 var(--fd);letter-spacing:calc(-.045em*var(--tr));padding:13px 0;border-radius:0;border-bottom:1px solid rgba(255,255,255,.14);color:var(--ink);opacity:0;transform:translateY(22px);transition:opacity .6s var(--ex),transform .6s var(--ex)}
 .nv.open .nv-pill a{opacity:1;transform:none}.nv.open .nv-pill a:nth-child(2){transition-delay:.05s}.nv.open .nv-pill a:nth-child(3){transition-delay:.1s}.nv.open .nv-pill a:nth-child(4){transition-delay:.15s}.nv.open .nv-pill a:nth-child(5){transition-delay:.2s}
 .nv-pill a:hover{background:none}.nv-pill a[aria-current]{background:none;color:var(--acc)}
 .nv-x{display:flex;flex-wrap:wrap;gap:12px 14px;align-items:center}.nv-x p{flex-basis:100%;color:#c5d0dc;font-size:.95rem}.nv-x p a{text-decoration:none;display:inline-block;padding:6px 0}}
@media(max-width:520px){.logo img{width:138px}.lang a{min-width:38px}.hd-in,.hd-r{gap:8px}}

/* ---------- home hero: particle logo (js/home-particles.js + css/fx-home.css), text bottom-left, fact strip ---------- */
.hero{position:relative;height:170svh;background:var(--bg)}
.hero-pin{position:sticky;top:0;height:100svh;min-height:600px;overflow:hidden;display:flex;flex-direction:column;isolation:isolate}
.hero-c{flex:1;min-height:0;display:flex;padding-top:calc(var(--hh) + clamp(12px,2.4svh,22px))}
.hero-c .wrap{display:flex;flex-direction:column;justify-content:space-between}
.hero-intro{display:flex;justify-content:space-between;gap:24px;font-size:.9rem;line-height:1.45;color:rgba(255,255,255,.8)}.hero-intro p:first-child{max-width:23rem}.hero-intro p:last-child{text-align:right;white-space:nowrap}
.hero-bl{padding-bottom:clamp(16px,3.4svh,38px)}
.badge{display:inline-flex;align-items:center;gap:8px;padding:7px 14px 7px 10px;border-radius:99px;background:rgba(255,255,255,.09);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.22);font:700 .7rem var(--fb);letter-spacing:.14em;margin-bottom:clamp(10px,2svh,20px)}
.badge svg{width:14px;height:14px;color:var(--acc2);transform-origin:50% 50%}
.hero h1{font-size:clamp(2.5rem,min(7.9vw,15svh),9rem);letter-spacing:calc(-.06em*var(--tr));line-height:.96}
html[lang=es] .hero h1{font-size:clamp(2.2rem,min(7.1vw,14svh),8.4rem)}
/* the headline's first line ends left of the particle logo (placed by css/fx-home.css) */
@media(min-width:820px){.hero .ph{--ph-x:78%;--ph-y:33%}}
@media(min-width:1600px){.hero .ph{--ph-x:81%;--ph-w:36%}.hero h1{font-size:min(8.2rem,15svh)}html[lang=es] .hero h1{font-size:min(7.4rem,14svh)}}
.hero h1 .ln{display:block;white-space:nowrap}
.hero .lead{margin-top:clamp(10px,2svh,20px);max-width:34rem;color:#d3dcea;font-size:clamp(1rem,.9rem + .4vw,1.3rem)}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:clamp(14px,2.8svh,28px)}
.hero-strip{border-top:1px solid rgba(255,255,255,.16);background:rgba(10,16,32,.36);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-size:.88rem;color:#e3eaf5}
.hero-strip .wrap{display:flex;align-items:center;min-height:52px;flex-wrap:wrap}
.hero-strip ul{display:flex;flex-wrap:wrap}.hero-strip li+li::before{content:"·";margin:0 12px;color:var(--acc2);font-weight:700}
@media(max-width:820px){.hero{height:150svh}}
@media(max-width:560px){.hero h1{font-size:clamp(2.3rem,10.4vw,3.4rem)}html[lang=es] .hero h1{font-size:clamp(2.1rem,9.2vw,3rem)}.hero-cta .btn{flex:1;padding:0 14px}.hero-intro{font-size:.82rem;gap:14px}.hero-strip{font-size:.78rem}.hero-strip li+li::before{margin:0 7px}.hero-strip .wrap{padding-block:6px;min-height:44px}}
@media(max-height:640px){.hero-intro p:first-child{display:none}}

/* ---------- home: "How we work" scroll-scrubbed video story (js/home-story.js) ----------
   Default = static (no JS, reduced motion, slow device): a still image with the 4 panels. .is-scrub = pinned, video follows the scroll. */
.sy{position:relative;background:#05080f}
.sy-pin{position:relative;isolation:isolate;overflow:hidden}
.sy-m{position:absolute;inset:0;z-index:-1}.sy-m img,.sy-m video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sy-v{opacity:0;transition:opacity .8s}.sy-v.on{opacity:1}
.sy-m::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,8,15,.9) 0,rgba(5,8,15,.66) 48%,rgba(5,8,15,.4) 100%),linear-gradient(0deg,rgba(5,8,15,.85),rgba(5,8,15,0) 50%)}
.sy-in{position:relative;padding:clamp(80px,10vw,150px) 0}
.sy h2{font-size:clamp(2.4rem,6vw,5.6rem);letter-spacing:calc(-.06em*var(--tr));margin-bottom:clamp(30px,5vw,60px)}
.sy-l{display:grid;grid-template-columns:1fr 1fr;gap:clamp(26px,4vw,60px) clamp(24px,5vw,80px)}
.sy-s b{font:600 1rem var(--fb);color:var(--acc)}
.sy-s h3{font-size:clamp(2rem,4vw,3.4rem);letter-spacing:calc(-.055em*var(--tr));margin:.12em 0 .22em}
.sy-s p{font-size:clamp(1.05rem,1.5vw,1.3rem);line-height:1.4;color:#e6ecf7;max-width:32rem}
.sy-s .btn{margin-top:22px}
.sy-bar,.sy-ld{display:none}
@media(max-width:820px){.sy-l{grid-template-columns:1fr}}
.sy.is-scrub{height:560svh}
.sy.is-scrub .sy-pin{position:sticky;top:0;height:100svh;min-height:560px}
.sy.is-scrub .sy-in{height:100%;padding:0}
.sy.is-scrub h2{position:absolute;left:0;top:calc(var(--hh) + clamp(14px,3.4svh,36px));font-size:clamp(1.3rem,2.2vw,2rem);letter-spacing:calc(-.04em*var(--tr));margin:0}
.sy.is-scrub .sy-l{display:block}
.sy.is-scrub .sy-s{position:absolute;left:0;bottom:clamp(64px,12svh,130px);max-width:min(48rem,100%);opacity:0;visibility:hidden;will-change:opacity,transform}
.sy.is-scrub .sy-s h3{font-size:clamp(3.2rem,min(11vw,17svh),9rem);letter-spacing:calc(-.065em*var(--tr));line-height:.92}
.sy.is-scrub .sy-s p{font-size:clamp(1.1rem,1.9vw,1.6rem);max-width:34rem}
.sy.is-scrub .sy-bar{display:block;position:absolute;left:0;right:0;bottom:clamp(22px,4.4svh,44px);height:2px;background:rgba(255,255,255,.2)}
.sy-bar i{display:block;height:100%;background:var(--acc);transform-origin:left;transform:scaleX(0)}
.sy.is-scrub .sy-ld{display:block;position:absolute;right:0;top:calc(var(--hh) + clamp(14px,3.4svh,36px));font-size:.8rem;color:#c9d4e6;font-variant-numeric:tabular-nums}

/* ---------- marquee ---------- */
.mqs{padding:clamp(28px,4vw,50px) 0 8px;border-block:1px solid var(--line);background:var(--bg)}
.mq{overflow:hidden;white-space:nowrap}.mq-t{display:inline-flex;will-change:transform}
.mq span{font:700 clamp(2.6rem,7vw,6.4rem)/1.1 var(--fd);letter-spacing:calc(-.055em*var(--tr));padding-inline:.3em;display:inline-flex;align-items:center;gap:.6em}
.mq span::after{content:"";width:.26em;height:.26em;border-radius:50%;background:var(--acc);margin-left:.3em}
.mq span:nth-child(even){color:transparent;-webkit-text-stroke:1.5px var(--mut)}
.mq-b{display:block;margin:6px auto 12px;font-size:.82rem;color:var(--mut);min-height:40px;padding:8px 14px;text-decoration:underline;text-underline-offset:4px}

/* ---------- statement ---------- */
.sec{padding:clamp(90px,12vw,190px) 0;position:relative}
.stmt p.scrubwords{font:700 clamp(1.7rem,4.6vw,4.2rem)/1.08 var(--fd);letter-spacing:calc(-.045em*var(--tr));max-width:18em}
.stmt .st-more{margin-top:clamp(16px,2.4vw,28px);font-size:clamp(1rem,1.5vw,1.25rem);color:var(--mut);max-width:34rem;line-height:1.5}
.stmt .w{opacity:.16;display:inline-block;margin-right:.24em}

/* ---------- section heading ---------- */
.shd{margin-bottom:clamp(40px,6vw,90px)}
.shd h2{font-size:clamp(2.6rem,7.5vw,7rem);letter-spacing:calc(-.06em*var(--tr))}
.shd .sub{margin-top:20px}

/* ---------- services: sticky stack ---------- */
.stack{display:grid;gap:0}
.card{will-change:transform,filter;position:sticky;top:calc(var(--hh) + 14px + var(--i)*14px);height:min(560px,calc(100svh - var(--hh) - 40px - var(--i)*14px));min-height:430px;margin-bottom:clamp(14px,3vw,34px);border-radius:28px;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);background:var(--surf);transform-origin:50% 0}
.card.lt{background:var(--paper);color:#0a1226;border-color:transparent}.card.lt .sub,.card.lt p{color:#44505e}
.cd-t{padding:clamp(24px,3.4vw,52px);display:flex;flex-direction:column;justify-content:space-between;gap:20px}
.cd-n{font:600 1rem var(--fd);color:var(--acc)}.card.lt .cd-n{color:var(--accd)}
.cd-t h3{font-size:clamp(1.9rem,3.8vw,3.6rem);letter-spacing:calc(-.055em*var(--tr));margin:10px 0 14px}
.cd-t p{color:var(--mut);max-width:26rem}
.cd-v{position:relative;margin:14px;border-radius:20px;overflow:hidden;background:var(--bg2)}
.cd-v img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ex)}.card:hover .cd-v img{transform:scale(1.03)}
@media(max-width:820px){.card{grid-template-columns:1fr;grid-template-rows:auto auto;height:auto;min-height:0;position:sticky}.cd-v{aspect-ratio:16/10;margin:0 14px 14px;order:-1;margin-top:14px}.cd-t{padding:22px}.cd-t h3{font-size:1.9rem}}

/* ---------- parallax band ---------- */
.band{position:relative;height:min(115svh,980px);overflow:hidden;display:grid;place-items:center;background:var(--bg)}
.band-f{position:absolute;inset:0;overflow:hidden;clip-path:inset(14% 8% 14% 8% round 28px)}
.band-f img{position:absolute;left:0;top:-14%;width:100%;height:128%;object-fit:cover;will-change:transform}
.band-f::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,16,32,.7),rgba(10,16,32,.2))}
.band-t{position:relative;z-index:2;text-align:center;padding:0 var(--pad)}
.band-t h2{font-size:clamp(2.6rem,9vw,9rem);letter-spacing:calc(-.065em*var(--tr))}.band-t p{margin-top:18px;font-size:1.1rem;color:#dbe4ee}

/* ---------- pinned image swap (work page) ---------- */
.proc{position:relative;height:100svh;min-height:600px;overflow:hidden;background:var(--bg2);border-block:1px solid var(--line)}
.proc-g{height:100%;display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,5vw,80px);align-items:center;padding:calc(var(--hh) + 10px) 0 40px}
.proc h2{font-size:clamp(2.2rem,5vw,4.6rem);letter-spacing:calc(-.06em*var(--tr));margin-bottom:clamp(20px,4svh,44px)}
.steps{border-top:1px solid var(--line)}
.step{padding:clamp(12px,2.2svh,22px) 0;border-bottom:1px solid var(--line);opacity:.38;transition:opacity .6s var(--ex)}
.step.on{opacity:1}
.step h3{font-size:clamp(1.3rem,2.4vw,2.2rem);letter-spacing:calc(-.04em*var(--tr))}
.step p{color:var(--mut);max-width:30rem;display:grid;grid-template-rows:0fr;transition:grid-template-rows .7s var(--ex),margin .7s var(--ex);margin-top:0}
.step p>span{overflow:hidden}.step.on p{grid-template-rows:1fr;margin-top:10px}
.pimgs{position:relative;height:min(74svh,640px);border-radius:26px;overflow:hidden;background:var(--surf);border:1px solid var(--line)}
.pi{position:absolute;inset:0;overflow:hidden}.pi:nth-child(n+2){clip-path:inset(100% 0 0 0)}
.pi img{position:absolute;left:0;top:-6%;width:100%;height:112%;object-fit:cover}
.pbar{position:absolute;left:0;bottom:0;height:3px;background:var(--acc);width:100%;transform:scaleX(0);transform-origin:left;z-index:3}
@media(max-width:820px){.proc-g{grid-template-columns:1fr;grid-template-rows:minmax(0,38svh) auto;align-content:start;gap:16px;padding-top:calc(var(--hh) + 8px)}.pimgs{order:-1;height:100%}.proc h2{display:none}.step{padding:10px 0}.step h3{font-size:1.3rem}}

/* ---------- "what we build" list + hover preview ---------- */
.wl{border-top:1px solid var(--line)}
.wr{display:grid;grid-template-columns:1.1fr 1.3fr auto 60px;gap:20px;align-items:center;padding:clamp(22px,3vw,38px) 0;border-bottom:1px solid var(--line);text-decoration:none;position:relative;transition:padding .7s var(--ex),color .4s}
.wr::before{content:"";position:absolute;inset:0 calc(-1*var(--pad));background:var(--surf);transform:scaleY(0);transform-origin:bottom;transition:transform .7s var(--ex);z-index:-1}
.wr:hover::before,.wr:focus-visible::before{transform:scaleY(1)}.wr:hover,.wr:focus-visible{padding-left:18px}
.wr h3{font-size:clamp(1.7rem,3.9vw,3.6rem);letter-spacing:calc(-.055em*var(--tr))}
.wr-d{color:var(--mut);max-width:30rem;font-size:1rem;line-height:1.45}
.wr .tg{color:#c9d4e6;font-size:.88rem;font-weight:600;border-radius:99px;padding:5px 14px;box-shadow:inset 0 0 0 1px var(--line);white-space:nowrap}
.wr .go{width:48px;height:48px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;transition:background .4s,transform .7s var(--ex),color .3s}.wr:hover .go{background:var(--acc);color:var(--onacc);transform:rotate(-45deg)}.go svg{width:20px;height:20px}
.wr .th{display:none}
.wprev{position:fixed;left:0;top:0;z-index:90;width:clamp(240px,24vw,380px);aspect-ratio:4/5;pointer-events:none;border-radius:18px;overflow:hidden;opacity:0;visibility:hidden;transform:scale(.8);display:none;box-shadow:0 40px 90px -20px #000}
.wprev img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0}.wprev img.on{opacity:1}
@media(hover:hover) and (pointer:fine){.wprev{display:block}}
@media(max-width:900px){.wr{grid-template-columns:1fr 44px;gap:8px 14px}.wr h3{grid-column:1}.wr-d{grid-column:1}.wr .tg{grid-column:1;justify-self:start}.wr .go{grid-row:1/4;grid-column:2;width:42px;height:42px}}
@media(hover:none){.wr .th{display:block;grid-column:1/-1;border-radius:14px;overflow:hidden;aspect-ratio:16/9;margin-top:6px}.wr .th img{width:100%;height:100%;object-fit:cover}}
.more{margin-top:clamp(28px,4vw,50px);display:flex;justify-content:flex-end}
.stack+.more{margin-top:0}

/* ---------- pricing ---------- */
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.pc{position:relative;border-radius:26px;padding:clamp(24px,2.6vw,36px);min-height:340px;display:flex;flex-direction:column;background:var(--surf);border:1px solid var(--line);overflow:hidden;transition:transform .7s var(--ex),border-color .4s;scroll-margin-top:calc(var(--hh) + 20px)}
.pc:hover,.pc:target{transform:translateY(-3px);border-color:var(--acc)}
.pc::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .4s;background:radial-gradient(340px circle at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--acc) 20%,transparent),transparent 60%)}.pc:hover::after{opacity:1}
.pc h3{font:600 1.2rem var(--fb);letter-spacing:0;color:var(--ink)}
.pv{margin-top:auto;font:700 clamp(2.6rem,4.4vw,4rem)/1 var(--fd);letter-spacing:calc(-.06em*var(--tr))}.pv small{display:block;font:500 .85rem var(--fb);letter-spacing:0;color:var(--mut);margin-bottom:8px}.pv em{font:500 1.05rem var(--fb);font-style:normal;letter-spacing:0;color:var(--mut);margin-left:4px}.pv.t{font-size:clamp(1.8rem,3vw,2.6rem)}
.pn{color:var(--mut);margin-top:8px;font-size:.95rem;min-height:1.5em}
.hl2{margin-top:16px;padding:12px 14px;border-radius:14px;border:1px solid var(--acc);background:color-mix(in srgb,var(--acc) 10%,transparent);font-size:.9rem;line-height:1.4;font-weight:600}
@media(max-width:980px){.pgrid{grid-template-columns:1fr 1fr}}@media(max-width:640px){.pgrid{grid-template-columns:1fr}.pc{min-height:0}.pv{margin-top:26px}}

/* ---------- reviews (hidden until real reviews exist) / faq ---------- */
.rev{border:1px solid var(--line);border-radius:28px;padding:clamp(34px,6vw,84px)}.rev h2{font-size:clamp(1.8rem,4vw,3.4rem);margin-bottom:24px}.rev-l{display:grid;gap:18px}
.fqs{max-width:980px;border-top:1px solid var(--line)}.fq{border-bottom:1px solid var(--line)}
.fq-b{width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;text-align:left;padding:28px 0;font:600 clamp(1.15rem,2.2vw,1.7rem)/1.25 var(--fd);letter-spacing:calc(-.03em*var(--tr));transition:color .4s}.fq-b:hover{color:var(--acc)}
.fq-b i{flex:none;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;position:relative;transition:transform .7s var(--ex),background .4s,color .4s}
.fq-b i::before,.fq-b i::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:2px;background:currentColor;transform:translate(-50%,-50%)}.fq-b i::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .7s var(--ex)}
.fq-b[aria-expanded=true] i{background:var(--acc);color:var(--onacc);transform:rotate(180deg)}.fq-b[aria-expanded=true] i::after{transform:translate(-50%,-50%) rotate(0)}
.fq-p{display:grid;grid-template-rows:0fr;transition:grid-template-rows .8s var(--ex)}.fq-p>div{overflow:hidden}.fq-p p{padding:0 60px 28px 0;color:var(--mut);max-width:62ch}.fq.open .fq-p{grid-template-rows:1fr}

/* ---------- smoke call-to-action card (above the footer on every page; smoke = js/fx.js, CSS gradient fallback) ---------- */
.cta{padding:clamp(40px,6vw,100px) 0 clamp(40px,5vw,70px)}
.cta-card{position:relative;border-radius:32px;overflow:hidden;isolation:isolate;min-height:clamp(330px,46svh,480px);display:grid;place-items:center;text-align:center;padding:clamp(40px,6vw,84px) clamp(20px,5vw,70px);
 background:radial-gradient(120% 140% at 12% 8%,color-mix(in srgb,var(--fx1) 36%,transparent),transparent 55%),radial-gradient(120% 140% at 88% 92%,color-mix(in srgb,var(--fx4) 26%,transparent),transparent 55%),radial-gradient(90% 120% at 62% 30%,color-mix(in srgb,var(--fx3) 24%,transparent),transparent 60%),#070b16}
.cta-c{position:absolute;inset:0;width:100%;height:100%;z-index:-2;opacity:0;transition:opacity 1.4s}.cta-c.on{opacity:1}
.cta-card::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 50% 50%,rgba(5,8,15,.55),rgba(5,8,15,.12) 75%)}
.cta-bd{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.cta-bd rect{x:1px;y:1px;width:calc(100% - 2px);height:calc(100% - 2px);rx:31px;fill:none;stroke-width:1.5px;stroke-dasharray:1;stroke-dashoffset:0}
.cta-bd .g1{stop-color:var(--fx1)}.cta-bd .g2{stop-color:var(--fx2)}.cta-bd .g3{stop-color:var(--fx3)}.cta-bd .g4{stop-color:var(--fx4)}
.cta h2{font-size:clamp(2.2rem,6.2vw,5.6rem);color:#fff;letter-spacing:calc(-.06em*var(--tr));max-width:13em;margin-inline:auto}
.cta p{margin-top:16px;color:#eef2fa;font-size:clamp(1rem,1.5vw,1.25rem)}
.cta-b{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:28px}
/* entrance: the border draws, the title rises, the buttons pop */
.js .cta-card:not(.in) rect{stroke-dashoffset:1}.js .cta-card:not(.in) h2,.js .cta-card:not(.in) p{opacity:0;transform:translateY(44px)}.js .cta-card:not(.in) .btn{opacity:0;transform:scale(.6)}
.cta-card.in rect{transition:stroke-dashoffset 2s var(--io)}
.cta-card.in h2{transition:opacity .9s .35s,transform 1.2s var(--ex) .35s}.cta-card.in p{transition:opacity .9s .5s,transform 1.2s var(--ex) .5s}
.cta-card.in .btn{transition:opacity .4s 1s,transform .8s cubic-bezier(.34,1.56,.64,1) 1s,box-shadow .4s,filter .4s}.cta-card.in .btn+.btn{transition-delay:1.12s,1.12s,0s,0s}
@media(max-width:560px){.cta-b .btn{flex:1 1 100%}}

/* ---------- compact footer ---------- */
.ft{background:#070b16;border-top:1px solid var(--line);padding:clamp(26px,3.2vw,40px) 0 20px;font-size:.92rem;color:#c9d4e6}
.ft-g{display:flex;justify-content:space-between;gap:22px 60px;flex-wrap:wrap}
.ft-l p{margin-top:8px;max-width:30rem;line-height:1.5}
.ft-r{font-style:normal;display:grid;justify-items:start}
.ft-r h2{font:700 1rem var(--fb);letter-spacing:0;color:var(--ink);margin-bottom:2px}
.ft-r a{text-decoration:none;color:var(--ink);padding:5px 0;background:linear-gradient(currentColor,currentColor) 0 90%/0 1px no-repeat;transition:background-size .6s var(--ex)}.ft-r a:hover{background-size:100% 1px}.ft-r span{padding:5px 0}
.ft-b{margin-top:18px;padding-top:12px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:4px 24px;flex-wrap:wrap;font-size:.85rem;color:var(--mut)}
.ft-b nav{display:flex;gap:22px}.ft-b a{color:#c9d4e6;padding:8px 0;text-underline-offset:4px}
@media(min-width:1041px){.ft-b{padding-right:34px}}

/* ---------- work page: tilted 3D photo wall (CSS 3D) ---------- */
.ww{position:relative;height:150svh}
.ww-pin{position:sticky;top:0;height:100svh;min-height:600px;overflow:hidden;isolation:isolate;display:flex;align-items:flex-end}
.ww-s{position:absolute;inset:0;z-index:-1;perspective:1100px;perspective-origin:50% 42%;overflow:hidden}
.ww-g{position:absolute;left:50%;top:46%;width:max(1500px,150vw);display:grid;grid-template-columns:repeat(5,1fr);gap:18px;transform-style:preserve-3d;will-change:transform;
 transform:translate(-50%,-50%) translateZ(calc(var(--z,0)*1px)) rotateX(calc(52deg + var(--rx,0deg))) rotateZ(calc(-22deg + var(--rz,0deg)))}
.ww-col{display:grid;gap:18px;animation:wwd 24s ease-in-out infinite alternate}
.ww-col:nth-child(even){animation-direction:alternate-reverse;animation-duration:30s}
@keyframes wwd{from{transform:translateY(-80px)}to{transform:translateY(80px)}}
.ww.off .ww-col{animation-play-state:paused}
.ww-t{aspect-ratio:4/3;border-radius:14px;overflow:hidden;background:var(--surf);box-shadow:0 30px 60px -20px #000}
.ww-t img{width:100%;height:100%;object-fit:cover}
.ww-s::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 80% 70% at 22% 82%,rgba(10,16,32,.94) 0,rgba(10,16,32,.62) 50%,rgba(10,16,32,.34) 100%),linear-gradient(0deg,var(--bg) 2%,rgba(10,16,32,0) 34%),linear-gradient(180deg,rgba(10,16,32,.8),rgba(10,16,32,0) 22%)}
.ww-h{position:relative;padding-bottom:clamp(40px,9svh,100px)}
.ww-h h1{font-size:clamp(3rem,12.5vw,13rem);letter-spacing:calc(-.07em*var(--tr));line-height:.9}
.ww-h .sub{margin-top:24px;color:#dde5f2}
@media(max-width:820px){.ww{height:130svh}.ww-g{width:1100px;gap:12px}.ww-col{gap:12px}}
.wgrid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}
.wc{position:relative;border-radius:24px;overflow:hidden;background:var(--surf);aspect-ratio:4/3;grid-column:span 6;text-decoration:none}
.wc:nth-child(3n+1){grid-column:span 7}.wc:nth-child(3n+2){grid-column:span 5}.wc:nth-child(3n){grid-column:span 12;aspect-ratio:21/9}
.wc .fr{position:absolute;inset:0;overflow:hidden;clip-path:inset(0)}.wc img{position:absolute;left:0;top:-6%;width:100%;height:112%;object-fit:cover;transition:transform 1.2s var(--ex)}
.wc:hover img{transform:scale(1.05)}
.wc::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,16,32,.85),transparent 55%)}
.wc .cp{position:absolute;left:24px;right:24px;bottom:22px;z-index:2;display:flex;justify-content:space-between;align-items:flex-end;gap:14px}.wc h3{font-size:clamp(1.4rem,2.4vw,2.2rem)}
.wc .ct2{display:block;margin-top:6px;font-size:.9rem;color:#d3dcea}
@media(max-width:760px){.wc,.wc:nth-child(n){grid-column:1/-1;aspect-ratio:4/3}}
.filt{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px}
.filt button{min-height:44px;padding:0 18px;border-radius:99px;background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px var(--line);font-weight:600;font-size:.92rem;transition:background-color .3s,color .3s}
.filt button:hover{background:rgba(255,255,255,.14)}.filt button[aria-pressed=true]{background:var(--ink);color:var(--bg)}
[data-cat].off{display:none}

/* ---------- services page: glass cards ("Also from the studio"); the cube hero is css/fx-services.css ---------- */
.gl-grid{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;isolation:isolate}
.gl-grid::before{content:"";position:absolute;inset:-6% 8%;z-index:-1;background:radial-gradient(closest-side,color-mix(in srgb,var(--acc) 30%,transparent),transparent);filter:blur(30px)}
.gl-card{display:flex;flex-direction:column;border-radius:26px;padding:14px 14px 22px;background:rgba(255,255,255,.07);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.16),inset 0 1px 0 rgba(255,255,255,.26)}
.gl-ph{position:relative;aspect-ratio:16/10;border-radius:16px;overflow:hidden;margin-bottom:20px;background:var(--bg2)}.gl-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ex)}.gl-card:hover .gl-ph img{transform:scale(1.03)}
.gl-card h3{font-size:clamp(1.3rem,2vw,1.7rem);letter-spacing:calc(-.04em*var(--tr));line-height:1.05;padding:0 10px}.gl-card p{color:var(--mut);padding:10px 10px 0}.gl-card .lnk{margin:auto 10px 0;padding-top:18px}
@media(max-width:900px){.gl-grid{grid-template-columns:1fr}}

/* ---------- about page: story + facts ---------- */
.story{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(24px,5vw,80px)}
.story p{font-size:clamp(1.1rem,1.6vw,1.4rem);line-height:1.5;color:#d3dcea;max-width:38rem}.story>div p+p{margin-top:1em}
.facts{display:grid;gap:12px;align-content:start}
.facts li{border-radius:20px;padding:20px 22px;background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.16),inset 0 1px 0 rgba(255,255,255,.22)}
.facts h3{font-size:1.25rem;letter-spacing:calc(-.03em*var(--tr));line-height:1.15;margin-bottom:8px}.story .facts p{font-size:1rem;color:var(--mut);line-height:1.5}
@media(max-width:820px){.story{grid-template-columns:1fr}}

/* ---------- contact page: details + form ---------- */
.cf-g{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(30px,6vw,90px);align-items:start}
.cf-g h2{font-size:clamp(2rem,4.2vw,3.6rem);letter-spacing:calc(-.05em*var(--tr));margin-bottom:26px}
.ad2{font-style:normal}.ad2>div{padding:16px 0;border-top:1px solid var(--line);font-size:1.1rem}.ad2>div>span:first-child{display:block;font-size:.85rem;color:var(--mut);margin-bottom:2px}.ad2 a{text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 2px no-repeat;transition:background-size .6s var(--ex)}.ad2 a:hover{background-size:100% 2px}.ad2 time{font-variant-numeric:tabular-nums}
.fm{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:16px}.fd{display:grid;gap:6px;min-width:0;align-content:start}.fd:nth-of-type(5){grid-column:1/-1}
.fd label{font-size:.88rem;font-weight:600;color:#c9d4e6}
.fd input,.fd select,.fd textarea{width:100%;min-height:52px;padding:12px 16px;border-radius:14px;border:1px solid rgba(255,255,255,.2);background-color:#101a33;color:var(--ink);font:inherit;transition:border-color .3s}
.fd textarea{resize:vertical;min-height:140px}
.fd input:hover,.fd select:hover,.fd textarea:hover{border-color:rgba(255,255,255,.4)}
.fd input:focus-visible,.fd select:focus-visible,.fd textarea:focus-visible{outline:2px solid var(--acc);outline-offset:2px;border-color:var(--acc);border-radius:14px}
.fd [aria-invalid=true]{border-color:#ff9a8a}.fd-e{font-size:.85rem;color:#ffb4a8}
.hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.fm-c{grid-column:1/-1;font-size:.85rem;color:var(--mut);line-height:1.5}.fm-c a{color:#dbe4f2;text-underline-offset:3px}
.fm-b{grid-column:1/-1;display:flex;align-items:center;gap:10px 18px;flex-wrap:wrap}
.fm-note{grid-column:1/-1;border:1px solid var(--acc);background:color-mix(in srgb,var(--acc) 13%,transparent);border-radius:14px;padding:14px 16px;display:grid;gap:4px}.fm-note b{font-size:1.05rem}.fm-note:focus{outline:none}
.fm-note.err{border-color:#ff9a8a;background:rgba(255,120,100,.1)}
@media(max-width:820px){.cf-g{grid-template-columns:1fr}}@media(max-width:560px){.fm{grid-template-columns:1fr}}
h2[id],section[id]{scroll-margin-top:calc(var(--hh) + 10px)}

/* ---------- privacy / terms / 404 ---------- */
.doc{padding:calc(var(--hh) + clamp(50px,9vw,120px)) 0 clamp(50px,7vw,100px)}
.doc h1{font-size:clamp(2.8rem,9vw,8rem);letter-spacing:calc(-.065em*var(--tr));line-height:.92}
.doc-d{margin-top:20px;color:var(--mut)}
.doc-b{margin-top:clamp(30px,5vw,64px);max-width:46rem;display:grid;gap:30px}
.doc-b h2{font-size:1.45rem;letter-spacing:calc(-.03em*var(--tr));line-height:1.15;margin-bottom:8px}.doc-b p{color:#d3dcea;line-height:1.6}.doc-b a,.nf-es a{text-underline-offset:3px}
.nf{min-height:72svh}.nf .hero-cta{margin-top:30px}.nf-es{margin-top:34px;color:var(--mut)}

/* ---------- reveal helpers / reduced motion ---------- */
.js .rv{opacity:0;transform:translateY(40px)}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{animation:none!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
 .js .rv,.js .split{opacity:1!important;transform:none!important;visibility:visible!important}
 .js .ld{display:none}.pi:nth-child(n+2){clip-path:inset(0);display:none}
 .stmt .w{opacity:1}.nv-pill a{opacity:1;transform:none}.band-f{clip-path:none}
 .hero,.ww{height:auto}.hero-pin,.ww-pin{position:relative}
 .proc{height:auto}.step{opacity:1}.step p{grid-template-rows:1fr;margin-top:10px}
 .js .cta-card:not(.in) rect{stroke-dashoffset:0}.js .cta-card:not(.in) h2,.js .cta-card:not(.in) p,.js .cta-card:not(.in) .btn{opacity:1;transform:none}
}
