/* ftrme pre-sale · Design DNA 16 "Liquid Glass · Pre-sale Web" (design-dna/16-presale-web.json).
   Tokens and glass components ported from teaser/src/film.css. */
:root{
  --ground:#F4F4F7; --ground-2:#E6E7EC; --ink:#101014; --ink-2:#5A5C68; --ink-3:#6E707C; --night:#07070D;
  --glass-top:rgba(28,28,40,.93); --glass-bot:rgba(8,8,14,.97);
  --g-violet:rgba(110,90,255,.7); --g-blue:rgba(56,140,255,.75); --g-green:rgba(52,211,153,.75); --g-pink:rgba(236,72,153,.7); --g-amber:rgba(251,146,60,.7);
  --spec:linear-gradient(100deg,#6D5BFF 0%,#38BDF8 45%,#EC4899 100%);
  --f:Figtree,-apple-system,system-ui,sans-serif;
  --ease:cubic-bezier(.16,1,.3,1); --spring:cubic-bezier(.34,1.56,.64,1);
  --gut:clamp(16px,4vw,40px); --max:1200px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;font-family:var(--f);color:var(--ink);background:var(--ground);-webkit-font-smoothing:antialiased;overflow-x:hidden;font-size:17px;line-height:1.5}
img,svg,video{display:block;max-width:100%}
a{color:inherit}
button,input{font:inherit;color:inherit}
.num{font-variant-numeric:tabular-nums}
.spec{background:var(--spec);-webkit-background-clip:text;background-clip:text;color:transparent;padding-bottom:.06em}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:16px;top:-60px;z-index:100;padding:10px 16px;border-radius:999px;background:var(--ink);color:#fff;text-decoration:none}
.skip:focus{top:16px}
:focus-visible{outline:3px solid #6D5BFF;outline-offset:3px;border-radius:8px}

/* ---------- living background ---------- */
#bg{position:fixed;inset:0;width:100%;height:100%;z-index:-1;display:block;
  background:radial-gradient(45% 40% at 18% 22%,rgba(201,184,255,.55),transparent 70%),radial-gradient(40% 45% at 82% 30%,rgba(167,227,255,.5),transparent 70%),radial-gradient(40% 35% at 30% 85%,rgba(245,180,224,.35),transparent 70%),linear-gradient(180deg,var(--ground),var(--ground-2))}


/* ---------- glass (from film.css) ---------- */
.lg{position:relative;background:linear-gradient(180deg,var(--glass-top),var(--glass-bot));border:1.5px solid rgba(255,255,255,.55);
  box-shadow:inset 0 2px 1px rgba(255,255,255,.55),inset 0 -10px 18px var(--g,var(--g-violet)),0 1px 0 rgba(0,0,0,.25),0 22px 30px -14px var(--g,var(--g-violet));color:#fff}
.lg:before{content:"";position:absolute;left:10%;right:10%;top:3px;height:38%;max-height:40px;border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.32),rgba(255,255,255,0));pointer-events:none}
.cl{position:relative;background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(240,242,248,.75));border:1.5px solid rgba(255,255,255,.95);
  box-shadow:inset 0 -6px 14px rgba(140,170,255,.3),0 18px 26px -16px rgba(100,130,255,.55),0 1px 0 rgba(0,0,0,.06);color:var(--ink)}
.v{--g:var(--g-violet)} .b{--g:var(--g-blue)} .gr{--g:var(--g-green)} .p{--g:var(--g-pink)} .a{--g:var(--g-amber)}
.chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 11px;border-radius:999px;font-size:12px;font-weight:600;background:rgba(255,255,255,.14);white-space:nowrap}
.chip.ink{background:rgba(16,16,20,.06);color:var(--ink-2)}

