:root{--bg-0:#1a1f28;--bg-1:#0b0e13;--ink:#f2f0ea;--ink-2:#f2f0eac2;--ink-3:#f2f0ea99;--line:#f2f0ea29;--warm:#e2a95c;--cool:#7fb0e6;--focus:#9cc7ff;--good:#9fe0a8;--bad:#ff9b8a;--panel:#10141be6;--panel-2:#1c222ceb;--font:"Inter", "Segoe UI Variable Display", "Segoe UI", system-ui, -apple-system, sans-serif;--player-h:92px;--safe-b:env(safe-area-inset-bottom,0px);--ease:cubic-bezier(.2, .7, .2, 1);--gutter:clamp(16px, 2.6vw, 28px)}*{box-sizing:border-box}html,body{background:var(--bg-1);height:100%;margin:0;overflow:hidden}body{font-family:var(--font);color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}:focus{outline:none}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.film{background:radial-gradient(90% 75% at 55% 42%, #232a35 0%, var(--bg-0) 38%, var(--bg-1) 100%);position:fixed;inset:0;overflow:hidden}.stage{position:absolute;inset:0}.stage canvas,.stage svg.stage2d{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}.stage svg.stage2d{pointer-events:none}.stage svg.stage2d .hit{pointer-events:auto;cursor:pointer}.stage.is-2d-interactive svg.stage2d{pointer-events:auto}.vignette{pointer-events:none;background:radial-gradient(120% 95% at 50% 45%,#0000 55%,#0406098c 100%);position:absolute;inset:0}.veil{pointer-events:none;opacity:0;background:radial-gradient(60% 60%,#0a0d1233,#0a0d12f2);position:absolute;inset:0}.labels{pointer-events:none;position:absolute;inset:0;overflow:hidden}.ui{pointer-events:none;position:absolute;inset:0}.ui>*{pointer-events:auto}.hud{left:var(--gutter);pointer-events:none;position:absolute;top:18px;right:180px}.hud-line{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);flex-wrap:wrap;align-items:baseline;gap:10px;font-size:11.5px;font-weight:600;display:flex}.hud-line .num{color:var(--warm);letter-spacing:.06em}.hud-line .part{color:var(--ink-2)}.hud-line .sep{opacity:.5}.hud-crumb{letter-spacing:.14em;text-transform:uppercase;color:var(--warm);min-height:1em;margin-top:14px;font-size:11px;font-weight:650}.hud-crumb:empty{display:none}.hud-heading{letter-spacing:-.01em;text-shadow:0 2px 18px #00000080;transition:opacity .4s var(--ease), transform .4s var(--ease);max-width:min(620px,70vw);margin:6px 0 0;font-size:clamp(20px,2.2vw,30px);font-weight:720;line-height:1.12}.hud-heading.swap{opacity:0;transform:translateY(4px)}.topright{top:12px;right:var(--gutter);transition:opacity .5s var(--ease);gap:4px;display:flex;position:absolute}.iconbtn{width:38px;height:38px;color:var(--ink-2);background:0 0;border:0;border-radius:10px;place-items:center;display:grid}.iconbtn:hover{color:var(--ink);background:#ffffff0f}.iconbtn svg{width:19px;height:19px}.iconbtn[aria-pressed=true]{color:var(--warm)}.caption-wrap{left:0;right:0;bottom:calc(var(--player-h) + 10px + var(--safe-b));pointer-events:none;padding:0 calc(var(--gutter) + var(--zone-right,0px)) 0 calc(var(--gutter) + var(--zone-left,0px));justify-content:center;display:flex;position:absolute}.caption{-webkit-backdrop-filter:blur(6px);text-align:center;opacity:0;max-width:min(860px,92vw);transition:opacity .35s var(--ease), transform .35s var(--ease);background:#0c0f14c7;border-radius:12px;padding:9px 16px;font-size:clamp(14px,1.35vw,17px);font-weight:560;line-height:1.4;transform:translateY(4px)}.caption.on{opacity:1;transform:none}body.no-captions .caption{display:none}.player{height:calc(var(--player-h) + var(--safe-b));padding:0 var(--gutter) var(--safe-b);transition:opacity .5s var(--ease);background:linear-gradient(#080a0e00,#080a0ed9);grid-template-columns:auto auto 1fr auto auto auto;align-items:center;gap:10px;display:grid;position:absolute;bottom:0;left:0;right:0}.player .iconbtn{width:40px;height:40px}.scrub{cursor:pointer;touch-action:none;height:44px;position:relative}.scrub-track{gap:3px;height:4px;display:flex;position:absolute;top:20px;left:0;right:0}.seg{background:#f2f0ea29;border-radius:2px;flex:1 1 0;height:4px;position:relative;overflow:hidden}.seg .fill{background:var(--ink);width:0;position:absolute;inset:0}.seg.current .fill{background:var(--warm)}.seg-num{color:var(--ink-3);letter-spacing:.04em;font-size:10.5px;font-weight:650;position:absolute;top:30px;transform:translate(0)}.seg-num.current{color:var(--warm)}.scrub-knob{background:var(--ink);opacity:0;border-radius:50%;width:14px;height:14px;margin-left:-7px;transition:opacity .2s;position:absolute;top:15px;box-shadow:0 0 0 4px #f2f0ea26}.scrub:hover .scrub-knob,.scrub.dragging .scrub-knob,.scrub:focus-visible .scrub-knob{opacity:1}.scrub-tip{background:var(--panel-2);white-space:nowrap;pointer-events:none;opacity:0;border-radius:8px;padding:5px 9px;font-size:12px;transition:opacity .15s;position:absolute;bottom:38px;transform:translate(-50%)}.scrub:hover .scrub-tip{opacity:1}.time{font-variant-numeric:tabular-nums;color:var(--ink-2);text-align:right;min-width:78px;font-size:12px}.pill{border:1px solid var(--line);background:#14181f99;border-radius:999px;height:40px;padding:0 18px;font-size:13px;font-weight:650}.pill:hover{border-color:#f2f0ea59}.pill.solid{background:var(--ink);color:#11151b;border-color:var(--ink)}.pill[hidden]{display:none}body.idle .player,body.idle .topright{opacity:0}body.idle{cursor:none}.card-overlay{padding:var(--gutter);transition:opacity .5s var(--ease);background:#080a0e59;place-items:center;display:grid;position:absolute;inset:0}.card-overlay[hidden]{display:none}.card{background:var(--panel);border:1px solid var(--line);border-radius:18px;width:min(520px,100%);padding:26px 26px 22px;box-shadow:0 30px 80px #00000080}.card .kicker{letter-spacing:.16em;text-transform:uppercase;color:var(--warm);font-size:11px;font-weight:700}.card h1{letter-spacing:-.02em;margin:10px 0 8px;font-size:clamp(26px,3.4vw,36px);font-weight:780;line-height:1.08}.card .q{color:var(--ink-2);margin:0;font-size:15.5px;line-height:1.45}.card .rule{background:var(--warm);opacity:.9;border-radius:2px;height:2px;margin:18px 0}.card .actions{flex-wrap:wrap;gap:10px;display:flex}.card .note{color:var(--ink-3);margin-top:12px;font-size:12px}.card .meta{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.badge{border:1px solid var(--line);color:var(--ink-2);border-radius:999px;padding:4px 9px;font-size:11px;font-weight:650}.task{left:50%;bottom:calc(var(--player-h) + 64px + var(--safe-b));width:min(560px, calc(100vw - 2 * var(--gutter)));background:var(--panel);border:1px solid #e2a95c73;border-radius:16px;padding:16px 18px;position:absolute;transform:translate(-50%);box-shadow:0 20px 60px #00000073}.task[hidden]{display:none}.task .tlabel{letter-spacing:.16em;text-transform:uppercase;color:var(--warm);font-size:11px;font-weight:700}.task .tprompt{margin:6px 0 10px;font-size:16px;font-weight:620;line-height:1.35}.task .tbody{flex-wrap:wrap;gap:8px;display:flex}.task .tfoot{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:4px 10px;margin-top:12px;display:flex}.task .tfoot .tfeedback{flex:180px}.task .tfoot .linkbtn{white-space:nowrap;flex:none;margin-left:auto}.task .tfeedback{color:var(--ink-2);min-height:1.2em;font-size:13.5px}.task .tfeedback.good{color:var(--good)}.task .tfeedback.bad{color:var(--bad)}.task .tfeedback.info{color:var(--ink-2)}.task.docked{left:auto;right:var(--gutter);width:min(380px,36vw);max-height:calc(100% - 96px - var(--player-h) - 16px - var(--safe-b));flex-direction:column;display:flex;top:96px;bottom:auto;overflow:hidden;transform:none}.task.docked .tlabel,.task.docked .tprompt,.task.docked .tfoot{flex:none}.task.docked .tbody{flex:auto;min-height:0;padding-bottom:8px;overflow:auto;-webkit-mask-image:linear-gradient(#000 calc(100% - 12px),#0000);mask-image:linear-gradient(#000 calc(100% - 12px),#0000)}.task .tprompt:focus{outline:none}.explore .list,.xdesc{-webkit-mask-image:linear-gradient(#000 calc(100% - 14px),#0000);mask-image:linear-gradient(#000 calc(100% - 14px),#0000)}.linkbtn{color:var(--ink-3);text-underline-offset:3px;background:0 0;border:0;padding:4px;font-size:12.5px;text-decoration:underline}.choice{border:1px solid var(--line);text-align:left;background:#ffffff08;border-radius:10px;padding:9px 14px;font-size:14px;font-weight:600}.choice:hover{border-color:#f2f0ea66}.choice.good{border-color:var(--good);color:var(--good)}.choice.bad{border-color:var(--bad);color:var(--bad)}.explore{left:var(--gutter);top:64px;bottom:calc(var(--player-h) + 16px);background:var(--panel);border:1px solid var(--line);border-radius:14px;flex-direction:column;width:min(300px,42vw);display:flex;position:absolute;overflow:hidden}.explore[hidden]{display:none}.explore h2{margin:0;padding:14px 14px 8px;font-size:15px;font-weight:720}.explore .hint{color:var(--ink-3);padding:0 14px 8px;font-size:12px}.explore .list{scrollbar-width:thin;scrollbar-color:#f2f0ea66 transparent;flex-direction:column;gap:6px;padding:0 10px 10px;display:flex;overflow:auto}body.mode-explore .hud,body.mode-card .hud{opacity:0}.xitem{border:1px solid var(--line);text-align:left;background:#ffffff05;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;font-size:13.5px;font-weight:620;display:flex}.xitem:hover:not([disabled]){border-color:#f2f0ea59}.xitem[aria-pressed=true]{border-color:var(--warm);background:#e2a95c1a}.xitem[disabled]{color:var(--ink-3);cursor:default;opacity:.7}.xitem .later{color:var(--ink-3);font-size:11px;font-weight:600}.xdesc{right:var(--gutter);bottom:calc(var(--player-h) + 16px);width:min(340px, calc(100vw - 2 * var(--gutter)));background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 16px;position:absolute}.xdesc[hidden]{display:none}.xdesc h3{margin:0 0 6px;font-size:16px}.xdesc p{color:var(--ink-2);margin:0;font-size:13.5px;line-height:1.45}.xdesc .src{color:var(--ink-3);margin-top:8px;font-size:11px}.label3d{pointer-events:none;transition:opacity .25s;position:absolute;top:0;left:0}.label3d .tag{white-space:nowrap;background:#0c0f14db;border:1px solid #f2f0ea38;border-radius:8px;padding:5px 10px;font-size:13px;font-weight:650;position:absolute;transform:translate(-50%,-50%)}.label3d.selected .tag{border-color:var(--warm);color:#fff}.label3d .dot{background:var(--ink);border-radius:50%;width:8px;height:8px;margin:-4px 0 0 -4px;position:absolute;box-shadow:0 0 0 3px #0c0f1499}.labels svg.leaders{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.labels svg.leaders line{stroke:#f2f0eabf;stroke-width:1.4px}.recall{overscroll-behavior:contain;padding:var(--gutter);background:#080a0e9e;flex-direction:column;align-items:center;display:flex;position:absolute;inset:0;overflow-y:auto}.recall[hidden]{display:none}.recall .card{flex:none;width:min(620px,100%);margin:auto 0}.recall .progress{gap:6px;margin-bottom:14px;display:flex}.recall .progress i{background:#f2f0ea29;border-radius:2px;flex:1;height:3px}.recall .progress i.done{background:var(--ink)}.recall .progress i.now{background:var(--warm)}.recall .qtext{margin:4px 0 14px;font-size:19px;font-weight:700;line-height:1.3}.recall .opts{gap:8px;display:grid}.recall .explain{color:var(--ink-2);margin-top:12px;font-size:14px;line-height:1.5}.recall .explain .src{color:var(--ink-3);margin-top:6px;font-size:11.5px;display:block}.recall textarea{border:1px solid var(--line);width:100%;min-height:90px;color:var(--ink);font:inherit;resize:vertical;background:#ffffff0a;border-radius:10px;padding:10px 12px;font-size:14.5px}.recall .row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:16px;display:flex}.transcript{right:var(--gutter);top:60px;bottom:calc(var(--player-h) + 16px);width:min(380px, calc(100vw - 2 * var(--gutter)));background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px 18px;font-size:14px;line-height:1.55;position:absolute;overflow:auto}.transcript[hidden]{display:none}.transcript h2{margin:0 0 8px;font-size:15px}.transcript h3{letter-spacing:.12em;text-transform:uppercase;color:var(--warm);margin:14px 0 4px;font-size:12px}.transcript p{color:var(--ink-2);margin:0 0 8px}.transcript p.now{color:var(--ink)}.menu{top:54px;right:var(--gutter);background:var(--panel);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:2px;min-width:220px;padding:8px;display:flex;position:absolute}.menu[hidden]{display:none}.menu button{text-align:left;background:0 0;border:0;border-radius:8px;justify-content:space-between;gap:12px;padding:9px 10px;font-size:13.5px;display:flex}.menu button:hover{background:#ffffff0f}.menu button span.state{color:var(--ink-3)}.toast{background:var(--panel-2);opacity:0;pointer-events:none;border-radius:10px;padding:8px 14px;font-size:13px;transition:opacity .3s;position:absolute;top:18px;left:50%;transform:translate(-50%)}.toast.on{opacity:1}.loading{color:var(--ink-3);letter-spacing:.12em;text-transform:uppercase;place-items:center;font-size:13px;display:grid;position:absolute;inset:0}@media (max-width:640px){:root{--player-h:84px}.hud{top:14px;right:132px}.hud-heading{max-width:70vw;font-size:19px}.player{grid-template-columns:auto 1fr auto auto;gap:6px}.player .restart,.player .fs{display:none}.time{min-width:0;font-size:11px}.pill{padding:0 12px}.explore{top:auto;bottom:calc(var(--player-h) + 10px);left:var(--gutter);right:var(--gutter);width:auto;max-height:38vh}.xdesc{bottom:calc(var(--player-h) + 38vh + 18px)}.caption{font-size:14px}.task{bottom:calc(var(--player-h) + 58px + var(--safe-b))}}@media (max-height:500px) and (orientation:landscape){:root{--player-h:60px}.hud{top:8px}.hud-line{font-size:10px}.hud-crumb{display:none}.hud-heading{margin-top:2px;font-size:16px}.topright{top:4px}.caption{max-width:72vw;padding:6px 12px;font-size:13px}.caption-wrap{bottom:calc(var(--player-h) + 4px + var(--safe-b))}.player .iconbtn{width:34px;height:34px}.scrub{height:36px}.scrub-track{top:14px}.seg-num{top:22px}.task{bottom:calc(var(--player-h) + 8px);max-height:70vh;overflow:auto}.task.docked{width:min(400px,47vw);max-height:calc(100% - 40px - var(--player-h) - 8px);padding:10px 12px;top:40px}.task .choice{padding:6px 10px;font-size:13px}.task .tbody{gap:6px}.task .tprompt{margin:4px 0 8px;font-size:14px}.explore{width:min(250px,32vw);top:40px;bottom:calc(50% + 2px)}.explore h2{padding:8px 12px 2px;font-size:14px}.explore .hint{display:none}.explore .list{gap:4px;padding:0 8px 12px}.xitem{border-radius:8px;padding:6px 10px;font-size:12.5px}.explore{bottom:calc(44% + 2px)}.xdesc{top:calc(56% + 6px);left:var(--gutter);top:calc(50% + 6px);right:auto;bottom:calc(var(--player-h) + 8px);width:min(250px,32vw);padding:10px 12px;overflow:auto}.xdesc h3{margin-bottom:4px;font-size:14px}.xdesc p{font-size:12.5px}}.rotate-hint{background:var(--panel);border:1px solid var(--line);text-align:center;border-radius:14px;width:min(300px,80vw);padding:14px 16px;font-size:14px;line-height:1.4;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)}.rotate-hint[hidden]{display:none}.rotate-hint svg{width:36px;height:36px;color:var(--warm);margin-bottom:6px}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important}}
