:root{--gk-font:"Fredoka", "Baloo 2", "Comic Sans MS", "Chalkboard SE", ui-rounded, system-ui, sans-serif;--gk-ink:#2b2d42;--gk-paper:#fffaf0;--gk-sky:#bde7ff;--gk-sky-deep:#7cc6fe;--gk-grass:#8fd16a;--gk-red:#ff6b6b;--gk-orange:#ffa94d;--gk-yellow:#ffd43b;--gk-green:#51cf66;--gk-teal:#38d9a9;--gk-blue:#4dabf7;--gk-purple:#b197fc;--gk-pink:#f783ac;--gk-outline:4px solid var(--gk-ink);--gk-radius:28px;--gk-shadow:0 6px 0 var(--gk-ink);--gk-shadow-pressed:0 2px 0 var(--gk-ink)}.gk-button{font-family:var(--gk-font);color:var(--gk-ink);background:var(--gk-yellow);border:var(--gk-outline);box-shadow:var(--gk-shadow);cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;border-radius:999px;padding:.6em 1.4em;font-size:1.5rem;font-weight:700;transition:transform 80ms,box-shadow 80ms}.gk-button:active:not(:disabled){box-shadow:var(--gk-shadow-pressed);transform:translateY(4px)}.gk-button:disabled{opacity:.5;cursor:default}.gk-button:focus-visible{outline:4px dashed var(--gk-blue);outline-offset:4px}.gk-button--green{background:var(--gk-green)}.gk-button--blue{background:var(--gk-blue)}.gk-button--pink{background:var(--gk-pink)}.gk-button--white{background:#fff}.gk-button--small{padding:.4em 1em;font-size:1.1rem}.gk-button--round{place-items:center;width:3.5rem;height:3.5rem;padding:0;display:inline-grid}.gk-card{background:var(--gk-paper);border:var(--gk-outline);border-radius:var(--gk-radius);box-shadow:var(--gk-shadow)}.gk-celebration{pointer-events:none;z-index:50;position:fixed;inset:0;overflow:hidden}.gk-confetti{border:2px solid var(--gk-ink);width:16px;height:22px;animation:gk-fall var(--gk-fall-duration,1.6s) cubic-bezier(.25, .6, .5, 1) forwards;border-radius:4px;position:absolute;top:-40px}.gk-confetti--star{clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);border:none;border-radius:0;width:34px;height:34px}@keyframes gk-fall{0%{opacity:1;transform:translate(0)rotate(0)}to{transform:translate(var(--gk-drift,0px), 110vh) rotate(var(--gk-spin,540deg));opacity:.9}}.gk-celebration__burst{font-family:var(--gk-font);color:var(--gk-yellow);-webkit-text-stroke:3px var(--gk-ink);paint-order:stroke fill;text-shadow:0 6px 0 var(--gk-ink);white-space:nowrap;font-size:clamp(2.5rem,9vw,5rem);font-weight:700;animation:.9s cubic-bezier(.2,1.6,.4,1) both gk-pop;position:absolute;top:40%;left:50%;translate:-50% -50%}@keyframes gk-pop{0%{opacity:0;transform:scale(.2)rotate(-12deg)}60%{opacity:1;transform:scale(1.15)rotate(4deg)}to{opacity:1;transform:scale(1)rotate(0)}}.gk-wiggle{animation:.45s ease-in-out gk-wiggle}@keyframes gk-wiggle{0%,to{transform:rotate(0)}20%{transform:rotate(-8deg)}40%{transform:rotate(8deg)}60%{transform:rotate(-5deg)}80%{transform:rotate(5deg)}}.gk-bounce{animation:.6s cubic-bezier(.3,1.8,.5,1) gk-bounce}@keyframes gk-bounce{0%{transform:scale(1)}40%{transform:scale(1.25)}to{transform:scale(1)}}.gk-float{animation:3s ease-in-out infinite gk-float}@keyframes gk-float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@media (prefers-reduced-motion:reduce){.gk-confetti,.gk-celebration__burst,.gk-wiggle,.gk-bounce,.gk-float{animation-duration:1ms!important;animation-iteration-count:1!important}}
