*{margin:0;padding:0;box-sizing:border-box}:root{--lavender-bg: #EAE8FF;--lavender-mid: #D8D4FF;--lavender-light: #F2F0FF;--pastel-pink: #FFD1DA;--pastel-pink-deep: #FFA8B8;--pastel-blue: #C8DAFF;--pastel-blue-deep: #8FB4FF;--pastel-lav: #DDD9FF;--accent-purple: #7C6FFF;--accent-coral: #E06B5F;--text: #1C1C2A;--text-2: #4A4A60;--text-3: #7A7A96;--text-4: #A8A8C0;--font-display: "Playfair Display", Georgia, serif;--font-body: -apple-system, "SF Pro Text", "SF Pro Display", "Helvetica Neue", Arial, sans-serif}html,body{font-family:var(--font-body);background:var(--lavender-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--text)}#root{display:flex;justify-content:center;align-items:flex-start;min-height:100vh;padding:24px 16px;background:linear-gradient(150deg,#d8d5ff,#e8e5ff 45%,#ede9ff)}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}@keyframes mascotFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes mascotBounce{0%{transform:translateY(0) scale(1)}18%{transform:translateY(-22px) scale(1.07)}35%{transform:translateY(-8px) scale(.96)}52%{transform:translateY(-16px) scale(1.04)}68%{transform:translateY(-4px) scale(.98)}84%{transform:translateY(-10px) scale(1.02)}to{transform:translateY(0) scale(1)}}@keyframes mascotWobble{0%,to{transform:rotate(0) translateY(0)}20%{transform:rotate(-4deg) translateY(-3px)}40%{transform:rotate(4deg) translateY(0)}60%{transform:rotate(-2deg) translateY(-2px)}80%{transform:rotate(2deg) translateY(0)}}@keyframes bubblePop{0%{opacity:0;transform:scale(.75) translateY(6px)}70%{transform:scale(1.04) translateY(-1px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes streakPulse{0%,to{box-shadow:0 0 #ffb34773}50%{box-shadow:0 0 0 14px #ffb34700}}@keyframes badgePop{0%{transform:scale(0) rotate(-15deg)}70%{transform:scale(1.15) rotate(5deg)}to{transform:scale(1) rotate(0)}}@keyframes shimmer{0%{background-position:-300px 0}to{background-position:300px 0}}@keyframes mascotFacePop{0%{opacity:0;transform:translateY(32px) scale(.65)}55%{opacity:1;transform:translateY(-10px) scale(1.1)}75%{transform:translateY(5px) scale(.95)}90%{transform:translateY(-4px) scale(1.02)}to{opacity:1;transform:translateY(0) scale(1)}}.screen-enter{animation:fadeSlideUp .38s cubic-bezier(.25,.46,.45,.94) forwards}.mascot-float{animation:mascotFloat 3.2s ease-in-out infinite}.mascot-bounce{animation:mascotBounce .9s ease forwards}.mascot-wobble{animation:mascotWobble 1s ease-in-out infinite}.bubble-pop{animation:bubblePop .4s cubic-bezier(.34,1.56,.64,1) forwards}.hide-scroll{scrollbar-width:none}.hide-scroll::-webkit-scrollbar{display:none}