/* ---------- buttons ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;height:56px;padding:0 28px;border-radius:999px;font-weight:800;font-size:17px;letter-spacing:-.01em;text-decoration:none;border:0;cursor:pointer;overflow:hidden;white-space:nowrap;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),filter .3s}
.btn.lg{border:1.5px solid rgba(255,255,255,.55)}
.btn:hover{transform:translateY(-2px);filter:brightness(1.12)}
.btn:active{transform:scale(.97)}
.btn .arr{transition:transform .3s var(--ease)}
.btn:hover .arr{transform:translateX(4px)}
.btn .shine{position:absolute;top:0;bottom:0;width:40%;left:-60%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);animation:shine 3.6s 1.2s infinite;pointer-events:none}
@keyframes shine{0%{left:-60%}55%,100%{left:130%}}
.btn.sm{height:44px;padding:0 18px;font-size:15px}

/* ---------- nav ---------- */
.nav{position:fixed;top:14px;left:50%;z-index:50;transform:translateX(-50%);width:min(calc(100% - 2*var(--gut)),var(--max));display:flex;align-items:center;gap:12px;padding:8px 8px 8px 22px;border-radius:999px;
  -webkit-backdrop-filter:blur(20px) saturate(1.4);backdrop-filter:blur(20px) saturate(1.4);transition:transform .5s var(--ease),opacity .4s}
.nav .wm{font-weight:900;font-size:26px;letter-spacing:-.065em;text-decoration:none;line-height:1}
.nav .status{margin-left:auto}
.dot{width:8px;height:8px;border-radius:50%;background:#EC4899;box-shadow:0 0 0 0 rgba(236,72,153,.6);animation:pulse 2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 8px rgba(236,72,153,0)}100%{box-shadow:0 0 0 0 rgba(236,72,153,0)}}
@media (max-width:560px){.nav .status{display:none}.nav .btn{margin-left:auto}}

/* ---------- layout ---------- */
.wrap{width:min(100% - 2*var(--gut),var(--max));margin-inline:auto}
section{position:relative;overflow-x:clip}
.scene{min-height:100vh;min-height:100svh;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(24px,5vw,80px);padding-block:clamp(72px,10vh,140px)}
.scene.flip .cap{order:2}
@media (max-width:860px){.scene{grid-template-columns:1fr;min-height:auto;gap:36px;text-align:left}.scene.flip .cap{order:0}}

/* ---------- captions ---------- */
.cap h2,.h-xl{margin:0;font-weight:800;letter-spacing:-.04em;line-height:1.02;font-size:clamp(44px,5.6vw,88px)}
.cap .ln{white-space:nowrap}
@media (max-width:860px){.cap h2{font-size:clamp(40px,11vw,72px)}}
.cap h2 .ln{display:block;padding:.04em 0 .08em}
.cap p{margin:22px 0 0;max-width:30ch;font-size:clamp(17px,1.5vw,20px);color:var(--ink-2);font-weight:500}
.eyebrow{font-weight:700;font-size:13px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-2)}
.w{display:inline-block}
/* word reveal */
.js .rv .w{opacity:0;transform:translateY(.5em) scale(.94);filter:blur(10px);transition:opacity .7s var(--ease),transform .9s var(--spring),filter .7s var(--ease);transition-delay:calc(var(--i,0)*70ms)}
.js .rv.in .w{opacity:1;transform:none;filter:none}
.js .up{opacity:0;transform:translateY(40px);transition:opacity .9s var(--ease),transform 1s var(--ease);transition-delay:var(--d,0s)}
.js .up.in{opacity:1;transform:none}

/* ---------- hero ---------- */
.hero{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:120px var(--gut) 72px}
.orb-slot{width:clamp(150px,22vw,230px);aspect-ratio:1;margin-bottom:8px;position:relative}
.orb-css{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 34% 30%,#fff 0 3%,transparent 9%),conic-gradient(from 200deg,#6D5BFF,#38BDF8,#EC4899,#A78BFA,#6D5BFF);
  box-shadow:inset -18px -24px 50px rgba(8,8,20,.75),inset 10px 12px 30px rgba(255,255,255,.35),0 0 80px rgba(140,115,255,.55);animation:breathe 4s ease-in-out infinite}
