
@font-face{font-family:"Archivo";src:url(../../assets/font/archivo-var.woff2) format("woff2");font-weight:100 900;font-stretch:62% 125%;font-display:swap}
@font-face{font-family:"General Sans";src:url(../../assets/font/generalsans-var.woff2) format("woff2");font-weight:200 700;font-display:swap}
:root{--c1:#E6E4DF;--c2:#12313A;--c3:#E8553B;
 --page:#DDE3E3;--card:#2B6E8F;--ink:#F1EFEA;--acc:#E8553B;--accInk:#FFF8F2;
 --f-body:"General Sans",system-ui,sans-serif;--f-ui:"General Sans",system-ui,sans-serif;--f-d:"Archivo","Arial Black",sans-serif;
 --e-out:cubic-bezier(.16,1,.3,1);--e-io:cubic-bezier(.77,0,.18,1);
 --cx:max(56px,calc((100vw - 1320px)/2));--ct:68px;--cb:24px}
html{background:var(--page)}
body{background:var(--page);transition:none}
.eyebrow{display:inline-flex;align-items:center;gap:10px;margin:0 0 14px;font:600 12px/1 var(--f-ui);letter-spacing:.14em;text-transform:uppercase}
.live{width:8px;height:8px;border-radius:50%;background:var(--acc);box-shadow:0 0 0 0 var(--acc);animation:live 2s infinite}
@keyframes live{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--acc) 60%,transparent)}70%{box-shadow:0 0 0 10px transparent}100%{box-shadow:0 0 0 0 transparent}}
svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.mark{width:34px;height:20px;fill:currentColor;stroke:none}

/* ---------- stage ---------- */
.stage{position:relative;height:100vh;min-height:640px;overflow:hidden;background:var(--page);color:var(--ink)}
.card{position:absolute;inset:0;background:var(--card);--i:1;
 clip-path:inset(calc(var(--ct)*var(--i)) calc(var(--cx)*var(--i)) calc(var(--cb)*var(--i)) calc(var(--cx)*var(--i)) round calc(30px*var(--i)));
 box-shadow:0 40px 80px -40px rgba(18,49,58,.35)}
.flood{position:absolute;inset:0;background:var(--nextc,transparent);clip-path:circle(0 at 50% 50%)}
.browser{position:absolute;z-index:3;top:calc(var(--ct) + 14px);left:calc(var(--cx) + 22px);right:calc(var(--cx) + 22px);height:30px;display:flex;align-items:center;justify-content:space-between;color:var(--ink)}
.b-dots{display:flex;gap:7px;width:80px}.b-dots i{width:11px;height:11px;border-radius:50%;background:currentColor;opacity:.28}
.b-url{display:inline-flex;align-items:center;gap:8px;height:30px;padding:0 16px;border-radius:999px;background:color-mix(in srgb,var(--ink) 12%,transparent);font:500 12.5px/1 var(--f-ui);letter-spacing:.02em}
.b-url svg{width:13px;height:13px;stroke-width:2.2}
.b-r{width:80px}
.cnav{position:absolute;z-index:6;top:calc(var(--ct) + 62px);left:calc(var(--cx) + 34px);right:calc(var(--cx) + 34px);display:flex;align-items:center;justify-content:space-between;color:var(--ink)}
.cnav a{text-decoration:none}
.brand{display:inline-flex;align-items:center;gap:10px;font:800 17px/1 var(--f-d);font-stretch:125%;letter-spacing:.04em}
.cnav-links{display:flex;gap:4px;padding:5px;border-radius:999px;background:color-mix(in srgb,var(--ink) 11%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.cnav-links a{padding:10px 18px;border-radius:999px;font:600 13.5px/1 var(--f-ui);transition:background .3s,color .3s}
.cnav-links a.on,.cnav-links a:hover{background:var(--ink);color:var(--card)}
.cnav-r{display:flex;gap:8px}
.ic{position:relative;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--ink) 28%,transparent);background:transparent;color:var(--ink);transition:background .3s,color .3s}
.ic:hover{background:var(--ink);color:var(--card)}
.ic svg{width:18px;height:18px}
.bagn{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:var(--acc);color:var(--accInk);font:700 10.5px/18px var(--f-ui);text-align:center}
.giant{position:absolute;z-index:1;inset:0;padding-top:calc(var(--ct) + 108px);margin:0;clip-path:inset(calc(var(--ct)*var(--i,1)) calc(var(--cx)*var(--i,1)) calc(var(--cb)*var(--i,1)) calc(var(--cx)*var(--i,1)) round calc(30px*var(--i,1)));display:flex;justify-content:center;align-items:flex-start;pointer-events:none;
 font:900 min(19.5vw,40vh)/.78 var(--f-d);font-stretch:125%;letter-spacing:-.045em;color:color-mix(in srgb,var(--ink) 16%,var(--card));white-space:nowrap}
