/* FutFriend site — layout and scroll scenes.
   Component looks come from app-ui.css (the apps' own stylesheet, scoped to .ff-desk / .ff-phone)
   and tokens.css. Scroll-driven values are written by js/story.js as CSS variables and transforms. */

*,*::before,*::after{box-sizing:border-box}
html{color-scheme:dark;-webkit-text-size-adjust:100%;scroll-padding-top:76px}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 var(--font-sans);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;overflow-x:clip}
img,svg{display:block;max-width:100%}
a{color:inherit}
button,input{font:inherit;color:inherit}
h1,h2,h3,h4,p{margin:0}
[hidden]{display:none!important}
:focus-visible{outline:2px solid #fff;outline-offset:2px;border-radius:6px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:16px;top:-60px;z-index:100;background:#fff;color:var(--lime-ink);padding:10px 16px;border-radius:999px;font-weight:650;text-decoration:none}
.skip:focus{top:12px}
.muted{color:var(--mut)}
.wrap{width:100%;max-width:1240px;margin:0 auto;padding:0 32px}
.sep{display:inline-block;width:3px;height:3px;border-radius:50%;background:rgba(255,255,255,.32);flex:none;vertical-align:middle;margin:0 8px}
.ldot{width:7px;height:7px;border-radius:50%;background:var(--go);flex:none;display:inline-block;animation:p-pulse 2.2s ease-out infinite}

/* ---------- shared bits ---------- */
.pill{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 18px;border:0;border-radius:999px;font-size:14.5px;font-weight:600;line-height:1;white-space:nowrap;text-decoration:none;cursor:pointer;transition:transform .09s,filter .15s,background-color .15s}
.pill:active{transform:scale(.97)}
.pill.light{background:#fff;color:var(--lime-ink);font-weight:650;box-shadow:var(--shadow-pill)}
.pill.light:hover{filter:brightness(.93)}
.pill.glass{background:rgba(255,255,255,.11);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);color:#fff;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}
.pill.glass:hover{background:rgba(255,255,255,.17)}
.pill.big{height:52px;padding:0 24px;font-size:15.5px}
.pill.sm{height:36px;padding:0 14px;font-size:13.5px}
.pill:disabled{opacity:.4;cursor:default;transform:none}
.badge{display:inline-flex;align-items:center;gap:8px;height:28px;padding:0 12px 0 10px;border-radius:999px;background:var(--glass);box-shadow:inset 0 0 0 1px var(--glass-line);font-size:12.5px;font-weight:600;color:var(--ink);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}
.badge.sm{height:24px;padding:0 10px;font-size:11.5px}
.bdot{width:7px;height:7px;border-radius:50%;background:#fff}
.seg{display:inline-grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:2px;padding:3px;border-radius:12px;background:var(--well);box-shadow:inset 0 0 0 1px var(--glass-line)}
.seg button{height:30px;min-width:44px;padding:0 12px;border:0;border-radius:9px;background:transparent;color:var(--mut);font-size:13px;font-weight:600;cursor:pointer;transition:background-color .15s,color .15s}
.seg button:hover{color:#fff}
.seg button[aria-pressed="true"]{background:var(--glass-hi);color:#fff;box-shadow:var(--shadow-thumb)}
.seg-os button{height:36px;min-width:96px;font-size:14px}
.gl-s{background:var(--glass);box-shadow:var(--shadow-glass);border-radius:var(--r-l)}
.eyebrow{font-size:13px;font-weight:600;color:var(--mut);margin-bottom:12px}
.huge{font-size:clamp(44px,8vw,112px);line-height:.95;font-weight:700;letter-spacing:-.045em}
.big2{font-size:clamp(34px,5vw,64px);line-height:1;font-weight:700;letter-spacing:-.035em}
.mega{font-size:clamp(64px,13vw,184px);line-height:.88;font-weight:700;letter-spacing:-.055em}
.sec-lead{margin-top:16px;font-size:18px;line-height:1.55;color:var(--ink2);max-width:560px}
.hero-note{margin-top:16px;font-size:13px;color:var(--mut)}

/* the page ambience, as in the apps: the picture blurred behind everything, cross-faded per section */
.amb{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;background:var(--bg)}
.amb-rest{position:absolute;inset:0;background:radial-gradient(115% 115% at 50% 38%,var(--rest-center) 0%,var(--rest-mid) 52%,var(--rest-edge) 100%)}
.amb-l{position:absolute;inset:-80px;background:center/cover no-repeat;filter:blur(36px) saturate(1.2);opacity:0;transition:opacity .9s ease}
.amb-l.on{opacity:1}
.amb-l.gold{background-image:radial-gradient(60% 50% at 50% 40%,rgba(230,192,103,.35),transparent 70%)!important;filter:none}
.amb-shade{position:absolute;inset:0;background:linear-gradient(180deg,var(--shade-top),var(--shade-bottom))}
body{background:transparent}
html{background:var(--bg)}

/* scroll progress */
.scroll-prog{position:fixed;left:0;right:0;top:0;height:2px;z-index:60;pointer-events:none}
.scroll-prog i{display:block;height:100%;width:100%;background:#fff;transform-origin:0 50%;transform:scaleX(var(--sp,0))}

/* ---------- header ---------- */
.hdr{position:fixed;left:0;right:0;top:0;z-index:50;transition:background-color .3s,box-shadow .3s}
.hdr.solid{background:var(--hdr-bg);-webkit-backdrop-filter:blur(20px) saturate(1.4);backdrop-filter:blur(20px) saturate(1.4);box-shadow:inset 0 -1px 0 rgba(255,255,255,.06)}
.hdr-in{display:flex;align-items:center;gap:24px;height:64px}
.hdr-logo{flex:none;border-radius:8px}
.hdr-logo img{height:34px;width:auto}
.hdr-nav{display:flex;gap:4px;margin-left:12px}
.hdr-nav a{padding:8px 12px;border-radius:999px;text-decoration:none;font-size:14px;font-weight:500;color:var(--ink2);transition:background-color .15s,color .15s}
.hdr-nav a:hover{color:#fff;background:var(--glass)}
.hdr-end{margin-left:auto;display:flex;align-items:center;gap:10px}

/* ======================================================================
   scenes: a tall section with a sticky stage; story.js writes progress
   ====================================================================== */
.scene{position:relative}
.sticky{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.js .wk{height:560vh}
.js .xa{height:440vh}
.js .pb{height:340vh}
.js .su{height:360vh}
.js .mc{height:300vh}
.js .ph{height:360vh}

/* ---------- 0 · walkout ---------- */
.wk .sticky{--cardH:clamp(250px,50vh,480px);--cardW:calc(var(--cardH) * .719)}
.wk-bg{position:absolute;inset:0;z-index:0}
.wk-amb{position:absolute;inset:-80px;background:url(../media/match-4.jpg) center/cover,url(../img/match-ambient.jpg) center/cover;filter:blur(26px) saturate(1.1) brightness(var(--amb,.32));transform:scale(var(--ambz,1.08))}
.wk-amb::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 45%,transparent 30%,rgba(6,7,9,.92) 80%)}
.wk-beams{position:absolute;left:50%;top:48%;width:240vmax;height:240vmax;margin:-120vmax 0 0 -120vmax;opacity:var(--beams,0);transform:rotate(var(--rot,0deg));
  background:repeating-conic-gradient(from 0deg,rgba(243,217,138,0) 0deg 7deg,rgba(243,217,138,.22) 9deg,rgba(253,234,168,.05) 11deg,rgba(243,217,138,0) 13deg 22deg);
  -webkit-mask-image:radial-gradient(circle,#000 0,rgba(0,0,0,.6) 12%,transparent 34%);mask-image:radial-gradient(circle,#000 0,rgba(0,0,0,.6) 12%,transparent 34%)}
.wk-beams i{display:none}
.wk-spot{position:absolute;left:50%;top:48%;width:90vmin;height:90vmin;margin:-45vmin 0 0 -45vmin;border-radius:50%;background:radial-gradient(closest-side,rgba(230,192,103,.42),rgba(199,154,65,.12) 55%,transparent);opacity:var(--spot,0);transform:scale(var(--spotz,1))}
.wk-floor{position:absolute;left:0;right:0;bottom:0;height:42%;background:radial-gradient(60% 70% at 50% 0%,rgba(230,192,103,calc(var(--spot,0) * .16)),transparent 70%),linear-gradient(180deg,transparent,rgba(6,7,9,.9));}
.wk-flash{position:absolute;inset:0;background:radial-gradient(circle at 50% 48%,#fff8e2,rgba(253,234,168,.6) 30%,rgba(230,192,103,0) 70%);opacity:var(--flash,0);mix-blend-mode:screen}
.wk-top{position:absolute;left:0;right:0;top:86px;z-index:3;display:flex;justify-content:center;opacity:var(--topo,1)}
.wk-stage{position:absolute;inset:0;z-index:2;perspective:1400px}
.wk-cardwrap,.wk-pack{position:absolute;left:50%;top:48%;width:var(--cardW);height:var(--cardH);margin:calc(var(--cardH) / -2) 0 0 calc(var(--cardW) / -2);will-change:transform}
.wk-card{position:absolute;inset:0;transform-style:preserve-3d;will-change:transform}
.wk-card .face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.wk-card .face img{width:100%;height:100%}
.wk-card .back{transform:rotateY(180deg)}
.wk-card .back img{filter:brightness(.16) saturate(.4) drop-shadow(0 0 1.5px rgba(243,217,138,.95)) drop-shadow(0 0 22px rgba(230,192,103,.45))}
.wk-card .front img{filter:drop-shadow(0 40px 60px rgba(0,0,0,.65)) drop-shadow(0 0 calc(var(--glow,0) * 60px) rgba(230,192,103,.55))}
.shine{position:absolute;inset:0;pointer-events:none;-webkit-mask:url(../img/futfriend-mark.svg) center/100% 100% no-repeat;mask:url(../img/futfriend-mark.svg) center/100% 100% no-repeat;overflow:hidden}
.shine::before{content:"";position:absolute;top:-20%;bottom:-20%;width:38%;left:0;background:linear-gradient(100deg,transparent,rgba(255,255,255,.75) 48%,rgba(255,250,225,.9) 50%,transparent);transform:translateX(var(--sh,-150%)) skewX(-16deg);mix-blend-mode:overlay}
.wk-reflect{position:absolute;left:8%;right:8%;bottom:-12%;height:10%;border-radius:50%;background:radial-gradient(closest-side,rgba(0,0,0,.65),transparent);filter:blur(4px)}
.wk-pack{width:calc(var(--cardW) * 1.14);height:calc(var(--cardH) * 1.1);margin:calc(var(--cardH) * -.55) 0 0 calc(var(--cardW) * -.57)}
.pk{position:absolute;inset:0;will-change:transform,opacity}
.pk-top{clip-path:inset(0 0 74% 0)}
.pk-bot{clip-path:inset(26% 0 0 0)}
.pk-face{position:absolute;inset:0;border-radius:22px;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;
  background:linear-gradient(165deg,#30323a 0%,#16171c 42%,#0d0e11 70%,#1d1f25 100%);
  box-shadow:inset 0 0 0 1.5px rgba(243,217,138,.7),inset 0 0 0 7px rgba(10,11,14,.9),inset 0 0 0 8px rgba(243,217,138,.28),0 40px 90px -30px rgba(0,0,0,.9)}
.pk-face::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,rgba(255,255,255,.025) 0 2px,transparent 2px 9px)}
.pk-face::after{content:"";position:absolute;top:-30%;bottom:-30%;width:45%;left:-60%;background:linear-gradient(100deg,transparent,rgba(255,240,200,.16),transparent);transform:translateX(var(--sheen,0%)) skewX(-14deg)}
.pk-face img{width:42%;height:auto;filter:drop-shadow(0 10px 24px rgba(0,0,0,.6));position:relative}
.pk-name{position:relative;font-size:calc(var(--cardH) * .062);font-weight:700;letter-spacing:-.01em;color:var(--gold-light)}
.pk-sub{position:relative;font-size:calc(var(--cardH) * .03);font-weight:600;color:rgba(243,217,138,.6)}
.pk-tear{position:absolute;left:4%;right:4%;top:26%;height:2px;margin-top:-1px;background:linear-gradient(90deg,transparent,#fff6d6 20%,#fff 50%,#fff6d6 80%,transparent);transform:scaleX(var(--tear,0));box-shadow:0 0 18px 3px rgba(253,234,168,calc(var(--tear,0) * .8));opacity:var(--tearo,1)}
.wk-clues{position:absolute;inset:0;z-index:3;display:grid;place-items:center;pointer-events:none}
.wk-clue{grid-area:1/1;display:flex;flex-direction:column;align-items:center;gap:6px;opacity:0;will-change:transform,opacity,filter}
.wk-clue span{font-size:clamp(14px,1.6vw,18px);font-weight:600;color:var(--gold-light)}
.wk-clue b{font-size:clamp(110px,24vw,300px);line-height:.85;font-weight:800;letter-spacing:-.05em;color:#fff;text-shadow:0 0 60px rgba(230,192,103,.35)}
.wk-copy{position:absolute;z-index:3;left:0;right:0;top:50%;transform:translateY(-50%);pointer-events:none;opacity:0}
.wk-copy.on{pointer-events:auto}
.wk-copy>*{max-width:600px}
.xa-h1{font-size:clamp(46px,6.6vw,96px);line-height:.95;font-weight:700;letter-spacing:-.045em}
.xa-h1 .dim{color:rgba(255,255,255,.42)}
.lead{margin-top:24px;font-size:clamp(16px,1.4vw,19px);line-height:1.55;color:var(--ink2);max-width:500px}
.hero-cta{margin-top:32px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.hero-cta.center{justify-content:center}
.scroll-hint{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);z-index:3;display:flex;flex-direction:column;align-items:center;gap:10px;font-size:12.5px;font-weight:600;color:var(--ink2);opacity:var(--hint,1);white-space:nowrap}
.scroll-hint i{width:1px;height:38px;background:linear-gradient(180deg,rgba(255,255,255,.7),transparent);animation:hint 1.8s cubic-bezier(.6,0,.3,1) infinite;transform-origin:top}
@keyframes hint{0%{transform:scaleY(0);opacity:1}60%{transform:scaleY(1);opacity:1}100%{transform:scaleY(1);opacity:0}}

/* ---------- 1 · the app taken apart ---------- */
.xa .sticky{background:radial-gradient(90% 70% at 50% 40%,rgba(26,28,34,.35) 0%,rgba(11,12,15,.55) 75%)}
.xa-bg{position:absolute;inset:0}
.xa-amb{position:absolute;inset:-60px;background:url(../img/match-ambient.jpg) center/cover;filter:blur(30px) saturate(1.1);opacity:var(--ambo,.35)}
.xa-amb{display:none}
.xa-floor{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(60% 55% at 50% 55%,#000,transparent);mask-image:radial-gradient(60% 55% at 50% 55%,#000,transparent);opacity:var(--grid,0)}
.xa-eyebrow{position:absolute;left:0;right:0;top:96px;z-index:3;text-align:center;opacity:var(--eye,0);transform:translateY(calc((1 - var(--eye,0)) * 16px))}
.xa-eyebrow span{font-size:clamp(28px,4vw,52px);font-weight:700;letter-spacing:-.035em}
.xa-view{position:absolute;inset:0;perspective:2200px;perspective-origin:50% 40%}
.xa-world{position:absolute;left:50%;top:50%;width:1000px;height:586px;margin:-293px 0 0 -500px;transform-style:preserve-3d;will-change:transform}
.xl{position:absolute;will-change:transform,opacity}
.xa-anchor{position:absolute;width:1px;height:1px}
.xl-base{left:0;top:0;width:1000px;height:586px;border-radius:20px;background:linear-gradient(180deg,rgba(24,26,31,.97),rgba(14,15,19,.97));box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),inset 0 1px 0 rgba(255,255,255,.07),0 60px 120px -40px rgba(0,0,0,.9)}
.win-bar{display:flex;align-items:center;gap:14px;height:52px;padding:0 14px 0 16px;box-shadow:inset 0 -1px 0 rgba(255,255,255,.06)}
.win-logo{height:28px;width:auto}
.win-seg{display:flex;gap:2px;padding:3px;border-radius:999px;background:rgba(0,0,0,.24);box-shadow:inset 0 0 0 1px var(--glass-line);margin-left:40px}
.win-seg span{height:28px;padding:0 14px;border-radius:999px;display:flex;align-items:center;font-size:12.5px;font-weight:600;color:rgba(255,255,255,.55)}
.win-seg .on{background:var(--glass-hi);color:#fff}
.win-bar .a-conn{margin-left:auto;height:30px;font-size:12px}
.xl-cap{position:absolute;left:16px;top:64px}
.xl-cards{left:12px;top:88px;width:186px;display:flex;flex-direction:column;gap:8px}
.xl-cards .a-con-b{padding:10px 12px}
.xl-cards .a-con-h b{font-size:13px}
.xl-cards .a-con{background:#24262c}
.xl-cards .a-con.on{background:#383a40}
.xl-sum{left:12px;top:506px;width:186px;height:68px;padding:11px 14px;display:flex;flex-direction:column;gap:2px;background:#1f2126!important}
.xl-sum span{font-size:11.5px;color:var(--muted)}
.xl-sum b{font-size:26px;font-weight:650;letter-spacing:-.02em;line-height:1.1}
.xl-video{left:210px;top:64px;width:778px;height:438px}
.ff-desk .xl-video .a-video{max-width:none;width:100%;height:100%;margin:0}
.xl-video img{width:100%;height:100%;object-fit:cover}
.vchip-l{position:absolute;left:50%;transform:translateX(-50%);top:12px;height:26px;padding:0 11px 0 10px;border-radius:999px;background:#fff;color:var(--lime-ink);font-size:12px;font-weight:650;display:flex;align-items:center;gap:6px}
.vchip-l .ldot{width:6px;height:6px;animation:none}
.win-toast{position:absolute;left:50%;bottom:14px;transform:translate(-50%,8px);height:32px;padding:0 16px;border-radius:999px;background:var(--plate);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1);font-size:13px;font-weight:600;display:flex;align-items:center;white-space:nowrap;opacity:0;transition:opacity .3s,transform .38s cubic-bezier(.2,.9,.3,1)}
.win-toast.on{opacity:1;transform:translate(-50%,0)}
.xl-ctl{left:210px;top:512px;width:778px}
.xl-ctl .a-ctl{background:#24262c;min-height:62px}
.xl-ctl .a-tl{min-width:200px}
.xl-core{left:425px;top:170px;width:170px;height:236px}
.core-card{position:absolute;inset:0}
.core-card img{width:100%;height:100%;filter:drop-shadow(0 20px 40px rgba(0,0,0,.6)) drop-shadow(0 0 30px rgba(230,192,103,.45))}
.core-ring{position:absolute;left:50%;top:50%;width:360px;height:360px;margin:-180px 0 0 -180px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(243,217,138,.35);animation:ring 2.6s ease-out infinite;opacity:var(--ringo,0)}
@keyframes ring{from{transform:scale(.5);opacity:.9}to{transform:scale(1.15);opacity:0}}
.xa-labels{position:absolute;inset:0;z-index:4;pointer-events:none}
.xlab{position:absolute;left:0;top:0;display:flex;align-items:center;gap:10px;opacity:0;white-space:nowrap;will-change:transform,opacity}
.xlab .ln{position:absolute;top:50%;height:1px;width:34px;background:rgba(255,255,255,.45)}
.xlab .ln::after{content:"";position:absolute;top:-3px;width:7px;height:7px;border-radius:50%;background:#fff;box-shadow:0 0 0 3px rgba(255,255,255,.15)}
.xlab[data-side="r"]{padding-left:42px}
.xlab[data-side="r"] .ln{left:0}
.xlab[data-side="r"] .ln::after{left:-4px}
.xlab[data-side="l"]{padding-right:42px;flex-direction:row-reverse}
.xlab[data-side="l"] .ln{right:0}
.xlab[data-side="l"] .ln::after{right:-4px}
.xlab .k{font-size:11px;font-weight:700;color:rgba(255,255,255,.45)}
.xlab .t{font-size:15px;font-weight:600;padding:7px 12px;border-radius:999px;background:rgba(10,11,14,.72);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.xlab.gold .t{background:linear-gradient(135deg,var(--gold-1),var(--gold-3));color:var(--card-ink);box-shadow:0 10px 30px -10px rgba(230,192,103,.6)}
.xlab.gold .k{color:var(--gold-light)}
.xlab.gold .ln{background:var(--gold-light)}
.xlab.gold .ln::after{background:var(--gold-light)}

/* ---------- 2 · sees → decides → presses ---------- */
.pb .sticky{display:flex;flex-direction:column;justify-content:center;gap:clamp(24px,5vh,56px);padding-top:64px}
.pb-head .huge{font-size:clamp(40px,6.6vw,96px)}
.pb-w{opacity:.16;transition:opacity .4s}
.pb-w.on{opacity:1}
.pb-view{width:100%;max-width:1240px;margin:0 auto;padding:0 32px}
.pb-world{display:grid;grid-template-columns:minmax(0,1.5fr) 48px minmax(0,.95fr) 48px minmax(0,1.2fr);align-items:center}
.pb-col{display:flex;flex-direction:column;gap:16px;opacity:.22;transform:translateY(16px) scale(.98);transition:opacity .6s,transform .6s cubic-bezier(.2,.9,.3,1)}
.pb-col.on{opacity:1;transform:none}
.pb-cap{display:flex;flex-direction:column;gap:3px}
.pb-cap b{font-size:18px;font-weight:650}
.pb-cap span{font-size:14.5px;color:var(--ink2)}
.pb-frame{position:relative;aspect-ratio:16/9;border-radius:var(--r-card);overflow:hidden;background:#000;box-shadow:var(--shadow-picture)}
.pb-frame img{width:100%;height:100%;object-fit:cover}
.scan{position:absolute;left:0;right:0;height:22%;top:0;background:linear-gradient(180deg,transparent,rgba(255,255,255,.1) 85%,rgba(255,255,255,.55) 100%);animation:scan 2.4s cubic-bezier(.45,0,.55,1) infinite;mix-blend-mode:screen}
@keyframes scan{0%{transform:translateY(-100%)}100%{transform:translateY(560%)}}
.boxes{position:absolute;inset:0}
.det{position:absolute;width:4.2%;height:11%;margin:-8% 0 0 -2.1%;--c:rgba(255,255,255,.75);background:linear-gradient(var(--c),var(--c)) 0 0/7px 1.5px no-repeat,linear-gradient(var(--c),var(--c)) 0 0/1.5px 7px no-repeat,linear-gradient(var(--c),var(--c)) 100% 0/7px 1.5px no-repeat,linear-gradient(var(--c),var(--c)) 100% 0/1.5px 7px no-repeat,linear-gradient(var(--c),var(--c)) 0 100%/7px 1.5px no-repeat,linear-gradient(var(--c),var(--c)) 0 100%/1.5px 7px no-repeat,linear-gradient(var(--c),var(--c)) 100% 100%/7px 1.5px no-repeat,linear-gradient(var(--c),var(--c)) 100% 100%/1.5px 7px no-repeat;transition:transform .3s,opacity .3s}
.det.them{--c:rgba(255,255,255,.35)}
.det.ball{width:2.6%;height:4.6%;margin:-2.3% 0 0 -1.3%;--c:var(--gold-light)}
.det.hot{--c:#fff;transform:scale(1.25)}
.det.hot::after{content:attr(data-n);position:absolute;left:50%;bottom:calc(100% + 4px);transform:translateX(-50%);font-size:10px;font-weight:650;padding:2px 6px;border-radius:999px;background:#fff;color:var(--lime-ink);white-space:nowrap}
.pb-chip{position:absolute;z-index:2;left:50%;transform:translateX(-50%);top:10px;white-space:nowrap;height:24px;padding:0 10px;border-radius:999px;background:var(--plate);font-size:11.5px;font-weight:600;display:flex;align-items:center;gap:6px}
.pb-chip .ldot{width:6px;height:6px}
.pb-link{width:100%;height:20px;overflow:visible}
.pb-link path{fill:none;stroke:rgba(255,255,255,.3);stroke-width:1.2;stroke-dasharray:100;stroke-dashoffset:var(--draw,100);vector-effect:non-scaling-stroke}
.pb-link .pk{fill:#fff;opacity:0}
.pb-link.run .pk{opacity:1;animation:pk 1.1s linear infinite}
@keyframes pk{from{transform:translateX(0)}to{transform:translateX(100px)}}
.pb-stack{display:flex;flex-direction:column;gap:8px}
.th{height:46px;padding:0 14px;border-radius:12px;background:rgba(255,255,255,.05);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;color:rgba(255,255,255,.5);transition:background-color .25s,color .25s,transform .25s,box-shadow .25s}
.th .dot{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.25);transition:background-color .25s}
.th.on{background:#fff;color:var(--lime-ink);transform:translateX(6px);box-shadow:var(--shadow-pill)}
.th.on .dot{background:var(--go)}
/* the pad: fixed 300×180 geometry, scaled as one block by story.js (--ps) */
.pad{position:relative;width:100%;aspect-ratio:300/180;max-width:100%}
.pad-in{position:absolute;left:50%;top:50%;width:300px;height:180px;margin:-90px 0 0 -150px;transform:scale(var(--ps,1));border-radius:30px 30px 46px 46px;background:radial-gradient(120% 100% at 50% 0%,#2a2c32,#16171b);box-shadow:var(--shadow-glass)}
.touch{position:absolute;left:102px;top:16px;width:96px;height:44px;border-radius:10px;background:rgba(255,255,255,.04);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.stick{position:absolute;left:30px;top:76px;width:76px;height:76px;border-radius:50%;background:rgba(0,0,0,.32);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
.stick i{position:absolute;left:50%;top:50%;width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#3b3d44,#1d1e22);box-shadow:inset 0 0 0 1px rgba(255,255,255,.16),0 6px 14px rgba(0,0,0,.5);transition:transform .35s cubic-bezier(.3,.8,.25,1);transform:translate(var(--sx,0px),var(--sy,0px))}
.pb-btn{position:absolute;width:40px;height:40px;margin:-20px 0 0 -20px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.07);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14),inset 0 -3px 0 rgba(0,0,0,.35);color:rgba(255,255,255,.75);transition:background-color .12s,color .12s,transform .12s}
.pb-btn svg{width:18px;height:18px}
.pb-btn.tri{left:232px;top:62px}.pb-btn.cr{left:232px;top:146px}.pb-btn.sq{left:190px;top:104px}.pb-btn.ci{left:274px;top:104px}
.pb-sh{position:absolute;top:-12px;height:24px;padding:0 12px;border-radius:999px;font-size:11px;font-weight:700;display:flex;align-items:center;background:#202227;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);color:rgba(255,255,255,.7);transition:background-color .12s,color .12s,transform .12s}
.pb-sh.l{left:196px}.pb-sh.r{left:244px}
.pb-btn.hit,.pb-sh.hit{background:#fff;color:var(--lime-ink);transform:scale(.9);box-shadow:0 0 0 6px rgba(255,255,255,.12)}
.pb-log{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;height:92px;overflow:hidden;font-size:12.5px}
.pb-log li{display:flex;gap:10px;align-items:center;color:rgba(255,255,255,.62);animation:logIn .35s cubic-bezier(.2,.9,.3,1)}
.pb-log li:first-child{color:#fff}
.pb-log .t{width:30px;color:rgba(255,255,255,.4)}
.pb-log .kb{min-width:24px;height:20px;padding:0 6px;border-radius:6px;background:rgba(255,255,255,.1);font-size:10.5px;font-weight:700;display:grid;place-items:center}
@keyframes logIn{from{opacity:0;transform:translateY(-8px)}}

/* ---------- 3 · setup ---------- */
.su .sticky{display:flex;align-items:center;padding-top:64px}
.su-in{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:64px;align-items:center}
.su-steps{list-style:none;margin:40px 0 0;padding:0 0 0 28px;position:relative;display:flex;flex-direction:column;gap:22px}
.su-steps::before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:2px;border-radius:2px;background:rgba(255,255,255,.1)}
.su-steps::after{content:"";position:absolute;left:0;top:6px;width:2px;height:calc((100% - 12px) * var(--fill,0));border-radius:2px;background:#fff}
.su-steps li{opacity:.35;transition:opacity .4s}
.su-steps li.on{opacity:1}
.su-steps .n{font-size:13px;font-weight:700;color:var(--mut)}
.su-steps h3{font-size:22px;font-weight:650;letter-spacing:-.015em;margin:2px 0 4px}
.su-steps p{font-size:15px;color:var(--ink2)}
.su-screen{position:relative;aspect-ratio:7/5;border-radius:24px;background:linear-gradient(180deg,rgba(28,30,35,.95),rgba(16,17,21,.95));box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),inset 0 1px 0 rgba(255,255,255,.07),0 60px 120px -40px rgba(0,0,0,.9);overflow:hidden}
.su-pane{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:28px;padding:32px;opacity:0;transform:translateY(24px) scale(.97);transition:opacity .5s,transform .6s cubic-bezier(.2,.9,.3,1)}
.su-pane.on{opacity:1;transform:none}
.inst{display:flex;flex-direction:column;align-items:center;gap:14px;width:min(320px,80%)}
.inst img{width:84px;height:auto;filter:drop-shadow(0 16px 30px rgba(0,0,0,.6))}
.inst b{font-size:19px;font-weight:650}
.inst .bar{width:100%;height:6px;border-radius:3px;background:rgba(255,255,255,.1);overflow:hidden}
.inst .bar i{display:block;height:100%;width:100%;background:#fff;border-radius:3px;transform-origin:0 50%;transform:scaleX(0)}
.inst .pct{font-size:13px;color:var(--mut)}
.tv{flex:1;align-self:stretch;border-radius:16px;background:radial-gradient(120% 120% at 30% 0%,#1b2235,#0c0f17);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);display:flex;flex-direction:column;justify-content:center;padding:24px;gap:10px;min-width:0}
.tv-h{font-size:13px;color:rgba(255,255,255,.6)}
.tv-code{font:700 clamp(26px,3.2vw,40px)/1 var(--font-mono);letter-spacing:.06em}
.tv-s{font-size:12.5px;color:rgba(255,255,255,.5)}
.codebox{flex:1;display:flex;flex-direction:column;gap:14px;min-width:0}
.cb-l{font-size:13px;color:var(--mut)}
.digits{display:grid;grid-template-columns:repeat(4,1fr) 6px repeat(4,1fr);gap:5px}
.digits span{aspect-ratio:3/4;border-radius:8px;background:var(--well);box-shadow:inset 0 0 0 1px var(--glass-line);display:grid;place-items:center;font:650 clamp(15px,1.6vw,20px)/1 var(--font-mono);transition:box-shadow .2s,background-color .2s}
.digits span.f{background:rgba(255,255,255,.1);box-shadow:inset 0 0 0 1px rgba(255,255,255,.3)}
.digits span.cur{box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),0 0 0 2px #fff}
.digits .gap{background:none;box-shadow:none}
.cb-go{align-self:flex-start;transition:transform .15s}
.cb-go.press{transform:scale(.94)}
.mode{width:min(420px,100%);display:flex;flex-direction:column;gap:10px}
.m-l{font-size:12.5px;color:var(--mut)}
.mode .segc button:disabled{opacity:.45}
.m-row{display:flex;justify-content:space-between;align-items:baseline;margin-top:4px}
.m-n{font-size:24px;font-weight:700}
.start{margin-top:8px;transition:transform .15s,opacity .3s}
.start.press{transform:scale(.96)}
.started{position:absolute;left:50%;bottom:34px;transform:translate(-50%,20px);height:40px;padding:0 16px;border-radius:999px;background:var(--plate);box-shadow:inset 0 0 0 1px rgba(52,210,123,.45);display:flex;align-items:center;gap:8px;font-size:14px;font-weight:650;opacity:0;transition:opacity .4s,transform .5s cubic-bezier(.2,.9,.3,1);white-space:nowrap}
.started.on{opacity:1;transform:translate(-50%,0)}

/* ---------- 4 · consoles ---------- */
.mc .sticky{display:flex;flex-direction:column;justify-content:center;gap:clamp(16px,3vh,32px);padding-top:72px}
.mc-head{position:relative}
.mc-head .huge{display:grid;font-size:clamp(38px,min(6vw,9vh),88px)}
.mc-t1,.mc-t2{grid-area:1/1;transition:opacity .5s,transform .6s cubic-bezier(.2,.9,.3,1)}
.mc-t2{opacity:0;transform:translateY(24px)}
.mc.two .mc-t1{opacity:0;transform:translateY(-24px)}
.mc.two .mc-t2{opacity:1;transform:none}
.mc-d{opacity:0;transition:opacity .5s}
.mc.two .mc-d{opacity:1}
.mc-view{width:100%;max-width:1240px;margin:0 auto;padding:0 32px}
.mc-grid{position:relative;width:100%;height:min(calc((min(100vw,1240px) - 64px) * .5),calc(100svh - 340px))}
.tile{position:absolute;border-radius:var(--r-card);overflow:hidden;background:#000;box-shadow:var(--shadow-picture);will-change:left,top,width,height}
.tile .pic{position:absolute;inset:0}
.tile img{width:100%;height:100%;object-fit:cover}
.tile .f2 img{transform:scaleX(-1);object-position:30% 60%}
.tile .f3 img{transform:scale(1.35);object-position:20% 70%}
.tile .f4 img{transform:scale(1.2) scaleX(-1);object-position:80% 40%}
.tl-meta{position:absolute;left:12px;right:12px;bottom:12px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tl-meta>*{height:30px;padding:0 12px;border-radius:999px;display:flex;align-items:center;gap:7px;font-size:13px;font-weight:600;background:var(--plate);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1);white-space:nowrap}
.tl-meta .sc{background:#fff;color:var(--lime-ink);font-weight:700}
.tl-meta .acc{margin-left:auto;color:rgba(255,255,255,.7);font-weight:500}
.mc-count{display:flex;align-items:baseline;gap:14px}
.mc-count b{font-size:clamp(40px,5vw,64px);font-weight:700;letter-spacing:-.03em;line-height:1}
.mc-count span{font-size:15px;color:var(--ink2)}

/* ---------- match clips ---------- */
video.clip{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;background:transparent}
video.clip.fail{display:none}
.pb-frame.has-clip .boxes{display:none}
/* player markers on the real clip: ours (white shirts) get white corner brackets, the CPU's a thin ring */
.trk{position:absolute;inset:0;pointer-events:none}
.tk{position:absolute;opacity:0;transform:scale(.85);transition:opacity .35s ease,transform .45s cubic-bezier(.3,1.4,.5,1)}
.tk.on{opacity:1;transform:none}
.tk.us{--c:#fff;background:linear-gradient(var(--c),var(--c)) 0 0/6px 1.5px no-repeat,linear-gradient(var(--c),var(--c)) 0 0/1.5px 6px no-repeat,linear-gradient(var(--c),var(--c)) 100% 0/6px 1.5px no-repeat,linear-gradient(var(--c),var(--c)) 100% 0/1.5px 6px no-repeat,linear-gradient(var(--c),var(--c)) 0 100%/6px 1.5px no-repeat,linear-gradient(var(--c),var(--c)) 0 100%/1.5px 6px no-repeat,linear-gradient(var(--c),var(--c)) 100% 100%/6px 1.5px no-repeat,linear-gradient(var(--c),var(--c)) 100% 100%/1.5px 6px no-repeat;filter:drop-shadow(0 0 2px rgba(0,0,0,.6))}
.tk.them{border-radius:4px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.45),0 0 0 1px rgba(0,0,0,.25)}
.tk.us.hot{background-color:rgba(255,255,255,.14)}
.tk.us.hot::after{content:attr(data-n);position:absolute;left:50%;bottom:calc(100% + 5px);transform:translateX(-50%);height:18px;padding:0 7px;border-radius:999px;background:#fff;color:var(--lime-ink);font-size:10px;font-weight:700;display:flex;align-items:center;white-space:nowrap;box-shadow:var(--shadow-pill)}
.pb-chip .lg-sep{width:1px;height:12px;background:rgba(255,255,255,.2);margin:0 2px}
.pb-chip .lg{width:10px;height:12px;display:inline-block;flex:none}
.pb-chip .lg.us{background:linear-gradient(#fff,#fff) 0 0/4px 1.5px no-repeat,linear-gradient(#fff,#fff) 0 0/1.5px 4px no-repeat,linear-gradient(#fff,#fff) 100% 100%/4px 1.5px no-repeat,linear-gradient(#fff,#fff) 100% 100%/1.5px 4px no-repeat}
.pb-chip .lg.them{border-radius:3px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.55);margin-left:4px}
.tile .pic video.clip{transform:none}

/* ---------- highlights ---------- */
.hl-row{width:100%;max-width:1240px;margin:0 auto;padding:0 32px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 14px}
.hlc{margin:0;display:flex;flex-direction:column;gap:12px;min-width:0}
.hlv{position:relative;aspect-ratio:16/9;max-width:100%;border-radius:18px;overflow:hidden;background:#000;box-shadow:var(--shadow-picture);transition:transform .5s cubic-bezier(.2,.9,.3,1)}
.hlv>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hlc:hover .hlv{transform:translateY(-4px)}
.hl-chip{position:absolute;left:50%;transform:translateX(-50%);top:10px;z-index:2;height:26px;padding:0 11px 0 10px;border-radius:999px;background:#fff;color:var(--lime-ink);font-size:12px;font-weight:650;display:flex;align-items:center;gap:6px}
.hl-chip .ldot{width:6px;height:6px}
.hlc figcaption{font-size:15px;font-weight:600;color:var(--ink)}

/* ---------- modes ---------- */
.sec{padding:140px 0 0}
.sec-h{max-width:720px;margin-bottom:44px}
.sec-h-row{max-width:none;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap}
.sec-h-row>div{max-width:720px}
.mcards{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:14px;perspective:1200px}
.mcard{position:relative;min-height:380px;border-radius:24px;overflow:hidden;background:linear-gradient(180deg,#1b1d22,#121317);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);display:flex;flex-direction:column;justify-content:flex-end;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.2,.9,.3,1);transform:rotateX(var(--tx,0deg)) rotateY(var(--ty,0deg))}
.mc-b{position:relative;padding:26px;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.mcard h3{font-size:30px;font-weight:700;letter-spacing:-.025em}
.mcard p{font-size:15px;color:var(--ink2)}
.on-pill{height:26px;padding:0 11px 0 10px;border-radius:999px;background:#fff;color:var(--lime-ink);font-size:12px;font-weight:650;display:flex;align-items:center;gap:6px}
.on-pill .ldot{width:6px;height:6px}
.soonp{height:26px;padding:0 11px;border-radius:999px;background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px var(--glass-line);font-size:12px;font-weight:600;color:var(--ink2);display:flex;align-items:center}
.mghost{position:absolute;right:-10px;top:-30px;font-size:220px;font-weight:800;letter-spacing:-.06em;color:rgba(255,255,255,.04);line-height:1}
.mpitch{position:absolute;inset:0 0 38% 0;background:url(../media/match-5-hd.jpg) center 55%/cover,url(../img/match.jpg) center 70%/cover;-webkit-mask-image:linear-gradient(180deg,#000 40%,transparent);mask-image:linear-gradient(180deg,#000 40%,transparent);opacity:.85}
.mpitch .ball{position:absolute;width:8px;height:8px;border-radius:50%;background:#fff;box-shadow:0 0 0 3px rgba(255,255,255,.2);animation:ball 6s ease-in-out infinite}
@keyframes ball{0%{left:30%;top:60%}20%{left:48%;top:42%}40%{left:66%;top:58%}60%{left:58%;top:30%}80%{left:40%;top:50%}100%{left:30%;top:60%}}

/* ---------- 5 · phone ---------- */
.ph .sticky{display:flex;align-items:center;padding-top:64px}
.ph-in{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:48px;align-items:center}
.ph-pts{list-style:none;margin:36px 0 0;padding:0;display:flex;flex-direction:column;max-width:460px}
.ph-pts li{display:flex;flex-direction:column;gap:3px;padding:16px 0 16px 20px;box-shadow:inset 2px 0 0 rgba(255,255,255,.1);opacity:.4;transition:opacity .4s,box-shadow .4s}
.ph-pts li.on{opacity:1;box-shadow:inset 2px 0 0 #fff}
.ph-pts b{font-size:19px;font-weight:650}
.ph-pts span{font-size:15px;color:var(--ink2)}
.ph-stage{--s:.78;position:relative;width:calc(417px * var(--s));height:calc(876px * var(--s));perspective:1600px}
.ph-3d{position:absolute;inset:0;transform-style:preserve-3d;will-change:transform}
.phone-scale{position:absolute;left:0;top:0;transform:scale(var(--s));transform-origin:0 0}
.phone-scale .tabs.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.phone-scale .col{gap:12px;will-change:transform}
.phone-scale .fade{height:110px}
.phone-scale button{cursor:default;font:inherit}
.ph-res .mrow{min-height:60px}
.ph-shadow{position:absolute;left:10%;right:10%;bottom:-40px;height:40px;border-radius:50%;background:radial-gradient(closest-side,rgba(0,0,0,.7),transparent);filter:blur(6px)}
.ph-bn{position:absolute;left:12px;right:12px;top:58px;z-index:61;display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:24px;background:rgba(28,30,35,.88);-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12),0 18px 40px -14px rgba(0,0,0,.8);transform:translateY(-160%);transition:transform .5s cubic-bezier(.2,.9,.3,1)}
.ph-bn.on{transform:none}
.ph-bn img{width:38px;height:38px;border-radius:9px}
.ph-bn .bt{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}
.ph-bn b{display:flex;justify-content:space-between;font-size:14px;font-weight:650}
.ph-bn em{font-style:normal;font-size:12px;font-weight:500;color:var(--mut)}
.ph-bn .bt>span{font-size:13px;color:var(--ink2)}
.ph-sheet{position:absolute;left:8px;right:8px;bottom:8px;z-index:62;padding:10px 20px 22px;border-radius:44px;background:rgba(30,32,37,.94);-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);box-shadow:var(--shadow-sheet);display:flex;flex-direction:column;gap:10px;transform:translateY(110%);transition:transform .55s cubic-bezier(.2,.9,.3,1)}
.ph-sheet.on{transform:none}
.ph-sheet .grab{width:36px;height:5px;border-radius:3px;background:rgba(255,255,255,.25);align-self:center;margin-bottom:8px}
.ph-sheet h4{font-size:19px;font-weight:650}
.ph-sheet p{font-size:14px;color:var(--ink2);margin-bottom:8px}
.ph-sheet .btn{transition:transform .15s,filter .15s}
.ph-sheet .btn.press{transform:scale(.96);filter:brightness(.85)}
.ph-toast{position:absolute;left:50%;bottom:110px;z-index:63;transform:translate(-50%,20px);height:44px;padding:0 18px;border-radius:999px;background:rgba(28,30,35,.92);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);display:flex;align-items:center;font-size:14px;font-weight:600;white-space:nowrap;opacity:0;transition:opacity .4s,transform .5s cubic-bezier(.2,.9,.3,1)}
.ph-toast.on{opacity:1;transform:translate(-50%,0)}

/* ---------- requirements ---------- */
.req{overflow:hidden}
.req-t{width:100%;border-collapse:collapse;font-size:15px}
.req-t th,.req-t td{text-align:left;padding:17px 24px;vertical-align:top}
.req-t thead th{font-size:12.5px;font-weight:600;color:var(--mut);padding-top:18px;padding-bottom:12px}
.req-t tbody tr{box-shadow:inset 0 1px 0 rgba(255,255,255,.07)}
.req-t tbody th{font-weight:600;color:var(--ink);width:22%}
.req-t td{color:var(--ink2)}
.req-t td:last-child{color:var(--ink)}
.req-t tbody tr.swap{animation:p-fade .3s ease}

/* ---------- download + guide ---------- */
.dl{padding:40px}
.dl-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:end}
.dl-act{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.dl-file{display:flex;align-items:center;flex-wrap:wrap;font-size:13px;color:var(--mut)}
.linkb{border:0;background:none;padding:4px 0;color:var(--ink);font-size:13px;font-weight:600;text-decoration:underline;text-decoration-color:rgba(255,255,255,.3);text-underline-offset:3px;cursor:pointer}
.linkb:hover{text-decoration-color:#fff}
.guide-wrap{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s cubic-bezier(.2,.9,.3,1)}
.guide-wrap[data-open="true"]{grid-template-rows:1fr}
.guide-clip{overflow:hidden;min-height:0}
.guide-wrap[data-open="false"] .guide-clip{visibility:hidden}
.guide-started{display:flex;align-items:center;gap:10px;margin-top:28px;font-size:14px;color:var(--ink2)}
.guide{margin-top:28px;padding-top:28px;box-shadow:inset 0 1px 0 rgba(255,255,255,.08);display:grid;grid-template-columns:260px minmax(0,1fr);gap:32px}
.g-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.g-list button{width:100%;display:flex;align-items:center;gap:12px;min-height:44px;padding:6px 10px;border:0;border-radius:12px;background:transparent;text-align:left;font-size:14px;font-weight:500;color:var(--mut);cursor:pointer;transition:background-color .15s,color .15s}
.g-list button:hover{color:#fff;background:rgba(255,255,255,.05)}
.g-list .gn{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;flex:none;font-size:12px;font-weight:650;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.22);color:var(--mut)}
.g-list [aria-current="step"]{background:var(--glass-hi);color:#fff;box-shadow:var(--shadow-thumb)}
.g-list [aria-current="step"] .gn{background:#fff;color:var(--lime-ink);box-shadow:none}
.g-list .done .gn{background:rgba(255,255,255,.18);color:#fff;box-shadow:none}
.g-list .done{color:var(--ink2)}
.g-stage{min-width:0;display:flex;flex-direction:column}
.g-prog{height:4px;border-radius:2px;background:rgba(255,255,255,.1);overflow:hidden}
.g-prog i{display:block;height:100%;width:0;border-radius:2px;background:#fff;transition:width .45s cubic-bezier(.3,.8,.25,1)}
.g-count{margin-top:18px;font-size:13px;font-weight:600;color:var(--mut)}
.g-title{margin-top:6px;font-size:28px;font-weight:700;letter-spacing:-.02em;outline:none}
.g-text{margin-top:10px;font-size:16px;color:var(--ink2);max-width:640px}
.g-tip{margin-top:8px;font-size:14px;color:var(--mut);max-width:640px}
.g-shot{margin:22px 0 0;max-width:720px;position:relative;aspect-ratio:16/10;border-radius:var(--r-card);overflow:hidden;background:var(--well);box-shadow:inset 0 0 0 1px var(--glass-line)}
.g-shot img{width:100%;height:100%;object-fit:cover}
.g-ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--mut);font-size:13px;text-align:center;padding:16px;background:repeating-linear-gradient(135deg,rgba(255,255,255,.025) 0 12px,transparent 12px 24px)}
.g-ph code{font:12px var(--font-mono);color:var(--ink2);background:rgba(255,255,255,.06);padding:3px 8px;border-radius:6px}
.g-nav{margin-top:20px;display:flex;justify-content:space-between;gap:10px;max-width:720px}
.g-stage.swap .g-title,.g-stage.swap .g-text,.g-stage.swap .g-tip,.g-stage.swap .g-shot{animation:g-in .32s cubic-bezier(.2,.9,.3,1)}
@keyframes g-in{from{opacity:0;transform:translateX(16px)}}

/* ---------- FAQ ---------- */
.faq-in{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:48px;align-items:start}
.faq-in .sec-h{position:sticky;top:96px}
.search{display:flex;align-items:center;gap:10px;height:50px;padding:0 18px;border-radius:999px;background:var(--well);box-shadow:inset 0 0 0 1px var(--glass-line);color:var(--mut);margin-bottom:12px}
.search:focus-within{box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),0 0 0 2px #fff}
.search input{flex:1;min-width:0;height:100%;border:0;background:transparent;outline:none;font-size:15px;color:#fff}
.search input::placeholder{color:var(--mut)}
.faq-list{overflow:hidden}
.qa+.qa{box-shadow:inset 0 1px 0 rgba(255,255,255,.07)}
.qa summary{list-style:none;display:flex;align-items:center;gap:12px;padding:19px 24px;cursor:pointer;font-size:16px;font-weight:600}
.qa summary::-webkit-details-marker{display:none}
.qa summary:hover{background:rgba(255,255,255,.03)}
.qa summary:focus-visible{outline-offset:-2px}
.qa .chev{margin-left:auto;flex:none;color:rgba(255,255,255,.5);transition:transform .25s cubic-bezier(.3,.8,.25,1)}
.qa[open] .chev{transform:rotate(180deg)}
.qa .ans{padding:0 24px 20px;font-size:15px;color:var(--ink2);max-width:640px}
.qa mark{background:rgba(255,255,255,.18);color:#fff;border-radius:3px;padding:0 1px}
.faq-empty{padding:22px;font-size:15px;color:var(--mut)}

/* ---------- final ---------- */
.final{position:relative;isolation:isolate;overflow:hidden;margin-top:160px;padding:120px 0 140px;text-align:center}
.final-amb{display:none}
.final-in{display:flex;flex-direction:column;align-items:center}
.final-card{position:relative;width:clamp(150px,18vw,220px);aspect-ratio:46/64;margin-bottom:44px;animation:float 6s ease-in-out infinite}
.final-card img{width:100%;height:100%;filter:drop-shadow(0 40px 60px rgba(0,0,0,.6)) drop-shadow(0 0 40px rgba(230,192,103,.35))}
.final-card .shine::before{animation:shine 4.5s ease-in-out infinite}
@keyframes shine{0%,55%{transform:translateX(-160%) skewX(-16deg)}100%{transform:translateX(320%) skewX(-16deg)}}
@keyframes float{50%{transform:translateY(-12px) rotate(-1.5deg)}}
.final .sec-lead{margin:18px auto 0}

/* ---------- footer ---------- */
.ftr{padding:48px 0 40px;box-shadow:inset 0 1px 0 rgba(255,255,255,.07)}
.ftr-in{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap}
.ftr-brand{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.ftr-brand img{height:40px;width:auto}
.ftr-brand p{font-size:14px}
.ftr-cols{display:flex;gap:64px;flex-wrap:wrap}
.ftr-cols div{display:flex;flex-direction:column;gap:8px}
.ftr-h{font-size:13px;font-weight:600;color:var(--mut);margin-bottom:2px}
.ftr-cols a{font-size:15px;text-decoration:none;color:var(--ink)}
.ftr-cols a:hover{text-decoration:underline;text-underline-offset:3px}
.ftr-legal{margin-top:40px;display:flex;flex-direction:column;gap:8px;font-size:12.5px;color:var(--mut)}
.ftr-legal p{max-width:760px}
.ftr-legal p:last-child{display:flex;align-items:center}

/* ---------- reduced motion / no JS: scenes become ordinary sections in their finished state ---------- */
.static .scene{height:auto!important}
.static .sticky{position:relative;height:auto;min-height:100svh;padding:96px 0 64px}
.static .wk .sticky{min-height:100svh}
.static .scroll-hint{display:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .hdr-nav{display:none}
  .faq-in{grid-template-columns:minmax(0,1fr);gap:0}
  .faq-in .sec-h{position:static}
  .mcards{grid-template-columns:1fr 1fr}
  .mcards .live{grid-column:1 / -1}
}
@media (max-width:860px){
  .wrap,.pb-view,.mc-view{padding:0 16px}
  .sec{padding-top:96px}
  .wk .sticky{--cardH:clamp(220px,40svh,360px)}
  .wk-copy{top:auto;bottom:calc(env(safe-area-inset-bottom) + 28px);transform:none}
  .wk-copy .lead{margin-top:14px;font-size:15.5px}
  .wk-copy .hero-cta{margin-top:20px}
  .xa-h1{font-size:clamp(40px,11vw,60px)}
  .xlab .t{font-size:11.5px;padding:5px 9px}
  .xlab .k{display:none}
  .xlab[data-side="r"]{padding-left:26px}.xlab[data-side="l"]{padding-right:26px}
  .xlab .ln{width:20px}
  .pb .sticky{gap:18px}
  .pb-world{grid-template-columns:1fr 1fr;gap:16px 14px}
  .pb-see{grid-column:1 / -1}
  .pb-link{display:none}
  .pb-cap span{font-size:12.5px}
  .pb-cap b{font-size:15px}
  .pb-col{gap:10px}
  .pb-log{display:none}
  .pb-chip{height:20px;font-size:10px;gap:4px;padding:0 8px;top:6px}
  .pb-chip .lg{width:8px;height:10px}
  .tk.us.hot::after{height:15px;font-size:9px;padding:0 5px}
  .th{height:34px;font-size:12px;padding:0 10px}
  .su-in{grid-template-columns:minmax(0,1fr);gap:24px}
  .su-steps{margin-top:18px;gap:0}
  .su-steps li{display:none}
  .su-steps li.on{display:block}
  .su-steps h3{font-size:18px}
  .su-steps p{font-size:14px}
  .su-pane{padding:18px;gap:14px}
  .su-screen{aspect-ratio:auto;height:min(390px,calc(100svh - 330px));min-height:330px}
  .mode{gap:8px}
  .started{bottom:14px}
  .tv{padding:14px}
  .mc-grid{height:min(calc((100vw - 32px) * 1.15),calc(100svh - 330px))}
  .tl-meta{left:8px;right:8px;bottom:8px;gap:5px}
  .tl-meta>*{height:24px;padding:0 9px;font-size:11px}
  .tl-meta .acc{display:none}
  .mcards{grid-template-columns:1fr}
  .hl-row{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 16px 8px;gap:12px;scrollbar-width:none}
  .hl-row::-webkit-scrollbar{display:none}
  .hlc{flex:0 0 86%;scroll-snap-align:center}
  .mcard{min-height:300px}
  .ph .sticky{padding-top:80px}
  .ph-in{grid-template-columns:minmax(0,1fr);gap:16px;justify-items:center}
  .ph-copy{width:100%}
  .ph-pts{margin-top:12px}
  .ph-pts li{display:none;padding:8px 0 0 14px}
  .ph-pts li.on{display:flex}
  .ph-copy .hero-note{display:none}
  .dl{padding:24px 16px}
  .dl-head{grid-template-columns:minmax(0,1fr);gap:24px}
  .guide{grid-template-columns:minmax(0,1fr);gap:0}
  .g-list{display:none}
  .req-t th,.req-t td{padding:14px 16px}
}
@media (max-width:640px){
  .hdr-cta{display:none}
  .hero-cta .pill{width:100%}
  .hero-cta.center .pill{width:100%}
  .req-t thead{display:none}
  .req-t tbody tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:12px 16px;gap:2px 12px}
  .req-t tbody th{grid-column:1 / -1;width:auto;padding:0 0 4px}
  .req-t td{padding:0;font-size:14px}
  .req-t td::before{content:attr(data-l);display:block;font-size:11.5px;color:var(--mut);margin-bottom:1px}
  .dl-act,.dl-act .seg,.dl-btn{width:100%}
  .g-nav .pill{flex:1}
  .digits{gap:3px;grid-template-columns:repeat(4,1fr) 3px repeat(4,1fr)}
  .su-pane[data-pane="1"]{flex-direction:column;align-items:stretch}
  .tv{flex:none;gap:4px}
  .tv-code{font-size:24px}
}
