/* ROBIN · 知更 — 01 发布会 (keynote)
   "Designed after a robin": product-launch page. Stage black + paper white; the only colour is the robin's breast.
   Every metaphor chapter is grounded in the 2026-10-12 snapshot (real numbers, real app screens, real engine rules). */
@property --t1{syntax:'<number>';inherits:true;initial-value:.3}
@property --t2{syntax:'<number>';inherits:true;initial-value:.38}
@property --t3{syntax:'<number>';inherits:true;initial-value:.62}
:root{
  --stage:#0B0B0C; --stage-2:#141416; --stage-3:#1B1B1E;
  --on:#EDE9E2; --on-2:#A6A29B; --on-3:#6F6C67; --hair-d:rgba(255,255,255,.09); --hair-d2:rgba(255,255,255,.05);
  --glow:#F2834A; --dn-d:#52BC89; --up-d:#E8705F;
  --dawn:#0E1622; --snow:#F2F1EE;
  --pad:clamp(20px,5vw,72px); --maxw:1240px;
}
html{background:var(--stage)}
body{background:var(--stage);color:var(--on)}
body ::selection{background:rgba(242,131,74,.32)}
.k{position:relative}
.k .wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);position:relative}
.stage{background:var(--stage);color:var(--on)}
.paper{background:var(--paper);color:var(--ink)}
.paper2{background:var(--paper-2);color:var(--ink)}
.dawn{background:var(--dawn);color:var(--on)}
.snow{background:var(--snow);color:var(--ink)}
.k .num{font-variant-numeric:tabular-nums}
.k .dn{color:var(--down)} .k .up{color:var(--up)}
.stage .dn,.dawn .dn{color:var(--dn-d)} .stage .up,.dawn .up{color:var(--up-d)}

/* ---------- type ---------- */
.kicker{font-family:var(--mono);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--on-3);line-height:1.6}
.kicker.ink{color:var(--ink-3)}
.h1{font-family:var(--serif);font-weight:600;font-size:clamp(32px,4.7vw,68px);line-height:1.2;letter-spacing:.012em;margin-top:18px}
.k .h1,.k .h2,.k .h3,.lit,.lit-end,.fn-t{word-break:normal;overflow-wrap:normal;line-break:strict}
.h2{font-size:clamp(28px,3.4vw,46px);line-height:1.2}
.h3{font-family:var(--serif);font-weight:600;font-size:clamp(21px,2vw,28px);line-height:1.45;letter-spacing:.015em}
.en-h{font-family:var(--en);font-style:italic;font-weight:400;letter-spacing:0}
.h1 em,.h3 em{font-style:normal}
.h1 .num{font-family:var(--en);font-weight:400;letter-spacing:-.01em}
.h1 .rb{color:var(--glow)}
.paper .h1 .rb,.snow .h1 .rb{color:var(--robin)}
.lede{font-size:clamp(15.5px,1.2vw,18px);line-height:1.9;color:var(--ink-2);max-width:34em;margin-top:22px}
.lede.on-dk,.stage .lede,.dawn .lede{color:var(--on-2)}
.en{font-family:var(--en)}

/* field note: the robin's natural history, always one line above the product claim */
.fact{font-family:var(--serif);font-size:clamp(14px,1.05vw,15.5px);line-height:1.85;color:var(--ink-2);max-width:30em;padding-left:16px;border-left:1px solid var(--robin);margin-top:4px}
.fact::before{content:"FIELD NOTE · 习性";display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.22em;color:var(--robin);margin-bottom:3px}
.stage .fact,.dawn .fact{color:var(--on-2);border-left-color:var(--glow)}
.stage .fact::before,.dawn .fact::before{color:var(--glow)}

.ch-no{display:flex;align-items:baseline;gap:12px;margin-bottom:22px}
.ch-no .num{font-family:var(--mono);font-size:12px;letter-spacing:.12em;color:var(--robin)}
.ch-no b{font-family:var(--en);font-style:italic;font-weight:400;font-size:clamp(20px,1.7vw,24px);letter-spacing:0}
.ch-no i{font-style:normal;font-family:var(--serif);font-size:14px;letter-spacing:.2em;color:var(--ink-3)}
.stage .ch-no .num,.dawn .ch-no .num{color:var(--glow)} .stage .ch-no i,.dawn .ch-no i{color:var(--on-3)}

/* product rule chip — the sentence that turns a metaphor into a spec */
.rule{display:inline-flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline;margin-top:30px;padding:13px 18px;border-radius:12px;background:var(--card);box-shadow:inset 0 0 0 1px var(--hair)}
.rule span{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--robin)}
.rule b{font-family:var(--serif);font-weight:600;font-size:15px;color:var(--ink);letter-spacing:.01em}
.rule.dk{background:rgba(255,255,255,.035);box-shadow:inset 0 0 0 1px var(--hair-d)} .rule.dk span{color:var(--glow)} .rule.dk b{color:var(--on)}