.gw{display:flex}.gw>span{display:inline-block;will-change:transform}
.g3{font-size:.2em;letter-spacing:0;line-height:1;margin:.2em 0 0 .25em;font-stretch:100%;color:var(--acc)}
.gl{position:absolute;z-index:2;inset:0;width:100%;height:100%;touch-action:pan-y;cursor:grab}
.gl:active{cursor:grabbing}
.hero-ui{position:absolute;z-index:5;inset:0;pointer-events:none}
.hero-ui>*{pointer-events:auto}
.h-left{position:absolute;left:calc(var(--cx) + 44px);bottom:calc(var(--cb) + 40px);max-width:420px}
.h-title{margin:0 0 14px;font:800 clamp(34px,3.4vw,52px)/.95 var(--f-d);font-stretch:112%;letter-spacing:-.035em}
.h-copy{margin:0 0 22px;font:400 15px/1.5 var(--f-body);opacity:.86;max-width:31ch}
.h-cta{display:flex;gap:10px}
.pill{display:inline-flex;align-items:center;gap:10px;height:50px;padding:0 24px;border-radius:999px;font:700 14.5px/1 var(--f-ui);text-decoration:none;border:0;letter-spacing:.005em;transition:background .35s,color .35s,box-shadow .35s}
.pill svg{width:17px;height:17px;stroke-width:2.2;transition:transform .45s var(--e-out)}
.pill:hover svg{transform:rotate(45deg)}
.pill-a{background:var(--acc);color:var(--accInk);box-shadow:0 14px 30px -14px color-mix(in srgb,var(--acc) 80%,transparent)}
.pill-g{background:transparent;color:var(--ink);border:1.5px solid color-mix(in srgb,var(--ink) 40%,transparent)}
.pill-g:hover{background:var(--ink);color:var(--card)}
.h-right{position:absolute;right:calc(var(--cx) + 44px);bottom:calc(var(--cb) + 40px);display:grid;justify-items:end;gap:16px}
.cw-name{text-align:right}
.cw-name small{display:block;font:600 11px/1 var(--f-ui);letter-spacing:.16em;text-transform:uppercase;opacity:.7;margin-bottom:6px}
.cw-name b{display:block;font:800 30px/1 var(--f-d);font-stretch:118%;letter-spacing:-.02em}
.sws{display:flex;gap:8px}
.sw{display:flex;align-items:center;gap:10px;height:52px;padding:0 16px 0 7px;border-radius:999px;border:1.5px solid color-mix(in srgb,var(--ink) 22%,transparent);background:transparent;color:var(--ink);transition:border-color .3s,background .3s}
.sw i{position:relative;width:36px;height:36px;border-radius:50%;background:var(--sw);box-shadow:inset 0 0 0 2px color-mix(in srgb,#fff 40%,transparent)}
.sw span{text-align:left;font:700 13px/1.1 var(--f-ui)}.sw small{display:block;font-weight:500;font-size:10.5px;opacity:.65}
.sw[aria-selected="true"]{background:color-mix(in srgb,var(--ink) 14%,transparent);border-color:var(--ink)}
.sw:hover{border-color:color-mix(in srgb,var(--ink) 60%,transparent)}
.pager{display:flex;align-items:center;gap:12px}
.arw{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;border:0;background:var(--ink);color:var(--card);transition:background .35s,color .35s}
.arw svg{width:20px;height:20px;stroke-width:2.4}
.count{font:600 13px/1 var(--f-ui);letter-spacing:.06em;opacity:.8;min-width:62px;text-align:center}.count b{font-weight:800;opacity:1}
.dots{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(var(--cb) + 78px);display:flex;gap:6px}
.dot{width:26px;height:26px;padding:0;border:0;background:none;color:var(--ink);display:grid;place-items:center}
.dot svg{width:20px;height:20px;transform:rotate(-90deg)}
.dot circle{stroke:currentColor;stroke-width:2;opacity:.35;stroke-dasharray:50.3;stroke-dashoffset:0;fill:none}
.dot.on circle{opacity:1;fill:color-mix(in srgb,var(--ink) 20%,transparent);stroke-dashoffset:calc(50.3*(1 - var(--p,1)))}
.hint{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(var(--cb) + 44px);margin:0;display:flex;align-items:center;gap:8px;font:500 12px/1 var(--f-ui);opacity:.7;white-space:nowrap;pointer-events:none}
.hint svg{width:15px;height:15px}
.scrollcue{position:absolute;z-index:6;left:50%;bottom:-2px;transform:translate(-50%,50%);width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--c2);color:var(--c1);opacity:0}
/* tech phase */
.tech{position:absolute;z-index:4;inset:0;pointer-events:none;color:var(--ink)}
.t-head{position:absolute;left:max(48px,6vw);top:22vh;max-width:420px;opacity:0}
.t-head h2{margin:0 0 22px;font:900 clamp(44px,4.6vw,76px)/.9 var(--f-d);font-stretch:118%;letter-spacing:-.045em}
.t-prog{display:flex;align-items:center;gap:12px;margin:0;font:600 13px/1 var(--f-ui);letter-spacing:.08em}
.t-prog i{position:relative;width:120px;height:2px;background:color-mix(in srgb,var(--ink) 25%,transparent);overflow:hidden}
.t-prog s{position:absolute;inset:0;background:var(--acc);transform-origin:0 50%;transform:scaleX(var(--tp,0))}
.lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.lines path{stroke:var(--ink);stroke-width:1.4;fill:none}
.lines circle{fill:var(--acc);stroke:var(--ink);stroke-width:2}
.lines .ring{fill:none;stroke:var(--acc);stroke-width:1.5}
.co{position:absolute;display:flex;align-items:center;gap:12px;padding:10px 20px 10px 10px;border-radius:999px;background:color-mix(in srgb,var(--page) 88%,transparent);color:var(--c2);
 -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 18px 40px -22px rgba(18,49,58,.45);opacity:0;transform:translateY(14px) scale(.96);max-width:290px}
.co-n{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--acc);color:var(--accInk);font:800 12px/1 var(--f-ui)}
.co-t b{display:block;font:700 15px/1.15 var(--f-ui)}.co-t small{display:block;font:400 12.5px/1.35 var(--f-body);opacity:.75;margin-top:2px}

