:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d0f16;--panel:#161a26;--line:#2a2e3f;--fg:#e6e8ef;--muted:#9aa0b4;--accent:#f59e0b;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html,body{overscroll-behavior:none}body{background:var(--bg);color:var(--fg)}.app{flex-direction:column;height:100%;display:flex}.topbar{background:var(--panel);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.topbar h1{letter-spacing:.02em;margin:0;font-size:16px;font-weight:600}.lang{gap:6px;display:flex}.lang button{border:1px solid var(--line);min-width:44px;min-height:44px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border-radius:8px;font-size:13px}.lang button[aria-pressed=true]{color:var(--bg);background:var(--accent);border-color:var(--accent)}.stage-wrap{flex:1;min-height:0;position:relative}.pixi-host{place-items:center;display:grid;position:absolute;inset:0}.pixi-host canvas{image-rendering:pixelated;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;display:block}.overlay{pointer-events:none;padding:12px;position:absolute;inset:0}.hud{font-variant-numeric:tabular-nums;flex-wrap:nowrap;align-items:center;gap:10px;font-size:13px;display:flex;overflow:hidden}.hud i{color:var(--muted);font-size:11px;font-style:normal}.hud .gold{color:var(--accent)}.hud .round,.hud .best{color:var(--muted)}.hud .best{color:var(--accent)}.hud .wave{white-space:nowrap;font-size:12px}.hud .wave.r0{color:#7bd88f}.hud .wave.r1{color:#9aa6d6}.hud .wave.r2{color:#e2564a}.hud .sp{gap:4px;margin-left:auto;display:flex}.hud .sp button{min-height:36px;padding:0 8px;font-size:12px}.slots{font-weight:600}.slots-ok{color:var(--fg)}.slots-note{color:#f5d90a}.slots-warn,.slots-crit{color:#ff5b5b;animation:1s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.45}}.app{position:relative}.vignette-crit:after{content:"";pointer-events:none;z-index:5;animation:1.2s ease-in-out infinite pulse;position:fixed;inset:0;box-shadow:inset 0 0 120px 30px #dc26268c}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.overlay{pointer-events:none;flex-direction:column;gap:8px;padding:8px;display:flex;position:absolute;inset:0}.overlay>*{pointer-events:auto}.overlay .spacer{pointer-events:none;flex:1;min-height:0}.diag{color:var(--muted);font-variant-numeric:tabular-nums;align-self:flex-start;margin:0;font-size:11px}.dock{border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:8px;padding-bottom:calc(8px + env(safe-area-inset-bottom));background:#0e111af0;border-radius:12px;flex-direction:column;gap:6px;display:flex}.dock .row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.row-label{color:var(--muted);padding:0 2px;font-size:12px}.dock .more{min-width:44px;margin-left:auto}.dock .dim{color:var(--muted);font-size:11px}.dock button,.tilepanel button,.skill,.gameover button,.hud .sp button{border:1px solid var(--line);min-height:44px;color:var(--fg);font:inherit;cursor:pointer;touch-action:manipulation;background:#1a1e2cf5;border-radius:10px;padding:0 12px;font-size:13px}.dock button:disabled,.tilepanel button:disabled,.skill:disabled{opacity:.35;cursor:not-allowed}.dock button[aria-pressed=true],.tilepanel button[aria-pressed=true],.hud .sp button[aria-pressed=true]{background:var(--accent);color:#12141c;border-color:var(--accent)}.tilepanel{border:1px solid var(--line);background:#0e111af5;border-radius:12px;flex-direction:column;gap:8px;padding:10px;display:flex}.tp-head{flex-wrap:wrap;align-items:baseline;gap:6px;font-size:13px;display:flex}.tp-branch,.tp-mult{color:var(--muted);font-size:12px}.tp-lock{color:var(--accent);font-size:11px}.tp-actions,.tp-convert{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tp-label{color:var(--muted);width:100%;font-size:12px}.tp-hint,.tp-meta{color:var(--muted);margin:0;font-size:11px}.tp-dist{color:var(--muted);margin-left:auto;font-size:11px}.tp-warn{color:#ff5b5b}.tilepanel button.best{border-color:var(--accent);color:var(--accent)}.skillbar{flex-wrap:wrap;gap:6px;display:flex}.skill{align-items:center;gap:6px;display:inline-flex}.skill.ready{border-color:var(--accent)}.skill.active{background:#f59e0b38}.skill-count,.skill-state{color:var(--muted);font-size:11px}.skill-auto{color:var(--accent);font-size:10px;font-weight:700}.g0{color:#9aa0a6}.g1{color:#4caf50}.g2{color:#4a90d9}.g3{color:#a855f7}.g4{color:#f59e0b}.g5{color:gold}.g6{color:#e23b3b}.g7{color:#22d3ee}.g8{color:#fff}.g9{color:#fff8d0}.reveal{z-index:10;cursor:pointer;background:#080a10e0;place-content:center;gap:12px;padding:16px;display:grid;position:absolute;inset:0}.reveal-grid{grid-template-columns:repeat(5,minmax(56px,84px));gap:8px;display:grid}.reveal-card{aspect-ratio:4/3;border:1px solid var(--line);opacity:.25;background:#12141c;border-radius:10px;place-items:center;font-size:12px;display:grid;transform:scale(.92)}.reveal-card.in{opacity:1;transition:opacity .12s,transform .12s;transform:scale(1)}.reveal-hint{text-align:center;color:var(--muted);margin:0;font-size:12px}.gameover{z-index:9;text-align:center;background:#080a10e6;place-content:center;gap:8px;padding:16px;display:grid;position:absolute;inset:0}.gameover h2{margin:0;font-size:20px}.gameover p{margin:0}.gameover .muted{color:var(--muted);font-size:13px}.gameover .newbest{color:var(--accent);font-weight:700}.gameover .records{color:var(--muted);font-size:13px}#ad-slot{min-height:0}@media (prefers-reduced-motion:reduce){.reveal-card.in{transition:none}.slots-warn,.slots-crit,.vignette-crit:after{animation:none}}@media (min-width:900px){.overlay{grid-template-rows:auto 1fr auto;grid-template-columns:1fr minmax(220px,260px);gap:8px;display:grid}.diag{grid-area:1/1}.skillbar{flex-direction:column;grid-area:2/1;align-self:start}.tilepanel{grid-area:1/2/span 2;align-self:start}.dock{grid-area:3/1/auto/-1}.dock .row{justify-content:center}}@media (max-width:560px){.topbar{flex-wrap:wrap;gap:6px 10px;padding:8px 10px}.topbar h1{width:100%;font-size:14px}.lang{order:3}.lang button{min-width:40px;min-height:40px;font-size:12px}.hud{order:2;width:100%;font-size:12px}.hud .sp button{min-height:34px}.dock button{flex:auto;min-width:0}.dock .row-label{width:100%}.reveal-grid{grid-template-columns:repeat(3,1fr)}}
