:root{--bg:#0f1117;--surface:#151823;--text:#e5e7eb;--muted:#9aa4b2;--accent:#22d3ee;--grid:#2a2f3a}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji"}
.app{min-height:100%;max-width:1100px;margin:0 auto;padding:16px;display:flex;flex-direction:column;gap:16px}
.header .title{margin:0;font-size:clamp(1.25rem, 2.5vw, 1.75rem);font-weight:700}
.main{display:grid;grid-template-columns:1fr min(260px, 40%);gap:16px;align-items:start}
.playfield{background:var(--surface);padding:12px;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.3);display:flex;justify-content:center;align-items:center}
#game-canvas{width:100%;height:auto;max-width:min(90vw, 520px);aspect-ratio:10/20;background:#111827;border-radius:8px;display:block}
.sidebar{display:flex;flex-direction:column;gap:16px}
.panel{background:var(--surface);border-radius:12px;padding:12px}
.panel h2{margin:.25rem 0 .5rem;font-size:1rem}
.stats{display:grid;grid-template-columns:1fr auto;gap:8px}
.stat{display:contents}
.stat span{color:var(--muted)}
.stat strong{font-variant-numeric:tabular-nums}
.preview{display:flex;flex-direction:column;gap:8px;align-items:center}
#preview-canvas{background:#111827;border-radius:8px;border:1px solid var(--grid)}
.footer{color:var(--muted);font-size:.875rem}

@media (max-width: 800px){
  .main{grid-template-columns:1fr}
  #game-canvas{max-width:min(94vw, 440px)}
}
