*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body,#root{touch-action:manipulation;width:100%;height:100%;font-family:Nunito,Comic Sans MS,Chalkboard SE,Segoe UI,system-ui,sans-serif;overflow-x:hidden}body{background:linear-gradient(135deg,#fdf2f8 0%,#ede9fe 30%,#e0f2fe 60%,#ecfccb 100%) fixed;min-height:100dvh}@keyframes bounceEgg{0%,to{transform:translateY(0)rotate(-5deg)}50%{transform:translateY(-18px)rotate(5deg)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes popIn{0%{opacity:0;transform:scale(0)}60%{opacity:1;transform:scale(1.15)}to{opacity:1;transform:scale(1)}}@keyframes slideUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes confettiFall{0%{opacity:1;transform:translateY(-10vh)rotate(0)}to{opacity:0;transform:translateY(110vh)rotate(720deg)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes wiggle{0%,to{transform:rotate(0)}20%{transform:rotate(-12deg)}40%{transform:rotate(12deg)}60%{transform:rotate(-8deg)}80%{transform:rotate(8deg)}}@keyframes sparkle{0%,to{opacity:0;transform:scale(.5)rotate(0)}50%{opacity:1;transform:scale(1.3)rotate(180deg)}}@keyframes rainbowBg{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes fireworkBurst{0%{opacity:1;transform:scale(0)}to{opacity:0;transform:scale(2.5)}}@keyframes bannerDrop{0%{opacity:0;transform:translateY(-100%)scale(.5)}60%{opacity:1;transform:translateY(10%)scale(1.05)}to{opacity:1;transform:translateY(0%)scale(1)}}@keyframes starSpin{0%{transform:rotate(0)scale(1)}50%{transform:rotate(180deg)scale(1.5)}to{transform:rotate(360deg)scale(1)}}.bounce-egg{animation:1.2s ease-in-out infinite bounceEgg}.float{animation:2s ease-in-out infinite float}.pop-in{animation:.4s ease-out forwards popIn}.slide-up{animation:.5s ease-out forwards slideUp}.pulse{animation:1.5s ease-in-out infinite pulse}.wiggle{animation:.6s ease-in-out wiggle}.btn-big{transition:transform .15s,box-shadow .15s,filter .15s}.btn-big:hover{filter:brightness(1.08);transform:scale(1.04);box-shadow:0 6px 24px #7c3aed59}.btn-big:active{filter:brightness(.95);transform:scale(.95);box-shadow:0 2px 8px #7c3aed33}.btn-secondary{transition:transform .12s,background .15s}.btn-secondary:hover{transform:scale(1.04);background:#ddd6fe!important}.btn-secondary:active{transform:scale(.95)}.btn-map{transition:transform .12s,background .15s}.btn-map:hover{background:#e5e7eb!important}.btn-map:active{transform:scale(.95)}@keyframes slotFill{0%{opacity:0;transform:scale(0)rotate(-30deg)}50%{opacity:1;transform:scale(1.3)rotate(5deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes emojiPop{0%{transform:scale(1)}30%{transform:scale(.82)}60%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes glowPulse{0%,to{box-shadow:0 0 #7c3aed00}50%{box-shadow:0 0 14px 4px #7c3aed4d}}.emoji-btn{transition:transform .15s,box-shadow .15s,border-color .15s}.emoji-btn:active{box-shadow:0 0 12px #7c3aed4d;transform:scale(.85)!important}.emoji-btn--selected{animation:.3s emojiPop;background:#f5f3ff!important;border-color:#a78bfa!important}.slot-filled{animation:.35s ease-out forwards slotFill}.slot-glow{animation:1.5s ease-in-out infinite glowPulse}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.stagger-1{animation:.4s ease-out 50ms both fadeSlideUp}.stagger-2{animation:.4s ease-out .2s both fadeSlideUp}.stagger-3{animation:.4s ease-out .35s both fadeSlideUp}.stagger-4{animation:.4s ease-out .5s both fadeSlideUp}.stagger-5{animation:.4s ease-out .65s both fadeSlideUp}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes bounceText{0%,to{transform:translateY(0)scale(1)}25%{transform:translateY(-10px)scale(1.06)}50%{transform:translateY(0)scale(1)}75%{transform:translateY(-5px)scale(1.03)}}@keyframes floatUp{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-90px)scale(1.4)}}.bounce-text{animation:.8s ease-in-out bounceText}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-5px)}80%{transform:translate(5px)}}.shake{animation:.4s ease-in-out shake}@keyframes floatParticle{0%{opacity:0;transform:translateY(0)rotate(0)}10%{opacity:.3}90%{opacity:.3}to{opacity:0;transform:translateY(-110vh)rotate(360deg)}}.room-rect{transition:filter .2s}.room-rect:hover{filter:brightness(.92);cursor:default}