/* ---------- specs ---------- */
.wrap{max-width:1320px;margin:0 auto;padding:0 56px}
.specs{background:var(--c2);color:var(--c1);padding:130px 0 120px;position:relative;z-index:2}
.sp{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid color-mix(in srgb,var(--c1) 20%,transparent)}
.sp li{padding:34px 26px 10px 0;border-right:1px solid color-mix(in srgb,var(--c1) 14%,transparent);margin-right:26px}
.sp li:last-child{border-right:0;margin-right:0}
.sp-v{display:flex;align-items:baseline;gap:8px;margin-bottom:22px}
.sp-num{display:inline-flex;font:900 clamp(64px,7.4vw,124px)/1 var(--f-d);font-stretch:125%;letter-spacing:-.05em}
.sp-v em{font:700 18px/1 var(--f-ui);font-style:normal;color:var(--c3)}
.od{display:inline-block;height:1em;overflow:hidden;line-height:1}
.od-r{display:block;transform:translateY(0);transition:transform 1.8s var(--e-out)}
.od-r i{display:block;height:1em;font-style:normal}
.sp b{display:block;font:700 17px/1.2 var(--f-ui)}.sp small{display:block;font:400 14px/1.4 var(--f-body);opacity:.65;margin-top:4px}
/* ---------- band ---------- */
.band{padding:90px 0;overflow:hidden;background:var(--page);color:var(--c2)}
.band-row{white-space:nowrap;font:900 11vw/.95 var(--f-d);font-stretch:125%;letter-spacing:-.045em;text-transform:uppercase;will-change:transform}
.band-row span{display:inline-block}
.r2{color:transparent;-webkit-text-stroke:2px var(--c2);margin-left:-30vw}
/* ---------- size ---------- */
.size{padding:120px 0 140px;background:var(--page);color:var(--c2)}
.size-in{display:grid;grid-template-columns:1fr 1.05fr;gap:72px;align-items:center}
.sz-card{position:relative;aspect-ratio:4/4.4;border-radius:36px;background:var(--card);color:var(--ink);padding:40px;overflow:hidden;display:flex;flex-direction:column}
.sz-big{flex:1;display:flex;align-items:center;justify-content:center;gap:12px}
.sz-big small{font:700 22px/1 var(--f-ui);align-self:flex-start;margin-top:30%}
.sz-roll{display:inline-block;overflow:hidden;height:1em;font:900 min(22vw,300px)/1 var(--f-d);font-stretch:125%;letter-spacing:-.06em}
.szv{display:block}
.sz-meta{margin:0;font:600 15px/1 var(--f-ui)}
.sz-mark{position:absolute;right:36px;bottom:34px}.sz-mark .mark{width:58px;height:34px}
.sz-pick h2{margin:0 0 12px;font:900 clamp(48px,5vw,84px)/.9 var(--f-d);font-stretch:118%;letter-spacing:-.045em}
.sz-lead{margin:0 0 30px;font:400 17px/1.5 var(--f-body);opacity:.8}
.szs{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:16px}
.sz{height:54px;border-radius:999px;border:1.5px solid color-mix(in srgb,var(--c2) 22%,transparent);background:transparent;font:700 15px/1 var(--f-ui);transition:background .3s,color .3s,border-color .3s,transform .3s var(--e-out)}
.sz:hover{border-color:var(--c2);transform:translateY(-2px)}
.sz.on{background:var(--c2);color:var(--c1);border-color:var(--c2)}
.wds{display:inline-flex;padding:5px;border-radius:999px;background:color-mix(in srgb,var(--c2) 8%,transparent);margin-bottom:30px}
.wd{height:42px;padding:0 22px;border-radius:999px;border:0;background:transparent;font:700 14px/1 var(--f-ui);transition:background .3s,color .3s}
.wd.on{background:var(--c1);box-shadow:0 6px 16px -8px rgba(18,49,58,.4)}
.sz-act{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.sz-act small{font:400 13px/1.4 var(--f-body);opacity:.6}
.addbag{height:58px;padding:0 30px}
.addbag svg{width:0;opacity:0;transition:width .4s var(--e-out),opacity .3s}
.addbag.done svg{width:18px;opacity:1}
.addbag:hover svg{transform:none}
/* ---------- cta ---------- */
.cta{padding:150px 0 170px;background:var(--card);color:var(--ink);text-align:center;position:relative;overflow:hidden;transition:background .8s}
.cta-h{margin:0 auto 46px;font:900 clamp(60px,8.4vw,150px)/.86 var(--f-d);font-stretch:122%;letter-spacing:-.05em}
.cta-h em{font-style:normal;color:transparent;-webkit-text-stroke:2px var(--ink)}
.round{display:inline-grid;place-items:center;align-content:center;gap:10px;width:170px;height:170px;border-radius:50%;background:var(--acc);color:var(--accInk);text-decoration:none;font:700 15px/1.15 var(--f-ui);transition:background .35s}
.round svg{width:22px;height:22px}
/* cursor */
.cursor{position:fixed;z-index:95;left:0;top:0;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--c2);pointer-events:none;display:grid;place-items:center;transition:width .35s var(--e-out),height .35s var(--e-out),margin .35s var(--e-out),background .3s;opacity:0}
.cursor span{font:700 12px/1 var(--f-ui);color:var(--c1);opacity:0;transition:opacity .2s;letter-spacing:.04em}
.cursor.big{width:78px;height:78px;margin:-39px 0 0 -39px;background:var(--acc)}
.cursor.big span{opacity:1;color:var(--accInk)}
@media (hover:none){.cursor{display:none}}
@media (max-height:760px){.h-copy{display:none}.cnav{top:calc(var(--ct) + 56px)}}
@media (max-width:1180px){.cnav-links{display:none}.sws .sw span{display:none}.sw{padding:0 7px}}
@media (prefers-reduced-motion:reduce){.live{animation:none}.od-r{transition:none}}

