:root{--bg: #0d0f16;--panel: #171a26;--line: #262a3b;--text: #e8eaf3;--dim: #8a90a8;--accent: #f5b83d;--pixel: #8ff3ff;--red: #ff5c70;--green: #a4ffb0;color-scheme:dark}*{box-sizing:border-box}html{touch-action:manipulation}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:ui-monospace,SF Mono,Cascadia Mono,Menlo,Consolas,monospace;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}button{font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px 14px;cursor:pointer}button:hover{border-color:#3a3f58}button.primary{background:var(--accent);border-color:var(--accent);color:#1b1405;font-weight:700}tg-bar:not(:defined){display:block;height:40px;background:#0b0b0e}.app{max-width:clamp(520px,calc((100svh - 270px)*.7 + 32px),900px);margin:0 auto;height:calc(100svh - 40px);display:flex;flex-direction:column;gap:10px;padding:12px 16px max(12px,env(safe-area-inset-bottom))}.top{display:flex;align-items:center;gap:10px}.title{margin:0;line-height:0}.title img{display:block;height:30px}.modes{display:flex;margin-left:auto;background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:2px}.mode{border:0;background:none;padding:5px 10px;color:var(--dim)}.mode[aria-pressed=true]{background:var(--line);color:var(--text)}.icon-btn{flex-shrink:0;width:34px;height:34px;padding:0;border-radius:50%}.hud{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stat,.results>div{display:flex;flex-direction:column;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:6px 4px}.label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--dim)}.value{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}#score{transition:color .6s}#score[data-heat=cool]{color:var(--green)}#score[data-heat=warm]{color:var(--accent)}#score[data-heat=hot]{color:var(--red)}.hint{font-size:10px;color:var(--dim);letter-spacing:.04em}.bump{animation:bump .22s ease-out}@keyframes bump{40%{transform:scale(1.25);color:var(--accent)}}.meter-bar{position:relative;height:8px;background:var(--panel);border:1px solid var(--line);border-radius:4px;overflow:hidden}.meter-fill{height:100%;width:100%;background:linear-gradient(90deg,var(--green),var(--pixel));transition:width .25s ease-out}.meter-fill.ok{background:var(--green)}.meter-goal{position:absolute;top:-1px;bottom:-1px;width:2px;background:var(--accent)}.meter-text{margin-top:4px;font-size:13px}.dim{color:var(--dim)}.small{font-size:13px}.meter-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stuck-note{color:var(--red);font-weight:700;animation:blink .8s steps(2) infinite}.stuck-note[hidden]{display:none}@keyframes blink{50%{opacity:.4}}.red{color:var(--red)}.board-wrap{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center}canvas{display:block;touch-action:none;border:2px solid #4c5378;border-radius:4px;box-shadow:0 0 30px #00000080}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#08090e8c;-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);overflow-y:auto}.overlay[hidden]{display:none}.card{width:min(340px,92%);background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;text-align:center;animation:rise .3s ease-out;margin:auto}#win-overlay{flex-direction:column;justify-content:flex-start}#win-overlay .card{margin-bottom:0}.win-ad{width:100%;margin:12px auto auto;padding-bottom:12px}.page-ad{padding:24px 0}.more-games{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.card h2{margin:4px 0 10px;font-size:24px}.card p{line-height:1.45}.kicker{margin:0;color:var(--accent);font-size:13px;letter-spacing:.1em;text-transform:uppercase}.win h2{color:var(--green);animation:pop .5s cubic-bezier(.3,1.6,.5,1)}.results{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0 8px}.results .big{grid-column:span 2}.results .big .value{font-size:34px;color:var(--accent)}.row{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}@keyframes rise{0%{transform:translateY(12px);opacity:0}}@keyframes pop{0%{transform:scale(.4);opacity:0}}.controls{display:flex;justify-content:center;gap:8px}dialog{max-width:360px;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:14px;line-height:1.5}dialog::backdrop{background:#0009}dialog ul{padding-left:18px}dialog li{margin-bottom:6px}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:var(--text);color:var(--bg);padding:8px 14px;border-radius:8px;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%)}@media (max-width: 420px){.app{padding-left:6px;padding-right:6px;gap:8px}canvas{border-width:1px}}@media (max-height: 740px){.app{gap:6px;padding-top:8px;padding-bottom:max(8px,env(safe-area-inset-bottom))}.title img{height:24px}.mode{padding:3px 8px}.icon-btn{width:28px;height:28px}.stat{flex-direction:row;justify-content:center;gap:6px;padding:4px}.stat .value{font-size:16px}.stat .hint{display:none}.meter-text{font-size:12px;margin-top:2px}.controls button{padding:5px 12px}}@media (max-width: 360px){.top{gap:6px}.title img{height:20px}}
