:root{--sign:#ffc20e;--ink:#232323;--paper:#ecebe6;--dim:#8d8f95}*{box-sizing:border-box}html,body{height:100%;color:var(--paper);-webkit-user-select:none;user-select:none;touch-action:none;background:#05070c;margin:0;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;overflow:hidden}#app,#app canvas{width:100%;height:100%;display:block;position:fixed;inset:0}.screen{z-index:10;background:radial-gradient(#05070c8c,#05070ceb);justify-content:center;align-items:center;padding:16px;transition:opacity .6s;display:flex;position:fixed;inset:0}.screen.hidden{opacity:0;pointer-events:none}.card{text-align:left;width:min(560px,100%);max-height:100%;overflow:auto}.sign{background:var(--ink);border-top:4px solid var(--sign);border-bottom:4px solid var(--sign);color:var(--sign);align-items:center;gap:18px;padding:14px 22px;display:flex}.sign .arrow{font-size:34px}.sign .name{letter-spacing:.08em;font-size:clamp(30px,8vw,52px);font-weight:700}.tagline{margin:18px 2px 10px;font-size:17px;line-height:1.5}.rules{color:#c9cbd0;margin:0 0 22px;padding-left:20px;font-size:15px;line-height:1.7}button{font:inherit;cursor:pointer}.big{background:var(--sign);width:100%;color:var(--ink);letter-spacing:.04em;border:0;padding:15px;font-size:18px;font-weight:700;display:block}.big:hover{filter:brightness(1.08)}.big:focus-visible,.lang button:focus-visible{outline-offset:3px;outline:2px solid #fff}.small{margin:12px 2px 0;font-size:13px;line-height:1.5}.dim{color:var(--dim)}.lang{justify-content:flex-end;gap:6px;margin-bottom:10px;display:flex}.lang button{color:var(--dim);background:0 0;border:1px solid #3a3d44;padding:4px 10px;font-size:12px}.lang button.on{color:var(--sign);border-color:var(--sign)}h2{color:var(--sign);margin:0 0 8px}#stats{grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0 20px;display:grid}#stats div{background:#101319;border:1px solid #23262d;padding:10px 12px}#stats b{color:#fff;font-size:22px;display:block}#stats span{color:var(--dim);font-size:12px}.hint{left:50%;bottom:max(28px, env(safe-area-inset-bottom));text-align:center;color:#ecebe6bf;letter-spacing:.03em;z-index:5;opacity:0;pointer-events:none;max-width:calc(100% - 32px);font-size:13px;transition:opacity 1.2s;position:fixed;transform:translate(-50%)}.hint.on{opacity:1}.joy{z-index:6;pointer-events:none;background:#ffffff0a;border:1px solid #ffffff2e;border-radius:50%;width:120px;height:120px;margin:-60px 0 0 -60px;position:fixed}.joy.hidden{display:none}.joy .knob{background:#ffc20e59;border-radius:50%;width:46px;height:46px;margin:-23px 0 0 -23px;position:absolute;top:50%;left:50%}.debug{color:#9f9;z-index:20;white-space:pre;pointer-events:none;background:#0009;padding:6px 8px;font:12px/1.4 ui-monospace,Menlo,monospace;position:fixed;top:8px;left:8px}.debug.hidden{display:none}#end{background:radial-gradient(#05070cd1,#05070cf5)}#missed{color:#c9cbd0;margin:0 0 20px;font-size:14px;line-height:1.5}#missed h3{letter-spacing:.08em;text-transform:uppercase;color:var(--sign);margin:0 0 6px;font-size:13px}#missed ol{margin:0;padding-left:20px}#missed li b{color:#fff;margin-right:6px}#missed p{margin:0}button.hidden{display:none}.chapter-card{text-align:center;z-index:8;pointer-events:none;opacity:0;flex-direction:column;justify-content:center;align-items:center;padding:16px;transition:opacity 1.2s;display:flex;position:fixed;inset:0}.chapter-card.on{opacity:1}.chapter-card .num{letter-spacing:.3em;text-transform:uppercase;color:var(--dim);font-size:13px}.chapter-card .name{background:var(--ink);border-top:4px solid var(--sign);border-bottom:4px solid var(--sign);color:var(--sign);letter-spacing:.06em;margin:10px 0 12px;padding:10px 26px;font-size:clamp(30px,7vw,54px);font-weight:700}.chapter-card .sub{color:#d8d8d8;font-size:16px}.chapter-card .story{color:#b9b9b9;max-width:34em;margin-top:14px;font-size:15px;font-style:italic;line-height:1.5}#end .other{color:var(--dim);margin:14px 0 4px;font-size:13px;font-style:italic}.prompt{color:var(--sign);letter-spacing:.04em;z-index:7;opacity:0;pointer-events:none;background:#14161ab8;border:1px solid #ffc20e99;padding:9px 16px;font-size:14px;transition:opacity .3s;position:fixed;top:62%;left:50%;transform:translate(-50%)}.prompt.on{opacity:1;pointer-events:auto;cursor:pointer}.chapters{margin-top:16px}.chapters .row{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:6px;display:grid}.chapters button{color:var(--paper);background:#101319;border:1px solid #2c3038;padding:10px 6px;font-size:13px;line-height:1.3}.chapters button b{color:var(--sign);font-size:18px;display:block}.chapters button:hover,.chapters button:focus-visible{border-color:var(--sign);outline:none}#pause .card{background:#0a0c11db;border:1px solid #23262d;padding:18px 20px 20px}#pause .lang{float:right;margin:0}#pause h2{margin:2px 0 14px}#pause .chapters button.on{border-color:var(--sign)}.settings{margin-top:18px}.settings h3,#pause .chapters>span{letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin:0 0 8px;font-size:12px;display:block}.settings label,.settings .opt{border-top:1px solid #1b1e24;grid-template-columns:120px 1fr 44px;align-items:center;gap:10px;padding:7px 0;font-size:14px;display:grid}.settings .opt{grid-template-columns:120px 1fr}.settings input[type=range]{width:100%;accent-color:var(--sign);touch-action:manipulation}.settings output{text-align:right;font-variant-numeric:tabular-nums;color:var(--dim);font-size:13px}.seg{gap:6px;display:flex}.seg button{color:var(--paper);background:#101319;border:1px solid #2c3038;flex:1;padding:7px 6px;font-size:13px}.seg button.on{border-color:var(--sign);color:var(--sign)}.ghost{width:100%;color:var(--dim);background:0 0;border:1px solid #2c3038;margin-top:16px;padding:11px;font-size:14px;display:block}.ghost:hover{color:var(--paper);border-color:var(--dim)}.pause-btn{top:max(12px, env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right));color:#ecebe6cc;letter-spacing:-2px;z-index:9;background:#14161a80;border:1px solid #ffffff2e;border-radius:50%;width:44px;height:44px;font-size:13px;position:fixed}.pause-btn.hidden{display:none}.torch-btn{top:calc(max(12px, env(safe-area-inset-top)) + 56px);right:max(12px, env(safe-area-inset-right));z-index:9;background:#14161a80;border:1px solid #ffffff2e;border-radius:50%;width:44px;height:44px;padding:0;position:fixed}.torch-btn span{border:2px solid #ecebe6b3;border-radius:50%;width:16px;height:16px;margin:auto;display:block}.torch-btn.on span{background:#ffecc4e6;box-shadow:0 0 10px #ffe2aacc}.torch-btn.hidden{display:none}@media (width<=420px){.settings label,.settings .opt{grid-template-columns:96px 1fr 38px}.settings .opt{grid-template-columns:96px 1fr}}.loading{z-index:30;background:#05070c radial-gradient(at 50% 40%,#0e1219 0%,#05070c 70%);justify-content:center;align-items:center;padding:16px;transition:opacity .9s;display:flex;position:fixed;inset:0}.loading.done{opacity:0;pointer-events:none}.load-inner{width:min(520px,100%)}.loading .sign{animation:3.2s infinite hum}@keyframes hum{0%,to{opacity:1}46%{opacity:1}47%{opacity:.55}48%{opacity:1}51%{opacity:.8}52%{opacity:1}}.board{background:#0b0d11;border:1px solid #1f232a;margin-top:22px;padding:12px 14px 14px;font-family:ui-monospace,SF Mono,Menlo,monospace}.board-row{letter-spacing:.06em;text-transform:uppercase;grid-template-columns:auto 1fr auto;align-items:baseline;gap:14px;font-size:14px;display:grid}.board .code{color:var(--sign)}.board .dest{color:#e8e6e0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.board .pct{color:#5fe08a;font-variant-numeric:tabular-nums}.bar{background:#1a1d23;height:4px;margin-top:12px;overflow:hidden}.bar i{background:var(--sign);width:0;height:100%;display:block;box-shadow:0 0 12px #ffc20e99}.tip{min-height:1.5em;color:var(--dim);margin:18px 2px 0;font-size:14px;transition:opacity .5s}.tip.out{opacity:0}.title{z-index:10;background:linear-gradient(90deg,#05070cf0 0%,#05070ccc 32%,#05070c40 62%,#05070c00 80%);transition:opacity 1.2s;display:flex;position:fixed;inset:0}.title.hidden{opacity:0;pointer-events:none}.title-side{width:min(470px,100%);height:100%;padding:max(24px, env(safe-area-inset-top)) 36px max(22px, env(safe-area-inset-bottom)) max(36px, env(safe-area-inset-left));flex-direction:column;display:flex;overflow-y:auto}.title .lang{justify-content:flex-start}.title-main{margin:auto 0;padding:24px 0}.kicker{letter-spacing:.14em;text-transform:uppercase;color:var(--dim);align-items:center;gap:10px;margin-bottom:14px;font:13px ui-monospace,SF Mono,Menlo,monospace;display:flex}.kicker .dot{background:#e5484d;border-radius:50%;width:8px;height:8px;animation:1.6s infinite rec;box-shadow:0 0 8px #e5484d}@keyframes rec{50%{opacity:.2}}.title .tagline{color:#c9cbd0;margin:18px 2px 26px}.menu{flex-direction:column;gap:8px;display:flex}.menu button{text-align:left;color:var(--paper);letter-spacing:.03em;background:#101319d9;border:1px solid #262a32;border-left-width:3px;padding:13px 16px 13px 18px;font-size:16px;transition:border-color .2s,background .2s,padding .2s;position:relative}.menu button:after{content:"›";color:var(--dim);position:absolute;right:16px}.menu button:hover,.menu button:focus-visible{border-left-color:var(--sign);background:#1a1d24eb;outline:none;padding-left:22px}.menu button.primary{background:var(--sign);border-color:var(--sign);color:var(--ink);font-size:18px;font-weight:700}.menu button.primary:after{color:var(--ink)}.menu button.hidden{display:none}.panel h3{letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin:0 0 10px;font-size:12px}.panel.hidden,.menu.hidden{display:none}.panel{animation:.35s rise}.panel .settings{margin-top:0}.panel .rules{margin-bottom:8px}.back{color:var(--dim);background:0 0;border:1px solid #2c3038;margin-top:16px;padding:9px 16px;font-size:14px}.back:before{content:"‹ "}.back:hover{color:var(--paper);border-color:var(--dim)}.title-foot{color:var(--dim);justify-content:space-between;gap:12px;font-size:12px;display:flex}.title:not(.hidden) .title-main>:not(.hidden){animation:.7s both rise}.title:not(.hidden) .title-main>.sign{animation-delay:.15s}.title:not(.hidden) .title-main>.tagline{animation-delay:.3s}.title:not(.hidden) .title-main>.menu{animation-delay:.45s}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media (width<=640px){.title{background:linear-gradient(#05070c26 0%,#05070c59 15%,#05070cd9 45%,#05070cf2 100%)}.title-side{width:100%;padding:max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom))}.title-main{margin:auto 0 0}.menu button{padding:12px 14px 12px 16px}}body.busy:after{content:"· · ·";color:#cfd6d2;letter-spacing:.4em;z-index:99;cursor:progress;background:#020304d1;place-items:center;font:600 22px/1 system-ui,sans-serif;display:grid;position:fixed;inset:0}.note{color:#1f2228;opacity:0;pointer-events:none;z-index:9;background:#ece7daf0;border-radius:2px;width:min(420px,100% - 32px);padding:16px 20px 18px;transition:opacity .35s,transform .35s;position:fixed;bottom:12%;left:50%;transform:translate(-50%,12px);box-shadow:0 10px 40px #0009}.note.on{opacity:1;pointer-events:auto;transform:translate(-50%)}.note h3{letter-spacing:.18em;text-transform:uppercase;color:#6a6458;margin:0 0 8px;font-size:12px}.note p{white-space:pre-line;margin:0;font-size:15px;line-height:1.55}.about-body{max-height:min(52vh,460px);color:var(--paper);scrollbar-width:thin;padding-right:8px;font-size:14px;line-height:1.55;overflow-y:auto}.about-body p{margin:0 0 10px}.about-body h4{letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin:14px 0 6px;font-size:12px}.about-body a{color:#ffc20e}.warn{color:#e8d7d2;border-left:3px solid #b3201c;padding-left:10px}#cw{z-index:60;background:#040508f0}#cw .card{text-align:left;background:#0b0d12;border:1px solid #262a32;border-top:4px solid #b3201c;max-width:520px;padding:22px 24px}#cw h2{color:var(--paper);margin:0 0 14px}#cw .warn{font-size:15px;line-height:1.55}#cw .big{margin-top:16px}
