*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}:root{--cream: #fff8e7;--peach: #ffe0b2;--coral: #ff7043;--pink: #f48fb1;--hot-pink: #ff4081;--mint: #a5d6a7;--sky: #80deea;--lilac: #ce93d8;--sun: #ffd54f;--brown: #5d4037;--brown-soft: #8d6e63;--white: #ffffff;--shadow: 0 10px 30px rgba(93, 64, 55, .15)}html,body{margin:0;padding:0;height:100%}body{font-family:"Baloo 2",Comic Sans MS,cursive,sans-serif;background:var(--cream);color:var(--brown);overscroll-behavior:none}#root{width:100%;height:100dvh;overflow:hidden}button{font-family:inherit;color:inherit}.page{width:100%;height:100%;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.scene{width:100%;height:100%;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6vh 8vw;overflow:hidden}.chunky-btn{border:none;border-radius:999px;background:var(--hot-pink);color:#fff;font-weight:800;font-size:1.6rem;padding:14px 42px;cursor:pointer;box-shadow:0 6px #c2185b;transition:transform .08s,box-shadow .08s;letter-spacing:1px}.chunky-btn:active{transform:translateY(6px);box-shadow:0 0 #c2185b}.chunky-btn.green{background:#66bb6a;box-shadow:0 6px #388e3c}.chunky-btn.green:active{box-shadow:0 0 #388e3c}.round-btn{position:absolute;width:min(54px,12vw);height:min(54px,12vw);border-radius:50%;font-size:min(1.4rem,5vw);background:#ffffffe6;border:3px solid var(--peach);box-shadow:0 3px 8px #5d40372e;display:flex;justify-content:center;align-items:center;z-index:101;cursor:pointer;transition:transform .08s}.round-btn:active{transform:scale(.9)}.round-btn.sound{top:max(16px,env(safe-area-inset-top));left:clamp(18px,6vw,64px)}.cloud-btn{position:absolute;top:max(12px,env(safe-area-inset-top));right:clamp(18px,6vw,64px);width:clamp(68px,13vw,88px);height:auto;background:none;border:none;padding:0;cursor:pointer;z-index:101;filter:drop-shadow(0 4px 6px rgba(93,64,55,.22));transition:transform .1s}.cloud-btn:active{transform:translateY(3px) scale(.95)}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-18px)}}.animate-bounce{animation:bounce 2s infinite ease-in-out}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-6deg)}75%{transform:rotate(6deg)}}.animate-wiggle{animation:wiggle .4s ease-in-out 2}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-10px)}40%,80%{transform:translate(10px)}}.animate-shake{animation:shake .45s ease-in-out}@keyframes floaty{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-14px) rotate(2deg)}}@keyframes popUp{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes drift{0%{transform:translate(-15vw)}to{transform:translate(115vw)}}@keyframes twinkle{0%,to{opacity:.2}50%{opacity:1}}@keyframes confetti-fall{0%{transform:translateY(-10vh) rotate(0);opacity:1}to{transform:translateY(110vh) rotate(720deg);opacity:.6}}.confetti-piece{position:fixed;top:0;width:12px;height:12px;z-index:500;pointer-events:none;animation:confetti-fall linear forwards}.welcome{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4vh;background:linear-gradient(180deg,#b3e5fc,#e1f5fe 45%,#fff8e7);position:relative;overflow:hidden;padding:4vh 5vw}.welcome-title{font-size:clamp(2rem,8vw,3.4rem);font-weight:800;margin:0;text-align:center;color:var(--brown);text-shadow:0 3px 0 rgba(255,255,255,.8);z-index:2}.welcome-sun{position:absolute;top:4vh;right:6vw;font-size:clamp(3rem,10vw,5rem);animation:floaty 5s infinite ease-in-out}.welcome-cloud{position:absolute;font-size:clamp(2.5rem,8vw,4rem);opacity:.8;animation:drift linear infinite}.door-row{display:flex;gap:clamp(16px,4vw,40px);z-index:2;flex-wrap:wrap;justify-content:center}.door-card{width:clamp(150px,38vw,260px);background:var(--white);border:none;border-radius:28px;padding:clamp(18px,3vw,30px) 10px;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;box-shadow:var(--shadow),0 8px #ffb74d99;transition:transform .15s,box-shadow .15s;text-decoration:none;color:var(--brown)}.door-card:hover{transform:translateY(-6px) scale(1.03)}.door-card:active{transform:translateY(4px);box-shadow:var(--shadow),0 0 #ffb74d99}.door-emoji{font-size:clamp(3.4rem,12vw,5.5rem);line-height:1.1}.door-label{font-size:clamp(1.2rem,4.5vw,1.7rem);font-weight:800}.door-sub{font-size:clamp(.8rem,3vw,1rem);color:var(--brown-soft);font-weight:500;margin:0}.garden-page{min-height:100%;background:#fff;display:flex;flex-direction:column;align-items:center;padding:3vh 4vw 6vh;position:relative}.garden-title{font-size:clamp(1.4rem,5vw,2.2rem);font-weight:800;text-align:center;color:#4e6e45;margin:8px 0 4px}.garden-sub{color:var(--brown-soft);text-align:center;margin:0 0 16px;font-size:clamp(.85rem,3vw,1rem)}.garden-frame{position:relative;max-width:560px;width:100%}.garden-frame img{width:100%;height:auto;border-radius:24px;display:block}.garden-fade{position:absolute;inset:0;border-radius:24px;background:radial-gradient(ellipse at center,transparent 35%,rgba(255,255,255,.08) 55%,rgba(255,255,255,.55) 78%,white 96%);pointer-events:none;z-index:2}.flower-spot{position:absolute;width:46px;height:46px;transform:translate(-50%,-50%);border:none;background:radial-gradient(circle,rgba(255,255,255,.95) 30%,rgba(255,213,79,.55) 70%,transparent 100%);border-radius:50%;font-size:1.6rem;cursor:pointer;z-index:3;animation:glowPulse 2.4s infinite ease-in-out;display:flex;align-items:center;justify-content:center}@keyframes glowPulse{0%,to{box-shadow:0 0 8px 2px #ffd54f8c;transform:translate(-50%,-50%) scale(1)}50%{box-shadow:0 0 22px 8px #ffd54fd9;transform:translate(-50%,-50%) scale(1.12)}}.butterfly{position:absolute;font-size:1.8rem;z-index:4;animation:butterflyPath 14s infinite ease-in-out;pointer-events:none}@keyframes butterflyPath{0%{top:18%;left:8%}25%{top:8%;left:55%}50%{top:30%;left:85%}75%{top:55%;left:40%}to{top:18%;left:8%}}.zs-modal-backdrop{position:fixed;inset:0;background:#3c281e73;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:300;animation:fadeIn .25s forwards;padding:6vw}.zs-modal{background:var(--cream);border-radius:32px;padding:34px 30px;max-width:430px;width:100%;text-align:center;box-shadow:0 24px 60px #00000059;animation:popUp .4s cubic-bezier(.175,.885,.32,1.275);position:relative}.zs-modal .big-emoji{font-size:4rem}.zs-modal h3{margin:8px 0 4px;font-size:1.5rem;color:#4e6e45}.zs-modal .milestone{font-size:1.05rem;margin:10px 0}.zs-modal .wisdom{font-style:italic;color:var(--brown-soft);margin:0 0 18px}.zs-modal .close-x{position:absolute;top:10px;right:14px;border:none;background:none;font-size:1.6rem;cursor:pointer;color:var(--brown-soft)}.hub{min-height:100%;background:linear-gradient(180deg,#b2ebf2 0%,#e0f7fa 40%,var(--cream) 100%);display:flex;flex-direction:column;align-items:center;padding:max(14px,env(safe-area-inset-top)) 5vw 8vh;position:relative}.hub-title{font-size:clamp(1.6rem,6vw,2.4rem);font-weight:800;margin:10px 0 2px;text-align:center}.hub-sub{color:var(--brown-soft);margin:0 0 14px;text-align:center;font-size:clamp(.9rem,3.2vw,1.05rem)}.hub-divider{display:flex;align-items:center;gap:14px;width:min(540px,92%);margin:26px 0 14px;color:var(--brown-soft);font-weight:700;font-size:1.05rem}.hub-divider:before,.hub-divider:after{content:"";flex:1;height:3px;border-radius:3px;background:#8d6e6340}.game-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;width:min(560px,94%)}.game-card{border:none;border-radius:24px;padding:18px 8px 14px;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;box-shadow:0 6px #0000001f,var(--shadow);transition:transform .12s,box-shadow .12s;color:var(--brown)}.game-card:hover{transform:translateY(-4px) scale(1.02)}.game-card:active{transform:translateY(4px);box-shadow:0 0 #0000001f}.game-card .emoji{font-size:2.8rem;line-height:1.1}.game-card .name{font-weight:800;font-size:1.05rem}.wheel-wrapper{position:relative;width:min(78vw,380px);aspect-ratio:1;margin-top:18px}.wheel-pointer{position:absolute;top:-16px;left:50%;transform:translate(-50%);z-index:10;filter:drop-shadow(0 3px 3px rgba(0,0,0,.3))}.wheel{width:100%;height:100%;border-radius:50%;box-shadow:0 14px 28px #00000038;position:relative;transition:transform 4s cubic-bezier(.1,.7,.1,1);will-change:transform;border:10px solid white;overflow:hidden}.wheel-bg{position:absolute;inset:0;border-radius:50%}.wheel-hub{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:22%;height:22%;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.8rem;box-shadow:0 0 0 6px #ffffff80,0 4px 10px #00000040;z-index:3}.wheel-icon{position:absolute;-webkit-user-select:none;user-select:none;transform:translate(-50%,-50%)}.prize-modal{position:fixed;inset:0;background:#000000a6;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;justify-content:center;align-items:center;z-index:400;animation:fadeIn .3s forwards;padding:6vw}.prize-content{background:#fff;padding:38px 34px;border-radius:40px;text-align:center;animation:popUp .5s cubic-bezier(.175,.885,.32,1.275);box-shadow:0 20px 60px #00000080;display:flex;flex-direction:column;gap:14px;align-items:center;max-width:380px;width:100%}.prize-icon-large{font-size:clamp(5rem,24vw,8rem);animation:bounce 2s infinite;line-height:1.1}.prize-name{font-size:1.6rem;font-weight:800;margin:0}.win-banner{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;z-index:50;background:#ffffff8c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fadeIn .3s forwards;text-align:center}.win-banner .big{font-size:clamp(4rem,18vw,7rem);animation:bounce 1.6s infinite}.progress-row{position:absolute;top:max(14px,env(safe-area-inset-top));left:50%;transform:translate(-50%);display:flex;gap:8px;background:#ffffffd9;border-radius:999px;padding:8px 16px;z-index:40;font-size:1.4rem;box-shadow:0 3px 8px #00000026}.progress-row .pending{filter:grayscale(1) opacity(.35)}@media(max-width:600px){.game-grid{grid-template-columns:repeat(2,1fr)}}
