:root{--bg: #0d1020;--bg-deep: #080a16;--bg-stage: #05060f;--bg-panel: #161a2e;--bg-panel-soft: #1d2340;--line: #2a3152;--ink: #f4f6ff;--ink-dim: #9aa3c7;--ink-faint: #5a6288;--ink-soft: #e7ecf6;--white: #ffffff;--p1: #ff5a3c;--p1-bright: #ff8a6b;--p1-deep: #c23a22;--p2: #3d8bff;--p2-bright: #7ab2ff;--p2-deep: #2361c4;--accent: #ffc93c;--gold: #ffd700;--good: #39d98a;--bad: #ff4d6d;--perfect: #ffe066;--font-display: "Arial Rounded MT Bold", "Baloo 2", "PingFang SC", "Hiragino Sans GB", system-ui, sans-serif;--font-body: -apple-system, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--p1-wash: rgba(255, 90, 60, .12);--p1-edge: rgba(255, 90, 60, .42);--p2-wash: rgba(61, 139, 255, .12);--p2-edge: rgba(61, 139, 255, .42);--accent-wash: rgba(255, 201, 60, .12);--accent-edge: rgba(255, 201, 60, .42);--good-wash: rgba(57, 217, 138, .1);--good-edge: rgba(57, 217, 138, .42);--bad-wash: rgba(255, 77, 109, .1);--bad-edge: rgba(255, 77, 109, .42);--ink-on-accent: var(--bg-deep);--scanline: rgba(244, 246, 255, .022);--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--sp-7: 48px;--sp-8: 64px;--sp-9: 96px;--sp-10: 128px;--r-xs: 6px;--r-sm: 10px;--r-md: 14px;--r-lg: 20px;--r-xl: 28px;--r-pill: 999px;--stroke-hair: 1px;--stroke-mark: 1.5px;--stroke-bold: 3px;--fs-micro: 11px;--fs-caption: 13px;--fs-body: 15px;--fs-body-lg: 17px;--fs-title-sm: 20px;--fs-title: 26px;--fs-title-lg: 34px;--fs-display-sm: 44px;--fs-display: 60px;--fs-display-lg: 84px;--lh-body: 1.72;--lh-snug: 1.5;--lh-title: 1.3;--lh-display: 1.12;--tr-none: 0;--tr-label: .08em;--tr-eyebrow: .2em;--e-flat: none;--e-well: inset 0 1px 3px rgba(0, 0, 0, .5);--e-panel: 0 2px 10px -2px rgba(0, 0, 0, .55);--e-card: 0 10px 30px -10px rgba(0, 0, 0, .7);--e-overlay: 0 24px 70px -20px rgba(0, 0, 0, .85);--glow-p1: 0 0 0 1px rgba(255, 90, 60, .55), 0 16px 44px -14px rgba(255, 90, 60, .5);--glow-p2: 0 0 0 1px rgba(61, 139, 255, .55), 0 16px 44px -14px rgba(61, 139, 255, .5);--glow-accent: 0 0 0 1px rgba(255, 201, 60, .6), 0 16px 44px -14px rgba(255, 201, 60, .55);--glow-perfect: 0 0 0 1px rgba(255, 224, 102, .65), 0 18px 50px -12px rgba(255, 224, 102, .6);--glow-good: 0 0 0 1px rgba(57, 217, 138, .6), 0 16px 44px -14px rgba(57, 217, 138, .5);--glow-miss: 0 0 0 1px rgba(255, 77, 109, .6), 0 14px 40px -14px rgba(255, 77, 109, .5);--glow-focus: 0 0 0 2px #05060f, 0 0 0 4px #ffc93c;--z-raised: 10;--z-sticky: 100;--z-hud: 200;--z-scrim: 300;--z-modal: 400;--z-toast: 500;--w-prose: 720px;--w-page: 1080px;--w-wide: 1320px;--chrome-bg: rgba(6, 6, 6, .82);--chrome-line: #2a2520;--chrome-hair: rgba(255, 255, 255, .08);--chrome-ink: #f4f2ed;--chrome-ink-2: #d0c8be;--chrome-ink-3: #8f8578;--chrome-ink-4: #5b4f43;--chrome-amber: #e8a04a;--chrome-dot-1: #f0b968;--chrome-dot-2: #8a4a18;--chrome-dot-3: #0a0908;--chrome-dot: radial-gradient( circle at 40% 38%, var(--chrome-dot-1), var(--chrome-dot-2) 70%, var(--chrome-dot-3) 100% );--chrome-dot-glow: 0 0 18px rgba(240, 185, 104, .35);--chrome-dot-size: 28px;--chrome-tr-brand: .28em;--chrome-tr-nav: .22em;--chrome-tr-foot: .24em;--chrome-tr-cta: .14em;--d-instant: 90ms;--d-quick: .16s;--d-pop: .22s;--d-settle: .32s;--d-sweep: .52s;--ease-out: cubic-bezier(.2, .8, .3, 1);--ease-pop: cubic-bezier(.2, .9, .3, 1.35);--ease-in-out: cubic-bezier(.5, 0, .5, 1);color:var(--ink);background:var(--bg);font-family:var(--font-body);color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;background:radial-gradient(1200px 700px at 50% -10%,#1a2140 0%,var(--bg) 55%) var(--bg);overflow-x:auto;font-size:var(--fs-body);-webkit-font-smoothing:antialiased;text-wrap:pretty}#root{min-height:100vh}button,select,input{font:inherit}h1,h2,h3{margin:0;font-family:var(--font-display)}a{color:var(--accent);text-decoration:none;border-bottom:var(--stroke-hair) solid var(--accent-edge);transition:color var(--d-quick) var(--ease-out),border-color var(--d-quick) var(--ease-out)}a:hover{color:var(--perfect);border-bottom-color:var(--perfect)}:focus-visible{outline:none;box-shadow:var(--glow-focus)}.num,time,output{font-variant-numeric:tabular-nums}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.wrap{width:100%;max-width:var(--w-page);margin:0 auto;padding-inline:var(--sp-5)}.wrap-wide{max-width:var(--w-wide)}.wrap-prose{max-width:var(--w-prose)}.band{padding-block:var(--sp-9)}.band-tight{padding-block:var(--sp-7)}.stack{display:flex;flex-direction:column}.stack-1{gap:var(--sp-1)}.stack-2{gap:var(--sp-2)}.stack-3{gap:var(--sp-3)}.stack-4{gap:var(--sp-4)}.stack-5{gap:var(--sp-5)}.stack-6{gap:var(--sp-6)}.stack-7{gap:var(--sp-7)}.row{display:flex;align-items:center}.row-2{gap:var(--sp-2)}.row-3{gap:var(--sp-3)}.row-4{gap:var(--sp-4)}.row-5{gap:var(--sp-5)}.row-base{align-items:baseline}.row-top{align-items:flex-start}.push{margin-left:auto}.grid{display:grid;gap:var(--sp-4)}.grid-5{gap:var(--sp-5)}.grid-2,.grid-3,.grid-4,.grid-cards{grid-template-columns:minmax(0,1fr)}@media(min-width:600px){.grid-2,.grid-4,.grid-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:760px){.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1024px){.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1280px){.grid-cards{grid-template-columns:repeat(5,minmax(0,1fr))}}.eyebrow{display:block;font-size:var(--fs-caption);font-weight:600;color:var(--ink-dim);letter-spacing:var(--tr-none)}.eyebrow-mono{font-family:var(--font-mono);font-size:var(--fs-micro);font-weight:400;letter-spacing:var(--tr-eyebrow);text-transform:uppercase}.display{font-family:var(--font-display);font-weight:800;line-height:var(--lh-display);letter-spacing:-.015em}.d-lg{font-size:var(--fs-display-lg)}.d-md{font-size:var(--fs-display)}.d-sm{font-size:var(--fs-display-sm)}.title-lg{font-family:var(--font-display);font-size:var(--fs-title-lg);font-weight:800;line-height:var(--lh-title)}.title{font-family:var(--font-display);font-size:var(--fs-title);font-weight:800;line-height:var(--lh-title)}.title-sm{font-family:var(--font-display);font-size:var(--fs-title-sm);font-weight:700;line-height:var(--lh-title)}.lede{font-size:var(--fs-body-lg);color:var(--ink-dim);line-height:var(--lh-snug)}.body-dim{color:var(--ink-dim)}.caption{font-size:var(--fs-caption);color:var(--ink-dim);line-height:var(--lh-snug)}.mono{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--tr-label);color:var(--ink-dim)}.hl{color:var(--accent)}@media(max-width:760px){.d-lg{font-size:var(--fs-display-sm)}.d-md{font-size:var(--fs-title-lg)}.title-lg{font-size:var(--fs-title)}.band{padding-block:var(--sp-7)}}.panel{background:var(--bg-panel);border:var(--stroke-hair) solid var(--line);border-radius:var(--r-lg);box-shadow:var(--e-panel)}.card{background:var(--bg-panel);border:var(--stroke-hair) solid var(--line);border-radius:var(--r-md);box-shadow:var(--e-card)}.well{background:var(--bg);border:var(--stroke-hair) solid var(--line);border-radius:var(--r-md);box-shadow:var(--e-well)}.pad-4{padding:var(--sp-4)}.pad-5{padding:var(--sp-5)}.pad-6{padding:var(--sp-6)}.stage-well{background:var(--bg);border:var(--stroke-hair) solid var(--line);border-radius:var(--r-lg);box-shadow:var(--e-well);position:relative;overflow:hidden}.stage-well:after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,var(--scanline) 0 1px,transparent 1px 3px)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);font-family:var(--font-display);font-weight:700;font-size:var(--fs-body);padding:var(--sp-3) var(--sp-5);border-radius:var(--r-pill);border:var(--stroke-mark) solid transparent;background:transparent;color:var(--ink-dim);cursor:pointer;white-space:nowrap;transition:transform var(--d-instant) var(--ease-pop),background var(--d-quick) var(--ease-out),color var(--d-quick) var(--ease-out),border-color var(--d-quick) var(--ease-out),box-shadow var(--d-quick) var(--ease-out)}.btn:active{transform:translateY(1px) scale(.985)}.btn-lg{font-size:var(--fs-body-lg);padding:var(--sp-4) var(--sp-7)}.btn-sm{font-size:var(--fs-caption);padding:var(--sp-2) var(--sp-4)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--ink-on-accent);box-shadow:var(--e-card)}.btn-primary:hover{background:var(--perfect);border-color:var(--perfect)}.btn-ghost{border-color:var(--line);color:var(--ink-dim)}.btn-ghost:hover{border-color:var(--ink-dim);color:var(--ink)}.btn-p1{border-color:var(--p1-edge);color:var(--p1);background:var(--p1-wash)}.btn-p1:hover{box-shadow:var(--glow-p1)}.btn-p2{border-color:var(--p2-edge);color:var(--p2);background:var(--p2-wash)}.btn-p2:hover{box-shadow:var(--glow-p2)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.tag{display:inline-flex;align-items:center;gap:var(--sp-1);font-family:var(--font-body);font-size:var(--fs-caption);letter-spacing:var(--tr-none);color:var(--ink-dim);border:var(--stroke-hair) solid var(--line);border-radius:var(--r-pill);padding:var(--sp-1) var(--sp-3);white-space:nowrap}.tag-mono{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--tr-label)}.badge{display:inline-flex;align-items:center;gap:var(--sp-2);font-family:var(--font-display);font-weight:700;font-size:var(--fs-caption);border-radius:var(--r-pill);padding:var(--sp-1) var(--sp-3);border:var(--stroke-hair) solid}.badge-accent{color:var(--accent);border-color:var(--accent-edge);background:var(--accent-wash)}.badge-good{color:var(--good);border-color:var(--good-edge);background:var(--good-wash)}.badge-miss{color:var(--bad);border-color:var(--bad-edge);background:var(--bad-wash)}.badge-p1{color:var(--p1);border-color:var(--p1-edge);background:var(--p1-wash)}.badge-p2{color:var(--p2);border-color:var(--p2-edge);background:var(--p2-wash)}.pchip{display:inline-grid;place-items:center;width:var(--sp-6);height:var(--sp-6);border-radius:var(--r-sm);font-family:var(--font-mono);font-size:var(--fs-caption);font-weight:700;border:var(--stroke-mark) solid;flex:none}.pchip-1{color:var(--p1);border-color:var(--p1-edge);background:var(--p1-wash)}.pchip-2{color:var(--p2);border-color:var(--p2-edge);background:var(--p2-wash)}kbd{font-family:var(--font-mono);font-size:var(--fs-micro);background:var(--bg-panel-soft);border:var(--stroke-hair) solid var(--line);border-bottom-width:var(--stroke-bold);border-radius:var(--r-xs);padding:var(--sp-1) var(--sp-2);color:var(--ink)}.seg{display:inline-flex;border:var(--stroke-hair) solid var(--line);border-radius:var(--r-sm);overflow:hidden;background:var(--bg)}.seg>button{border:0;background:transparent;color:var(--ink-dim);font-size:var(--fs-caption);padding:var(--sp-2) var(--sp-4);cursor:pointer;transition:background var(--d-quick) var(--ease-out),color var(--d-quick) var(--ease-out)}.seg>button:hover{color:var(--ink);background:var(--bg-panel)}.seg>button[aria-pressed=true]{background:var(--bg-panel-soft);color:var(--ink);font-weight:600}.meter{height:var(--stroke-bold);background:var(--bg);border-radius:var(--r-pill);overflow:hidden}.meter>i{display:block;height:100%;background:var(--accent);border-radius:var(--r-pill);transition:width var(--d-quick) linear}.meter-p1>i{background:var(--p1)}.meter-p2>i{background:var(--p2)}.meter-lg{height:var(--sp-2)}.ring{position:relative;border-radius:var(--r-pill);display:grid;place-items:center;flex:none}.ring>.ring-hole{position:absolute;background:var(--bg);border-radius:var(--r-pill);display:grid;place-items:center}.ring>.ring-hole>span{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--ink);letter-spacing:var(--tr-label)}.gcard{position:relative;display:flex;flex-direction:column;gap:var(--sp-3);background:var(--bg-panel);border:var(--stroke-hair) solid var(--line);border-radius:var(--r-md);padding:var(--sp-3);box-shadow:var(--e-card);transition:transform var(--d-pop) var(--ease-pop),border-color var(--d-quick) var(--ease-out),box-shadow var(--d-quick) var(--ease-out)}.gcard:hover{transform:translateY(calc(var(--sp-1) * -1));border-color:var(--ink-faint)}.gcard[aria-current=true]{border-color:var(--accent);box-shadow:var(--glow-accent);transform:translateY(calc(var(--sp-1) * -1.5))}.gcard-art{position:relative;aspect-ratio:16 / 10;border-radius:var(--r-sm);overflow:hidden;background:var(--bg);border:var(--stroke-hair) solid var(--line);flex:none}.gcard-art>.gcard-rule{position:absolute;inset-inline:0;bottom:0;height:var(--stroke-bold)}.gcard-body{display:flex;flex-direction:column;gap:var(--sp-2);flex:1;min-height:0}.gcard-sub{font-size:var(--fs-caption);color:var(--ink-dim);line-height:var(--lh-snug);flex:1}.gcard-tags{display:flex;gap:var(--sp-1);flex-wrap:wrap}.stat{display:flex;flex-direction:column;gap:var(--sp-1)}.stat-n{font-family:var(--font-display);font-size:var(--fs-title-lg);font-weight:800;line-height:var(--lh-display);font-variant-numeric:tabular-nums}.stat-l{font-size:var(--fs-caption);color:var(--ink-dim)}.stat-u{font-family:var(--font-body);font-size:var(--fs-caption);color:var(--ink-dim);font-weight:400;margin-left:var(--sp-1)}.table{width:100%;border-collapse:collapse;font-size:var(--fs-caption)}.table th,.table td{text-align:left;padding:var(--sp-3);border-bottom:var(--stroke-hair) solid var(--line)}.table th{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--tr-label);color:var(--ink-dim);font-weight:400}.table td{color:var(--ink-dim)}.table td.num{font-variant-numeric:tabular-nums;color:var(--ink)}.table tbody tr:last-child td{border-bottom:0}.shead{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-6)}.shead-row{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-5);flex-wrap:wrap}.nav{position:sticky;top:0;z-index:var(--z-sticky);background:var(--chrome-bg);backdrop-filter:blur(24px);border-bottom:var(--stroke-hair) solid var(--chrome-line)}.nav-in{display:flex;align-items:center;padding-block:var(--sp-4);gap:var(--sp-5)}.nav-in{position:relative}.nav-in>.brandmark{margin-right:auto}.nav-center{display:flex;align-items:center;gap:var(--sp-5)}@media(min-width:600px){.nav-center{position:absolute;left:50%;transform:translate(-50%);max-width:calc(100% - var(--sp-10) * 2)}}.nav-tail{display:flex;align-items:center;gap:var(--sp-3);flex:none}@media(min-width:1024px){.nav-in,.foot-in{padding-inline:var(--sp-6)}}.brandmark{display:flex;align-items:center;gap:var(--sp-3);flex:none;white-space:nowrap;font-family:var(--font-body);font-weight:500;font-size:var(--fs-caption);letter-spacing:var(--chrome-tr-brand);color:var(--chrome-ink);border:0}.brandmark:hover{color:var(--chrome-ink)}.brandmark-dot{width:var(--chrome-dot-size);height:var(--chrome-dot-size);border-radius:var(--r-pill);background:var(--chrome-dot);box-shadow:var(--chrome-dot-glow);flex:none}.nav-links{display:none;gap:var(--sp-5)}.nav-links a{position:relative;padding-bottom:var(--sp-2);font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:var(--chrome-tr-nav);color:var(--chrome-ink-3);border:0}.nav-links a:hover{color:var(--chrome-ink)}.nav-links a[aria-current=page]{color:var(--chrome-amber)}.nav-links a[aria-current=page]:after{content:"";position:absolute;inset:auto 0 0;height:var(--stroke-hair);background:var(--chrome-amber)}@media(min-width:760px){.nav-links{display:flex}}:lang(zh) .brandmark,:lang(ja) .brandmark{letter-spacing:var(--tr-none)}:lang(zh) .nav-links a,:lang(ja) .nav-links a{font-size:var(--fs-caption);letter-spacing:var(--tr-none);text-transform:none}:lang(zh) .foot-in,:lang(ja) .foot-in,:lang(zh) .foot-in a,:lang(ja) .foot-in a,:lang(zh) .foot-sig,:lang(ja) .foot-sig{font-size:var(--fs-caption);letter-spacing:var(--tr-none);text-transform:none}.nav-cta.btn{background:var(--chrome-ink);border-color:var(--chrome-ink);color:#0a0908;box-shadow:none;font-family:var(--font-body);font-weight:600;font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:var(--chrome-tr-cta);padding:var(--sp-2) var(--sp-4)}:lang(zh) .nav-cta.btn,:lang(ja) .nav-cta.btn{font-size:var(--fs-caption);letter-spacing:var(--tr-none);text-transform:none}.nav-cta.btn:hover{background:var(--chrome-ink);border-color:var(--chrome-ink);opacity:.9}.foot{border-top:var(--stroke-hair) solid var(--chrome-hair);margin-top:var(--sp-9)}.foot-in{display:flex;flex-direction:column;gap:var(--sp-3);padding-block:var(--sp-6);font-size:var(--fs-micro);color:var(--chrome-ink-3)}.foot-in a,.foot-sig{font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:var(--chrome-tr-foot)}@media(min-width:1024px){.foot-in{flex-direction:row;align-items:center;justify-content:space-between}}.foot-sig{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--chrome-tr-foot);color:var(--chrome-ink-3)}details.qa{border-bottom:var(--stroke-hair) solid var(--line)}details.qa>summary{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding-block:var(--sp-4);cursor:pointer;list-style:none;font-size:var(--fs-body);font-weight:600}details.qa>summary::-webkit-details-marker{display:none}details.qa>summary:after{content:"+";font-family:var(--font-mono);font-size:var(--fs-body-lg);color:var(--ink-dim);flex:none;transition:transform var(--d-pop) var(--ease-out)}details.qa[open]>summary:after{transform:rotate(45deg)}details.qa>.qa-body{padding-bottom:var(--sp-4);color:var(--ink-dim);font-size:var(--fs-caption);line-height:var(--lh-body);max-width:var(--w-prose)}.scrim{position:absolute;inset:0;z-index:var(--z-scrim);background:color-mix(in oklab,var(--bg-stage) 76%,transparent);display:grid;place-items:center}.modal{z-index:var(--z-modal);background:var(--bg-panel);border:var(--stroke-hair) solid var(--line);border-radius:var(--r-lg);box-shadow:var(--e-overlay);padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-3);align-items:center;text-align:center}.hud{position:absolute;inset-inline:0;top:0;z-index:var(--z-hud);display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-4)}.hud-clock{font-family:var(--font-display);font-size:var(--fs-title);font-weight:800;color:var(--accent);font-variant-numeric:tabular-nums;line-height:1}.hud-score{font-family:var(--font-display);font-size:var(--fs-title-sm);font-weight:800;font-variant-numeric:tabular-nums;line-height:1}.judge{font-family:var(--font-display);font-weight:800;font-size:var(--fs-title);letter-spacing:.02em}.judge-perfect{color:var(--perfect)}.judge-good{color:var(--good)}.judge-miss{color:var(--bad)}.pads{position:absolute;inset:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.pad{position:relative;display:grid;align-items:end}.pad>span{font-family:var(--font-display);font-size:var(--fs-display-lg);font-weight:800;line-height:.82;opacity:.26;padding:var(--sp-5)}.pad-1{background:linear-gradient(0deg,var(--p1-wash),transparent 52%);justify-items:start}.pad-1>span{color:var(--p1)}.pad-2{background:linear-gradient(0deg,var(--p2-wash),transparent 52%);justify-items:end}.pad-2>span{color:var(--p2)}.lp-root,.guide-root,.sg-root{min-height:100vh;background:radial-gradient(ellipse 70% 40% at 50% 0%,var(--accent-wash),transparent 68%) var(--bg-stage);color:var(--ink);font-family:var(--font-body);overflow-x:hidden}.lp-root :where(p,ul,ol,dl,dd,figure,blockquote),.guide-root :where(p,ul,ol,dl,dd,figure,blockquote),.sg-root :where(p,ul,ol,dl,dd,figure,blockquote){margin:0}.lp-root :where(ul,ol),.guide-root :where(ul,ol),.sg-root :where(ul,ol){padding-left:0;list-style:none}.lp-nav .nav-links{display:none}@media(min-width:1024px){.lp-nav .nav-links{display:flex}}@media(max-width:599.98px){.lp-nav .nav-cta{display:none}}.lp-scroll-anchor{scroll-margin-top:var(--sp-8)}.lp-quiet-link{color:var(--ink-dim);border-bottom:0;font-size:var(--fs-caption)}.lp-quiet-link:hover{color:var(--ink);border-bottom:0}.lp-reveal{opacity:0;transform:translateY(12px);transition:opacity var(--d-sweep) var(--ease-out),transform var(--d-sweep) var(--ease-out)}.lp-reveal.is-in{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){.lp-reveal{opacity:1;transform:none;transition:none}}.lp-shot{position:relative;width:100%;aspect-ratio:var(--lp-shot-aspect, 16 / 10);overflow:hidden;background:var(--bg)}.lp-shot:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 38%,var(--lp-shot-accent),transparent 64%);opacity:.2}.lp-shot>.gcard-rule{position:absolute;inset-inline:0;bottom:0;z-index:2;height:var(--stroke-bold);background:var(--lp-shot-accent);opacity:.75}.lp-shot-canvas{position:absolute;inset:0;z-index:1;width:100%;height:100%;display:block}.lp-shot-hint{position:absolute;right:var(--sp-2);bottom:var(--sp-2);z-index:2;background:color-mix(in oklab,var(--bg-stage) 74%,transparent)}.lp-hero{position:relative;padding-block:var(--sp-8) var(--sp-9);overflow:hidden;border-bottom:var(--stroke-hair) solid var(--line)}.lp-hero:before{content:"";position:absolute;inset:auto 0 auto 50%;top:calc(var(--sp-10) * -1);width:min(140%,1400px);height:var(--w-prose);transform:translate(-50%);background:radial-gradient(ellipse 60% 50% at 50% 0%,var(--accent-wash),transparent 70%);pointer-events:none}.lp-hero-in{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-7);align-items:center}@media(min-width:1024px){.lp-hero-in{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-8)}}.lp-hero-claim{max-width:46ch}.lp-hero-badges,.lp-hero-cta{display:flex;gap:var(--sp-3);flex-wrap:wrap;align-items:center}.lp-hero-badges{gap:var(--sp-2)}.lp-stage{position:relative;border-radius:var(--r-xl);overflow:hidden;border:var(--stroke-hair) solid var(--line);background:var(--bg-panel);box-shadow:var(--e-overlay)}.lp-stage-hud{position:relative;z-index:var(--z-hud);display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-4);border-bottom:var(--stroke-hair) solid var(--line);background:color-mix(in oklab,var(--bg) 72%,transparent)}.lp-stage-body{position:relative;aspect-ratio:16 / 10;background:var(--bg-stage)}.lp-hero-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}.lp-stage-pads{position:absolute;inset:0;z-index:var(--z-raised);pointer-events:none}.lp-stage-scan{position:absolute;inset:0;z-index:var(--z-raised);pointer-events:none;background:repeating-linear-gradient(0deg,var(--scanline) 0 1px,transparent 1px 3px)}.lp-bridge{display:flex;flex-direction:column;gap:var(--sp-3);align-items:flex-start;padding:var(--sp-5);background:var(--bg-panel);border:var(--stroke-hair) solid var(--line);border-radius:var(--r-md);box-shadow:var(--e-well)}.lp-bridge-note{max-width:48ch}.lp-bridge-actions{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.lp-bridge-status{font-size:var(--fs-caption);color:var(--good);min-height:var(--sp-4)}.lp-bridge-status.is-fail{color:var(--bad)}.lp-bridge-url{display:flex;flex-direction:column;gap:var(--sp-1);width:100%}.lp-bridge-url input{width:100%;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-xs);border:var(--stroke-hair) solid var(--line);background:var(--bg);color:var(--ink-dim);font-family:var(--font-mono);font-size:var(--fs-caption)}@media(min-width:760px){.lp-bridge{display:none}}.lp-step{position:relative;display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-5);background:var(--bg-panel);border:var(--stroke-hair) solid var(--line);border-radius:var(--r-md);box-shadow:var(--e-panel)}.lp-step-n{font-family:var(--font-display);font-size:var(--fs-display-sm);font-weight:800;line-height:1;color:var(--accent);font-variant-numeric:tabular-nums}.lp-step-art{position:relative;aspect-ratio:16 / 10;border-radius:var(--r-sm);overflow:hidden;border:var(--stroke-hair) solid var(--line);background:radial-gradient(ellipse 70% 60% at 50% 0%,var(--accent-wash),transparent 70%) var(--bg);display:grid;place-items:center}.lp-step-emoji{font-size:var(--fs-display-lg);line-height:1;filter:saturate(1.1)}.grid-cards>li{display:flex}.lp-gcard{flex:1;color:inherit;border-bottom:0;text-decoration:none}.lp-gcard .lp-gcard-go{margin-top:auto}.lp-gcard:hover{color:inherit;border-bottom:0}.lp-gcard-go{font-family:var(--font-display);font-size:var(--fs-caption);font-weight:700;color:var(--ink-dim);transition:color var(--d-quick) var(--ease-out),transform var(--d-quick) var(--ease-out)}.lp-gcard:hover .lp-gcard-go,.lp-gcard:focus-visible .lp-gcard-go{color:var(--accent);transform:translate(3px)}@media(prefers-reduced-motion:reduce){.lp-gcard-go{transition:none}.lp-gcard:hover .lp-gcard-go,.lp-gcard:focus-visible .lp-gcard-go{transform:none}}.lp-score-panel{display:grid;grid-template-columns:minmax(0,1fr);gap:0}.lp-score-cell{display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-5);border-bottom:var(--stroke-hair) solid var(--line)}.lp-score-cell:last-child{border-bottom:0}@media(min-width:760px){.lp-score-panel{grid-template-columns:repeat(3,minmax(0,1fr))}.lp-score-cell{border-bottom:0;border-right:var(--stroke-hair) solid var(--line)}.lp-score-cell:last-child{border-right:0}}.lp-judge-rows{display:flex;flex-direction:column;gap:var(--sp-3)}.lp-judge-row{display:flex;align-items:baseline;gap:var(--sp-3)}.lp-judge-row>.judge{font-size:var(--fs-title-sm);width:var(--sp-9);flex:none}.lp-reps{display:flex;align-items:center;gap:var(--sp-5);flex-wrap:wrap;margin-top:var(--sp-4);padding:var(--sp-4) var(--sp-5)}.lp-reps-value{font-family:var(--font-display);font-size:var(--fs-title-lg);font-weight:800;line-height:var(--lh-display);color:var(--accent);font-variant-numeric:tabular-nums}.lp-reps-value.is-empty{color:var(--ink-dim)}.lp-trust{position:relative;border-radius:var(--r-xl);border:var(--stroke-hair) solid var(--line);background:var(--bg-panel);box-shadow:var(--e-panel);padding:var(--sp-7) var(--sp-6);overflow:hidden}.lp-trust:before{content:"";position:absolute;inset:0 auto 0 0;width:var(--stroke-bold);background:linear-gradient(180deg,var(--p1),var(--accent),var(--p2))}.lp-trust-title{max-width:34ch}.lp-trust-lead{max-width:56ch}.lp-trust-item{display:flex;flex-direction:column;gap:var(--sp-2)}.lp-trust-item>.mono{color:var(--good)}.lp-endcta{position:relative;text-align:center;border-radius:var(--r-xl);border:var(--stroke-hair) solid var(--line);background:var(--bg-panel);box-shadow:var(--e-well);padding:var(--sp-9) var(--sp-5);overflow:hidden}.lp-endcta:before{content:"";position:absolute;inset:auto 0 auto 50%;bottom:calc(var(--sp-9) * -1);width:min(120%,900px);height:var(--sp-10);transform:translate(-50%);background:radial-gradient(ellipse 60% 100% at 50% 100%,var(--accent-wash),transparent 72%);pointer-events:none}.lp-endcta>*{position:relative}.lp-endcta-title{max-width:22ch;margin-inline:auto;margin-top:var(--sp-3)}.lp-endcta-body{max-width:44ch;margin-inline:auto;margin-top:var(--sp-4)}.lp-endcta-actions{display:flex;gap:var(--sp-3);justify-content:center;flex-wrap:wrap;margin-top:var(--sp-6)}.lp-foot-nav,.lp-foot-meta{display:flex;gap:var(--sp-4);flex-wrap:wrap;align-items:center}.lp-foot-hint{color:var(--ink-faint);margin-left:var(--sp-1)}.guide-setup{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-4)}@media(min-width:600px){.guide-setup{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1024px){.guide-setup{grid-template-columns:repeat(3,minmax(0,1fr))}}.guide-setup-cell{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-5)}.guide-howto{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-5);align-items:center;padding-block:var(--sp-6);border-top:var(--stroke-hair) solid var(--line)}@media(min-width:1024px){.guide-howto{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-7)}.guide-howto:nth-of-type(2n)>.guide-howto-art{order:2}}.guide-howto-art{position:relative;border-radius:var(--r-md);overflow:hidden;border:var(--stroke-hair) solid var(--line);background:var(--bg-panel);box-shadow:var(--e-card)}.guide-howto-head{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.guide-rules{display:flex;flex-direction:column;gap:var(--sp-3);margin:0}.guide-rule{display:grid;grid-template-columns:var(--sp-5) minmax(0,1fr);gap:var(--sp-3);align-items:start}.guide-rule-n{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--accent);letter-spacing:var(--tr-label);padding-top:var(--sp-1)}.guide-rule-body{font-size:var(--fs-caption);color:var(--ink-dim);line-height:var(--lh-body);margin:0}.guide-rule-body>strong{color:var(--ink);font-weight:600}.guide-stance{display:flex;gap:var(--sp-3);align-items:baseline;padding:var(--sp-3) var(--sp-4)}.guide-stance>.eyebrow{flex:none}.guide-lede{max-width:56ch}.guide-judge-rows{display:flex;flex-direction:column;gap:var(--sp-3)}.guide-judge-row{display:flex;align-items:baseline;gap:var(--sp-4)}.guide-judge-row>.judge{font-size:var(--fs-title-sm);width:var(--sp-9);flex:none}.guide-actions{display:flex;gap:var(--sp-3);flex-wrap:wrap}.app-root{min-height:100vh;min-width:1024px}.screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;animation:screen-in var(--d-settle) var(--ease-out)}@keyframes screen-in{0%{opacity:0;transform:translateY(18px) scale(.99)}to{opacity:1;transform:none}}.play-bar{align-self:stretch}.play-bar .ghost-button{min-height:34px;padding-inline:var(--sp-4);font-size:var(--fs-caption)}.play-step{font-size:var(--fs-caption);color:var(--ink-dim);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.play-bar-actions{display:flex;align-items:center;gap:var(--sp-3)}.play-main{width:min(var(--w-wide),100%);display:flex;flex-direction:column;gap:var(--sp-5);padding:var(--sp-5);min-height:0}.primary-button,.ghost-button,.start-button{border:0;border-radius:var(--r-md);cursor:pointer;font-family:var(--font-display);font-weight:800;color:var(--ink);transition:transform var(--d-instant) var(--ease-pop),box-shadow var(--d-quick) var(--ease-out),background var(--d-quick) var(--ease-out)}.primary-button{min-height:52px;padding:0 var(--sp-6);font-size:var(--fs-body-lg);color:var(--ink-on-accent);background:var(--accent);box-shadow:var(--glow-accent)}.primary-button:hover{transform:translateY(-2px);background:var(--perfect)}.ghost-button{min-height:48px;padding:0 var(--sp-5);background:var(--bg-panel-soft);border:var(--stroke-hair) solid var(--line)}.ghost-button:hover{background:var(--bg-panel);transform:translateY(-1px)}.menu-screen{justify-content:flex-start;gap:0;padding:0}.menu-header{display:flex;flex-direction:column;gap:var(--sp-1)}.menu-title{font-size:var(--fs-title);letter-spacing:var(--tr-none)}.menu-subtitle{margin:0;color:var(--ink-dim);font-size:var(--fs-caption);line-height:var(--lh-snug)}.game-wall{display:flex;flex-direction:column;gap:var(--sp-4);min-height:0}.game-cards{display:grid;gap:var(--sp-3);grid-template-columns:repeat(2,minmax(0,1fr))}@media(min-width:760px){.game-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1280px){.game-cards{grid-template-columns:repeat(5,minmax(0,1fr))}}.game-card{position:relative;display:flex;flex-direction:column;gap:var(--sp-3);text-align:left;padding:var(--sp-3);border-radius:var(--r-md);border:var(--stroke-hair) solid var(--line);background:var(--bg-panel);color:var(--ink);cursor:pointer;box-shadow:var(--e-card);transition:transform var(--d-pop) var(--ease-pop),border-color var(--d-quick) var(--ease-out),box-shadow var(--d-quick) var(--ease-out)}.game-card:hover{transform:translateY(calc(var(--sp-1) * -1));border-color:var(--ink-faint)}.game-card.is-selected{border-color:var(--accent);box-shadow:var(--glow-accent);transform:translateY(calc(var(--sp-1) * -1.5))}.game-card.is-selected:after{content:"✓";position:absolute;top:calc(var(--sp-2) * -1);right:calc(var(--sp-2) * -1);width:28px;height:28px;display:grid;place-items:center;border-radius:var(--r-pill);background:var(--accent);color:var(--ink-on-accent);font-weight:900;font-size:var(--fs-caption);box-shadow:var(--glow-accent)}.game-card-shot{position:relative;display:block;width:100%;aspect-ratio:var(--lp-shot-aspect, 16 / 10);overflow:hidden;border-radius:var(--r-sm);border:var(--stroke-hair) solid var(--line);background:var(--bg-deep);flex:none}.game-card-shot:after{content:"";position:absolute;left:0;right:0;bottom:0;z-index:2;height:var(--stroke-bold);background:var(--lp-shot-accent);opacity:.75}.game-card-shot-canvas{position:absolute;inset:0;z-index:1;width:100%;height:100%;display:block}.game-card-shot-badge{position:absolute;z-index:3;left:var(--sp-2);bottom:var(--sp-2);font-size:var(--fs-body);line-height:1;filter:drop-shadow(0 1px 3px rgba(0,0,0,.7))}.game-card-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--sp-2)}.game-card-title{font-family:var(--font-display);font-size:var(--fs-title-sm);line-height:var(--lh-title)}.game-card-sub{color:var(--ink-dim);font-size:var(--fs-caption);line-height:var(--lh-snug);flex:1}.game-card-meta{display:flex;gap:var(--sp-1);flex-wrap:wrap}.game-tag{padding:var(--sp-1) var(--sp-2);border-radius:var(--r-pill);border:var(--stroke-hair) solid var(--line);background:var(--bg-deep);color:var(--ink-dim);font-size:var(--fs-caption);white-space:nowrap}.game-card-best{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-2);padding-top:var(--sp-2);border-top:var(--stroke-hair) solid var(--line)}.game-card-best-label{color:var(--ink-dim);font-size:var(--fs-caption)}.game-card-best-value{font-family:var(--font-display);font-weight:800;font-size:var(--fs-title-sm);color:var(--perfect);font-variant-numeric:tabular-nums}.settings-strip{display:grid;gap:var(--sp-4);padding:var(--sp-5);border-radius:var(--r-lg);border:var(--stroke-hair) solid var(--line);background:var(--bg-panel);box-shadow:var(--e-panel)}.settings-strip-head{display:flex;align-items:baseline;gap:var(--sp-3);flex-wrap:wrap}.settings-strip-title{color:var(--ink);font-family:var(--font-display);font-weight:700;font-size:var(--fs-body)}.settings-strip-hint{color:var(--ink-dim);font-size:var(--fs-caption)}.settings-strip-groups{display:grid;gap:var(--sp-4) var(--sp-5);grid-template-columns:minmax(0,1fr);align-items:start}@media(min-width:600px){.settings-strip-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1024px){.settings-strip-groups{grid-template-columns:repeat(4,minmax(0,1fr))}}.config-group{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}.config-group>label{color:var(--ink-dim);font-size:var(--fs-caption);letter-spacing:var(--tr-none)}.config-hint{margin:0;color:var(--ink-dim);font-size:var(--fs-caption);line-height:var(--lh-snug)}.seg-control{display:inline-flex;padding:var(--sp-1);gap:var(--sp-1);border-radius:var(--r-sm);background:var(--bg-deep);border:var(--stroke-hair) solid var(--line)}.seg-control button{min-height:40px;padding:0 var(--sp-3);border:0;border-radius:var(--r-xs);background:transparent;color:var(--ink-dim);font-size:var(--fs-caption);font-weight:700;cursor:pointer;white-space:nowrap;transition:background var(--d-quick) var(--ease-out),color var(--d-quick) var(--ease-out)}.seg-control button:hover{color:var(--ink)}.seg-control button.is-active,.seg-control button[aria-pressed=true]{background:var(--bg-panel-soft);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}.config-group>.seg-control{width:100%}.config-group>.seg-control button{flex:1;min-width:0;padding:0 var(--sp-2);overflow:hidden;text-overflow:ellipsis}.character-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2)}@media(min-width:1280px){.character-cards{grid-template-columns:repeat(4,minmax(0,1fr))}}.character-card{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);padding:var(--sp-2);border-radius:var(--r-sm);border:var(--stroke-mark) solid var(--line);background:var(--bg-deep);color:var(--ink-dim);cursor:pointer;transition:transform var(--d-instant) var(--ease-pop),border-color var(--d-quick) var(--ease-out),box-shadow var(--d-quick) var(--ease-out),color var(--d-quick) var(--ease-out)}.character-card:hover{transform:translateY(-2px);border-color:var(--ink-faint)}.character-card.is-selected{border-color:var(--accent);color:var(--ink);box-shadow:var(--glow-accent)}.character-canvas{display:block}.character-card span{font-size:var(--fs-caption);font-weight:700;text-align:center;line-height:var(--lh-snug)}.camera-select{width:100%;min-height:40px;padding:0 var(--sp-3);border-radius:var(--r-sm);border:var(--stroke-hair) solid var(--line);background:var(--bg-deep);color:var(--ink);font-size:var(--fs-caption);cursor:pointer}.camera-select:disabled{opacity:.45;cursor:not-allowed}.mock-toggle{display:flex;align-items:center;gap:var(--sp-2);color:var(--ink-dim);font-size:var(--fs-caption);cursor:pointer;user-select:none}.mock-toggle input{width:16px;height:16px;accent-color:var(--accent);flex:none}.menu-start-row{display:flex;align-items:center;gap:var(--sp-5)}.start-button{min-height:64px;padding:0 var(--sp-7);font-size:var(--fs-title);letter-spacing:.2em;text-indent:.2em;color:var(--ink-on-accent);background:var(--accent);border-radius:var(--r-lg);box-shadow:var(--glow-accent),var(--e-card);flex:none}.start-button:hover{transform:translateY(-3px) scale(1.02);background:var(--perfect)}.start-button:active{transform:translateY(1px) scale(.99)}.menu-footer{display:flex;align-items:baseline;gap:var(--sp-3);color:var(--ink-dim);font-size:var(--fs-caption)}.lobby-screen{justify-content:flex-start;gap:0;padding:0}.lobby-stage{position:relative;aspect-ratio:4 / 3;width:100%;max-width:calc((100vh - 300px) * 4 / 3);align-self:center;border-radius:var(--r-lg);overflow:hidden;border:var(--stroke-hair) solid var(--line);background:var(--bg-deep);box-shadow:var(--e-well)}.lobby-camera{width:100%;height:100%;display:block}.lobby-stage .pads{z-index:var(--z-raised);pointer-events:none}.lobby-go-banner{position:absolute;left:50%;top:8%;z-index:var(--z-hud);transform:translate(-50%);padding:var(--sp-3) var(--sp-5);border-radius:var(--r-pill);font-family:var(--font-display);font-weight:800;font-size:var(--fs-title-sm);color:var(--bg-deep);background:var(--good);box-shadow:var(--glow-good);animation:banner-pop var(--d-settle) var(--ease-pop)}@keyframes banner-pop{0%{transform:translate(-50%) scale(.7);opacity:0}to{transform:translate(-50%) scale(1);opacity:1}}.lobby-cards{display:grid;gap:var(--sp-3);grid-template-columns:minmax(0,1fr)}.lobby-cards.players-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lobby-card{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-4);border-radius:var(--r-md);border:var(--stroke-hair) solid var(--line);background:var(--bg-panel);transition:border-color var(--d-pop) var(--ease-out),box-shadow var(--d-pop) var(--ease-out)}.lobby-card.is-ready.player-p1{border-color:var(--p1-edge);box-shadow:var(--e-panel)}.lobby-card.is-ready.player-p2{border-color:var(--p2-edge);box-shadow:var(--e-panel)}.lobby-card-head{display:flex;align-items:center;gap:var(--sp-3)}.lobby-card-body{margin:0;color:var(--ink-dim);font-size:var(--fs-caption);line-height:var(--lh-snug);min-height:calc(var(--sp-5) * 2)}.lobby-foot{display:flex;align-items:center;gap:var(--sp-4);color:var(--ink-dim);font-size:var(--fs-caption)}.lobby-foot-actions{margin-left:auto;display:flex;gap:var(--sp-3)}.game-screen{position:relative;padding:0;overflow:hidden;animation:none}.game-canvas{position:fixed;inset:0;width:100vw;height:100vh;display:block}.game-hud-bar{position:fixed;inset-inline:0;top:0;z-index:var(--z-hud);display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:start;gap:var(--sp-4);padding:var(--sp-4);pointer-events:none;background:linear-gradient(180deg,color-mix(in oklab,var(--bg) 78%,transparent),transparent)}.game-hud-side{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0;transition:opacity var(--d-quick) var(--ease-out)}.game-hud-side-2{align-items:flex-end;text-align:right}.game-hud-side[data-present=false]{opacity:.5}.game-hud-side .game-hud-note{color:var(--ink-dim);font-size:var(--fs-caption);line-height:var(--lh-snug);max-width:calc(var(--sp-10) * 2)}.game-hud-mid{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);min-width:0}.game-hud-mode{font-size:var(--fs-caption);color:var(--ink-dim)}.game-hud-status{color:var(--ink);font-size:var(--fs-caption);text-align:center}.game-hud-foot{position:fixed;inset-inline:0;bottom:0;z-index:var(--z-hud);display:flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-4);pointer-events:none;color:var(--ink-dim);font-size:var(--fs-caption);background:linear-gradient(0deg,color-mix(in oklab,var(--bg) 78%,transparent),transparent)}.game-pause-btn{position:fixed;bottom:var(--sp-4);left:var(--sp-4);z-index:var(--z-scrim);width:40px;height:40px;border-radius:var(--r-sm);border:var(--stroke-hair) solid var(--line);background:var(--bg-panel);color:var(--ink-dim);font-size:var(--fs-body-lg);cursor:pointer}.game-pause-btn:hover{color:var(--ink)}.mock-badge{position:fixed;bottom:var(--sp-4);right:var(--sp-4);z-index:var(--z-hud);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);border:var(--stroke-hair) dashed var(--ink-faint);color:var(--ink-dim);background:var(--bg-panel);font-size:var(--fs-caption);pointer-events:none}.pause-overlay{position:fixed;inset:0;z-index:var(--z-scrim);display:grid;place-items:center;background:color-mix(in oklab,var(--bg-stage) 76%,transparent);backdrop-filter:blur(6px);animation:fade-in var(--d-quick) var(--ease-out)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.pause-panel{display:grid;gap:var(--sp-3);width:min(360px,90vw);padding:var(--sp-6);border-radius:var(--r-lg);border:var(--stroke-hair) solid var(--line);background:var(--bg-panel);box-shadow:var(--e-overlay);text-align:center}.pause-panel h2{font-size:var(--fs-title);margin-bottom:var(--sp-1)}.results-screen{justify-content:flex-start;gap:0;padding:0}.result-banner{position:relative;text-align:center;border-radius:var(--r-xl);border:var(--stroke-hair) solid var(--line);background:var(--bg-panel);box-shadow:var(--e-well);padding:var(--sp-7) var(--sp-5);overflow:hidden;display:flex;flex-direction:column;gap:var(--sp-3);align-items:center}.result-banner:before{content:"";position:absolute;inset:auto 0 auto 50%;top:calc(var(--sp-9) * -1);width:min(120%,800px);height:var(--sp-10);transform:translate(-50%);background:radial-gradient(ellipse 60% 100% at 50% 0%,var(--accent-wash),transparent 72%);pointer-events:none}.result-banner>*{position:relative}.results-banner{font-family:var(--font-display);font-weight:800;font-size:var(--fs-display-sm);line-height:var(--lh-display);margin:0}.results-banner.player-p1{color:var(--p1)}.results-banner.player-p2{color:var(--p2)}.results-banner.draw{color:var(--accent)}.results-banner.solo{color:var(--good)}.results-score-line{margin:0;display:flex;align-items:baseline;gap:var(--sp-3);font-size:var(--fs-body-lg);color:var(--ink-dim);font-variant-numeric:tabular-nums}.results-margin:before{content:"·";margin-right:var(--sp-3)}.new-record{font-family:var(--font-display);font-weight:800;font-size:var(--fs-title-sm);color:var(--perfect);animation:record-flash var(--d-sweep) var(--ease-in-out) infinite alternate}@keyframes record-flash{0%{opacity:.55;transform:scale(.98)}to{opacity:1;transform:scale(1.06)}}.pb-line{color:var(--ink-dim);font-size:var(--fs-caption)}.result-cols{display:grid;gap:var(--sp-3);grid-template-columns:minmax(0,1fr)}@media(min-width:760px){.result-cols.players-2{grid-template-columns:repeat(2,minmax(0,1fr))}}.result-card{display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-5);border-radius:var(--r-md);border:var(--stroke-hair) solid var(--line);background:var(--bg-panel)}.result-card.is-winner.player-p1{border-color:var(--p1-edge);box-shadow:var(--e-card)}.result-card.is-winner.player-p2{border-color:var(--p2-edge);box-shadow:var(--e-card)}.result-card-head{display:flex;align-items:center;gap:var(--sp-3)}.result-card-head strong{font-family:var(--font-display);font-weight:700;font-size:var(--fs-title-sm)}.result-card-head .winner-chip{margin-left:auto}.winner-chip{padding:var(--sp-1) var(--sp-3);border-radius:var(--r-pill);font-family:var(--font-display);font-weight:700;font-size:var(--fs-caption);color:var(--ink-on-accent);background:var(--accent)}.result-total{display:flex;flex-direction:column;gap:var(--sp-1)}.result-score{font-family:var(--font-display);font-weight:800;font-size:var(--fs-title-lg);line-height:var(--lh-display);font-variant-numeric:tabular-nums}.result-total-label{font-size:var(--fs-caption);color:var(--ink-dim)}.result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-4)}.result-stat{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}.result-stat-n{font-family:var(--font-display);font-weight:800;font-size:var(--fs-title-sm);line-height:1;font-variant-numeric:tabular-nums}.result-stat-n.quality-stars{color:var(--perfect);letter-spacing:.08em}.result-stat-l{font-size:var(--fs-caption);color:var(--ink-dim);line-height:var(--lh-snug)}.result-dist-wrap{display:flex;flex-direction:column;gap:var(--sp-2)}.result-dist{display:flex;height:var(--sp-2);border-radius:var(--r-pill);overflow:hidden;background:var(--bg-deep)}.result-dist>i{display:block;transition:width var(--d-settle) var(--ease-out)}.result-dist-p{background:var(--perfect)}.result-dist-g{background:var(--good)}.result-dist-m{background:var(--bad)}.result-dist-legend{display:flex;gap:var(--sp-4);flex-wrap:wrap}.result-dist-legend>span{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-caption);color:var(--ink-dim);font-variant-numeric:tabular-nums}.result-dot{width:var(--sp-2);height:var(--sp-2);border-radius:var(--r-pill);flex:none}.score-breakdown{padding:var(--sp-3);border-radius:var(--r-sm);border:var(--stroke-hair) solid var(--line);background:var(--bg-deep);font-size:var(--fs-caption)}.score-breakdown div{display:flex;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-1) 0;color:var(--ink-dim)}.score-breakdown strong{color:var(--ink);font-variant-numeric:tabular-nums}.score-breakdown .breakdown-total{margin-top:var(--sp-1);padding-top:var(--sp-2);border-top:var(--stroke-hair) solid var(--line);color:var(--ink);font-weight:700}.result-foot{display:flex;align-items:center;gap:var(--sp-5);padding:var(--sp-5);border-radius:var(--r-lg);border:var(--stroke-hair) solid var(--line);background:var(--bg-panel);box-shadow:var(--e-panel)}.result-effort{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}.result-effort-n{font-family:var(--font-display);font-weight:800;font-size:var(--fs-title-lg);line-height:var(--lh-display);font-variant-numeric:tabular-nums}.result-effort-l{font-size:var(--fs-caption);color:var(--ink-dim)}.results-actions{margin-left:auto;display:flex;gap:var(--sp-4);align-items:flex-start}.action-with-gesture{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2)}.gesture-hint{color:var(--ink-dim);font-size:var(--fs-caption)}.results-actions .ghost-button{position:relative;overflow:hidden}.gesture-hold-fill{position:absolute;left:0;top:0;bottom:0;background:var(--accent-wash);pointer-events:none;transition:width var(--d-instant) linear}.stats-screen{justify-content:flex-start;gap:0;padding:0}.stats-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-5);flex-wrap:wrap}.stats-header h1{font-size:var(--fs-title);margin:0;color:var(--ink)}.stats-sub{color:var(--ink-dim);margin:0;font-size:var(--fs-caption)}.stats-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3)}@media(min-width:1024px){.stats-cards{grid-template-columns:repeat(4,minmax(0,1fr))}}.stats-section{display:flex;flex-direction:column;gap:var(--sp-4)}.stats-section h2{font-size:var(--fs-title-sm);margin:0;color:var(--ink)}.stats-records{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-3)}@media(min-width:760px){.stats-records{grid-template-columns:repeat(2,minmax(0,1fr))}}.stats-rec{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-4);border-radius:var(--r-md);border:var(--stroke-hair) solid var(--line);background:var(--bg-panel)}.stats-rec-art{position:relative;width:var(--sp-9);aspect-ratio:var(--lp-shot-aspect, 16 / 10);border-radius:var(--r-xs);overflow:hidden;border:var(--stroke-hair) solid var(--line);background:var(--bg-deep);flex:none}.stats-rec-art canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.stats-rec-body{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0;flex:1}.stats-rec-name{font-family:var(--font-display);font-weight:700;font-size:var(--fs-body)}.stats-rec-sub{color:var(--ink-dim);font-size:var(--fs-caption);line-height:var(--lh-snug);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stats-rec-n{font-family:var(--font-display);font-weight:800;font-size:var(--fs-title-sm);color:var(--accent);font-variant-numeric:tabular-nums;flex:none}.stats-rec.is-empty{opacity:.6}.stats-rec.is-empty .stats-rec-name{color:var(--ink-dim)}.stats-panel{padding:var(--sp-5);border-radius:var(--r-lg);border:var(--stroke-hair) solid var(--line);background:var(--bg-panel)}.stats-empty{color:var(--ink-dim);font-size:var(--fs-caption);margin:0}.duel-tally{display:flex;align-items:center;justify-content:center;gap:var(--sp-6)}.duel-side{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);min-width:70px}.duel-side strong{font-family:var(--font-display);font-weight:800;font-size:var(--fs-title-lg);line-height:1;font-variant-numeric:tabular-nums}.duel-p1 .duel-name,.duel-p1 strong{color:var(--p1-bright)}.duel-p2 .duel-name,.duel-p2 strong{color:var(--p2-bright)}.duel-name{font-family:var(--font-mono);font-size:var(--fs-caption);font-weight:700}.duel-unit{color:var(--ink-dim);font-size:var(--fs-caption)}.duel-vs{font-family:var(--font-mono);font-size:var(--fs-caption);letter-spacing:var(--tr-label);color:var(--ink-faint)}.stats-actions{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.stats-confirm{display:flex;align-items:center;gap:var(--sp-3);color:var(--ink-dim);font-size:var(--fs-caption)}.ghost-button.danger{color:var(--bad);border-color:var(--bad-edge)}.error-overlay{position:fixed;inset:0;z-index:var(--z-modal);display:grid;place-items:center;background:color-mix(in oklab,var(--bg-stage) 80%,transparent);backdrop-filter:blur(6px)}.error-panel{display:grid;gap:var(--sp-3);width:min(460px,90vw);padding:var(--sp-6);border-radius:var(--r-lg);border:var(--stroke-hair) solid var(--bad);background:var(--bg-panel);text-align:center}.error-panel h2{color:var(--bad)}.error-panel p{margin:0;color:var(--ink-dim);line-height:var(--lh-body)}.error-actions{display:flex;gap:var(--sp-3);justify-content:center}.debug-drawer{position:fixed;left:var(--sp-3);bottom:var(--sp-3);z-index:var(--z-toast);width:min(360px,calc(100vw - var(--sp-6)));max-height:calc(100vh - var(--sp-6));overflow-y:auto;padding:var(--sp-3);border-radius:var(--r-md);border:var(--stroke-hair) solid var(--line);background:var(--bg-deep);font-size:var(--fs-caption);color:var(--ink-dim)}.debug-head{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2)}.debug-head strong{color:var(--ink)}.debug-head span{margin-left:auto;color:var(--good);font-variant-numeric:tabular-nums}.debug-head button{border:var(--stroke-hair) solid var(--line);border-radius:var(--r-xs);background:var(--bg-panel-soft);color:var(--ink);padding:var(--sp-1) var(--sp-2);cursor:pointer;font-size:var(--fs-micro)}.debug-empty{color:var(--ink-faint)}.debug-player{padding-top:var(--sp-1);border-top:var(--stroke-hair) dashed var(--line);margin-top:var(--sp-1)}.debug-grid{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:var(--sp-1) var(--sp-2);margin-top:var(--sp-1)}.debug-grid span{color:var(--ink-faint)}.debug-grid b{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:600}.debug-chart-wrap{margin-top:var(--sp-2)}.debug-chart-head{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-1);color:var(--ink-faint);font-size:var(--fs-micro)}.debug-chart-head>span:first-child{margin-right:auto}.debug-chart-legend:before{display:inline-block;width:12px;height:2px;margin-right:var(--sp-1);vertical-align:middle;background:currentColor;content:""}.debug-chart-legend.depth{color:var(--good)}.debug-chart-legend.hold{color:var(--accent)}.debug-chart-legend.power{color:var(--p2-bright)}.debug-chart{display:block;width:100%;height:64px;border:var(--stroke-hair) solid var(--line);border-radius:var(--r-xs);background:var(--bg-deep)}.debug-chart-grid{stroke:var(--line);stroke-width:1}.debug-chart-line{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.debug-chart-line.depth{stroke:var(--good)}.debug-chart-line.hold{stroke:var(--accent)}.debug-chart-line.power{stroke:var(--p2-bright)}.route-loading{min-height:100vh;display:grid;place-items:center;background:var(--bg-stage);color:var(--ink-dim);font-size:var(--fs-body)}.lang-switcher{position:fixed;top:var(--sp-4);right:var(--sp-4);z-index:var(--z-hud)}.lang-switcher-inline{position:relative;top:auto;right:auto;z-index:auto;flex:none}.lang-switcher-btn{display:inline-flex;align-items:center;gap:var(--sp-2);min-height:34px;padding:0 var(--sp-3);border-radius:var(--r-pill);border:var(--stroke-hair) solid var(--line);background:var(--bg-panel);box-shadow:var(--e-card);color:var(--ink-dim);font-family:var(--font-mono);font-size:var(--fs-caption);font-weight:700;letter-spacing:var(--tr-label);cursor:pointer;transition:color var(--d-quick) var(--ease-out),border-color var(--d-quick) var(--ease-out)}.lang-switcher-btn:hover,.lang-switcher-btn[aria-expanded=true]{color:var(--ink);border-color:var(--ink-faint)}.lang-switcher-globe{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6}.lang-switcher-chev{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2;transition:transform var(--d-quick) var(--ease-out)}.lang-switcher-btn[aria-expanded=true] .lang-switcher-chev{transform:rotate(180deg)}.lang-switcher-menu{position:absolute;top:calc(100% + var(--sp-2));right:0;min-width:168px;padding:var(--sp-1);border-radius:var(--r-md);border:var(--stroke-hair) solid var(--line);background:var(--bg-panel);box-shadow:var(--e-overlay)}.lang-switcher-item{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);width:100%;min-height:36px;padding:0 var(--sp-3);border:0;border-radius:var(--r-sm);background:transparent;color:var(--ink-dim);cursor:pointer;transition:background var(--d-instant) var(--ease-out),color var(--d-instant) var(--ease-out)}.lang-switcher-item:hover{background:var(--panel-soft);color:var(--ink)}.lang-switcher-item.is-active{color:var(--accent)}.lang-switcher-name{font-family:var(--font-display);font-size:var(--fs-caption);font-weight:700}.lang-switcher-tag{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--tr-label);color:var(--ink-faint)}.lang-switcher-item.is-active .lang-switcher-tag{color:var(--accent)}@media(max-height:760px){.play-main{gap:var(--sp-4);padding:var(--sp-4)}.lobby-stage{max-width:calc((100vh - 250px) * 4 / 3)}.start-button{min-height:56px;font-size:var(--fs-title-sm)}.result-banner{padding:var(--sp-5)}}