/* buttons */
.kbtn{display:inline-flex;align-items:center;gap:8px;height:46px;padding:0 24px;border-radius:999px;background:var(--robin);color:#fff;font-size:15px;font-weight:500;letter-spacing:.02em;transition:transform .25s var(--ease),background .25s,box-shadow .25s;white-space:nowrap}
.kbtn:hover{transform:translateY(-1px);background:#E86E36}
.kbtn.ghost{background:rgba(255,255,255,.02);color:var(--on);box-shadow:inset 0 0 0 1px rgba(255,255,255,.24)}
.kbtn.ghost:hover{background:rgba(255,255,255,.08)}
.kbtn.ink{background:var(--ink);color:var(--paper)} .kbtn.ink:hover{background:#2c3137}
.kbtn.ghost.ink{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px rgba(31,35,40,.18)} .kbtn.ghost.ink:hover{background:rgba(31,35,40,.05)}

/* ---------- reveal system (only headings + blocks; no per-element confetti) ---------- */
html.js [data-r]{opacity:0;transform:translateY(16px);transition:opacity 1s var(--ease),transform 1.2s var(--ease)}
html.js [data-r].in{opacity:1;transform:none}
.hl .ln{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.hl .ln>span{display:inline-block}
html.js .hl .ln>span{transform:translateY(108%);transition:transform 1.25s var(--ease)}
html.js .hl.in .ln>span{transform:none}
html.js .hl.in .ln:nth-child(2)>span{transition-delay:.1s}
html.js .hl.in .ln:nth-child(3)>span{transition-delay:.2s}
html.static [data-r],html.fx-fallback [data-r],html.static .hl .ln>span,html.fx-fallback .hl .ln>span{opacity:1!important;transform:none!important;transition:none!important}
@media (prefers-reduced-motion:reduce){html.js [data-r],html.js .hl .ln>span{opacity:1!important;transform:none!important;transition:none!important}}

/* media helpers */
.bgv{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:var(--stage)}

/* ---------- LOADER ---------- */
#loader{position:fixed;inset:0;z-index:200;background:var(--stage);display:grid;place-items:center;transition:opacity 1s var(--ease),visibility 1s}
#loader.out{opacity:0;visibility:hidden;pointer-events:none}
html.static #loader,html.fx-fallback #loader{display:none}
.ld-in{display:flex;flex-direction:column;align-items:center}
.ld-mark{width:76px;height:76px}
.ld-wm{margin-top:22px;font-family:var(--en);font-size:13px;letter-spacing:.5em;padding-left:.5em;color:var(--on)}
.ld-wm small{font-family:var(--serif);font-size:12px;letter-spacing:.3em;margin-left:14px;padding-left:14px;border-left:1px solid var(--hair-d);color:var(--on-3)}
.ld-bar{width:180px;height:1px;background:var(--hair-d);margin-top:26px;overflow:hidden}
.ld-bar i{display:block;height:100%;background:var(--glow);transform-origin:left;transform:scaleX(var(--p,0));transition:transform .6s var(--ease)}
.ld-st{display:flex;gap:16px;align-items:baseline;margin-top:14px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--on-3)}
.ld-st em{font-family:var(--en);font-style:italic;letter-spacing:.02em;font-size:12px}
.ld-pct{min-width:2.4em;text-align:right}
html.loading body{overflow:hidden}

/* ---------- NAV on this page ---------- */
.gnav{transition:background .5s,border-color .5s,color .5s,transform .6s var(--ease)}
html.js:not(.hero-in):not(.static):not(.fx-fallback) .gnav{transform:translateY(-100%)}

/* ---------- 1 · HERO ---------- */
.hero{height:100vh;height:100svh;min-height:620px;overflow:hidden}
.hero-media{position:absolute;inset:0;transform-origin:50% 45%}
html.js .hero-media{transition:transform 2.8s cubic-bezier(.16,1,.3,1)}
html.js:not(.hero-in):not(.static):not(.fx-fallback) .hero-media{transform:scale(1.08)}
.hero-media .bgv{transform:translateY(-2.5%) scale(.76);transform-origin:50% 50%;-webkit-mask-image:radial-gradient(58% 60% at 50% 47%,#000 52%,transparent 100%);mask-image:radial-gradient(58% 60% at 50% 47%,#000 52%,transparent 100%)}
.hero-veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,11,12,.35) 0%,rgba(11,11,12,0) 26%,rgba(11,11,12,0) 64%,rgba(11,11,12,.8) 86%,var(--stage) 100%)}
.hero-top{position:absolute;left:0;right:0;top:calc(56px + 5.5vh);text-align:center;padding:0 var(--pad)}
.hero-intro{font-style:italic;font-size:clamp(16px,1.35vw,20px);color:var(--on-2);letter-spacing:.02em}
.wm{margin:clamp(4px,1vh,12px) 0 0;font-family:var(--en);font-weight:400;font-size:clamp(66px,10.5vw,176px);line-height:.92;letter-spacing:.17em;margin-right:-.17em;color:var(--on);display:flex;justify-content:center}
.wm span{display:inline-block}
html.js .wm span{transition:opacity 1.2s var(--ease),transform 1.5s var(--ease),filter 1.4s var(--ease)}
html.js:not(.hero-in):not(.static):not(.fx-fallback) .wm span{opacity:0;transform:translateY(.42em);filter:blur(12px)}
html.js.hero-in .wm span:nth-child(2){transition-delay:.08s} html.js.hero-in .wm span:nth-child(3){transition-delay:.16s}
html.js.hero-in .wm span:nth-child(4){transition-delay:.24s} html.js.hero-in .wm span:nth-child(5){transition-delay:.32s}
/* light passing across the letters, once (echoes the light sweep in the film loop) */
html.hero-glint .wm span{animation:glint 1.6s ease-in-out both}
html.hero-glint .wm span:nth-child(2){animation-delay:.12s} html.hero-glint .wm span:nth-child(3){animation-delay:.24s}
html.hero-glint .wm span:nth-child(4){animation-delay:.36s} html.hero-glint .wm span:nth-child(5){animation-delay:.48s}
@keyframes glint{0%,100%{color:var(--on);text-shadow:none}45%{color:#FFF4EA;text-shadow:0 0 28px rgba(242,131,74,.55),0 0 2px rgba(255,236,220,.6)}}
.hero-bot{position:absolute;left:0;right:0;bottom:calc(52px + 4vh);text-align:center;padding:0 var(--pad)}
.hero-zh{font-family:var(--serif);font-size:clamp(13px,1.05vw,15px);letter-spacing:.26em;color:var(--on-2)}
.hero-tag{font-family:var(--serif);font-weight:500;font-size:clamp(22px,2.3vw,32px);letter-spacing:.08em;margin-top:12px;color:var(--on)}
.hero-ctas{display:flex;gap:12px;justify-content:center;margin-top:28px;flex-wrap:wrap}
.hero-meta{position:absolute;left:var(--pad);right:var(--pad);bottom:22px;display:flex;justify-content:space-between;gap:16px;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--on-3)}
html.js [data-hero]{transition:opacity 1.1s var(--ease),transform 1.3s var(--ease)}
html.js:not(.hero-in):not(.static):not(.fx-fallback) [data-hero]{opacity:0;transform:translateY(12px)}
html.js.hero-in .hero-intro{transition-delay:.05s}
html.js.hero-in .hero-zh{transition-delay:.7s} html.js.hero-in .hero-tag{transition-delay:.85s}
html.js.hero-in .hero-ctas{transition-delay:1s} html.js.hero-in .hero-meta{transition-delay:1.2s}

/* ---------- 2 · MANIFESTO ---------- */
.manifesto{padding:clamp(130px,20vh,240px) 0 clamp(120px,18vh,220px)}
.lit{margin-top:28px;font-family:var(--serif);font-weight:500;font-size:clamp(25px,3.15vw,44px);line-height:1.62;letter-spacing:.02em;max-width:23em;color:var(--on)}
.lit b{font-family:var(--en);font-weight:400;color:var(--glow)}
.lit .c{opacity:.14}
html.static .lit .c,html.fx-fallback .lit .c{opacity:1}
@media (prefers-reduced-motion:reduce){.lit .c{opacity:1!important}}
.lit-end{margin-top:clamp(70px,12vh,140px);font-family:var(--serif);font-weight:600;font-size:clamp(42px,6.6vw,104px);line-height:1.16;letter-spacing:.02em}
.lit-end .ln:nth-child(2){color:var(--glow)}

/* ---------- 3 · FILM ---------- */
.film{padding:0 0 clamp(120px,16vh,200px)}
.film-hd{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:26px;flex-wrap:wrap}
.film-hd .h2{margin:0}
.film-frame{position:relative;margin:0;aspect-ratio:16/9;border-radius:clamp(14px,1.6vw,26px);overflow:hidden;background:#000;box-shadow:0 70px 140px -60px rgba(0,0,0,.95),0 0 0 1px rgba(255,255,255,.07)}
.film-poster,.film-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.film-poster{transform:scale(1.08);animation:kenburns 26s ease-in-out infinite alternate}
@keyframes kenburns{to{transform:scale(1.01) translate3d(-1.2%,.6%,0)}}
.film-veil{position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 50%,rgba(0,0,0,0) 35%,rgba(0,0,0,.6) 100%),linear-gradient(180deg,rgba(0,0,0,0) 60%,rgba(0,0,0,.55))}
.film-play{position:absolute;left:50%;top:50%;width:clamp(96px,10vw,132px);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;display:grid;place-items:center;color:var(--on);cursor:default}
.film-play .ring{position:absolute;inset:0;border-radius:50%;border:1px solid rgba(255,255,255,.28)}
.film-play .ring::after{content:"";position:absolute;inset:-1px;border-radius:50%;border:1px solid transparent;border-top-color:var(--glow);animation:spin 6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.film-play .lb{font-family:var(--serif);font-size:13px;letter-spacing:.32em;padding-left:.32em}
.film-play:not([disabled]){cursor:pointer}
.film-play:not([disabled]) .lb{font-size:0} .film-play:not([disabled]) .lb::before{content:"";display:block;width:0;height:0;border-left:18px solid var(--on);border-top:11px solid transparent;border-bottom:11px solid transparent;margin-left:5px}
.film-cap{position:absolute;left:clamp(16px,2vw,28px);right:clamp(16px,2vw,28px);bottom:clamp(14px,1.6vw,22px);display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:rgba(237,233,226,.7)}
.film-frame.playing .film-poster,.film-frame.playing .film-veil,.film-frame.playing .film-play,.film-frame.playing .film-cap{display:none}

/* ---------- 4 · ORIGIN ---------- */
.origin{padding-bottom:clamp(100px,14vh,170px);overflow:hidden}
.origin-img{position:relative;height:clamp(440px,78vh,860px)}
.origin-img img{width:100%;height:100%;object-fit:cover;object-position:68% 62%}
.origin-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,var(--paper) 0%,rgba(246,242,234,0) 22%,rgba(246,242,234,0) 70%,var(--paper) 100%),linear-gradient(90deg,var(--paper) 0%,rgba(246,242,234,0) 42%)}
.k .origin-hd{margin-top:calc(-1 * clamp(300px,52vh,600px));padding-bottom:20px}
.origin-hd .h1{max-width:none;font-size:clamp(32px,4.3vw,62px)}
.spec{margin-top:clamp(64px,9vh,110px);border-top:1px solid var(--ink)}
.sp-row{display:grid;grid-template-columns:110px 1fr 1.25fr 24px;gap:24px;align-items:baseline;padding:22px 4px;border-bottom:1px solid var(--hair);transition:background .35s}
.sp-row>span:nth-child(1){font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;color:var(--ink-3)}
.sp-row>span:nth-child(2){font-family:var(--serif);font-size:15.5px;color:var(--ink-2);line-height:1.7}
.sp-row>span:nth-child(3) b{font-family:var(--serif);font-weight:600;font-size:16.5px;color:var(--ink);line-height:1.7}
.sp-row em{font-style:normal;font-family:var(--en);color:var(--robin)}
a.sp-row::after{content:"→";color:var(--robin);opacity:0;transform:translateX(-6px);transition:opacity .3s,transform .3s var(--ease);justify-self:end}
a.sp-row:hover{background:rgba(224,99,46,.045)} a.sp-row:hover::after{opacity:1;transform:none}
.sp-head{padding-top:18px;padding-bottom:18px}
.sp-head b{display:block;font-family:var(--serif);font-weight:600;font-size:14px;color:var(--ink)}
.sp-head i{display:block;font-family:var(--en);font-size:12.5px;color:var(--ink-3);margin-top:2px}

/* ---------- chapters ---------- */
.ch{padding:clamp(110px,15vh,190px) 0}
.ch-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,100px);align-items:center}
.ch-media{position:relative;aspect-ratio:1/1;overflow:hidden}
.ch-media img{width:100%;height:100%;object-fit:cover;object-position:72% 55%;-webkit-mask-image:radial-gradient(64% 62% at 58% 52%,#000 58%,transparent 100%);mask-image:radial-gradient(64% 62% at 58% 52%,#000 58%,transparent 100%)}

/* 01 · orbit */
.orbit{margin:clamp(70px,10vh,120px) 0 0;position:relative}
.orbit-svg{width:100%;height:auto;overflow:visible}
.orbit-sc{scrollbar-width:none}.orbit-sc::-webkit-scrollbar{display:none}
.orbit-svg .ring{fill:none;stroke:rgba(31,35,40,.14);stroke-width:1}
.orbit-svg .ring.r1{stroke:rgba(224,99,46,.45)}
.orbit-svg .ring.r3{stroke-dasharray:2 6}
.orbit-svg .core{fill:var(--ink)}
.orbit-svg .core-t{font-family:var(--serif);font-size:15px;fill:var(--paper);text-anchor:middle;letter-spacing:.1em}
.orbit-svg .core-n{font-family:var(--en);font-size:22px;fill:var(--paper);text-anchor:middle}
.orbit-svg .nd circle{fill:var(--paper);stroke:var(--ink);stroke-width:1.2}
.orbit-svg .nd.h circle{fill:var(--robin);stroke:none}
.orbit-svg .nd.f circle{fill:var(--ink-3);stroke:none}
.orbit-svg .nd.s rect{fill:none;stroke:rgba(31,35,40,.25)}
.orbit-svg .nd text{font-family:var(--serif);font-size:14px;fill:var(--ink)}
.orbit-svg .nd.h text{font-weight:600;font-size:15.5px}
.orbit-svg .nd.f text{font-size:12px;fill:var(--ink-2)}
.orbit-svg .nd.s text{font-family:var(--mono);font-size:10.5px;fill:var(--ink-3);letter-spacing:.06em}
.orbit-svg .nd .v{font-family:var(--mono);font-size:10.5px}
.orbit-svg .nd .v.up{fill:var(--up)} .orbit-svg .nd .v.dn{fill:var(--down)}
.orbit-svg .ray{stroke:rgba(224,99,46,.28);stroke-width:1;stroke-dasharray:3 4}
.orbit-svg .sweep{fill:url(#swg)}
html.js .orbit-svg .nd,html.js .orbit-svg .ring{opacity:0;transition:opacity .9s var(--ease)}
html.js .orbit.in .orbit-svg .nd,html.js .orbit.in .orbit-svg .ring{opacity:1}
html.static .orbit-svg .nd,html.static .orbit-svg .ring{opacity:1}
.orbit-cap{display:flex;justify-content:center;gap:clamp(18px,4vw,56px);flex-wrap:wrap;margin-top:18px;font-family:var(--serif);font-size:14px;color:var(--ink-2)}
.orbit-cap b{font-family:var(--en);font-weight:400;font-size:22px;color:var(--ink);margin-right:6px}
.orbit-cap span:first-child b{color:var(--robin)}

/* 02 · prioritize */
.prioritize{padding-bottom:clamp(110px,15vh,190px)}
.ch-head .h1{max-width:12em}
.field{position:relative;height:auto;margin-top:clamp(30px,5vh,60px)}
.field-in{position:relative}
.cloud{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;padding:0 var(--pad);max-width:1400px;margin:0 auto}
.chip2{display:inline-flex;align-items:baseline;gap:8px;font-family:var(--serif);font-size:13px;line-height:1.4;color:var(--on-2);padding:7px 13px;border-radius:999px;background:rgba(255,255,255,.035);box-shadow:inset 0 0 0 1px rgba(255,255,255,.075);white-space:nowrap;transition:opacity .7s var(--ease),filter .7s var(--ease),color .5s,box-shadow .5s,background .5s}
.chip2 small{font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;color:var(--on-3)}
.chip2.n small{color:var(--glow)}
.chip2.out{opacity:.07;filter:blur(1.5px)}
.chip2.w{color:#FFE9DC;background:rgba(242,131,74,.14);box-shadow:inset 0 0 0 1px rgba(242,131,74,.55),0 0 30px -6px rgba(242,131,74,.5)}
.gates{list-style:none;margin:36px auto 0;padding:0 var(--pad);display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,3vw,40px);max-width:var(--maxw)}
.gates li{position:relative;padding-top:16px;border-top:1px solid var(--hair-d);transition:opacity .6s,border-color .6s}
.gates li i{font-style:normal;font-family:var(--mono);font-size:11px;color:var(--glow);margin-right:10px}
.gates li b{font-family:var(--serif);font-weight:600;font-size:17px}
.gates li span{display:block;margin-top:6px;font-size:13px;line-height:1.7;color:var(--on-3)}
.gates li.on{border-top-color:var(--glow)}
.winners{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;margin:36px auto 0;padding:0 var(--pad)}
.win{width:min(320px,100%);padding:22px 24px 20px;border-radius:18px;background:rgba(22,22,24,.9);box-shadow:inset 0 0 0 1px rgba(242,131,74,.42),0 34px 90px -34px rgba(242,131,74,.42);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.w-hd{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.w-hd b{font-family:var(--serif);font-size:16px}
.w-hd span{font-size:10px;letter-spacing:.06em;color:var(--glow)}
.w-t{font-family:var(--serif);font-weight:600;font-size:21px;margin-top:10px;line-height:1.45}
.w-n{font-size:14px;color:var(--on-2);margin-top:8px}
.w-n b{font-family:var(--en);font-weight:400}
/* pinned stage (desktop) */
html.pin-field .field{height:100vh;margin-top:0}
html.pin-field .field-in{position:absolute;inset:0}
html.pin-field .cloud{position:absolute;inset:9vh 3vw 22vh;display:block;padding:0;max-width:none}
html.pin-field .chip2{font-size:12.5px;padding:6px 12px}
html.pin-field .chip2{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%)}
html.pin-field .gates{position:absolute;left:0;right:0;bottom:6vh;margin:0 auto}
html.pin-field .gates li{opacity:.28}
html.pin-field .gates li.on{opacity:1}
html.pin-field .winners{position:absolute;left:0;right:0;top:42%;transform:translateY(-50%);margin:0;opacity:0;pointer-events:none}
.score{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,100px);align-items:center;padding-top:clamp(90px,13vh,150px)}
.formula{display:inline-block;margin-top:26px;font-size:12.5px;letter-spacing:.02em;color:var(--on);padding:14px 18px;border-radius:12px;background:rgba(255,255,255,.04);box-shadow:inset 0 0 0 1px var(--hair-d)}
.note{margin-top:20px;font-size:14px;line-height:1.85;color:var(--on-3);max-width:32em}
.sc-card{padding:28px 28px 22px;border-radius:22px;background:var(--stage-2);box-shadow:inset 0 0 0 1px var(--hair-d),0 50px 100px -60px rgba(0,0,0,.9)}
.sc-hd{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.sc-hd b{font-family:var(--serif);font-size:20px}
.sc-hd .num{font-family:var(--en);font-size:18px}
.sc-hd em{font-style:normal;margin-left:auto;font-size:10.5px;letter-spacing:.06em;color:var(--glow)}
.sc-f{display:grid;grid-template-columns:62px 1fr 44px;gap:14px;align-items:center;padding:9px 0}
.sc-f span{font-size:13px;color:var(--on-2)}
.sc-f i{display:block;height:5px;border-radius:3px;background:rgba(255,255,255,.07);overflow:hidden}
.sc-f u{display:block;height:100%;width:calc(var(--v) * 100%);background:var(--on);border-radius:3px;transform-origin:left;transform:scaleX(0);transition:transform 1.4s var(--ease) .2s}
.sc-card.in .sc-f u,html.static .sc-f u,html.fx-fallback .sc-f u{transform:scaleX(1)}
.sc-f b{font-family:var(--mono);font-weight:400;font-size:12.5px;text-align:right}
.sc-total{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-top:14px;padding-top:16px;border-top:1px solid var(--hair-d)}
.sc-total span{font-size:13px;color:var(--on-2)}
.sc-total b{font-family:var(--en);font-weight:400;font-size:46px;line-height:1;color:var(--glow)}
.sc-total em{font-style:normal;font-size:13px;color:var(--on-2)}
.sc-src{margin-top:14px;font-size:10.5px;letter-spacing:.02em;color:var(--on-3);line-height:1.7}

/* 03 · explain */
.explain{padding-top:0}
.ex-band{position:relative;height:clamp(560px,94vh,1000px);overflow:hidden}
.ex-media,.dv-media{position:absolute;inset:0}
.ex-media .bgv{object-position:70% 50%}
.ex-veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,11,12,.92) 0%,rgba(11,11,12,.55) 34%,rgba(11,11,12,0) 60%),linear-gradient(180deg,var(--stage) 0%,rgba(11,11,12,0) 18%,rgba(11,11,12,0) 74%,var(--stage) 100%)}
.exh,.dv-hd{height:100%;display:flex;flex-direction:column;justify-content:center}
.exh>*,.dv-hd>*{max-width:560px}
.forces{display:grid;grid-template-columns:.78fr 1.22fr;gap:clamp(40px,5vw,90px);align-items:center;padding-top:clamp(60px,9vh,110px)}
.fo-name{display:flex;align-items:baseline;gap:14px}
.fo-name b{font-family:var(--serif);font-size:22px}
.fo-name span{font-size:11px;letter-spacing:.08em;color:var(--on-3)}
.fo-big{font-family:var(--en);font-size:clamp(76px,9.6vw,148px);line-height:1;letter-spacing:-.025em;margin:14px 0 20px}
.fo-q{font-family:var(--serif);font-size:clamp(16px,1.35vw,19px);line-height:1.8;color:var(--on-2);max-width:17em}
.fo-svg{width:100%;height:auto;overflow:visible}
.fo-svg .src{font-family:var(--serif);font-size:15px;fill:var(--on-2)}
.fo-svg .src.i{fill:var(--on)}
.fo-svg .sv{font-family:var(--mono);font-size:11px;fill:var(--on-3)}
.fo-svg .bar-lb{font-family:var(--mono);font-size:10.5px;fill:var(--on-3);letter-spacing:.08em}
.fo-svg .total{font-family:var(--en);font-size:22px;fill:var(--on)}
.fo-svg .flow{fill:none;stroke-linecap:round}
.fo-svg .flow.base{stroke:rgba(255,255,255,.05)}
.fo-svg .flow.live{stroke-dasharray:2 16;animation:flow 1.6s linear infinite}
@keyframes flow{to{stroke-dashoffset:-36}}
.fo-svg .seg{transition:transform 1.4s var(--ease)}
.fo-legend{list-style:none;padding:0;margin:22px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.fo-legend li{padding-top:14px;border-top:1px solid var(--hair-d)}
.fo-legend b{display:block;font-family:var(--en);font-weight:400;font-size:clamp(22px,2vw,28px)}
.fo-legend span{display:block;font-family:var(--serif);font-size:14px;margin-top:4px}
.fo-legend em{display:block;font-style:normal;font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:var(--on-3);margin-top:4px}
.f-m b{color:var(--up-d)} .f-s b{color:#3F9A6E} .f-i b{color:var(--dn-d)}
.f-i{border-top-color:var(--glow)!important}
.ex-say{display:grid;grid-template-columns:1.15fr .85fr;gap:28px clamp(40px,5vw,90px);align-items:center;padding-top:clamp(100px,14vh,170px)}
.say{display:grid;grid-template-columns:44px 1fr;gap:16px;padding:28px 30px;border-radius:22px;background:var(--stage-2);box-shadow:inset 0 0 0 1px var(--hair-d)}
.say .mark{width:40px;height:40px;margin-top:2px}
.say p{font-family:var(--serif);font-weight:500;font-size:clamp(17px,1.5vw,21px);line-height:1.8;letter-spacing:.01em}
.say p b{font-family:var(--en);font-weight:400}
.say sup{font-family:var(--mono);font-size:10px;color:var(--glow);margin-left:1px}
.srcs{grid-column:2;display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.srcs span{font-family:var(--mono);font-size:10px;letter-spacing:.02em;color:var(--on-3);background:rgba(255,255,255,.05);padding:4px 9px;border-radius:6px;white-space:nowrap}
.ex-say .rule{grid-column:1 / -1;justify-self:start;margin-top:0}
.phone-shot{justify-self:center;width:min(290px,72vw);aspect-ratio:603/1311;border-radius:clamp(36px,3.4vw,46px);overflow:hidden;background:#000;box-shadow:0 0 0 6px #19191c,0 0 0 7px #34363b,0 60px 120px -50px rgba(0,0,0,.95)}
.phone-shot img{width:100%;height:100%;object-fit:cover}
.ex-say .phone-shot{grid-row:span 2}

/* 04 · deliver */
.deliver{padding-top:0}
.dv-band{position:relative;height:clamp(560px,94vh,1000px);overflow:hidden}
.dv-media .bgv{object-position:30% 55%}
.dv-veil{position:absolute;inset:0;background:linear-gradient(270deg,rgba(14,22,34,.9) 0%,rgba(14,22,34,.5) 36%,rgba(14,22,34,0) 62%),linear-gradient(180deg,var(--stage) 0%,rgba(14,22,34,0) 18%,rgba(14,22,34,0) 74%,var(--dawn) 100%)}
.dv-hd{align-items:flex-end}
.dv-hd>*{width:100%;max-width:520px}
.dawnline{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(40px,5vw,90px);align-items:center;padding-top:clamp(60px,9vh,110px)}
.tl{list-style:none;margin:26px 0 0;padding:0}
.tl li{display:grid;grid-template-columns:104px 1fr;gap:4px 18px;padding:18px 0;border-top:1px solid var(--hair-d)}
.tl li:last-child{border-bottom:1px solid var(--hair-d)}
.tl i{grid-row:span 2;font-style:normal;font-size:12px;letter-spacing:.04em;color:var(--on-3);padding-top:3px}
.tl b{font-family:var(--serif);font-weight:600;font-size:17px}
.tl span{font-size:14px;color:var(--on-2);line-height:1.7}
.tl li.on i{color:var(--glow)}
.tl li.on b::after{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--glow);margin-left:10px;vertical-align:middle;box-shadow:0 0 0 0 rgba(242,131,74,.6);animation:ping 2s infinite}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(242,131,74,.55)}70%{box-shadow:0 0 0 10px rgba(242,131,74,0)}100%{box-shadow:0 0 0 0 rgba(242,131,74,0)}}
.ladder{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(40px,5vw,90px);align-items:center;padding-top:clamp(100px,14vh,160px)}
.modes{display:inline-flex;gap:2px;padding:4px;border-radius:999px;background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px var(--hair-d);margin-top:26px}
.modes button{height:38px;padding:0 22px;border-radius:999px;font-size:14px;letter-spacing:.06em;color:var(--on-2);transition:background .35s var(--ease),color .35s}
.modes button:hover{color:var(--on)}
.modes button.on{background:var(--on);color:var(--stage)}
.ld-note{margin-top:20px;font-size:14px;line-height:1.85;color:var(--on-2);min-height:5.6em;max-width:30em}
.ld-note b{color:var(--glow);font-weight:500}
.axis{position:relative;height:320px;--t1:.30;--t2:.38;--t3:.62;transition:--t1 .9s var(--ease),--t2 .9s var(--ease),--t3 .9s var(--ease)}
.axis[data-mode="quiet"]{--t1:.40;--t2:.65;--t3:.85}
.axis[data-mode="timely"]{--t1:.20;--t2:.30;--t3:.50}
.zones{position:absolute;left:0;right:0;top:0;bottom:30px;border-radius:16px;overflow:hidden;box-shadow:inset 0 0 0 1px var(--hair-d)}
.zones span{position:absolute;top:0;bottom:0;padding:14px 8px;font-family:var(--serif);font-size:12.5px;letter-spacing:.04em;white-space:nowrap;color:var(--on-3);border-right:1px solid var(--hair-d2)}
.zones .z0{left:0;width:calc(var(--t1) * 100%);background:rgba(255,255,255,.012)}
.zones .z1{left:calc(var(--t1) * 100%);width:calc((var(--t2) - var(--t1)) * 100%);background:rgba(255,255,255,.035)}
.zones .z2{left:calc(var(--t2) * 100%);width:calc((var(--t3) - var(--t2)) * 100%);background:rgba(255,255,255,.065)}
.zones .z3{left:calc(var(--t3) * 100%);right:0;background:rgba(242,131,74,.13);color:var(--glow);border-right:0}
.ticks i{position:absolute;top:0;bottom:30px;width:1px;background:rgba(255,255,255,.22)}
.ticks i::after{content:attr(data-v);position:absolute;bottom:-22px;left:50%;transform:translateX(-50%);font-family:var(--mono);font-size:10px;color:var(--on-2)}
.ticks .t1{left:calc(var(--t1) * 100%)} .ticks .t2{left:calc(var(--t2) * 100%)} .ticks .t3{left:calc(var(--t3) * 100%);background:rgba(242,131,74,.7)}
.evt{position:absolute;left:calc(var(--s) * 100%);display:flex;flex-direction:column;align-items:center;transform:translateX(-50%);text-align:center;white-space:nowrap}
.evt[data-k="calm"]{top:74px} .evt[data-k="pref"]{top:146px} .evt[data-k="major"]{top:218px}
.evt::before{content:"";order:2;width:12px;height:12px;border-radius:50%;background:var(--on);box-shadow:0 0 0 4px rgba(237,233,226,.12);margin:6px 0}
.evt b{order:1;font-family:var(--serif);font-size:13.5px;font-weight:600}
.evt span{order:3;font-family:var(--mono);font-size:10px;color:var(--on-3)}
.evt em{order:4;font-style:normal;font-family:var(--serif);font-size:12.5px;margin-top:3px;color:var(--on-2);transition:color .4s}
.evt.push::before{background:var(--glow);box-shadow:0 0 0 5px rgba(242,131,74,.2),0 0 24px rgba(242,131,74,.7)}
.evt.push em{color:var(--glow)}
.evt[data-k="major"]{transform:translateX(-78%)}
.scale{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;font-size:10px;color:var(--on-3)}
.scale span:nth-child(2){position:absolute;left:50%;transform:translateX(-50%)}
.voices{padding-top:clamp(100px,14vh,160px)}
.voices .h3 span{display:block;font-weight:400;font-size:15px;letter-spacing:.02em;color:var(--on-2);margin-top:8px}
.vrow{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:28px}
.vc{margin:0;padding:24px 24px 26px;border-radius:18px;background:rgba(255,255,255,.035);box-shadow:inset 0 0 0 1px var(--hair-d)}
.vc figcaption{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px}
.vc figcaption b{font-family:var(--serif);font-size:14.5px}
.vc figcaption i{font-family:var(--en);font-size:12.5px;color:var(--on-3)}
.vc p{font-family:var(--serif);font-size:16.5px;line-height:1.8}
.vc p b{font-family:var(--en);font-weight:400}

/* 05 · learn */
.learn{padding:0;min-height:100vh;overflow:hidden}
.ln-media{position:absolute;inset:0;overflow:hidden}
.ln-media .bgv{object-position:30% 50%;background:var(--snow)}
.ln-veil{position:absolute;inset:0;background:linear-gradient(270deg,rgba(242,241,238,.96) 0%,rgba(242,241,238,.8) 34%,rgba(242,241,238,0) 62%),linear-gradient(180deg,var(--snow) 0%,rgba(242,241,238,0) 14%,rgba(242,241,238,0) 86%,var(--snow) 100%)}
.ln-grid{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:flex-end;padding-top:clamp(110px,14vh,170px)!important;padding-bottom:clamp(110px,14vh,170px)!important}
.ln-grid>*{width:100%;max-width:600px}
.memo{margin-top:34px;padding:6px 22px 10px;border-radius:20px;background:rgba(255,255,255,.8);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 40px 80px -50px rgba(31,35,40,.45),inset 0 0 0 1px rgba(31,35,40,.06)}
.mm-hd{display:flex;justify-content:space-between;align-items:baseline;padding:14px 0 12px;border-bottom:1px solid var(--hair)}
.mm-hd>b{font-family:var(--serif);font-size:15px}
.mm-hd span{font-size:10.5px;color:var(--ink-3);letter-spacing:.04em}
.mm-hd span b{font-family:var(--mono);font-weight:500;color:var(--ink)}
.mm-it{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--hair-2);max-height:140px;overflow:hidden;transition:opacity .5s,max-height .7s var(--ease),padding .7s var(--ease)}
.mm-it:last-child{border-bottom:0}
.mm-it i{font-style:normal;font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--robin)}
.mm-it p{font-size:14.5px;line-height:1.6;color:var(--ink);margin-top:2px;transition:color .4s}
.mm-it small{display:block;font-size:11.5px;color:var(--ink-3);margin-top:2px}
.mm-it button{flex:none;font-size:12px;padding:5px 13px;border-radius:999px;box-shadow:inset 0 0 0 1px var(--hair);color:var(--ink-2);transition:all .25s}
.mm-it button:hover{box-shadow:inset 0 0 0 1px rgba(31,35,40,.3);color:var(--ink)}
.mm-it.gone p{text-decoration:line-through;text-decoration-color:var(--robin);color:var(--ink-4)}
.mm-it.gone button{background:var(--robin-tint);color:var(--robin-2);box-shadow:inset 0 0 0 1px rgba(224,99,46,.3)}
.mm-it.new i::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--robin);margin-right:6px;vertical-align:1px}

