:root{--bg:#12100e;--bg-raised:#1c1916;--line:#332e28;--text:#f0e9df;--muted:#a39a8d;--accent:#e8b647;--ok:#6fca7a;--shadow:0 12px 34px #0000008c;--radius:14px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-text-size-adjust:100%;font-family:Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);overscroll-behavior:none}html,body,.app{touch-action:pan-x pan-y}.board,.topbar{touch-action:none}.app{flex-direction:column;height:100dvh;min-height:100dvh;display:flex}.topbar{border-bottom:1px solid var(--line);background:var(--bg-raised);align-items:center;gap:12px;padding:10px 14px;display:flex}.title{margin:0;font-size:1.05rem;font-weight:700}.title-day{color:var(--muted);font-weight:500}.title-rung{color:var(--muted);letter-spacing:.04em;opacity:.75;margin-left:.5em;font-size:.72em;font-weight:500}.clock{font-variant-numeric:tabular-nums;color:var(--muted);border:1px solid var(--line);border-radius:999px;margin:0 auto 0 0;padding:3px 10px;font-size:1.05rem}.clock.is-running{color:var(--text);border-color:var(--accent)}.clock.is-done{color:var(--ok);border-color:var(--ok)}.topbar-actions{gap:6px;display:flex}.practice-note{letter-spacing:.06em;text-transform:uppercase;color:var(--bg);background:var(--accent);margin:0;padding:5px 14px;font-size:.78rem}.btn{font:inherit;color:var(--text);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:999px;padding:8px 16px;font-size:.92rem;transition:border-color .15s,background .15s}.btn:hover{border-color:var(--muted)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary{background:var(--accent);border-color:var(--accent);color:#1a1408;font-weight:600}.btn-icon{width:34px;height:34px;padding:0;font-size:1rem;line-height:1}.btn-ring svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px;margin:0 auto;display:block}.btn-ring{color:var(--muted)}.btn-ring.is-on{color:var(--ok);border-color:var(--ok)}.btn-pause svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px;margin:0 auto;display:block}.btn-pause[aria-pressed=true] svg{fill:currentColor;stroke-linejoin:round}.board{flex:1;min-height:0;position:relative;overflow:hidden}.stage{isolation:isolate;touch-action:none;cursor:grab;background:#0b0a09;position:absolute;inset:0;overflow:hidden}.stage:active{cursor:grabbing}.stage:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.stage-viewport{isolation:isolate;transition:filter .35s ease-out;position:absolute;inset:0}.stage-viewport.is-blurred{filter:blur(14px)brightness(.75)saturate(.8)}.stage-canvas{transform-origin:0 0;position:absolute;top:0;left:0}.stage-image{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;display:block}.stage-target{pointer-events:none;position:absolute}.stage-ring{border-style:solid;border-color:var(--ok);pointer-events:none;border-radius:50%;animation:.4s ease-out ring-in;position:absolute}@keyframes ring-in{0%{opacity:0;transform:scale(1.6)}}.stage-start-hint,.loading{color:var(--text);border:1px solid var(--line);pointer-events:none;white-space:nowrap;background:#12100ee6;border-radius:999px;margin:0;padding:8px 16px;font-size:.85rem;position:absolute;bottom:96px;left:50%;transform:translate(-50%)}.loading{top:50%;bottom:auto}.reference{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:none;background:#12100ee0;flex-direction:column;align-items:center;gap:6px;padding:10px 10px 8px;display:flex;position:absolute;top:12px;right:12px}.reference-well{background:#6d6862;border-radius:8px;place-items:center;transition:box-shadow .2s ease-out;display:grid;box-shadow:0 0 0 2px #0000}.reference.is-near{border-color:var(--accent)}.reference.is-near .reference-well{box-shadow:0 0 0 2px var(--accent)}.reference.is-near .reference-label{color:var(--accent)}.reference.is-solved{border-color:var(--ok)}.reference.is-solved .reference-well{box-shadow:0 0 0 2px var(--ok)}.reference.is-solved .reference-label{color:var(--ok)}.reference-label{letter-spacing:.08em;text-transform:uppercase;min-height:1em;color:var(--muted);margin:0;font-size:.7rem}.howto,.result{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);width:min(420px,100% - 24px);max-height:calc(100% - 28px);box-shadow:var(--shadow);padding:20px;animation:.25s ease-out panel-in;position:absolute;bottom:14px;left:50%;overflow-y:auto;transform:translate(-50%)}@keyframes panel-in{0%{opacity:0;transform:translate(-50%,14px)}}.howto h2{margin:0 0 10px;font-size:1.05rem}.howto p{margin:0 0 10px;font-size:.92rem;line-height:1.5}.howto ul{color:var(--muted);margin:0 0 12px;padding-left:20px;font-size:.9rem;line-height:1.6}.howto-note{color:var(--muted);font-size:.85rem}.credits-art{flex-direction:column;gap:2px;margin:0 0 12px;font-size:.95rem;display:flex}.credits-art strong{color:var(--ok)}.credits-art span{color:var(--muted);font-size:.85rem}.result{text-align:center}.result-eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.78rem}.result-time{font-variant-numeric:tabular-nums;color:var(--ok);margin:4px 0 2px;font-size:2.4rem;font-weight:700}.result-bar{letter-spacing:2px;margin:0 0 14px}.result-art{flex-direction:column;gap:2px;margin:0 0 14px;font-size:.9rem;display:flex}.result-art span{color:var(--muted);font-size:.82rem}.result-stats{justify-content:center;gap:22px;margin:0 0 16px;display:flex}.result-stats div{flex-direction:column;gap:2px;display:flex}.result-stats dt{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);order:2;font-size:.68rem}.result-stats dd{font-variant-numeric:tabular-nums;order:1;margin:0;font-size:1.15rem;font-weight:600}.result-actions{justify-content:center;gap:8px;display:flex}.result-next{color:var(--muted);font-variant-numeric:tabular-nums;margin:14px 0 0;font-size:.82rem}@media (width<=420px){.reference{padding:8px 8px 6px;top:8px;right:8px}.result-time{font-size:2rem}}.stage-start-hint{letter-spacing:.04em;color:var(--muted);bottom:24px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.resume-note{z-index:3;letter-spacing:.06em;text-transform:uppercase;text-align:center;color:var(--bg);background:var(--ok);pointer-events:none;margin:0;padding:5px 14px;font-size:.78rem;position:absolute;top:0;left:0;right:0}.stage-start-hint.is-resumed{color:var(--ok);border-color:var(--ok)}
