:root{--ink:#2a1155;--ink-soft:#5b4488;--card:#ffffffd1;--card-line:#ffffffe6;--shadow-soft:0 18px 40px -18px #2a11558c;--shadow-toy:0 14px 0 -4px #2a11552e, 0 26px 40px -18px #2a115599;--sans:"Nunito", system-ui, "Segoe UI", Roboto, sans-serif;--display:"Comfortaa", "Nunito", system-ui, "Segoe UI", Roboto, sans-serif;font:700 18px/1.45 var(--sans);color:var(--ink);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}@media (width<=720px){:root{font-size:16px}}*,:before,:after{box-sizing:border-box}body{overscroll-behavior-y:none;background:#3b1e7a;min-height:100svh;margin:0;overflow-x:hidden}#root{flex-direction:column;min-height:100svh;display:flex}h1,h2{font-family:var(--display);margin:0;font-weight:700}p{margin:0}button{font:inherit;color:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;border:none}:focus-visible{outline-offset:5px;outline:5px solid #fff}@property --h1{syntax:"<number>";inherits:false;initial-value:265}@property --h2{syntax:"<number>";inherits:false;initial-value:320}@property --h3{syntax:"<number>";inherits:false;initial-value:195}@property --h4{syntax:"<number>";inherits:false;initial-value:45}.bg{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.bg-gradient{background:radial-gradient(70% 60% at 18% 14%, hsl(var(--h1) 95% 72% / .95), transparent 62%), radial-gradient(65% 55% at 84% 12%, hsl(var(--h2) 92% 70% / .95), transparent 62%), radial-gradient(75% 65% at 82% 88%, hsl(var(--h3) 90% 66% / .95), transparent 64%), radial-gradient(70% 60% at 14% 86%, hsl(var(--h4) 95% 68% / .95), transparent 62%), linear-gradient(160deg, hsl(var(--h1) 85% 58%), hsl(var(--h3) 85% 56%));animation:26s linear infinite hue-drift;position:absolute;inset:-10%}@keyframes hue-drift{0%{--h1:265;--h2:320;--h3:195;--h4:45}to{--h1:625;--h2:680;--h3:555;--h4:405}}.bg-sheen{mix-blend-mode:soft-light;background:conic-gradient(#fff0 0deg,#ffffff73 60deg,#fff0 130deg,#ffffff4d 220deg,#fff0 300deg 360deg);animation:32s linear infinite sheen-spin;position:absolute;inset:-40%}@keyframes sheen-spin{to{transform:rotate(1turn)}}.bg-orbs{filter:blur(42px);position:absolute;inset:0}.bg-orb{left:var(--x);top:var(--y);width:var(--size);height:var(--size);margin:calc(var(--size) / -2);background:radial-gradient(circle at 35% 35%, hsl(var(--hue) 100% 78% / .85), hsl(var(--hue) 100% 60% / .35) 55%, transparent 72%);animation:orb-float var(--dur) ease-in-out var(--delay) infinite alternate;border-radius:50%;position:absolute}@keyframes orb-float{0%{transform:translate(-6vmin,4vmin)scale(.92)}to{transform:translate(7vmin,-5vmin)scale(1.12)}}.bg-sparkles{position:absolute;inset:0}.bg-sparkle{width:var(--size);height:var(--size);margin:calc(var(--size) / -2);opacity:0;animation:twinkle var(--dur) ease-in-out var(--delay) infinite;background:#fff;border-radius:50%;position:absolute;box-shadow:0 0 12px #ffffffe6}@keyframes twinkle{0%,to{opacity:0;transform:scale(.3)}50%{opacity:.9;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.bg-gradient,.bg-sheen,.bg-orb,.bg-sparkle{animation:none}.bg-sparkle{opacity:.6}}.blobby{flex-direction:column;align-items:center;gap:14px;display:flex}.blobby-squish{transform-origin:50% 100%;width:170px;height:150px;animation:3.6s ease-in-out infinite blobby-bob;position:relative}@media (width>=721px) and (height<=840px){.blobby-squish{width:148px;height:132px}}@media (width<=720px){.blobby-squish{width:136px;height:122px}}.blobby-squish.is-pressed{animation:.6s cubic-bezier(.22,.9,.28,1.3) blobby-squish}.blobby-body{background:radial-gradient(70% 60% at 30% 25%, #ffffff8c, transparent 60%), linear-gradient(150deg, var(--c1), var(--c2) 55%, var(--c3));border-radius:52% 48% 44% 56%/58% 54% 46% 42%;width:100%;height:100%;transition:background .5s,box-shadow .5s;animation:8s ease-in-out infinite blobby-morph;position:relative;box-shadow:inset 0 -18px 30px -18px #00000059,0 26px 40px -20px #2a1155bf}.blobby-shine{filter:blur(1px);background:#ffffffbf;border-radius:50%;width:34px;height:22px;position:absolute;top:14%;left:20%;transform:rotate(-24deg)}.blobby-face{justify-content:center;gap:30px;display:flex;position:absolute;top:42%;left:0;right:0}.blobby-eye{background:#fff;border-radius:50%;place-items:center;width:30px;height:34px;animation:5.5s ease-in-out infinite blobby-blink;display:grid;box-shadow:inset 0 -3px 6px #2a11552e}.blobby-eye i{width:15px;height:16px;transform:translate(var(--px,0px), var(--py,0px));background:#2a1155;border-radius:50%;transition:transform .12s ease-out}.blobby-eye:nth-child(2){animation-delay:80ms}.blobby-mouth{background:#3a1560;border-radius:0 0 40px 40px;width:42px;height:22px;margin-left:-21px;position:absolute;top:65%;left:50%;box-shadow:inset 0 -8px 0 -2px #ff6b9d}.blobby-cheek{filter:blur(2px);background:#ff6b9d8c;border-radius:50%;width:22px;height:13px;position:absolute;top:58%}.blobby-cheek--l{left:16%}.blobby-cheek--r{right:16%}.blobby-badge{filter:drop-shadow(0 6px 10px #2a115573);font-size:44px;line-height:1;animation:.7s cubic-bezier(.2,.9,.3,1.5) badge-pop;position:absolute;top:-18px;right:-6px}.blobby-phrase{font-family:var(--display);color:var(--ink);box-shadow:var(--shadow-soft);background:#fff;border-radius:999px;padding:8px 20px;font-size:22px;animation:.45s cubic-bezier(.2,.9,.3,1.5) phrase-pop;position:relative}@media (width<=720px){.blobby-phrase{font-size:18px}}.blobby-phrase:before{content:"";background:#fff;border-radius:3px;width:16px;height:16px;margin-left:-8px;position:absolute;top:-8px;left:50%;transform:rotate(45deg)}@keyframes blobby-bob{0%,to{transform:translateY(0)rotate(-1.5deg)}50%{transform:translateY(-14px)rotate(1.5deg)}}@keyframes blobby-morph{0%,to{border-radius:52% 48% 44% 56%/58% 54% 46% 42%}33%{border-radius:44% 56% 58% 42%/46% 62% 38% 54%}66%{border-radius:58% 42% 48% 52%/52% 44% 56% 48%}}@keyframes blobby-squish{0%{transform:scale(1)}25%{transform:scale(1.22,.78)translateY(10px)}55%{transform:scale(.88,1.16)translateY(-18px)}75%{transform:scale(1.06,.94)translateY(4px)}to{transform:scale(1)}}@keyframes blobby-blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes phrase-pop{0%{opacity:0;transform:scale(.7)translateY(-8px)}60%{opacity:1;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}@keyframes badge-pop{0%{opacity:0;transform:scale(0)rotate(-25deg)}60%{opacity:1;transform:scale(1.25)rotate(8deg)}to{opacity:1;transform:scale(1)rotate(0)}}@media (prefers-reduced-motion:reduce){.blobby-squish,.blobby-body,.blobby-eye,.blobby-badge,.blobby-phrase{animation:none}.blobby-squish.is-pressed{animation:.4s blobby-squish}}.page{z-index:1;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:22px;padding:28px 20px 32px;display:flex;position:relative}@media (width<=720px){.page{gap:18px;padding:24px 16px 28px}}@media (width>=721px) and (height<=840px){.page{gap:16px;padding:20px 20px 24px}.title{font-size:clamp(48px,9vw,76px)}.stage{gap:14px}.toy{padding:12px 12px 10px}}.hero{z-index:2;text-align:center;position:relative}.title{letter-spacing:2px;color:#fff;justify-content:center;font-size:clamp(52px,12vw,96px);line-height:1;display:flex}.title span{text-shadow:0 4px #2a115540,0 14px 28px #2a115573;animation:2.4s ease-in-out infinite letter-dance;animation-delay:calc(var(--i) * .12s);display:inline-block}.subtitle{color:#fff;text-shadow:0 3px 10px #2a115580;margin-top:8px;font-size:clamp(17px,2.4vw,21px)}@keyframes letter-dance{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-12px)rotate(2deg)}}.stage{z-index:2;flex-direction:column;align-items:center;gap:18px;width:min(920px,100%);display:flex;position:relative}.score{font-family:var(--display);color:var(--ink);background:var(--card);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:3px solid var(--card-line);box-shadow:var(--shadow-soft);border-radius:999px;padding:6px 22px;font-size:20px;animation:.45s cubic-bezier(.2,.9,.3,1.6) score-pop}.score b{color:#e8590c}@keyframes score-pop{0%{transform:scale(.82)}60%{transform:scale(1.12)}to{transform:scale(1)}}.toys{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;width:100%;display:grid}@media (width<=720px){.toys{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}}.toy{color:#fff;background:radial-gradient(120% 90% at 30% 0%, #ffffff8c, transparent 60%), linear-gradient(150deg, var(--c1), var(--c2));box-shadow:var(--shadow-toy);border-radius:26px;flex-direction:column;align-items:center;gap:4px;padding:16px 12px 14px;transition:transform .2s cubic-bezier(.2,.9,.3,1.5),box-shadow .2s;display:flex;position:relative;overflow:hidden}@media (width<=720px){.toy{border-radius:22px;padding:12px 8px 10px}}.toy:hover{transform:translateY(-8px)scale(1.04)rotate(-1.5deg);box-shadow:0 18px 0 -4px #2a11552e,0 34px 50px -20px #2a1155b3}.toy:active{transform:translateY(4px)scale(.94)}.toy.is-popped{animation:.6s cubic-bezier(.22,.9,.28,1.3) toy-jelly}.toy.is-popped:after{content:"";background:#fff9;border-radius:50%;width:20px;height:20px;margin:-10px 0 0 -10px;animation:.6s ease-out forwards toy-ripple;position:absolute;top:50%;left:50%}.toy-emoji{filter:drop-shadow(0 6px 8px #2a115559);font-size:clamp(36px,7vw,56px);line-height:1;transition:transform .25s cubic-bezier(.2,.9,.3,1.6)}.toy:hover .toy-emoji{transform:scale(1.15)rotate(8deg)}.toy-label{font-family:var(--display);text-shadow:0 2px 6px #2a115566;font-size:clamp(15px,2vw,19px)}@keyframes toy-jelly{0%{transform:scale(.94)}35%{transform:scale(1.12,.88)}60%{transform:scale(.95,1.06)}to{transform:scale(1)}}@keyframes toy-ripple{to{opacity:0;width:320px;height:320px;margin:-160px 0 0 -160px}}.toy:focus-visible,.sound-toggle:focus-visible{outline-offset:5px;outline:5px solid #fff}.toy:focus-visible{box-shadow:var(--shadow-toy), 0 0 0 12px #2a115566}.sound-toggle:focus-visible{box-shadow:var(--shadow-soft), 0 0 0 12px #2a115566}.toy:focus-visible:before{content:"";pointer-events:none;border:4px dashed #fffffff2;border-radius:18px;animation:1.5s ease-in-out infinite focus-pulse;position:absolute;inset:7px}.toy:focus-visible .toy-emoji{transform:scale(1.12)rotate(-7deg)}@keyframes focus-pulse{0%,to{opacity:.95;transform:scale(1)}50%{opacity:.5;transform:scale(.95)}}.sound-toggle{z-index:6;background:var(--card);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:3px solid var(--card-line);width:54px;height:54px;box-shadow:var(--shadow-soft);border-radius:50%;font-size:24px;transition:transform .2s cubic-bezier(.2,.9,.3,1.5);position:fixed;top:16px;right:16px}.sound-toggle:hover{transform:scale(1.1)rotate(-8deg)}.sound-toggle:active{transform:scale(.9)}.hint{z-index:2;color:#fff;text-align:center;text-shadow:0 3px 10px #2a11558c;font-size:16px;position:relative}@media (width<=720px){.hint{font-size:14px}}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fx{z-index:5;pointer-events:none;position:fixed;inset:0;overflow:hidden}.splat{width:var(--size);height:var(--size);margin:calc(var(--size) / -2);background:var(--c);opacity:.85;mix-blend-mode:multiply;transform:rotate(var(--rot)) scale(0);border-radius:46% 54% 62% 38%/52% 44% 56% 48%;animation:2.8s cubic-bezier(.2,.9,.3,1.4) forwards splat-in;position:absolute}.splat:before,.splat:after{content:"";background:var(--c);border-radius:50%;position:absolute}.splat:before{width:26%;height:26%;top:6%;right:-18%}.splat:after{width:16%;height:16%;bottom:14%;left:-12%}@keyframes splat-in{0%{transform:rotate(var(--rot)) scale(0);opacity:.9}35%{transform:rotate(var(--rot)) scale(1.08);opacity:.85}55%{transform:rotate(var(--rot)) scale(1);opacity:.8}to{transform:rotate(var(--rot)) scale(1.15);opacity:0}}.burst{width:0;height:0;position:absolute}.burst-ring{border:6px solid var(--c);border-radius:50%;width:24px;height:24px;margin:-12px 0 0 -12px;animation:.7s cubic-bezier(.1,.7,.3,1) forwards ring-out;position:absolute;top:0;left:0}@keyframes ring-out{to{opacity:0;border-width:2px;width:260px;height:260px;margin:-130px 0 0 -130px}}.piece{animation:piece-fly 1.2s cubic-bezier(.12, .72, .3, 1) var(--delay) forwards;position:absolute;top:0;left:0}.piece i{animation:piece-fall 1.2s ease-in var(--delay) forwards;display:block;transform:rotate(0);box-shadow:0 3px 8px #2a115540}.piece-emoji{box-shadow:none;filter:drop-shadow(0 4px 6px #2a11554d);font-style:normal;line-height:1}@keyframes piece-fly{0%{opacity:1;transform:translate(0)scale(.2)}70%{opacity:1}to{transform:translate(var(--dx), var(--dy)) scale(1);opacity:0}}@keyframes piece-fall{0%{transform:translateY(0)rotate(0)}to{transform:translateY(90px) rotate(var(--rot))}}.keycap{transform:translate(-50%, -50%) rotate(var(--rot));animation:2s cubic-bezier(.2,.9,.3,1.4) forwards keycap-pop;position:absolute}.keycap-letter{min-width:1.35em;font-family:var(--display);text-align:center;color:#fff;background:linear-gradient(150deg, var(--c1), var(--c2));text-shadow:0 5px #2a115547,0 16px 26px #2a115573;border-radius:44% 56% 60% 40%/52% 46% 54% 48%;padding:.06em .16em .14em;font-size:clamp(96px,20vw,180px);line-height:1.05;display:block;box-shadow:inset 0 -10px 24px #2a11552e,0 22px 44px -16px #2a1155b3}.keycap-emoji{filter:drop-shadow(0 6px 10px #2a115573);font-size:clamp(46px,9vw,84px);line-height:1;animation:.7s ease-in-out infinite alternate keycap-wiggle;position:absolute;top:-.16em;right:-.12em}@keyframes keycap-pop{0%{transform:translate(-50%, -50%) scale(.2) rotate(calc(var(--rot) * -3));opacity:0}16%{transform:translate(-50%, -50%) scale(1.16) rotate(var(--rot));opacity:1}30%{transform:translate(-50%, -52%) scale(.97) rotate(calc(var(--rot) * .7))}42%{transform:translate(-50%, -54%) scale(1) rotate(var(--rot))}72%{opacity:1}to{transform:translate(-50%, -118%) scale(1.08) rotate(calc(var(--rot) * 1.6));opacity:0}}@keyframes keycap-wiggle{0%{transform:rotate(-12deg)scale(.94)}to{transform:rotate(14deg)scale(1.06)}}@media (prefers-reduced-motion:reduce){.title span,.score,.toy.is-popped,.toy.is-popped:after,.toy:focus-visible:before,.keycap-emoji{animation:none}.toy,.toy-emoji,.sound-toggle{transition:none}.piece,.piece i{animation-duration:.6s}.keycap{animation:2s linear forwards keycap-fade}}@keyframes keycap-fade{0%,75%{opacity:1}to{opacity:0}}
