:root{--ink: #2d3a26;--paper: #f6fbf1;--goo: #8fd19e;--goo-dark: #5aa35a;--accent: #ffcf3f;--shadow: 0 10px 30px rgba(40, 60, 30, .25);font-family:Nunito,Segoe UI,system-ui,-apple-system,sans-serif;color:var(--ink)}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#cfeeff}body{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}#app{position:fixed;inset:0}#stage{position:absolute;inset:0}.layer{position:absolute;inset:0;width:100%;height:100%;display:block}.layer-fx{touch-action:none}#ui{position:absolute;inset:0;pointer-events:none}#ui>*{pointer-events:auto}.screen.menu{position:absolute;inset:0;overflow-y:auto;padding:max(12px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 16px max(16px,env(safe-area-inset-left));background:radial-gradient(circle at 80% 12%,#fff0b4e6 0,#fff0b400 28%),linear-gradient(180deg,#6fb7ea,#bfe4fb 45%,#e9f7d8);display:flex;flex-direction:column;gap:12px}.screen.menu:before{content:"";position:absolute;left:0;right:0;bottom:0;height:38%;background:radial-gradient(ellipse at 30% 100%,#8fc46e 0,#6ea85a 45%,#6ea85a00 72%),radial-gradient(ellipse at 85% 110%,#a9cfa1 0,#a9cfa100 60%);pointer-events:none;opacity:.8}.screen.menu>*{position:relative}.menu header{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap}.menu h1{margin:0;font-size:clamp(28px,6vh,44px);letter-spacing:1px;display:flex;align-items:center;gap:10px}.blob-icon{width:.9em;height:.9em;border-radius:45% 55% 50% 50%;display:inline-block;background:radial-gradient(circle at 35% 30%,#d8f5c1,#7fc46a 70%,#4d7f38);box-shadow:inset -3px -3px #00000026}.tagline{margin:0;opacity:.75;font-size:14px;max-width:60ch}.levels{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.level{position:relative;text-align:left;border:2px solid rgba(45,58,38,.15);border-radius:14px;background:#fff;padding:10px 12px;cursor:pointer;font:inherit;color:inherit;display:flex;flex-direction:column;gap:2px;min-height:76px;box-shadow:0 3px #2d3a261f;transition:transform .08s}.level:active{transform:translateY(2px);box-shadow:none}.level .num{font-weight:800;font-size:20px;color:var(--goo-dark)}.level:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:5px;border-radius:0 4px 4px 0;background:#8fd19e}.level.theme-cave:before{background:#5b6478}.level.theme-dusk:before{background:#f08a5d}.level .name{font-weight:700}.level .meta{font-size:12px;opacity:.6}.level.done{border-color:var(--goo-dark);background:#eefae6}.level .tick,.level .lock{position:absolute;top:8px;right:10px;font-size:18px}.level .tick{color:var(--goo-dark);font-weight:900}.level.locked{opacity:.7;background:#f3f3f0}.menu footer{margin-top:auto;display:flex;gap:16px;align-items:center;flex-wrap:wrap;font-size:13px;opacity:.85}.menu footer .version{margin-left:auto;opacity:.5;font-size:11px}.link{background:none;border:none;color:var(--goo-dark);font:inherit;font-weight:700;cursor:pointer;padding:6px 0}.hud{position:absolute;left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));top:max(8px,env(safe-area-inset-top));display:flex;align-items:center;gap:10px}.hud-btn{width:42px;height:42px;border-radius:12px;border:none;background:#ffffffd9;font-size:22px;color:var(--ink);box-shadow:0 2px #2d3a2633;cursor:pointer}.hud-title{font-weight:800;background:#ffffffb3;padding:6px 12px;border-radius:10px}.hud-balls{margin-left:auto;display:flex;align-items:center;gap:4px;background:#ffffffb3;padding:6px 10px;border-radius:10px}.hud-balls .ball{width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#777,#2a2a2e 70%)}.hud-balls .ball.lost{background:none;border:2px dashed rgba(45,58,38,.35);width:12px;height:12px}.hud-balls .spare{margin-left:8px;font-size:12px;font-weight:700;color:var(--goo-dark)}.hud-balls .spare.none{color:#c0392b}.hint{position:absolute;left:50%;bottom:max(14px,env(safe-area-inset-bottom));transform:translate(-50%);background:#ffffffd9;padding:8px 14px;border-radius:12px;font-size:14px;font-weight:600;max-width:80vw;text-align:center;transition:opacity .8s;pointer-events:none}.hint.fade{opacity:0}.sheet-host{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.sheet-host.modal{background:#1e281459;pointer-events:auto}.sheet-host:empty{display:none}.sheet{pointer-events:auto;background:#fff;border-radius:18px;padding:18px 22px;box-shadow:var(--shadow);min-width:280px;max-width:min(520px,90vw);text-align:center;animation:pop .25s ease-out}@keyframes pop{0%{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}.sheet h2{margin:0 0 6px;font-size:24px}.sheet p{margin:4px 0 12px}.sheet .fine{font-size:12px;opacity:.7;min-height:1em}.row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.btn{font:inherit;font-weight:800;border:none;border-radius:12px;padding:10px 18px;cursor:pointer}.btn.primary{background:var(--goo-dark);color:#fff;box-shadow:0 3px #3f7a3f}.btn.ghost{background:#eef3ea;color:var(--ink)}.btn:disabled{opacity:.5}#rotate{display:none;position:fixed;inset:0;background:#d8f0ff;z-index:10;align-items:center;justify-content:center;text-align:center;padding:24px}.rotate-card{font-weight:700;font-size:18px}.rotate-icon{font-size:64px;animation:turn 1.6s ease-in-out infinite alternate}@keyframes turn{0%{transform:rotate(0)}to{transform:rotate(90deg)}}@media (orientation: portrait) and (max-width: 700px){#rotate{display:flex}}