/* 10 · quiet */
.quiet{padding:0 0 clamp(110px,15vh,180px);overflow:hidden}
.q-media{position:absolute;left:0;right:0;top:0;height:100vh;height:100svh;min-height:640px;overflow:hidden}
.q-media .bgv{object-position:70% 45%}
.q-veil{position:absolute;left:0;right:0;top:0;height:100vh;height:100svh;min-height:640px;background:linear-gradient(90deg,rgba(11,11,12,.85) 0%,rgba(11,11,12,.4) 38%,rgba(11,11,12,0) 62%),linear-gradient(180deg,var(--stage) 0%,rgba(11,11,12,0) 16%,rgba(11,11,12,0) 70%,var(--stage) 100%)}
.q-top{min-height:100vh;min-height:100svh;display:flex;align-items:center}
.q-txt{max-width:760px}
.odo{display:flex;gap:clamp(28px,4.5vw,72px);margin-top:44px}
.odo b{display:block;font-family:var(--en);font-weight:400;font-size:clamp(66px,8.4vw,128px);line-height:1;letter-spacing:-.02em;height:1em;overflow:hidden}
.odo .rb b{color:var(--glow)}
.odo>div>span{display:block;font-family:var(--serif);font-size:15px;color:var(--on-2);margin-top:12px}
.odo .col{display:inline-block;vertical-align:top;transition:transform 2.2s cubic-bezier(.16,1,.3,1)}
.odo .col i{display:block;font-style:normal;height:1em;line-height:1}
.q-bot{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,100px);align-items:center;padding-top:clamp(20px,4vh,60px)}
.slip{justify-self:center;width:min(390px,100%);transform:rotate(-1.4deg);filter:drop-shadow(0 50px 60px rgba(0,0,0,.6))}
.rc-in{position:relative;background:#F3EFE6;color:#2A2C2F;padding:28px 26px 26px;margin:10px 0}
.rc-in::before,.rc-in::after{content:"";position:absolute;left:0;right:0;height:7px;background-size:14px 7px;background-repeat:repeat-x}
.rc-in::before{top:-7px;background-image:conic-gradient(from 135deg at 50% 0,#F3EFE6 90deg,transparent 0)}
.rc-in::after{bottom:-7px;background-image:conic-gradient(from -45deg at 50% 100%,#F3EFE6 90deg,transparent 0)}
.rc-brand{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-weight:600;font-size:15px}
.rc-brand .mark{width:24px;height:24px}
.rc-meta{font-size:10.5px;color:#7C7F83;margin-top:6px;letter-spacing:.04em}
.rc-said{margin-top:14px;padding:10px 0;border-top:1px dashed rgba(0,0,0,.22);border-bottom:1px dashed rgba(0,0,0,.22);font-size:10.5px;color:var(--robin-2);letter-spacing:.02em;line-height:1.7}
.rc-log{list-style:none;margin:8px 0 0;padding:0}
.rc-log li{display:grid;grid-template-columns:34px 1fr auto;gap:8px;padding:6px 0;font-size:10.5px;line-height:1.55}
.rc-log i{font-style:normal;color:#8E9195}
.rc-log em{font-style:normal;color:#8E9195;white-space:nowrap}
.rc-sum{display:flex;justify-content:space-between;margin-top:10px;padding:10px 0;border-top:1px dashed rgba(0,0,0,.22);border-bottom:1px dashed rgba(0,0,0,.22);font-size:11.5px;font-weight:500}
.rc-foot{margin-top:14px;font-family:var(--serif);font-size:12.5px;line-height:1.75;color:#55585C}
html.js .slip .rc-in{clip-path:inset(0 0 100% 0);transition:clip-path 2.4s cubic-bezier(.45,0,.2,1) .2s}
html.js .slip.in .rc-in,html.static .slip .rc-in,html.fx-fallback .slip .rc-in{clip-path:inset(-12px 0 -12px 0)}

/* 11 · app */
.app{padding:clamp(120px,16vh,200px) 0 clamp(100px,14vh,170px);overflow:hidden}
.app-hd{text-align:center;max-width:1040px!important}
.app-hd .lede{margin-left:auto;margin-right:auto}
.app-stage{position:relative;height:clamp(520px,50vw,720px);margin-top:clamp(56px,8vh,96px);display:flex;justify-content:center;align-items:center}
.ap{position:absolute;margin:0;width:clamp(150px,15.5vw,236px);aspect-ratio:603/1311;transition:transform 1.6s var(--ease),opacity 1.2s var(--ease)}
.ap img,.ap video{width:100%;height:100%;object-fit:cover;border-radius:clamp(22px,2.3vw,36px);background:#000;box-shadow:0 0 0 5px #19191c,0 0 0 6px #3a3c40,0 50px 90px -40px rgba(31,35,40,.6)}
.ap figcaption{position:absolute;top:calc(100% + 20px);left:50%;transform:translateX(-50%);white-space:nowrap;font-family:var(--serif);font-size:12.5px;color:var(--ink-3);letter-spacing:.04em}
.ap-c{width:clamp(190px,19.5vw,296px);z-index:3}
.ap-c video{border-radius:clamp(28px,2.9vw,44px)}
.ap-c figcaption{color:var(--ink);font-weight:600}
.ap-l1{transform:translateX(-112%) scale(.9);z-index:2} .ap-r1{transform:translateX(112%) scale(.9);z-index:2}
.ap-l2{transform:translateX(-206%) scale(.8);z-index:1} .ap-r2{transform:translateX(206%) scale(.8);z-index:1}
html.js:not(.static):not(.fx-fallback) .app-stage:not(.in) .ap:not(.ap-c){transform:none;opacity:0}
.app-facts{display:grid;grid-template-columns:repeat(3,1fr) auto;gap:28px;align-items:start;margin-top:clamp(90px,12vh,140px);padding-top:28px!important;border-top:1px solid var(--hair)}
.app-facts>div>b{display:block;font-family:var(--en);font-weight:400;font-size:clamp(30px,2.8vw,40px);line-height:1.1;color:var(--ink)}
.app-facts>div>span{display:block;font-size:13.5px;line-height:1.7;color:var(--ink-2);margin-top:8px}
.app-facts>div:nth-child(3)>b{font-family:var(--serif);font-weight:600;font-size:clamp(24px,2.2vw,32px)}
.app-ctas{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}

/* 12 · lines */
.lines{padding:clamp(110px,15vh,190px) 0}
.ln-list{list-style:none;margin:clamp(44px,7vh,80px) 0 0;padding:0;border-top:1px solid var(--ink)}
.ln-list li{display:grid;grid-template-columns:72px minmax(0,1fr) minmax(0,1.35fr);gap:12px 28px;align-items:baseline;padding:30px 0;border-bottom:1px solid var(--hair)}
.ln-list i{font-family:var(--en);font-style:normal;font-size:15px;color:var(--robin)}
.ln-list b{font-family:var(--serif);font-weight:600;font-size:clamp(22px,2.3vw,32px);line-height:1.3}
.ln-list p{font-size:15.5px;line-height:1.85;color:var(--ink-2)}
.ex{grid-column:2 / -1;margin:6px 0 0;padding:22px 26px;border-radius:16px;background:var(--card);box-shadow:inset 0 0 0 1px var(--hair)}
.ex .q{display:block;font-family:var(--serif);font-weight:600;font-size:16px}
.ex .a{display:block;font-family:var(--serif);font-size:15px;line-height:1.9;color:var(--ink-2);margin-top:8px}

/* 13 · finale */
.finale{height:100vh;height:100svh;min-height:700px;overflow:hidden}
.fn-media{position:absolute;inset:0;overflow:hidden}
.fn-media .bgv{transform:translateY(-15%) scale(.7);-webkit-mask-image:radial-gradient(56% 58% at 50% 46%,#000 50%,transparent 100%);mask-image:radial-gradient(56% 58% at 50% 46%,#000 50%,transparent 100%)}
.fn-veil{position:absolute;inset:0;background:linear-gradient(180deg,var(--stage) 0%,rgba(11,11,12,0) 22%,rgba(11,11,12,0) 44%,rgba(11,11,12,.86) 76%,var(--stage) 100%)}
.fn-in{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;text-align:center;padding-bottom:clamp(40px,7vh,80px)!important}
.fn-mark{width:52px;height:52px}
.fn-t{font-style:italic;font-weight:400;font-size:clamp(38px,5.4vw,82px);line-height:1.1;margin-top:18px;letter-spacing:-.005em}
.fn-zh{font-family:var(--serif);font-size:clamp(15px,1.25vw,18px);letter-spacing:.08em;color:var(--on-2);margin-top:16px}
.entries{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;width:100%;margin-top:clamp(36px,6vh,64px);text-align:left}
.entry{position:relative;display:block;padding:22px 24px 24px;border-radius:18px;background:rgba(22,22,24,.62);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:inset 0 0 0 1px var(--hair-d);transition:background .3s,transform .3s var(--ease),box-shadow .3s}
.entry:hover{background:rgba(32,32,35,.82);transform:translateY(-2px);box-shadow:inset 0 0 0 1px rgba(242,131,74,.4)}
.entry i{font-style:normal;font-size:10.5px;letter-spacing:.08em;color:var(--glow)}
.entry b{display:block;font-family:var(--serif);font-size:18px;margin:8px 0 6px}
.entry p{font-size:13.5px;line-height:1.7;color:var(--on-2);max-width:22em}
.entry .go{position:absolute;right:22px;top:20px;color:var(--on-2);transition:transform .3s var(--ease),color .3s}
.entry:hover .go{transform:translateX(3px);color:var(--glow)}

/* footer */
.kfoot{background:var(--stage);color:var(--on-3);border-top:1px solid var(--hair-d2);padding:30px 0 42px}
.kfoot .wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}
.kfoot-in{display:flex;justify-content:space-between;align-items:center;gap:28px}
.kfoot .lockup{display:flex;align-items:center;gap:10px;color:var(--on)}
.kfoot .lockup .mark{width:24px;height:24px}
.kfoot .wordmark small{border-left-color:var(--hair-d);color:var(--on-3)}
.kfoot-tx p{font-size:11.5px;line-height:1.8;text-align:right}

/* ---------- responsive ---------- */
@media (max-width:1024px){
  .forces,.ex-say,.score,.ladder,.dawnline,.q-bot{grid-template-columns:1fr}
  .ex-say .phone-shot,.dawnline .phone-shot{grid-row:auto;grid-column:auto}
  .app-facts{grid-template-columns:1fr 1fr}
  .app-ctas{grid-column:1 / -1;justify-content:flex-start}
}
@media (max-width:900px){
  .ch-grid{grid-template-columns:1fr}
  .ch-media{aspect-ratio:4/3}
  .sp-row{grid-template-columns:1fr;gap:4px;padding:18px 2px}
  .sp-row::after{display:none}
  .sp-head{display:none}
  .sp-row>span:nth-child(2)::before{content:"知更鸟　";font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--ink-4)}
  .sp-row>span:nth-child(3)::before{content:"ROBIN　";font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--robin)}
  .gates{grid-template-columns:1fr;gap:18px}
  .vrow,.entries{grid-template-columns:1fr}
  .ln-list li{grid-template-columns:44px 1fr;padding:24px 0}
  .ln-list li p{grid-column:2}
  .ex{grid-column:1 / -1}
  .fo-legend{grid-template-columns:1fr 1fr 1fr;gap:10px}
}
@media (max-width:760px){
  .hero-top{top:calc(56px + 3.5vh)}
  .wm{font-size:18.5vw;letter-spacing:.12em;margin-right:-.12em}
  .hero-bot{bottom:calc(46px + 3vh)}
  .hero-zh{letter-spacing:.14em}
  .hero-meta{flex-direction:column;gap:2px;align-items:center;text-align:center;bottom:14px;font-size:9px}
  .kbtn{height:44px;padding:0 20px;font-size:14px}
  .origin-img{height:62vh}
  .origin-img img{object-position:74% 70%}
  .k .origin-hd{margin-top:-6vh}
  .orbit-sc{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 calc(-1 * var(--pad));padding:0 var(--pad)}
  .orbit-svg{min-width:880px}
  .orbit-cap{gap:14px 22px}
  .ex-band,.dv-band{height:88vh}
  .ex-veil{background:linear-gradient(180deg,var(--stage) 0%,rgba(11,11,12,.2) 20%,rgba(11,11,12,.45) 55%,var(--stage) 100%)}
  .dv-veil{background:linear-gradient(180deg,var(--stage) 0%,rgba(14,22,34,.25) 22%,rgba(14,22,34,.6) 60%,var(--dawn) 100%)}
  .exh,.dv-hd{justify-content:flex-end;padding-bottom:6vh!important}
  .dv-hd{align-items:flex-start}
  .ln-veil{background:linear-gradient(180deg,var(--snow) 0%,rgba(242,241,238,.55) 30%,rgba(242,241,238,.9) 62%,var(--snow) 100%)}
  .q-veil{background:linear-gradient(180deg,var(--stage) 0%,rgba(11,11,12,.25) 26%,rgba(11,11,12,.7) 64%,var(--stage) 100%)}
  .q-top{align-items:flex-end;padding-bottom:8vh!important}
  .say{grid-template-columns:1fr;padding:22px}
  .srcs{grid-column:1}
  .axis{height:340px}
  .evt b{font-size:12px}
  .app-stage{height:auto;display:flex;justify-content:flex-start;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:10px var(--pad) 50px;-webkit-overflow-scrolling:touch}
  .ap,.ap-c{position:relative;flex:none;width:58vw;transform:none!important;opacity:1!important;scroll-snap-align:center}
  .ap-c{order:-1}
  .app-facts{grid-template-columns:1fr}
  .kfoot-in{flex-direction:column;align-items:flex-start}
  .kfoot-tx p{text-align:left}
  .film-hd{margin-bottom:18px}
}
@media (prefers-reduced-motion:reduce){
  .film-poster{animation:none}
  .fo-svg .flow.live{animation:none}
  .slip .rc-in{clip-path:none!important}
}
