:root{
  --sky:#CFEFFB;
  --ink:#1F4A63;
  --accent:#FF8A3D;
  --font:"Baloo 2", "Segoe UI", system-ui, sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box}
html,body{background:var(--sky)}
body{margin:0;color:var(--ink);font:18px/1.3 var(--font);padding-inline:12px;padding-block:8px 12px;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}
.app{max-width:900px;margin-inline:auto;width:100%;height:calc(100vh - 20px);height:calc(100dvh - 20px);min-height:430px;
  display:grid;grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr);gap:8px}

.bar{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px}
.back{color:var(--ink);text-decoration:none;font-weight:700;font-size:17px;white-space:nowrap;opacity:.75}
.back:hover{opacity:1}
.title{margin:0;font-weight:800;font-size:clamp(1.3rem,4vw,2rem);white-space:nowrap;line-height:1}
.title span{color:var(--accent)}
.bar-actions{display:flex;gap:8px;align-items:center}
.icon-btn,.shelf-btn{height:46px;border-radius:14px;border:0;background:#fff;color:var(--ink);display:grid;place-items:center;cursor:pointer;padding:0;box-shadow:0 3px 0 rgba(0,0,0,.12)}
.icon-btn{width:46px}
.icon-btn span{display:grid;place-items:center}
.icon-btn span[hidden]{display:none}
.icon-btn svg{width:24px;height:24px}
.shelf-btn{display:flex;gap:4px;padding:0 12px;font:800 1.2rem var(--font)}
.shelf-btn span{font-size:1.4rem}
.shelf-btn.bump{animation:bump .5s}
@keyframes bump{40%{scale:1.25}}
button{font:inherit;cursor:pointer}
:focus-visible{outline:4px solid var(--accent);outline-offset:3px}

.stage{position:relative;min-height:0;border-radius:18px;overflow:hidden;background:#3BA7D1}
canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;user-select:none;-webkit-user-select:none}

@media (max-width:640px){
  .back-tx{display:none}
  .back{font-size:24px}
}
@media (prefers-reduced-motion:reduce){ .shelf-btn.bump{animation:none} }