/* reduced motion: no pinning, the tech callouts become a static block */
body.rm .tech{position:relative;inset:auto;z-index:2;padding:110px max(48px,6vw);background:var(--card);color:var(--ink);display:grid;grid-template-columns:1fr 1.3fr;gap:48px;align-items:center;pointer-events:auto}
body.rm .t-head{position:static;opacity:1;transform:none}
body.rm .cos{display:grid;grid-template-columns:1fr 1fr;gap:14px}
body.rm .co{position:static;opacity:1;transform:none;max-width:none}
body.rm .lines,body.rm .t-prog{display:none}

/* ---------- Night run mode ---------- */
html.night{--c1:#12313A;--c2:#E6E4DF}
.mode{display:inline-flex;align-items:center;gap:9px;height:42px;padding:0 16px 0 5px;border-radius:999px;border:1px solid color-mix(in srgb,var(--ink) 28%,transparent);background:color-mix(in srgb,var(--ink) 8%,transparent);color:var(--ink);font:700 13px/1 var(--f-ui);letter-spacing:.01em;cursor:pointer;transition:background .4s,border-color .4s,color .4s}
.mode:hover{background:color-mix(in srgb,var(--ink) 16%,transparent)}
.mode:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
.mk{position:relative;width:32px;height:32px;border-radius:50%;background:var(--ink);color:var(--card);display:grid;place-items:center;overflow:hidden;transition:background .5s,color .5s}
.mk svg{position:absolute;width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;transition:transform .7s var(--e-out),opacity .5s}
.mk .i-moon{fill:currentColor;stroke:none;transform:translateY(130%) rotate(-40deg);opacity:0}
html.night .mk{background:var(--c3);color:#FFF8F2;box-shadow:0 0 22px -2px rgba(232,85,59,.75)}
html.night .mk .i-sun{transform:translateY(-130%) rotate(90deg);opacity:0}
html.night .mk .i-moon{transform:none;opacity:1}
.lampfx{position:absolute;inset:0;opacity:0;transition:opacity 1s;background:radial-gradient(circle 360px at var(--lx,62%) var(--ly,46%),rgba(255,236,214,.13),rgba(255,236,214,.04) 45%,transparent 72%)}
.streaks{position:absolute;left:0;right:0;bottom:16%;height:26%;opacity:0;transition:opacity 1s;overflow:hidden}
.streaks i{position:absolute;left:0;height:2px;width:34%;border-radius:2px;background:linear-gradient(90deg,transparent,rgba(232,85,59,.75),rgba(255,214,190,.9));filter:blur(.4px);transform:translateX(320%);animation:streak 3.2s cubic-bezier(.55,0,.3,1) infinite}
.streaks i:nth-child(1){top:22%;animation-delay:.2s}
.streaks i:nth-child(2){top:58%;width:22%;animation-delay:1.3s;animation-duration:2.6s;background:linear-gradient(90deg,transparent,rgba(143,214,255,.55),rgba(220,244,255,.85))}
.streaks i:nth-child(3){top:86%;width:44%;animation-delay:2.2s;animation-duration:3.8s}
@keyframes streak{0%{transform:translateX(320%)}100%{transform:translateX(-120%)}}
html.night .lampfx,html.night .streaks{opacity:1}
html.night .gw>span{color:transparent;-webkit-text-stroke:2px rgba(241,239,234,.62);text-shadow:0 0 60px rgba(232,85,59,.45)}
html.night .card{box-shadow:0 40px 90px -30px rgba(232,85,59,.28),0 0 0 1px rgba(241,239,234,.06)}
@media (prefers-reduced-motion:reduce){.streaks{display:none}}
/* mode switch view transition */
::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}
html.vt-close::view-transition-old(root){z-index:2}
html.vt-close::view-transition-new(root){z-index:1}
html.night .specs,html.night .zl-foot,html.night .m-specs{--c1:#E6E4DF;--c2:#081C21}

/* design pass (Oct 27): Inter Tight -> General Sans for text/UI; Archivo Expanded stays the display face. */
.eyebrow,.cw-name small,.t-prog{letter-spacing:.18em;font-weight:500}

/* glass body (helper) */
.cnav-links.lg,.mode.lg,.bagbtn.lg,.pill-g.lg{--lg-ink:#12313A}
.cnav-links.lg{--lg-alpha-dark:34%}
.mode.lg,.bagbtn.lg,.pill-g.lg{--lg-alpha-dark:30%}
.pill-a.lg{--lg-ink:#CC4128}
.lg.lg--ink{--_al:96%}

/* v3 gaps (Oct 28): first screen. A still of this same model at rest holds the shoe's place from first paint;
   the live 3D fades in over it once loaded (see app.js "first screen"). The still is sized with the same rule as
   the 3D shoe (length = min(40% of the stage width, 95% of its height), centred, 2% low), so nothing moves. */
.stage{--st-kx:1.0791}
.st-still{position:absolute;z-index:2;left:50%;top:52%;width:min(calc(var(--st-kx) * 40%),calc(var(--st-kx) * max(95vh,608px)));max-width:none;height:auto;transform:translate(-50%,-50%);pointer-events:none;user-select:none;-webkit-user-drag:none;transition:opacity .7s cubic-bezier(.2,.8,.2,1)}
.gl{opacity:0;transition:opacity .7s cubic-bezier(.2,.8,.2,1)}
.st-live .gl,html.no-webgl .gl{opacity:1}
.st-live .st-still{opacity:0}
html.no-webgl .hint{visibility:hidden}
.st-prog{position:absolute;z-index:6;left:50%;bottom:calc(var(--cb) + 112px);transform:translateX(-50%);display:flex;align-items:center;gap:9px;margin:0;font:600 11px/1 var(--f-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);opacity:.72;pointer-events:none;transition:opacity .6s}
.st-prog[hidden]{display:none}
.st-prog i{position:relative;display:block;width:96px;height:2px;border-radius:2px;background:color-mix(in srgb,currentColor 22%,transparent);overflow:hidden}
.st-prog i::after{content:"";position:absolute;inset:0;background:currentColor;transform-origin:0 50%;transform:scaleX(var(--f,0));transition:transform .25s linear}
.st-prog-n{min-width:3.2em;font-variant-numeric:tabular-nums}
.st-prog.done{opacity:0}
