@font-face{font-family:Rubik;src:url(./Rubik-Ck5Bp0l0.ttf)format("truetype");font-weight:300 900;font-display:block}:root{--ink:#2b1c3a;--red:#e53935;--cream:#fff6e6;--blue:#3f79c2;--yellow:#ffd24a}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none;overscroll-behavior:none;background:#1c1430;width:100%;height:100%;margin:0;padding:0;font-family:Rubik,system-ui,sans-serif;overflow:hidden}#boot-splash{z-index:100;background:#e53935;justify-content:center;align-items:center;transition:opacity .4s;display:flex;position:fixed;inset:0}#boot-splash.hide{opacity:0;pointer-events:none}.boot-star{clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);background:#ffd24a;width:90px;height:90px;animation:1.4s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.viewport{touch-action:none;position:absolute;top:0;left:0;overflow:hidden}.stage{transform-origin:0 0;position:absolute;top:0;left:0;overflow:hidden}.world{will-change:transform;height:1080px;position:absolute;top:0;left:0}.layer,.ent,.prop{pointer-events:none;position:absolute;top:0;left:0}.ent svg,.prop svg{display:block;overflow:visible}.ent{will-change:transform}.ent-inner{transform-origin:50% 100%}.blink{transform-box:fill-box;transform-origin:50%;animation:4.2s infinite blink}@keyframes blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}.breathe{animation:2.6s ease-in-out infinite breathe}@keyframes breathe{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}.kick-a,.kick-b{transform-box:fill-box;transform-origin:50% 0}.held .kick-a{animation:.46s ease-in-out infinite alternate kick}.held .kick-b{animation:.46s ease-in-out infinite alternate-reverse kick}.run{animation:.13s ease-in-out infinite alternate run-bob}.run .kick-a{animation:.26s ease-in-out infinite alternate kick}.run .kick-b{animation:.26s ease-in-out infinite alternate-reverse kick}@keyframes run-bob{0%{transform:translateY(0)}to{transform:translateY(-14px)}}@keyframes kick{0%{transform:rotate(-22deg)}to{transform:rotate(22deg)}}.dance{transform-origin:50% 100%;animation:.5s ease-in-out infinite alternate dance}@keyframes dance{0%{transform:rotate(-7deg)translateY(0)}to{transform:rotate(7deg)translateY(-14px)}}.float-bob{animation:3s ease-in-out infinite floatbob}@keyframes floatbob{0%,to{transform:translateY(0)rotate(-4deg)}50%{transform:translateY(-18px)rotate(4deg)}}.spin-slow{transform-box:fill-box;transform-origin:50%;animation:6s linear infinite spin}.pendulum{animation:1.6s ease-in-out infinite alternate pendulum}@keyframes pendulum{0%{transform:rotate(-14deg)}to{transform:rotate(14deg)}}.steam{transform-box:fill-box;transform-origin:50%;animation:1.8s ease-out infinite steam}@keyframes steam{0%{opacity:.85;transform:translate(0)scale(.6)}to{opacity:0;transform:translate(18px,-110px)scale(1.6)}}.flicker{transform-box:fill-box;transform-origin:50% 100%;animation:.18s ease-in-out infinite alternate flicker}@keyframes flicker{0%{transform:scaleY(.92)}to{transform:scale(.94,1.08)}}.pulse{transform-box:fill-box;transform-origin:50%;animation:1.1s ease-in-out infinite pulse}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.drift{animation:60s linear infinite drift}@keyframes drift{0%{transform:translate(-200px)}to{transform:translate(400px)}}.twinkle{animation:1.4s ease-in-out infinite alternate twinkle}@keyframes twinkle{0%{opacity:.25}to{opacity:1}}.peck{transform-box:fill-box;transform-origin:20% 80%;animation:1.2s ease-in-out infinite peck}@keyframes peck{0%,60%,to{transform:rotate(0)}70%,85%{transform:rotate(38deg)}}.tail{transform-box:fill-box;transform-origin:0 100%;animation:1.6s ease-in-out infinite alternate tail}@keyframes tail{0%{transform:rotate(-12deg)}to{transform:rotate(16deg)}}.scanlines{animation:.4s steps(2,end) infinite scan}@keyframes scan{0%{transform:translateY(0)}to{transform:translateY(4px)}}.tv-rocket{animation:2.2s linear infinite tvrocket}@keyframes tvrocket{0%{transform:translate(-40px,60px)}to{transform:translate(150px,-120px)}}.spinning-record{transform-box:fill-box;transform-origin:50%;animation:1.8s linear infinite spin}.hud{pointer-events:none;position:absolute;inset:0}.hud .btn{pointer-events:auto}@keyframes wipe-in{0%{clip-path:circle(0%)}to{clip-path:circle(80%)}}@keyframes wipe-out{0%{clip-path:circle(80%)}to{clip-path:circle(0%)}}.talk-a{animation:.26s step-end infinite talka}.talk-b{animation:.26s step-end infinite talkb}@keyframes talka{0%{opacity:1}50%{opacity:0}}@keyframes talkb{0%{opacity:0}50%{opacity:1}}.btn{cursor:pointer;touch-action:none;background:0 0;border:none;padding:0;position:absolute}.btn svg{display:block;overflow:visible}.btn:active{transform:scale(.92)}.toast{pointer-events:none;position:absolute;top:40px;left:50%;transform:translate(-50%)}.fade-in{animation:.3s ease-out both fadein}@keyframes fadein{0%{opacity:0}to{opacity:1}}.pop-in{animation:.45s cubic-bezier(.34,1.56,.64,1) both popin}@keyframes popin{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}.rotate-hint{color:#fff;text-align:center;z-index:50;background:#e53935;flex-direction:column;justify-content:center;align-items:center;gap:24px;padding:24px;font-size:22px;font-weight:800;display:flex;position:fixed;inset:0}.rotate-hint svg{animation:1.6s ease-in-out infinite tilt}@keyframes tilt{0%,30%{transform:rotate(0)}60%,to{transform:rotate(-90deg)}}
