:root{--bg:#e8efe8;--bg-deep:#d4e0d6;--surface:#f4f7f4;--surface-raised:#fff;--accent:#7a9e8a;--accent-strong:#5f8570;--accent-2:#d4896a;--accent-2-soft:#e8b39a;--ink:#3d4a42;--ink-soft:#6b7a72;--success:#6a9b78;--warn:#c4a35a;--shadow:#3d4a421f;--radius:20px;--radius-sm:14px;--tap-min:64px;--font:"Nunito", system-ui, sans-serif;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{font-family:var(--font);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}#app{width:100%;height:100dvh;overflow:hidden}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}img,svg{max-width:100%;display:block}@keyframes star-float{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-48px)scale(1.3)}}@keyframes soft-pulse{0%,to{box-shadow:0 0 #0000}50%{box-shadow:0 0 0 12px #7a9e8a33}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}@keyframes pop-in{0%{opacity:0;transform:scale(.7)}70%{transform:scale(1.06)}to{opacity:1;transform:scale(1)}}@keyframes card-flip{0%{transform:rotateY(90deg)}to{transform:rotateY(0)}}.star-float{pointer-events:none;z-index:1000;font-size:1.75rem;animation:.7s ease-out forwards star-float;position:fixed}.shake{animation:.35s shake}.win-pulse{animation:.8s soft-pulse}.hub{height:100%;padding:calc(1rem + var(--safe-top)) calc(1.25rem + var(--safe-right)) calc(1.25rem + var(--safe-bottom)) calc(1.25rem + var(--safe-left));background:radial-gradient(ellipse 80% 50% at 20% 10%, #d4896a2e, transparent 55%), radial-gradient(ellipse 70% 45% at 90% 80%, #7a9e8a47, transparent 50%), linear-gradient(160deg, var(--bg) 0%, var(--bg-deep) 100%);-webkit-overflow-scrolling:touch;flex-direction:column;display:flex;overflow-y:auto}.hub-top{flex-shrink:0;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.hub-brand{flex-direction:column;gap:.15rem;display:flex}.hub-brand h1{letter-spacing:-.02em;color:var(--ink);font-size:clamp(1.75rem,6vw,2.5rem);font-weight:800;line-height:1.1}.hub-brand p{color:var(--ink-soft);font-size:.95rem;font-weight:600}.hub-controls{align-items:center;gap:.5rem;display:flex}.hub-score{background:var(--surface-raised);box-shadow:0 4px 16px var(--shadow);border-radius:999px;align-items:center;gap:.4rem;min-height:48px;padding:.55rem .9rem;font-size:1.1rem;font-weight:800;display:flex}.hub-score span{color:var(--accent-2)}.icon-btn{background:var(--surface-raised);width:48px;min-width:48px;height:48px;box-shadow:0 4px 16px var(--shadow);border-radius:50%;place-items:center;font-size:1.25rem;transition:transform .15s,background .15s;display:grid}.icon-btn:active{transform:scale(.94)}.hub-grid{flex:1;grid-template-columns:1fr;align-content:start;gap:1rem;padding-bottom:1rem;display:grid}@media (width>=520px){.hub-grid{grid-template-columns:1fr 1fr}}@media (width>=900px){.hub-grid{grid-template-columns:repeat(3,1fr);width:100%;max-width:960px;margin:0 auto}}.game-card{background:var(--surface-raised);border-radius:var(--radius);min-height:140px;box-shadow:0 6px 24px var(--shadow);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:1.25rem;transition:transform .18s,box-shadow .18s;animation:.4s backwards pop-in;display:flex}.game-card:first-child{animation-delay:50ms}.game-card:nth-child(2){animation-delay:.1s}.game-card:nth-child(3){animation-delay:.15s}.game-card:nth-child(4){animation-delay:.2s}.game-card:nth-child(5){animation-delay:.25s}.game-card:nth-child(6){animation-delay:.3s}.game-card:nth-child(7){animation-delay:.35s}.game-card:nth-child(8){animation-delay:.4s}.game-card:nth-child(9){animation-delay:.45s}.game-card:nth-child(10){animation-delay:.5s}.game-card:active{transform:scale(.96)}.game-card-icon{background:var(--bg);border-radius:50%;place-items:center;width:72px;height:72px;font-size:2.25rem;display:grid}.game-card-title{text-align:center;font-size:1.15rem;font-weight:800}.game-view{background:radial-gradient(ellipse 60% 40% at 50% 0%, #7a9e8a33, transparent 60%), var(--bg);flex-direction:column;height:100%;display:flex}.game-hud{padding:calc(.75rem + var(--safe-top)) calc(.75rem + var(--safe-right)) .75rem calc(.75rem + var(--safe-left));z-index:10;flex-shrink:0;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.game-hud-left,.game-hud-right{align-items:center;gap:.5rem;display:flex}.hud-btn{min-width:var(--tap-min);background:var(--surface-raised);min-height:48px;box-shadow:0 4px 14px var(--shadow);border-radius:999px;justify-content:center;align-items:center;gap:.35rem;padding:0 1rem;font-size:1rem;font-weight:800;transition:transform .15s;display:inline-flex}.hud-btn:active{transform:scale(.94)}.hud-btn.icon-only{width:48px;padding:0;font-size:1.25rem}.hud-session{background:var(--surface-raised);box-shadow:0 4px 14px var(--shadow);border-radius:999px;align-items:center;gap:.35rem;padding:.5rem 1rem;font-size:1.15rem;font-weight:800;display:flex}.hud-session .star{color:var(--accent-2)}.game-stage{min-height:0;padding:.5rem calc(.75rem + var(--safe-right)) calc(.75rem + var(--safe-bottom)) calc(.75rem + var(--safe-left));flex:1;justify-content:center;align-items:center;display:flex;position:relative}.game-stage>*{width:100%;max-width:720px;height:100%;max-height:100%}.playfield{flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;padding:1rem;display:flex}.prompt{text-align:center;color:var(--ink);font-size:clamp(1.25rem,4vw,1.75rem);font-weight:800}.prompt-visual{justify-content:center;align-items:center;gap:.5rem;min-height:80px;display:flex}.options-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;width:100%;display:flex}.big-tap{width:clamp(88px,28vw,120px);height:clamp(88px,28vw,120px);min-width:var(--tap-min);min-height:var(--tap-min);border-radius:var(--radius);background:var(--surface-raised);box-shadow:0 6px 20px var(--shadow);place-items:center;font-size:clamp(2rem,8vw,3rem);transition:transform .15s,background .2s;animation:.35s pop-in;display:grid}.big-tap:active{transform:scale(.92)}.big-tap.correct{background:#6a9b7859}.big-tap.wrong{background:#d4896a40}.doors-row{flex-wrap:wrap;justify-content:center;gap:1rem;width:100%;display:flex}.door{border-radius:var(--radius);background:var(--accent);width:clamp(100px,28vw,140px);height:clamp(140px,36vw,180px);box-shadow:0 8px 24px var(--shadow);justify-content:center;align-items:flex-end;padding-bottom:1rem;transition:transform .15s;display:flex;position:relative;overflow:hidden}.door:active{transform:scale(.96)}.door-face{background:linear-gradient(180deg, var(--accent) 0%, var(--accent-strong) 100%);color:#ffffff59;place-items:center;font-size:2rem;transition:transform .35s;display:grid;position:absolute;inset:0}.door.open .door-face{transform:translateY(-100%)}.door-animal{opacity:0;z-index:1;font-size:clamp(2.5rem,10vw,3.5rem);transition:opacity .2s .15s}.door.open .door-animal{opacity:1}.count-orbs{flex-wrap:wrap;justify-content:center;gap:1rem;max-width:400px;display:flex}.count-orb{background:radial-gradient(circle at 35% 30%, var(--accent-2-soft), var(--accent-2));width:clamp(72px,20vw,96px);height:clamp(72px,20vw,96px);box-shadow:0 6px 18px var(--shadow);border-radius:50%;transition:transform .15s,opacity .2s;animation:.3s pop-in}.count-orb:active{transform:scale(.88)}.count-orb.tapped{opacity:.35;pointer-events:none;transform:scale(.75)}.dots-row{justify-content:center;gap:.6rem;display:flex}.dot{background:var(--accent);border-radius:50%;width:28px;height:28px}.memory-grid{grid-template-columns:repeat(3,1fr);gap:.75rem;width:100%;max-width:420px;margin:0 auto;display:grid}.memory-card{aspect-ratio:1;border-radius:var(--radius-sm);perspective:600px;cursor:pointer;min-height:var(--tap-min)}.memory-card-inner{width:100%;height:100%;transform-style:preserve-3d;-webkit-transform-style:preserve-3d;transition:transform .35s;position:relative}.memory-card.flipped .memory-card-inner,.memory-card.matched .memory-card-inner{transform:rotateY(180deg)}.memory-face{backface-visibility:hidden;border-radius:var(--radius-sm);box-shadow:0 4px 14px var(--shadow);place-items:center;font-size:clamp(1.75rem,7vw,2.5rem);display:grid;position:absolute;inset:0}.memory-back{background:var(--accent);color:#fff6}.memory-front{background:var(--surface-raised);transform:rotateY(180deg)}.memory-card.matched .memory-front{background:#6a9b784d}.canvas-wrap{border-radius:var(--radius);touch-action:none;background:linear-gradient(#dfeadf 0%,#c9d8cb 100%);width:100%;height:100%;position:relative;overflow:hidden;box-shadow:inset 0 0 0 3px #7a9e8a40}.canvas-wrap canvas{width:100%;height:100%;display:block}.color-swatch{width:clamp(72px,20vw,96px);height:clamp(72px,20vw,96px);box-shadow:0 6px 18px var(--shadow);border:4px solid var(--surface-raised);border-radius:50%}.color-option{border:4px solid #ffffff8c}.color-option.correct{box-shadow:0 0 0 4px var(--success)}.color-option.wrong{opacity:.7}.size-row{align-items:flex-end;gap:1.5rem}.size-tap{border-radius:var(--radius);background:var(--surface-raised);box-shadow:0 6px 20px var(--shadow);place-items:center;transition:transform .15s,background .2s;animation:.35s pop-in;display:grid}.size-tap.is-big{width:clamp(140px,40vw,180px);height:clamp(140px,40vw,180px);font-size:clamp(3.5rem,14vw,5rem)}.size-tap.is-small{width:clamp(72px,20vw,96px);height:clamp(72px,20vw,96px);font-size:clamp(1.75rem,7vw,2.25rem)}.size-tap:active{transform:scale(.94)}.size-tap.correct{background:#6a9b7859}.size-tap.wrong{background:#d4896a40}.scribble-root{flex-direction:column;gap:.75rem;width:100%;height:100%;display:flex}.scribble-toolbar{flex-wrap:wrap;flex-shrink:0;justify-content:center;align-items:center;gap:.6rem;display:flex}.scribble-swatch{width:44px;min-width:44px;height:44px;box-shadow:0 3px 10px var(--shadow);border:3px solid #0000;border-radius:50%}.scribble-swatch.active{border-color:var(--ink);transform:scale(1.08)}.scribble-clear{background:var(--surface-raised);min-height:44px;box-shadow:0 3px 10px var(--shadow);border-radius:999px;padding:0 1rem;font-weight:800}.scribble-canvas-host{flex:1;min-height:0}.stack-playfield{gap:1rem}.stack-area{border-radius:var(--radius);background:#ffffff59;flex-direction:column-reverse;justify-content:flex-start;align-items:center;gap:.35rem;width:min(280px,80%);min-height:220px;padding:1rem;display:flex;box-shadow:inset 0 0 0 2px #7a9e8a33}.stack-block{width:70%;height:36px;box-shadow:0 4px 12px var(--shadow);border-radius:10px;animation:.3s backwards pop-in}.stack-btn{background:var(--accent);color:#fff;width:clamp(88px,24vw,112px);height:clamp(88px,24vw,112px);box-shadow:0 8px 22px var(--shadow);border-radius:50%;font-size:2.5rem;font-weight:800;transition:transform .15s}.stack-btn:active{transform:scale(.92)}