html.gl .orb-css{opacity:0}
@keyframes breathe{50%{transform:scale(1.025)}}
/* chat thread: incoming messages, left-aligned like a phone screen */
.thread{width:min(300px,100%);min-height:136px;margin:4px 0 34px;display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left}
.thread-hd{font-size:12px;font-weight:600;color:var(--ink-3);padding-left:14px;margin-bottom:2px}
.thread-hd b{color:var(--ink-2)}
.bub{max-width:100%;padding:11px 18px;border-radius:22px 22px 22px 6px;font-weight:700;font-size:clamp(16px,1.5vw,18px);line-height:1.3;letter-spacing:-.02em;white-space:nowrap;transform-origin:0 100%;animation:bubIn .55s var(--spring) both}
.bub[hidden]{display:none}
@keyframes bubIn{from{opacity:0;transform:translateY(10px) scale(.6)}to{opacity:1;transform:none}}
.typing{display:inline-flex;align-items:center;gap:5px;padding:15px 18px}
.typing[hidden]{display:none}
.typing i{width:8px;height:8px;border-radius:50%;background:#fff;opacity:.35;animation:dots 1.2s infinite ease-in-out}
.typing i:nth-child(2){animation-delay:.16s}.typing i:nth-child(3){animation-delay:.32s}
@keyframes dots{0%,60%,100%{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}
.lockup .wm{font-weight:900;font-size:clamp(84px,14vw,168px);letter-spacing:-.065em;line-height:.9;display:inline-block;position:relative}
.lockup .sub{font-weight:600;font-size:clamp(14px,1.4vw,18px);letter-spacing:.32em;text-transform:uppercase;color:var(--ink-2);margin-top:14px;padding-left:.32em}
.hero h1{margin:26px 0 0;font-weight:800;letter-spacing:-.04em;line-height:1.04;font-size:clamp(36px,5.2vw,66px)}
.hero .lede{max-width:34ch;margin:18px auto 0;color:var(--ink-2);font-size:clamp(17px,1.6vw,20px);font-weight:500}

/* status pill */
.status-pill{display:inline-flex;align-items:center;gap:10px;margin-bottom:28px;padding:8px 16px 8px 12px;border-radius:999px;font-weight:700;font-size:14px}
.status-pill b{color:#DB2777}

/* ---------- waitlist form ---------- */
.wl{width:min(100%,520px);margin:34px auto 0}
.wl-row{display:flex;align-items:center;gap:6px;padding:6px;border-radius:999px}
.wl-row input[type=email]{flex:1;min-width:0;height:52px;padding:0 18px;border:0;background:transparent;font-size:17px;font-weight:600;outline:none}
.wl-row input::placeholder{color:var(--ink-3);font-weight:500}
.wl-row:focus-within{box-shadow:inset 0 -6px 14px rgba(140,170,255,.3),0 0 0 3px rgba(109,91,255,.45),0 18px 26px -16px rgba(100,130,255,.55)}
.wl .btn{height:52px}
.wl .hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.wl-note{margin-top:14px;font-size:14px;color:var(--ink-2);font-weight:500}
.wl-note b{color:var(--ink)}
.wl-msg{margin-top:14px;min-height:1.5em;font-weight:700;font-size:15px}
.wl-msg.err{color:#BE123C}
.wl.done .wl-row{display:none}
.wl-ok{display:none;align-items:center;gap:14px;padding:16px 22px;border-radius:28px;text-align:left}
.wl.done .wl-ok{display:flex}
.wl-ok .tick{flex:none;width:44px;height:44px;border-radius:50%;display:grid;place-items:center}
.wl-ok b{display:block;font-size:17px}
.wl-ok span{font-size:14px;opacity:.75}
@media (max-width:480px){.wl-row{flex-direction:column;border-radius:30px;padding:8px}.wl-row input[type=email]{width:100%;text-align:center}.wl .btn{width:100%}}

.scroll-cue{margin-top:44px;font-size:13px;font-weight:600;color:var(--ink-3);letter-spacing:.12em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:8px}
.scroll-cue i{width:1.5px;height:36px;background:linear-gradient(var(--ink-3),transparent);animation:cue 2s infinite}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ---------- film ---------- */
.film{padding-block:clamp(40px,8vh,100px)}
.film-frame{position:relative;border-radius:clamp(24px,3vw,40px);padding:clamp(8px,1vw,12px);max-width:1080px;margin:28px auto 0}
.film-frame video,.film-frame .poster{width:100%;aspect-ratio:16/9;border-radius:clamp(18px,2.4vw,30px);background:#0A0A12;object-fit:cover}
.film-frame .play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);height:64px}
.film-frame .play:hover{transform:translate(-50%,calc(-50% - 2px))}
.film-frame.playing .play{display:none}
@media (max-width:640px){.film-frame{max-width:420px}.film-frame video,.film-frame .poster{aspect-ratio:9/16}}
.film-head{text-align:center}
.film-head h2{margin:10px 0 0;font-weight:800;letter-spacing:-.04em;line-height:1.04;font-size:clamp(32px,4.4vw,56px)}

/* ---------- dark band: the noise ---------- */
.dark{color:#fff}
.dark .cap p{color:rgba(255,255,255,.66)}
html:not(.gl) .dark,html:not(.gl) .ignite{background:radial-gradient(50% 40% at 25% 30%,rgba(77,51,217,.45),transparent 70%),radial-gradient(45% 40% at 80% 70%,rgba(26,128,242,.3),transparent 70%),var(--night)}
.feed{position:relative;display:flex;flex-direction:column;gap:18px;max-width:520px;width:100%;justify-self:end}
.rd{padding:22px 24px 18px;border-radius:24px;background:rgba(14,17,19,.9);border:1.5px solid rgba(255,255,255,.08);box-shadow:0 30px 70px rgba(0,0,0,.5),inset 0 1.5px 0 rgba(255,255,255,.06);color:#F2F4F5;font-size:15px}
.rd-hd{display:flex;align-items:center;gap:10px;font-size:13px;color:#8BA2AD}
.rd-hd b{color:#F2F4F5}
.rd-ic{width:26px;height:26px;border-radius:50%;display:inline-grid;place-items:center;font-weight:900;font-size:13px;color:#fff;flex:none}
.rd h3{margin:10px 0 0;font-size:19px;line-height:1.2;letter-spacing:-.02em;font-weight:800}
.rd p{margin:8px 0 0;color:#B7CAD4;font-size:14.5px;line-height:1.45}
.rd-cm{margin-top:14px;padding-left:14px;border-left:2px solid #33464C}
.rd-cm .who{font-size:12.5px;color:#8BA2AD}
.rd-cm .txt{font-weight:700;margin-top:4px}
.rd-vote{display:inline-flex;align-items:center;gap:6px;margin-top:8px;height:30px;padding:0 12px;border-radius:999px;background:#2A3236;font-weight:700;font-size:13px}
.rd-vote.hot{color:#FF6A33}
.rd-foot{font-size:12px;color:rgba(255,255,255,.4);text-align:right}
.js .feed .rd{opacity:0;transform:translateY(30px) rotate(var(--r,0deg));transition:opacity .8s var(--ease),transform 1s var(--ease),filter 1.2s;transition-delay:var(--d,0s)}
.js .feed.in .rd{opacity:1;transform:rotate(var(--r,0deg))}
.feed.hush .rd{filter:blur(6px) saturate(.6);opacity:.35}
.answer{text-align:center;padding-block:clamp(80px,16vh,180px)}
.answer h2{margin:0;font-weight:800;letter-spacing:-.04em;line-height:1.04;font-size:clamp(40px,6vw,88px)}
.answer p{max-width:36ch;margin:22px auto 0;color:var(--ink-2);font-size:clamp(17px,1.6vw,20px);font-weight:500}

/* ---------- phones ---------- */
.stage{position:relative;display:grid;place-items:center;--s:.72}
.dev{width:calc(390px*var(--s));height:calc(844px*var(--s));position:relative}
.phone{position:absolute;left:0;top:0;width:390px;height:844px;border-radius:56px;overflow:hidden;isolation:isolate;background:linear-gradient(180deg,var(--ground),var(--ground-2));transform-origin:0 0;transform:scale(var(--s));
  box-shadow:0 0 0 10px #0B0B10,0 0 0 11.5px #3A3A46,0 0 0 12.5px rgba(255,255,255,.25),0 60px 110px -30px rgba(30,30,80,.55);font-size:15px;line-height:1.35}
.phone .scr{position:absolute;inset:0;overflow:hidden}
.phone .status{position:absolute;left:0;right:0;top:0;height:54px;z-index:40;display:flex;justify-content:space-between;align-items:center;padding:6px 32px 0 40px;font-size:16px;font-weight:700}
.phone .island{position:absolute;z-index:45;top:11px;left:50%;width:124px;height:36px;margin-left:-62px;border-radius:22px;background:#000}
.phone .home{position:absolute;z-index:45;bottom:8px;left:50%;width:134px;height:5px;margin-left:-67px;border-radius:3px;background:rgba(16,16,20,.85)}
.phone.lit .status{color:#fff}.phone.lit .home{background:rgba(255,255,255,.9)}
.phone .glare{position:absolute;inset:0;z-index:60;pointer-events:none;border-radius:56px;background:linear-gradient(115deg,rgba(255,255,255,.16) 0%,rgba(255,255,255,0) 28%,rgba(255,255,255,0) 70%,rgba(255,255,255,.06) 100%)}
.tilt{transition:transform .8s var(--ease);transform-style:preserve-3d;will-change:transform}
.js .stage .dev{opacity:0;transform:translateY(120px) scale(.92);transition:opacity .9s var(--ease),transform 1.2s var(--spring)}
.js .stage.in .dev{opacity:1;transform:none}
@media (max-width:860px){.stage{--s:.66}}
@media (max-width:400px){.stage{--s:.6}}
.halo{position:absolute;width:120%;aspect-ratio:1;border-radius:50%;background:radial-gradient(closest-side,var(--h,rgba(167,139,250,.45)),transparent);filter:blur(10px);z-index:-1}

/* screen bits */
.scr .pad{padding:66px 20px 0;display:flex;flex-direction:column;gap:14px}
.scr .t32{font:700 32px/1.05 var(--f);letter-spacing:-.035em}
.chart-draw{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.6s var(--ease) .5s}
.in .chart-draw{stroke-dashoffset:0}
.pop{opacity:0;transform:translateY(60px) scale(.92);transition:opacity .6s var(--ease) var(--d,.4s),transform .9s var(--spring) var(--d,.4s)}
.in .pop{opacity:1;transform:none}
.blurin{transition:filter 1s var(--ease) .3s,transform 1s var(--ease) .3s}
.in .blurin{filter:blur(14px) saturate(1.3);transform:scale(1.06)}

/* the Gap slider (real input) */
.gap-range{-webkit-appearance:none;appearance:none;width:100%;height:44px;background:transparent;margin:4px 0 0;cursor:pointer;touch-action:pan-y}
.gap-range::-webkit-slider-runnable-track{height:14px;border-radius:999px;background:linear-gradient(90deg,#7DD3FC,#A78BFA) 0/var(--p,10%) 100% no-repeat,rgba(16,16,20,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.2)}
.gap-range::-moz-range-track{height:14px;border-radius:999px;background:linear-gradient(90deg,#7DD3FC,#A78BFA) 0/var(--p,10%) 100% no-repeat,rgba(16,16,20,.1)}
.gap-range::-webkit-slider-thumb{-webkit-appearance:none;width:38px;height:38px;margin-top:-12px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#fff,#E5E7EB);border:1.5px solid #fff;box-shadow:0 4px 14px rgba(70,80,200,.45),0 0 0 6px rgba(167,139,250,.25)}
.gap-range::-moz-range-thumb{width:38px;height:38px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#fff,#E5E7EB);border:1.5px solid #fff;box-shadow:0 4px 14px rgba(70,80,200,.45),0 0 0 6px rgba(167,139,250,.25)}
.gap-range:focus-visible{outline:none}
.gap-range:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px #6D5BFF}
.hint{display:inline-flex;align-items:center;gap:8px;margin-top:22px;font-weight:700;font-size:14px;color:var(--ink-2)}
.hint i{font-style:normal;display:inline-block;animation:nudge 1.6s var(--ease) infinite}
@keyframes nudge{50%{transform:translateX(6px)}}

/* ignite band */
.ignite{min-height:90vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:100px var(--gut);color:#fff}
.ignite .eyebrow{color:rgba(255,255,255,.66)}
.big{font-weight:900;letter-spacing:-.05em;line-height:1;font-size:clamp(72px,15vw,220px);margin-top:14px;filter:drop-shadow(0 0 40px rgba(140,115,255,.45))}
.ignite h2{margin:10px 0 0;font-weight:800;letter-spacing:-.04em;font-size:clamp(36px,5vw,72px);line-height:1.05}
.ignite .vs{margin-top:22px;font-weight:600;color:rgba(255,255,255,.66);font-size:clamp(15px,1.4vw,18px)}
.ignite .vs b{color:#fff}
.ignite svg.arc{width:min(1100px,100%);height:auto;margin-top:30px;overflow:visible}

/* ---------- offer ---------- */
.offer{text-align:center;padding:clamp(100px,16vh,180px) var(--gut) clamp(80px,12vh,140px)}
.offer h2{margin:22px 0 0;font-weight:800;letter-spacing:-.04em;line-height:1.04;font-size:clamp(40px,6vw,84px)}
.price{display:inline-flex;flex-direction:column;align-items:center;gap:8px;margin-top:44px;padding:30px clamp(28px,5vw,56px) 28px;border-radius:40px;position:relative}
.price .k{font-weight:700;font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2)}
.price .amt{font-weight:900;font-size:clamp(60px,7vw,84px);letter-spacing:-.05em;line-height:1}
.price .amt small{font-size:.36em;font-weight:700;letter-spacing:-.02em;color:var(--ink-2)}
.price .seats{font-weight:700;color:#DB2777;font-size:16px}
.meter{width:100%;max-width:280px;height:10px;border-radius:999px;background:rgba(16,16,20,.08);overflow:hidden;margin-top:6px}
.meter i{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,#6D5BFF,#EC4899);box-shadow:0 0 10px rgba(236,72,153,.6);transition:width 1.6s var(--ease) .4s}
.in .meter i{width:var(--fill,100%)}
.stamp{position:absolute;right:-18px;top:-18px;transform:rotate(9deg);padding:8px 16px;border-radius:999px;font-weight:800;font-size:13px;letter-spacing:.12em;text-transform:uppercase}
.perks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;max-width:880px;margin:44px auto 0;text-align:left}
.perk{padding:20px;border-radius:28px}
.perk b{display:block;font-size:16px;margin-top:10px}
.perk span{font-size:14px;color:var(--ink-2)}
.perk .ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center}
@media (max-width:760px){.perks{grid-template-columns:1fr}}

/* ---------- faq ---------- */
.faq{max-width:760px;margin:0 auto;padding:40px var(--gut) 100px}
.faq h2{text-align:center;font-weight:800;letter-spacing:-.04em;font-size:clamp(32px,4vw,52px);margin:0 0 28px}
.faq details{border-radius:26px;margin-bottom:12px;padding:0 22px}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 0;font-weight:700;font-size:17px}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";font-size:24px;font-weight:500;transition:transform .3s var(--ease)}
.faq details[open] summary:after{transform:rotate(45deg)}
.faq details p{margin:0 0 20px;color:var(--ink-2)}

footer{padding:40px var(--gut) 56px;text-align:center;color:var(--ink-2);font-size:14px}
footer .wm{font-weight:900;font-size:34px;letter-spacing:-.065em;color:var(--ink)}
footer .tag{font-weight:700;color:var(--ink);margin-top:6px}
footer nav{display:flex;gap:18px;justify-content:center;margin-top:14px}
footer .fine{margin-top:16px;color:var(--ink-3);font-size:13px}

/* reduced motion */
@media (prefers-reduced-motion:reduce){
  *,*:before,*:after{animation:none!important;transition:none!important}
  .js .rv .w,.js .up,.js .stage .dev,.js .feed .rd,.pop{opacity:1!important;transform:none!important;filter:none!important;translate:none!important;scale:none!important}
  .chart-draw{stroke-dashoffset:0}
}
