:root{--bg:#08090b;--ink:#eef1f4;--ink-dim:#9aa4ae;--ink-faint:#5d6771;--line:#ffffff1c;--line-soft:#ffffff0f;--glass:#0e10139e;--glass-hi:#1a1e23c7;--accent:#d8b26a;--accent-2:#6fbf9b;--shadow:0 18px 60px #0009;--mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--sans:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;--cond:"Barlow Condensed",var(--sans)}*{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;overflow:hidden}#stage{touch-action:none;width:100%;height:100%;display:block;position:fixed;top:0;bottom:0;left:0;right:0}button{color:inherit;cursor:pointer;background:0 0;border:none;font-family:inherit}select,input{font-family:inherit}#loader{z-index:100;background:radial-gradient(120% 90% at 50% 42%,#16201c 0%,#0a0d0f 55%,#060708 100%);place-items:center;transition:opacity .9s,visibility .9s;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}#loader.gone{opacity:0;visibility:hidden;pointer-events:none}.ld-inner{text-align:center;transform:translateY(-6px)}.ld-mark{justify-content:center;margin-bottom:26px;display:flex}.ld-ring{fill:none;stroke:#d8b26a52;stroke-width:1.2px;stroke-dasharray:60 270;transform-origin:60px 60px;animation:3.6s linear infinite spin}.ld-ring2{stroke:#6fbf9b42;stroke-dasharray:30 240;animation:2.4s linear infinite reverse spin}.ld-leaf{fill:#6fbf9b33;stroke:#6fbf9b8c;stroke-width:1.1px}.ld-leaf2{fill:#d8b26a29;stroke:#d8b26a73;stroke-width:1.1px}@keyframes spin{to{transform:rotate(360deg)}}.ld-title{font-family:var(--cond);letter-spacing:.14em;text-transform:uppercase;color:#f2ece0;margin:0 0 6px;font-size:40px;font-weight:300}.ld-sub{letter-spacing:.26em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:30px;font-size:12.5px}.ld-bar{background:#ffffff1a;width:230px;height:1px;margin:0 auto 14px;overflow:hidden}.ld-bar i{background:linear-gradient(90deg,var(--accent-2),var(--accent));width:0%;height:100%;transition:width .35s;display:block;box-shadow:0 0 12px #d8b26a8c}.ld-status{font-family:var(--mono);letter-spacing:.16em;color:var(--ink-faint);text-transform:uppercase;height:14px;font-size:10.5px}#titlecard{z-index:60;pointer-events:none;opacity:0;background:radial-gradient(60% 50%,#0000006b,#0000 70%);place-items:center;transition:opacity 1.5s;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}#titlecard.show{opacity:1}.tc-inner{text-align:center;transform:translateY(-4vh)}.tc-kicker{font-family:var(--mono);letter-spacing:.42em;color:var(--accent);text-transform:uppercase;opacity:.9;margin-bottom:16px;font-size:11px}#titlecard h1{font-family:var(--cond);letter-spacing:.045em;color:#fff;text-shadow:0 4px 40px #0009,0 1px 2px #000c;margin:0;font-size:clamp(46px,9vw,116px);font-weight:300;line-height:.92}.tc-rule{background:linear-gradient(90deg,transparent,var(--accent),transparent);width:64px;height:1px;margin:26px auto 18px}.tc-sub{letter-spacing:.06em;color:#cfd6dc;text-shadow:0 2px 14px #000c;font-size:14px;font-weight:300}#chapter{z-index:55;pointer-events:none;text-align:center;opacity:0;text-shadow:0 2px 22px #000000d9;transition:opacity .8s;position:fixed;bottom:19vh;left:0;right:0}#chapter.show{opacity:1}#chapter-year{font-family:var(--mono);letter-spacing:.36em;color:var(--accent);margin-bottom:10px;font-size:12px;display:block}#chapter-text{font-family:var(--cond);letter-spacing:.06em;color:#f4f7f9;font-size:clamp(22px,3.4vw,40px);font-weight:300;display:block}#brand{z-index:40;opacity:.85;align-items:center;gap:9px;transition:opacity .5s;display:flex;position:fixed;top:20px;left:22px}.b-mark{background:var(--accent-2);border-radius:50%;width:7px;height:7px;animation:3.4s ease-in-out infinite pulse;box-shadow:0 0 10px #6fbf9be6}@keyframes pulse{0%,to{opacity:.45;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}.b-txt{font-family:var(--cond);letter-spacing:.3em;color:#cfd6dc;text-transform:uppercase;font-size:12.5px}#topright{z-index:45;gap:7px;display:flex;position:fixed;top:16px;right:18px}.ic{background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:#c3cbd3;opacity:.72;border-radius:9px;place-items:center;width:34px;height:34px;transition:all .18s;display:grid}.ic:hover{opacity:1;color:#fff;background:var(--glass-hi);border-color:#ffffff3d}.ic svg{fill:currentColor}.ic.on{color:var(--accent);border-color:#d8b26a6b}.panel{z-index:44;background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(20px)saturate(1.2);backdrop-filter:blur(20px)saturate(1.2);width:258px;box-shadow:var(--shadow);opacity:0;visibility:hidden;border-radius:14px;padding:16px 16px 14px;transition:opacity .22s,transform .22s,visibility .22s;position:fixed;top:58px;right:18px;transform:translateY(-8px)scale(.98)}.panel.show{opacity:1;visibility:visible;transform:none}.panel h3{font-family:var(--cond);letter-spacing:.26em;text-transform:uppercase;color:var(--ink-dim);margin:0 0 12px;font-size:12px;font-weight:500}.panel h3.sp{border-top:1px solid var(--line-soft);margin-top:16px;padding-top:14px}.row{color:#b9c2ca;justify-content:space-between;align-items:center;gap:10px;margin-bottom:9px;font-size:12.5px;display:flex}.row label{font-weight:300}.row select{border:1px solid var(--line);color:var(--ink);background:#ffffff0d;border-radius:7px;outline:none;min-width:104px;padding:4px 7px;font-size:11.5px}.row input[type=range]{width:104px;accent-color:var(--accent);height:3px}.row input[type=checkbox]{accent-color:var(--accent-2);cursor:pointer;width:15px;height:15px}.stat{color:#98a2ab;border-bottom:1px solid #ffffff0b;justify-content:space-between;align-items:baseline;padding:5px 0;font-size:12px;display:flex}.stat:last-child{border-bottom:none}.stat b{font-family:var(--mono);color:#e8edf1;font-size:12px;font-weight:400}#dock{z-index:42;pointer-events:none;background:linear-gradient(#0000,#040506b8 38%,#030405eb);align-items:center;gap:22px;padding:16px 24px 18px;display:flex;position:fixed;bottom:0;left:0;right:0}#dock>*{pointer-events:auto}.dk-left{flex:none;align-items:center;gap:12px;display:flex}.play{border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff12;border-radius:50%;place-items:center;width:42px;height:42px;transition:all .18s;display:grid}.play:hover{background:#ffffff21;border-color:#ffffff4d;transform:scale(1.05)}.play svg{fill:#e8edf1}.play .ic-pause,.play.playing .ic-play{display:none}.play.playing .ic-pause{display:block}.dk-speed{border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff0d;border-radius:8px;gap:2px;padding:2px;display:flex}.sp{font-family:var(--mono);color:#8e98a1;border-radius:6px;padding:4px 7px;font-size:10.5px;transition:all .15s}.sp:hover{color:#e8edf1;background:#ffffff12}.sp.on{color:var(--accent);background:#d8b26a29}.dk-mid{flex:auto;min-width:0;max-width:1000px;margin:0 auto}.dk-read{justify-content:center;align-items:baseline;gap:9px;margin-bottom:7px;display:flex}.dk-year{font-family:var(--cond);letter-spacing:.03em;font-variant-numeric:tabular-nums;color:#fff;text-shadow:0 2px 18px #000000b3;font-size:34px;font-weight:300;line-height:1}.dk-unit{font-family:var(--mono);letter-spacing:.3em;color:var(--ink-faint);font-size:9.5px}.dk-track{cursor:pointer;align-items:center;height:22px;display:flex;position:relative}.tr-rail{background:#ffffff1a;border-radius:2px;height:3px;position:absolute;left:0;right:0}.tr-grad{opacity:.55;background:linear-gradient(90deg,#b9924e 0%,#8e9c6a 22%,#6fa07f 48%,#4f8f77 66%,#7d9a86 82%,#9fb4ad 100%);border-radius:2px;height:3px;position:absolute;left:0;right:0;overflow:hidden}.tr-ticks{pointer-events:none;height:100%;position:absolute;left:0;right:0}.tr-ticks i{background:#fff3;width:1px;height:9px;position:absolute;top:6px}.tr-fill{background:linear-gradient(90deg,#d8b26ad9,#f0dcae);border-radius:2px;height:3px;position:absolute;left:0;box-shadow:0 0 14px #d8b26a80}.tr-thumb{pointer-events:none;background:#fff;border-radius:50%;width:15px;height:15px;margin:-7.5px 0 0 -7.5px;transition:transform .14s;position:absolute;top:50%;box-shadow:0 0 0 3px #00000059,0 0 18px #ffffff8c}.dk-track:hover .tr-thumb{transform:scale(1.2)}.tr-thumb i{background:var(--accent);border-radius:50%;position:absolute;top:3.5px;bottom:3.5px;left:3.5px;right:3.5px}.dk-labels{font-family:var(--mono);color:var(--ink-faint);letter-spacing:.08em;justify-content:space-between;margin-top:1px;font-size:9.5px;display:flex}.dk-labels span{position:relative;left:0}.dk-labels span:first-child{transform:translate(-2px)}.dk-labels span:last-child{transform:translate(2px)}.dk-right{flex-direction:column;flex:none;align-items:flex-end;gap:7px;min-width:132px;display:flex}.ghost{border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);letter-spacing:.09em;color:#c3cbd3;text-transform:uppercase;background:#ffffff0d;border-radius:9px;align-items:center;gap:7px;padding:7px 12px;font-size:11.5px;transition:all .18s;display:flex}.ghost svg{fill:var(--accent)}.ghost:hover{color:#fff;background:#d8b26a1a;border-color:#d8b26a73}.ghost.on{color:#fff;background:#d8b26a29;border-color:#d8b26a80}.dk-era{font-family:var(--cond);letter-spacing:.17em;color:var(--ink-faint);text-transform:uppercase;text-align:right;max-width:190px;font-size:12px}#hint{z-index:41;font-family:var(--mono);letter-spacing:.13em;color:#ffffff47;pointer-events:none;white-space:nowrap;font-size:10.5px;transition:opacity .8s;position:fixed;bottom:110px;left:50%;transform:translate(-50%)}#hint kbd{font-family:var(--mono);color:#ffffff6b;border:1px solid #ffffff29;border-radius:3px;margin:0 1px;padding:1px 4px;font-size:9.5px}#hint.hide{opacity:0}body.letterbox:before,body.letterbox:after{content:"";z-index:50;pointer-events:none;background:#000;height:6.2vh;transition:height .5s cubic-bezier(.4,0,.2,1);position:fixed;left:0;right:0}body.letterbox:before{top:0}body.letterbox:after{bottom:0}@media (max-width:860px){#dock{flex-wrap:wrap;gap:12px;padding:12px 14px 14px}.dk-right{min-width:0}.dk-era{display:none}.dk-year{font-size:26px}#hint{display:none}.panel{width:calc(100vw - 36px);max-width:300px}}@media (max-width:560px){.dk-speed{display:none}}
