:root{
  --sky:#8ED6F5;
  --soil:#8B5A2B;
  --ink:#27405A;
  --green:#22C55E;
  --green-dark:#15803D;
  --paper:#FFFFFF;
  --paper-ink:#27405A;
  --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;height:calc(100vh - 20px);height:calc(100dvh - 20px);min-height:420px;display:grid;grid-template-rows:auto 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:#B8521C}
.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.5rem}
.shelf-btn.bump{animation:bump .5s}
@keyframes bump{40%{scale:1.25}}
button{font:inherit;cursor:pointer}
:focus-visible{outline:4px solid #B8521C;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(84px,20vmin,116px);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}}

.overlay{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:16px;background:rgba(30,50,70,.55);overflow-y:auto}
.overlay[hidden]{display:none}
.sheet{position:relative;width:100%;max-width:520px;background:#fff;border-radius:26px;padding:22px;display:grid;gap:14px;box-shadow:0 20px 50px rgba(0,0,0,.3)}
.sheet-title{margin:0;text-align:center;font-weight:800;font-size:1.6rem}
.veggies{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.veggies div{background:#F2F8EC;border-radius:18px;padding:12px;display:flex;align-items:center;justify-content:center;gap:10px;font-weight:800;font-size:1.6rem}
.veggies svg{width:46px;height:46px}
.close{position:absolute;top:10px;right:10px;width:44px;height:44px;border-radius:50%;border:0;background:#EEF2F5;font:800 1.2rem var(--font);color:var(--ink);cursor:pointer}

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