:root{--bg:#0f1115;--card:#171a21;--panel:#0b0d12;--text:#f4f6fa;--muted:#8e96a6;--line:#292e39;--accent:#6d7cff;--cell:#252a35;--danger:#ff5d6c}*{box-sizing:border-box}html,body{margin:0;width:100%;min-height:100%;overflow-x:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%;touch-action:manipulation}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif;user-select:none;-webkit-user-select:none}.app{width:100%;min-height:100dvh;padding:max(12px,env(safe-area-inset-top)) 12px max(20px,env(safe-area-inset-bottom));display:flex;justify-content:center}.game-card{width:min(100%,560px);background:var(--card);border:1px solid var(--line);border-radius:24px;padding:16px;box-shadow:0 18px 50px #0005}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--muted);font-weight:800}.topbar h1{font-size:25px;margin:3px 0 0;letter-spacing:-.7px}.icon-btn,.controls button,.primary-btn,.secondary-btn{border:0;font:inherit;cursor:pointer;touch-action:manipulation}.icon-btn{width:42px;height:42px;border-radius:13px;background:var(--panel);color:var(--text);font-weight:900;font-size:16px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.stats>div{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:8px 10px}.stats span{display:block;font-size:11px;color:var(--muted)}.stats strong{display:block;font-size:19px;margin-top:2px}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:10px;align-items:stretch}.board-wrap{position:relative;min-width:0;background:#080a0e;border:1px solid var(--line);border-radius:18px;overflow:hidden;display:flex;justify-content:center}.board-wrap canvas{display:block;width:100%;height:auto;max-width:390px;aspect-ratio:1/2;background:#080a0e}.side-panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:10px;display:flex;flex-direction:column;align-items:center}.next-title{font-size:10px;letter-spacing:2px;color:var(--muted);font-weight:800;margin:4px 0 6px}.side-panel canvas{width:72px;height:72px;display:block}.hint{margin-top:auto;color:var(--muted);font-size:10px;line-height:1.8;text-align:center}.overlay{position:absolute;inset:0;background:#080a0ed9;display:flex;align-items:center;justify-content:center;text-align:center;padding:20px}.overlay.hidden{display:none}.overlay-box{width:min(280px,90%);padding:22px;border-radius:20px;background:#171a21;border:1px solid var(--line)}.overlay-box>div{font-size:25px;font-weight:900}.overlay-box p{margin:8px 0 16px;color:var(--muted);font-size:13px}.primary-btn{background:var(--accent);color:#fff;padding:12px 20px;border-radius:13px;font-weight:800}.controls{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:12px}.controls button{height:52px;border-radius:15px;background:var(--panel);border:1px solid var(--line);color:var(--text);font-size:25px;font-weight:800}.controls button:active{transform:translateY(1px);filter:brightness(1.2)}.controls .drop{font-size:21px}.secondary-btn{display:block;width:100%;margin-top:9px;height:42px;border-radius:13px;background:transparent;border:1px solid var(--line);color:var(--text);font-weight:700}.tip{text-align:center;color:var(--muted);font-size:10px;margin:10px 0 0}@media(max-width:390px){.game-card{padding:12px;border-radius:20px}.play-layout{grid-template-columns:minmax(0,1fr) 76px}.side-panel{padding:7px}.side-panel canvas{width:60px;height:60px}.hint{font-size:9px}.controls{gap:6px}.controls button{height:48px;border-radius:13px}}@media(min-width:520px){.board-wrap canvas{max-width:400px}}

/* V2 visual polish */
.game-card{position:relative;overflow:hidden;background:linear-gradient(180deg,#191d26,#14171e);}
.topbar h1{font-weight:900;}
.stats>div{box-shadow:inset 0 1px 0 #ffffff08,0 6px 18px #0002;transition:transform .16s ease,background .16s ease;}
.stats>div:active{transform:scale(.98)}
.board-wrap{box-shadow:inset 0 0 0 1px #ffffff04,0 12px 30px #0004;}
.board-wrap:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,#ffffff06,transparent 30%,transparent 70%,#ffffff03);}
.controls button{box-shadow:inset 0 1px 0 #ffffff08,0 5px 14px #0003;transition:transform .08s ease,filter .12s ease,background .12s ease;}
.controls button:hover{filter:brightness(1.12);}
.controls button:active{transform:scale(.94);}
.primary-btn,.secondary-btn{transition:transform .12s ease,filter .12s ease;}
.primary-btn:active,.secondary-btn:active{transform:scale(.97);}
.overlay{backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);animation:fadeIn .18s ease;}
.overlay-box{box-shadow:0 18px 45px #0007;animation:popIn .2s ease;}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes popIn{from{transform:scale(.94);opacity:.5}to{transform:scale(1);opacity:1}}
@media(prefers-reduced-motion:reduce){.overlay,.overlay-box{animation:none}.controls button,.primary-btn,.secondary-btn{transition:none}}
