:root{
  --sky:#9FD3F0;
  --ink:#27405A;
  --red:#E53935;
  --green:#22C55E;
  --green-dark:#15803D;
  --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(--red)}
.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(--red);outline-offset:3px}

.stage{position:relative;min-height:0;border-radius:18px;overflow:hidden;background:var(--sky)}
canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;user-select:none;-webkit-user-select:none}
.next{position:absolute;z-index:5;right:10px;bottom:10px;width:clamp(80px,19vmin,112px);aspect-ratio:1;border:0;border-radius:50%;background:var(--green);color:#fff;
  box-shadow:0 7px 0 var(--green-dark);display:grid;place-items:center;animation:pulse 1.4s ease-in-out infinite}
.next svg{width:55%;height:55%}
.next[hidden]{display:none}
.next:active{translate:0 5px;box-shadow:0 2px 0 var(--green-dark)}
@keyframes pulse{50%{scale:1.08}}

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