.ambient-mascot-flight{pointer-events:none;width:56px;height:56px;animation:10s linear both mascot-fly;position:fixed;left:-70px}.ambient-mascot-flight[data-reverse=true]{animation-direction:reverse}.ambient-mascot{cursor:pointer;pointer-events:auto;background:0 0;border:0;place-items:center;width:56px;height:56px;padding:0;animation:1.8s ease-in-out infinite alternate mascot-bob;display:grid}.ambient-mascot .bubu-mascot{width:52px;height:52px;margin:0;transform:none}.ambient-mascot:focus-visible{outline:2px solid var(--ring);border-radius:var(--radius-pill)}:is(.ambient-mascot-flight:focus-within,.ambient-mascot:focus-visible){animation-play-state:paused}.mascot-celebration{z-index:var(--z-modal);pointer-events:none;position:fixed;inset:0;overflow:hidden}.mascot-confetti{position:absolute;inset:0}.mascot-confetti i{background:var(--play-accent);width:8px;height:14px;animation:mascot-confetti var(--confetti-duration) cubic-bezier(.25,.5,.6,1) both;border-radius:3px;position:absolute;top:-20px}.mascot-confetti i[data-colour="1"]{background:var(--primary)}.mascot-confetti i[data-colour="2"]{background:var(--bubbles-off)}.mascot-confetti i[data-colour="3"]{background:var(--foreground)}.mascot-message{z-index:1;width:max-content;max-width:min(260px,100% - 24px);padding:var(--space-3) var(--space-5);border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--card);color:var(--foreground);text-align:center;box-shadow:var(--shadow-card);font-size:18px;font-weight:800;line-height:1.4;animation:2s both mascot-message;position:absolute;transform:translate(-50%,-50%)}@keyframes mascot-fly{to{transform:translate(calc(100vw + 140px))}}@keyframes mascot-bob{0%{transform:translateY(-16px)rotate(-14deg)}to{transform:translateY(16px)rotate(14deg)}}@keyframes mascot-confetti{0%{opacity:1;transform:translate(0)rotate(0)}75%{opacity:1}to{opacity:0;transform:translate(var(--confetti-drift), var(--confetti-fall)) rotate(var(--confetti-turn))}}@keyframes mascot-message{0%,85%{opacity:1}to{opacity:0}}.ambient-mascot-edge-layer{z-index:var(--z-overlay);pointer-events:none;position:fixed;inset:0;overflow:hidden}html:not([data-bubbles=on]) .ambient-mascot-edge-layer{display:none}.ambient-mascot-peek{pointer-events:none;--peek-direction:-1;--peek-depth:8px;--peek-angle:12deg;--peek-away:calc(var(--peek-direction) * 72px);--peek-rest:calc(var(--peek-direction) * var(--peek-depth));--peek-bounce:calc(var(--peek-direction) * (var(--peek-depth) - 3px));--peek-tilt:calc(-1 * var(--peek-direction) * var(--peek-angle));width:56px;height:56px;animation:3s both mascot-peek;position:absolute;left:0}.ambient-mascot-peek[data-reverse=true]{--peek-direction:1;left:auto;right:0}.ambient-mascot-peek[data-peek=eyes]{--peek-depth:25px;--peek-angle:90deg}.ambient-mascot-peek[data-peek=shy]{--peek-depth:27px;--peek-angle:78deg}.ambient-mascot-peek[data-peek=half]{--peek-depth:17px;--peek-angle:55deg}.ambient-mascot-peek .ambient-mascot{transform:rotate(var(--peek-tilt));animation:none}.ambient-mascot-peek .bubu-eyes{animation:3s linear both mascot-peek-blink}.ambient-mascot-peek .bubu-mouth{transform-origin:21px 26px;animation:3s ease-in-out both mascot-peek-smile}@keyframes mascot-peek{0%,to{transform:translateX(var(--peek-away))}0%{animation-timing-function:cubic-bezier(.2,.8,.3,1)}15%{transform:translateX(var(--peek-bounce))}23%,35%,85%{transform:translateX(var(--peek-rest))}29%{transform:translateX(calc(var(--peek-direction) * (var(--peek-depth) - 1px)))}85%{animation-timing-function:cubic-bezier(.65,0,.9,.4)}}@keyframes mascot-peek-blink{0%,35%,43%,70%,78%,to{transform:scaleY(1)}39%,74%{transform:scaleY(.1)}}@keyframes mascot-peek-smile{0%,45%,82%,to{transform:scale(1)}57%,65%{transform:scale(1.3,1.6)}}@media (prefers-reduced-motion:reduce){.ambient-mascot-flight,.ambient-mascot-peek,.mascot-celebration{display:none}}body{isolation:isolate}.playful-background{z-index:-1;pointer-events:none;contain:strict;position:fixed;inset:0;overflow:hidden}.ambient-bubble{width:var(--bubble-size);height:var(--bubble-size);margin:calc(var(--bubble-size) / -2);animation:bubble-drift var(--bubble-time) ease-in-out var(--bubble-delay) infinite;border-radius:50%;position:absolute}.bubble-skin{width:100%;height:100%;filter:blur(var(--bubble-blur));background:radial-gradient(circle at 28% 23%,#ffffffb8,transparent 24%),radial-gradient(circle at 65% 75%,hsl(calc(var(--bubble-hue) + 35) 90% 68% / .4),transparent 68%),radial-gradient(circle at 35% 35%,hsl(var(--bubble-hue) 85% 80% / .12),hsl(var(--bubble-hue) 85% 65% / .35));border:1px solid hsl(var(--bubble-hue) 80% 70% / .3);box-shadow:inset -6px -9px 20px hsl(var(--bubble-hue) 80% 65% / .12);border-radius:50%;display:block}:root[data-theme=dark] .bubble-skin{opacity:.55;background:radial-gradient(circle at 28% 23%, #f5e9ed66, transparent 28%), radial-gradient(circle at 65% 75%, hsl(calc(var(--bubble-hue) + 15) 32% 65% / .28), transparent 70%), radial-gradient(circle at 35% 35%, hsl(var(--bubble-hue) 28% 76% / .08), hsl(var(--bubble-hue) 30% 60% / .25));border-color:hsl(var(--bubble-hue) 26% 72% / .18);box-shadow:inset -6px -9px 20px hsl(var(--bubble-hue) 25% 60% / .08)}:root[data-theme=dark] .bubble-splash-flash{background:hsl(var(--bubble-hue) 35% 76%)}:root[data-theme=dark] .bubble-splash{background:hsl(var(--bubble-hue) 32% 68%)}.ambient-bubble.is-popped{opacity:1;margin:0;animation:.55s linear forwards bubble-burst-done;transform:none}.is-popped .bubble-skin{animation:80ms linear forwards bubble-skin-pop}.bubble-splash-origin{width:0;height:0;position:absolute}.bubble-splash-flash{background:hsl(var(--bubble-hue) 90% 73%);clip-path:polygon(49% 0,59% 34%,89% 12%,69% 43%,100% 55%,65% 61%,83% 95%,53% 73%,33% 100%,37% 66%,0 75%,27% 48%,5% 21%,40% 32%);width:26px;height:26px;animation:.18s ease-out forwards bubble-flash;position:absolute;top:-13px;left:-13px}.bubble-splash{width:var(--splash-length);transform-origin:0;background:hsl(var(--bubble-hue) 90% 66%);clip-path:polygon(0 50%,65% 0,100% 35%,90% 80%,60% 100%);height:4px;animation:bubble-splash-pop var(--splash-time) cubic-bezier(.12,.65,.3,1) forwards;position:absolute;top:-2px;left:0}@keyframes bubble-burst-done{0%,to{opacity:1}}@keyframes bubble-skin-pop{0%{opacity:var(--burst-opacity)}to{opacity:0}}@keyframes bubble-flash{0%{opacity:.9;transform:scale(.45)}to{opacity:0;transform:scale(1.3)}}@keyframes bubble-splash-pop{0%{opacity:1;transform:translate(0,0) rotate(var(--splash-angle)) scale(.45)}20%{opacity:.9}to{opacity:0;transform:translate(var(--splash-x),var(--splash-y)) rotate(var(--splash-angle)) scale(.15,.4)}}@keyframes bubble-drift{0%,to{opacity:0;transform:translateY(24px)scale(.8)}15%,75%{opacity:.7}50%{transform:translate(16px,-24px)scale(1.04)}90%{opacity:0;transform:translate(-10px,-46px)scale(1.13)}}@media (max-width:600px){.ambient-bubble:nth-child(n+7){display:none}}@media (prefers-reduced-motion:reduce){.ambient-bubble{opacity:.35;animation:none}.ambient-bubble.is-popped{animation:10ms linear forwards bubble-burst-done}.is-popped .bubble-skin,.bubble-splash-flash,.bubble-splash{opacity:0;animation:none}}html:not([data-bubbles=on]) .playful-background{visibility:hidden}html:not([data-bubbles=on]) .playful-background *{animation-play-state:paused}
