@import "https://fonts.googleapis.com/css2?family=Fredoka:wght@400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap";:root{--bg-gradient:linear-gradient(135deg, #f3f0ff 0%, #ffe9f3 50%, #e8f5ff 100%);--color-dark-purple:#3d2f5c;--color-border:#3d2f5c;--color-pastel-pink:#ffb8d9;--color-pastel-blue:#a3daff;--color-pastel-purple:#c5b3ff;--color-pastel-yellow:#fff2a3;--color-pastel-green:#a7f3d0;--color-bright-pink:#ff479b;--color-bright-blue:#1d90ff;--color-bright-purple:#7c3aed;--color-bright-yellow:#f59e0b;--font-kids:"Fredoka", system-ui, -apple-system, sans-serif;--font-ui:"Outfit", system-ui, -apple-system, sans-serif;--border-thick:4px solid var(--color-border);--border-medium:3px solid var(--color-border);--shadow-neo:0 10px 0px #3d2f5c26;--shadow-neo-btn:0 8px 0px var(--color-border);--shadow-neo-btn-hover:0 4px 0px var(--color-border);font-family:var(--font-kids);color:var(--color-dark-purple);background:var(--bg-gradient);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden}body{box-sizing:border-box;justify-content:center;align-items:center;width:100vw;height:100svh;margin:0;padding:0;display:flex;overflow:hidden}#root{box-sizing:border-box;flex-direction:column;width:100%;height:100%;display:flex;position:relative}.game-container{box-sizing:border-box;flex-direction:column;width:100%;height:100%;padding:1.5rem;display:flex;position:relative;overflow:hidden}.header-bar{z-index:10;justify-content:space-between;align-items:center;width:100%;margin-bottom:1rem;display:flex}.btn-round{font-family:var(--font-kids);color:var(--color-dark-purple);border:var(--border-thick);cursor:pointer;box-shadow:var(--shadow-neo-btn);background-color:#fff;border-radius:20px;justify-content:center;align-items:center;gap:10px;padding:12px 24px;font-size:1.5rem;font-weight:700;transition:transform .1s,box-shadow .1s;display:inline-flex}.btn-round:hover{box-shadow:var(--shadow-neo-btn-hover);transform:translateY(4px)}.btn-round:active{box-shadow:none;transform:translateY(8px)}.btn-icon-only{border-radius:50%;width:64px;height:64px;padding:0}.score-badge{background-color:var(--color-pastel-yellow);border:var(--border-thick);box-shadow:var(--shadow-neo);border-radius:24px;align-items:center;gap:8px;padding:10px 24px;font-size:1.6rem;font-weight:700;display:flex}.hub-map{box-sizing:border-box;flex:1;grid-template-columns:repeat(3,1fr);place-items:center;gap:2rem;padding:1rem 3rem;display:grid}@media (width<=768px){.hub-map{grid-template-rows:repeat(3,1fr);grid-template-columns:1fr;gap:1rem;padding:.5rem 1rem}}.hub-card{border:var(--border-thick);cursor:pointer;width:100%;max-width:280px;box-shadow:var(--shadow-neo-btn);background:#fff;border-radius:32px;flex-direction:column;justify-content:center;align-items:center;padding:1.5rem;text-decoration:none;transition:transform .2s cubic-bezier(.175,.885,.32,1.275),box-shadow .2s;display:flex;position:relative}.hub-card:hover{transform:translateY(-10px)scale(1.03);box-shadow:0 18px #3d2f5c33}.hub-card:active{box-shadow:none;transform:translateY(8px)}.hub-card-icon{filter:drop-shadow(0 4px 6px #0000001a);justify-content:center;align-items:center;width:130px;height:130px;margin-bottom:1rem;display:flex}.hub-card-title{font-family:var(--font-kids);color:var(--color-dark-purple);text-align:center;margin:0;font-size:1.6rem;font-weight:700}.hub-card-subtitle{font-family:var(--font-ui);color:#8b7ca6;text-align:center;margin-top:.25rem;font-size:1rem;font-weight:600}.hub-footer{justify-content:center;padding:1rem;display:flex}.game-title{text-align:center;background:linear-gradient(to right, var(--color-bright-pink), var(--color-bright-purple));-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 2px #0000000d);-webkit-background-clip:text;margin:0 0 .5rem;font-size:3rem;font-weight:800}.game-instruction{color:var(--color-dark-purple);text-align:center;border:var(--border-medium);box-shadow:var(--shadow-neo);background:#fff;border-radius:20px;align-self:center;align-items:center;gap:12px;margin:0 0 1.5rem;padding:12px 24px;font-size:1.8rem;font-weight:600;display:inline-flex}@keyframes float{0%{transform:translateY(0)rotate(0)}50%{transform:translateY(-10px)rotate(1deg)}to{transform:translateY(0)rotate(0)}}@keyframes flutterLeft{0%,to{transform:scaleX(1)}50%{transform:scaleX(.2)}}@keyframes flutterRight{0%,to{transform:scaleX(1)}50%{transform:scaleX(.2)}}.butterfly-garden-area{border:var(--border-thick);box-shadow:var(--shadow-neo);background:#fff;border-radius:36px;flex:1;margin-bottom:1rem;position:relative;overflow:hidden}.butterfly-wrapper{cursor:pointer;flex-direction:column;justify-content:center;align-items:center;width:140px;height:140px;transition:transform .1s;display:flex;position:absolute}.butterfly-graphic{justify-content:center;width:100px;height:80px;display:flex;position:relative}.wing-left,.wing-right{transform-origin:100%;background-repeat:no-repeat;background-size:contain;width:50px;height:80px;position:absolute}.wing-left{transform-origin:100%;animation:.15s ease-in-out infinite flutterLeft;left:0}.wing-right{transform-origin:0;animation:.15s ease-in-out infinite flutterRight;right:0}.butterfly-body{background:var(--color-dark-purple);z-index:2;border-radius:4px;width:8px;height:65px;position:absolute;top:10px}.butterfly-label{color:#fff;z-index:5;text-shadow:2px 2px 0px var(--color-dark-purple);pointer-events:none;margin-top:5px;font-size:2.2rem;font-weight:700}.butterfly-loop{animation:.8s ease-in-out forwards loop-flight!important}@keyframes loop-flight{0%{transform:translate(0)scale(1)rotate(0)}30%{transform:translate(-30px,-40px)scale(1.2)rotate(-90deg)}60%{transform:translate(30px,-80px)scale(1.1)rotate(90deg)}to{transform:translate(0)scale(1)rotate(360deg)}}.cake-bakery-area{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2rem;display:flex}.cake-stand{flex-direction:column;align-items:center;width:100%;max-width:500px;display:flex;position:relative}.cake-graphic{filter:drop-shadow(0 12px 16px #3d2f5c26);width:380px;height:200px;position:relative}.cake-plate{border:var(--border-thick);width:440px;height:30px;box-shadow:var(--shadow-neo);background:#f8fafc;border-radius:15px;margin-top:-10px}.word-slots{z-index:3;gap:1.5rem;display:flex;position:absolute;top:60px;left:50%;transform:translate(-50%)}.letter-slot{color:#3d2f5c33;background:#ffffff80;border:4px dashed #3d2f5c66;border-radius:18px;justify-content:center;align-items:center;width:75px;height:75px;font-size:2.2rem;font-weight:700;transition:all .2s;display:flex}.letter-slot.filled{border:var(--border-thick);box-shadow:0 4px 0px var(--color-border);background:#fff}.letters-bank{border:var(--border-medium);box-sizing:border-box;background:#ffffff80;border-radius:28px;flex-wrap:wrap;justify-content:center;gap:1.5rem;width:100%;max-width:600px;padding:1.5rem;display:flex}.draggable-letter{border:var(--border-thick);cursor:grab;width:80px;height:80px;box-shadow:var(--shadow-neo-btn);z-index:5;touch-action:none;border-radius:20px;justify-content:center;align-items:center;font-size:2.5rem;font-weight:700;display:flex;position:relative}.draggable-letter:active{cursor:grabbing}.draggable-letter.vowel{background-color:var(--color-pastel-yellow)}.draggable-letter.consonant{background-color:var(--color-pastel-blue)}.bicycle-ride-area{border:var(--border-thick);box-shadow:var(--shadow-neo);background:#fff;border-radius:36px;flex-direction:column;flex:1;justify-content:space-between;align-items:center;display:flex;position:relative;overflow:hidden}.sky-background{background:linear-gradient(#dbeafe 0%,#eff6ff 100%);width:100%;height:40%;position:relative}.sun{background:var(--color-pastel-yellow);border:var(--border-medium);border-radius:50%;width:80px;height:80px;position:absolute;top:25px;right:40px}.road-scene{background:#e2e8f0;flex-direction:column;justify-content:flex-end;width:100%;height:60%;display:flex;position:relative}.grassy-bank{border-top:var(--border-thick);background:#a7f3d0;height:40px}.signposts-container{justify-content:center;gap:6rem;width:100%;display:flex;position:absolute;top:-90px;left:50%;transform:translate(-50%)}.signpost{cursor:pointer;flex-direction:column;align-items:center;transition:transform .2s;display:flex}.signpost:hover{transform:translateY(-8px)scale(1.05)}.signpost-board{border:var(--border-thick);color:var(--color-dark-purple);box-shadow:var(--shadow-neo);text-align:center;background:#fef08a;border-radius:20px;min-width:130px;padding:16px 32px;font-size:2.2rem;font-weight:700}.signpost-post{border-left:var(--border-thick);border-right:var(--border-thick);background:#b45309;width:16px;height:100px}.bicycle-wrapper{z-index:5;width:150px;height:100px;transition:left 1.5s cubic-bezier(.25,1,.5,1);position:absolute;bottom:25px;left:10%}.bicycle-wrapper.riding{animation:.3s ease-in-out infinite bounce-ride}.wheel{transform-origin:50%;animation:.6s linear infinite spin}.bicycle-wrapper.stopped .wheel{animation-play-state:paused}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bounce-ride{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.sticker-book-area{flex:1;gap:1.5rem;height:100%;display:flex;overflow:hidden}@media (width<=768px){.sticker-book-area{flex-direction:column}}.sticker-sidebar{border:var(--border-thick);box-sizing:border-box;background:#ffffffd9;border-radius:28px;flex-direction:column;width:260px;padding:1.25rem;display:flex}@media (width<=768px){.sticker-sidebar{flex-direction:row;align-items:center;width:100%;height:160px}}.sticker-sidebar-title{text-align:center;border-bottom:2px solid var(--color-border);margin-top:0;margin-bottom:1rem;padding-bottom:.5rem;font-size:1.3rem;font-weight:700}.stickers-shelf{flex:1;grid-template-columns:repeat(2,1fr);gap:1rem;padding-bottom:1rem;display:grid;overflow-y:auto}@media (width<=768px){.stickers-shelf{flex:1;align-items:center;gap:1.5rem;height:100%;padding-bottom:0;display:flex;overflow:auto hidden}}.sticker-shelf-item{border:var(--border-medium);cursor:grab;touch-action:none;background:#fff;border-radius:18px;flex-shrink:0;justify-content:center;align-items:center;width:80px;height:80px;transition:transform .1s;display:flex;box-shadow:0 4px #0000001a}.sticker-shelf-item:hover{transform:scale(1.05)}.sticker-canvas-container{border:var(--border-thick);box-shadow:var(--shadow-neo);background:#f0fdf4;border-radius:36px;flex:1;position:relative;overflow:hidden}.sticker-canvas-bg{opacity:.8;pointer-events:none;background-position:50%;background-size:cover;width:100%;height:100%;position:absolute}.placed-sticker{cursor:grab;z-index:10;touch-action:none;justify-content:center;align-items:center;width:90px;height:90px;display:flex;position:absolute}.placed-sticker:active{cursor:grabbing}.confetti-overlay{pointer-events:none;z-index:99;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.confetti-piece{background:red;border-radius:2px;width:14px;height:14px;animation:2.5s linear infinite fall;position:absolute;top:-20px}@keyframes fall{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:0;transform:translateY(110vh)rotate(360deg)}}.dialog-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:100;background:#3d2f5c99;justify-content:center;align-items:center;width:100%;height:100%;animation:.3s ease-out forwards fade-in;display:flex;position:absolute;top:0;left:0}.dialog-box{border:var(--border-thick);text-align:center;background:#fff;border-radius:36px;flex-direction:column;align-items:center;width:90%;max-width:450px;padding:2.5rem;animation:.4s cubic-bezier(.175,.885,.32,1.275) forwards bounce-in;display:flex;box-shadow:0 20px #00000026}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes bounce-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.dialog-title{color:var(--color-bright-pink);margin-top:0;margin-bottom:.5rem;font-size:2.4rem;font-weight:800}.dialog-message{color:var(--color-dark-purple);margin-bottom:1.5rem;font-size:1.4rem;font-weight:500}.dialog-graphic{width:160px;height:160px;margin-bottom:2rem;animation:2s ease-in-out infinite float}.bounce-hover{animation:3s ease-in-out infinite float}.pulse-glow{animation:1.5s infinite alternate pulse}@keyframes pulse{0%{box-shadow:0 0 10px #7c3aed33}to{box-shadow:0 0 25px #7c3aed99, var(--border-thick)}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#0000000d;border-radius:5px}::-webkit-scrollbar-thumb{background:var(--color-pastel-purple);border:2px solid #fff;border-radius:5px}
