.overlay{color:#fff;background:#0a0c10f2;padding:20px 28px;font:16px/1.35 system-ui,Segoe UI,sans-serif;position:fixed;inset:0;overflow-y:auto}.overlay[hidden]{display:none}.overlay h1{margin:0 0 4px;font-size:26px}.overlay h2{margin:18px 0 8px;font-size:20px}.overlay .sub{opacity:.85;margin:0 0 14px}.overlay button{font:inherit;color:#fff;cursor:pointer;background:#2a2f38;border:2px solid #fff;border-radius:6px;padding:6px 14px;font-weight:700}.overlay button:focus-visible,.overlay .card:focus-visible{outline-offset:2px;outline:3px solid #ffd400}.overlay button:disabled{opacity:.5;cursor:default}.cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.card{text-align:left;background:#1c2027;border:2px solid #3a404a;border-radius:10px;flex-direction:column;gap:6px;padding:12px 14px;display:flex}button.card:hover{border-color:#ffd400}.card .title{font-size:18px;font-weight:800}.card .brief{opacity:.9;font-weight:400}.badge{color:#fff;background:#3d7bd9;border-radius:4px;align-self:flex-start;padding:0 8px;font-size:14px;font-weight:800}.badge.game{background:#b5651d}.card.error{border:2px dashed #ff4d4d}.card.error .badge{background:#c00018}.card.error ul{margin:0;padding-left:18px;font-size:14px;font-weight:400}.strip{gap:10px;padding-bottom:6px;display:flex;overflow-x:auto}.strip button{background:#1c2027;border:3px solid #3a404a;flex-direction:column;flex:none;align-items:stretch;gap:4px;width:180px;padding:4px;display:flex}.strip button[aria-pressed=true]{border-color:#ffd400}.strip img{border-radius:4px;width:100%}.result{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:20px;margin-top:12px;display:grid}.result img{border-radius:6px;width:100%}.score-big{font-size:44px;font-weight:900}.score-big small{color:#ffd400;margin-left:10px;font-size:22px}.bars{gap:8px;display:grid}.bar-row .name{justify-content:space-between;gap:8px;display:flex}.bar{background:#3a404a;border-radius:5px;height:10px;overflow:hidden}.bar>div{background:#4cc26a;height:100%}.bar-row.low .bar>div{background:#f5a623}.bar-row .tip{color:#ffcf70;font-size:14px}.lines{margin:0;padding-left:18px}.actions{flex-wrap:wrap;gap:12px;margin-top:18px;display:flex}@media (width<=900px){.result{grid-template-columns:1fr}}.screen .big{font-size:44px}.title-block{text-align:center;margin:12vh 0 28px}.menu-col{flex-direction:column;gap:10px;max-width:380px;margin:0 auto;display:flex}.menu-col button{padding:10px 16px;font-size:18px}.row{flex-wrap:wrap;gap:8px;margin:6px 0;display:flex}.row button[aria-pressed=true]{color:#000;background:#ffd400}.form{flex-wrap:wrap;gap:16px;margin:10px 0;display:flex}.form input[type=text]{font:inherit;color:#fff;background:#111;border:2px solid #fff;border-radius:6px;width:12em;padding:6px 8px}.letters{grid-template-columns:repeat(13,minmax(36px,1fr));gap:6px;max-width:760px;display:grid}.letters button{padding:6px 0}.checklist{flex-direction:column;gap:12px;display:flex}.check{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.check input[type=checkbox]{width:22px;height:22px}.card .best{color:#ffd400;font-size:14px}.card .lock{color:#ff9a9a;font-size:14px;font-weight:700}.card .rubric{margin:0;padding-left:18px;font-size:14px;font-weight:400}.keys{columns:2}.lesson{color:#fff;background:#000000bf;border:2px solid #ffd400;border-radius:8px;max-width:640px;padding:10px 16px;font:600 17px/1.35 system-ui,Segoe UI,sans-serif;position:fixed;bottom:96px;left:50%;transform:translate(-50%)}.lesson ol{margin:4px 0 0;padding-left:22px}.lesson li.done{opacity:.7}.lesson li.done::marker{content:"✔ "}.lesson li.now{color:#ffd400}.card-preview{border-radius:6px;width:100%;max-width:960px;margin:8px 0;display:block}.verify-form{flex-direction:column;max-width:560px}.verify-form label{justify-content:space-between;align-items:center;gap:12px;display:flex}.verify-form input[type=text]{width:18em}.verdict{font-size:22px;font-weight:800}.verdict.ok{color:#4cc26a}.verdict.bad{color:#ff6b6b}.setting{margin:6px 0}.setting-label{min-width:11em;display:inline-block}.rebind{gap:4px;max-width:720px;display:grid}.rebind-row{grid-template-columns:1fr 12em auto;align-items:center;gap:10px;display:grid}.rebind-row button{padding:3px 10px}.big-prompt{font-size:24px;font-weight:800}.coach{color:#fff;background:#000000b3;border-radius:8px;gap:4px;width:230px;padding:8px 10px;font:600 14px/1.3 system-ui,Segoe UI,sans-serif;display:grid;position:fixed;top:56px;right:84px}.coach[hidden]{display:none}.coach .bar{height:6px}.coach-title{color:#ffd400;font-size:16px}body.cb-safe #hud .banner.caution,body.cb-safe #hud .proximity.caution{background:#e69f00}body.cb-safe #hud .banner.danger,body.cb-safe #hud .proximity.danger{background:#0072b2}body.cb-safe .bar>div{background:#56b4e9}body.cb-safe .bar-row.low .bar>div{background:#e69f00}.loading{color:#fff;background:#0d1015;flex-direction:column;justify-content:center;align-items:center;gap:10px;font:600 18px system-ui,Segoe UI,sans-serif;display:flex;position:fixed;inset:0}.loading progress{width:360px;height:16px}.dev-panel{background:#0a0c10e6;width:420px;padding:12px 16px;font-size:14px;inset:0 auto 0 0}.dev-panel h2{margin:0 0 6px;font-size:18px}.dev-panel h3{color:#ffd400;margin:14px 0 4px;font-size:15px}.dev-panel input[type=text],.dev-panel input[type=number]{font:inherit;color:#fff;background:#111;border:1px solid #888;border-radius:4px;max-width:12em;padding:3px 6px}.dev-panel button{padding:3px 9px;font-size:14px}.dev-status{color:#7fd4ff}.offer-high{color:#fff;background:#1c2027;border:2px solid #ffd400;border-radius:8px;align-items:center;gap:10px;padding:10px 14px;font:600 16px system-ui,Segoe UI,sans-serif;display:flex;position:fixed;bottom:120px;left:50%;transform:translate(-50%)}.offer-high button{font:inherit;color:#fff;cursor:pointer;background:#2a2f38;border:2px solid #fff;border-radius:6px;padding:4px 10px}.perf-overlay{color:#9ef59e;pointer-events:none;z-index:5;background:#000000bf;border-radius:6px;margin:0;padding:6px 8px;font:14px/1.35 ui-monospace,Consolas,monospace;position:fixed;bottom:8px;right:8px}.gallery{color:#fff;background:#0a0c10f0;padding:16px 24px;font:16px/1.3 system-ui,Segoe UI,sans-serif;position:fixed;inset:0;overflow-y:auto}.gallery[hidden]{display:none}.gallery header{align-items:center;gap:16px;margin-bottom:12px;display:flex}.gallery h2{margin:0;font-size:22px}.gallery button{font:inherit;color:#fff;cursor:pointer;background:#222;border:2px solid #fff;border-radius:6px;padding:6px 12px;font-weight:700}.gallery button:focus-visible{outline-offset:2px;outline:3px solid #ffd400}.gallery .grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;display:grid}.gallery figure{background:#1c2027;border:3px solid #0000;border-radius:8px;margin:0;padding:8px}.gallery figure.starred{border-color:#ffd400}.gallery img{border-radius:4px;width:100%;display:block}.gallery figcaption{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:6px;display:flex}.gallery .badge{color:#000;background:#f5a623;border-radius:4px;padding:0 6px;font-weight:700}.gallery .empty{opacity:.8}#hud{pointer-events:none;color:#fff;text-shadow:0 1px 2px #000;--vx:0px;--vy:0px;--vw:100vw;--vh:100vh;font:600 16px/1.25 system-ui,Segoe UI,sans-serif;position:fixed;inset:0}#hud .panel{background:#0000008c;border-radius:6px;padding:6px 10px}#hud .top{flex-wrap:wrap;justify-content:center;gap:8px;display:flex;position:absolute;top:8px;left:8px;right:8px}#hud .top .panel b{color:#ffd400;font-weight:700}#hud .banner{text-shadow:none;text-align:center;border-radius:6px;max-width:min(90vw,760px);padding:8px 16px;font-size:18px;font-weight:800;position:absolute;top:56px;left:50%;transform:translate(-50%)}#hud .banner.caution{color:#000;background:#f5a623;border:3px solid #000}#hud .banner.danger{color:#fff;background:#c00018;border:3px dashed #fff}#hud .left{position:absolute;top:56px;left:8px}#hud .left canvas{border-radius:6px;display:block}#hud .right{flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;top:56px;right:8px}#hud .scale{width:64px;height:260px;position:relative}#hud .scale .bar{background:#fff8;width:4px;position:absolute;top:0;bottom:0;left:6px}#hud .scale .tick{font-size:14px;position:absolute;left:14px;transform:translateY(-50%)}#hud .scale .marker{background:#ffd400;width:16px;height:4px;position:absolute;left:0;transform:translateY(-50%);box-shadow:0 0 0 1px #000}#hud .bottom{bottom:calc(100vh - var(--vy) - var(--vh) + 8px);left:calc(var(--vx) + var(--vw) / 2);white-space:nowrap;gap:18px;display:flex;position:absolute;transform:translate(-50%)}#hud .bottom span{font-variant-numeric:tabular-nums}#hud .grid{left:var(--vx);top:var(--vy);width:var(--vw);height:var(--vh);position:absolute}#hud .grid line{stroke:#fffc;stroke-width:1.5px;vector-effect:non-scaling-stroke}#hud .flash{left:var(--vx);top:var(--vy);width:var(--vw);height:var(--vh);opacity:0;background:#fff;position:absolute}#hud .proximity{left:calc(var(--vx) + var(--vw) / 2);bottom:calc(100vh - var(--vy) - var(--vh) + 52px);text-shadow:none;border-radius:6px;padding:4px 12px;font-weight:800;position:absolute;transform:translate(-50%)}#hud .proximity.caution{color:#000;background:#f5a623;border:2px solid #000}#hud .proximity.danger{color:#fff;background:#c00018;border:2px dashed #fff}.crash-report{color:#fff;background:#1c2027;border:3px dashed #ff4d4d;border-radius:10px;min-width:320px;padding:16px 24px;font:16px/1.4 system-ui,Segoe UI,sans-serif;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.crash-report[hidden]{display:none}.crash-report h2{color:#ff6b6b;margin:0 0 8px}.crash-report dl{grid-template-columns:auto 1fr;gap:4px 16px;margin:0 0 12px;display:grid}.crash-report dt{opacity:.8}.crash-report dd{margin:0;font-weight:700}.crash-report div{gap:12px;display:flex}.crash-report button{font:inherit;color:#fff;cursor:pointer;background:#333;border:2px solid #fff;border-radius:6px;padding:6px 14px;font-weight:700}.crash-report button:focus-visible{outline-offset:2px;outline:3px solid #ffd400}
