@font-face{font-family:"Press Start 2P";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/press-start-2p-latin-400-normal-_wFEWmAB.woff2)format("woff2"),url(/assets/press-start-2p-latin-400-normal-KLytu4cr.woff)format("woff")}@font-face{font-family:VT323;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/vt323-latin-400-normal-wDgJuOC9.woff2)format("woff2"),url(/assets/vt323-latin-400-normal-Dqn9ZSPj.woff)format("woff")}@layer reset{*,:before,:after{box-sizing:border-box}*{margin:0}html,body,#root{block-size:100%}img,svg{max-width:100%;display:block}ol,ul{padding:0;list-style:none}button,a{font:inherit}button{color:inherit;background:0 0;border:0;padding:0}}@layer tokens{@property --px{syntax:"<length>";inherits:true;initial-value:4px}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--px:clamp(2px, .5vmin, 4px);--font-pixel:"Press Start 2P", ui-monospace, monospace;--font-body:"VT323", ui-monospace, "SF Mono", monospace;--ink:oklch(12% .04 290);--text:oklch(95% .02 90);--muted:oklch(80% .04 290);--surface:oklch(28% .09 295);--yellow:oklch(88% .17 95);--pink:oklch(70% .2 5);--cyan:oklch(84% .12 200);--green:oklch(85% .2 145);--edge:0 calc(var(--px) * -1) 0 0 var(--ink), 0 var(--px) 0 0 var(--ink), calc(var(--px) * -1) 0 0 0 var(--ink), var(--px) 0 0 0 var(--ink)}}@layer base{html,body{overscroll-behavior:none;overflow:hidden}body{background:linear-gradient(180deg in oklch, oklch(15% .06 285) 0 20%, oklch(20% .08 292) 20% 40%, oklch(26% .1 300) 40% 60%, oklch(33% .13 320) 60% 80%, oklch(40% .15 345) 80% 100%);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:none;text-rendering:optimizespeed;touch-action:manipulation;-webkit-user-select:none;user-select:none;font-size:clamp(1.1rem,1rem + .4vw,1.4rem);line-height:1.2}h1,.tagline{font-family:var(--font-pixel);font-weight:400;line-height:1.4}a{color:inherit}:focus-visible{outline:var(--px) dashed var(--yellow);outline-offset:var(--px)}::selection{background:var(--pink);color:#fff}.sprite{image-rendering:pixelated}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;block-size:1px;inline-size:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}@layer layout{.app{isolation:isolate;grid-template-rows:auto minmax(0,1fr) auto;block-size:100dvh;inline-size:100vw;display:grid;position:relative;overflow:clip}.sky{z-index:-1;pointer-events:none;position:absolute;inset:0;overflow:clip}.site-header{justify-content:space-between;align-items:center;padding:.6rem clamp(.75rem,3vw,2rem);display:flex}.site-header .brand{font-family:var(--font-pixel);align-items:center;gap:.6rem;font-size:.8rem;text-decoration:none;display:flex}.site-header .brand img{image-rendering:pixelated}.site-header .hp{gap:.4rem;display:flex}.site-header .sprite-heart{inline-size:1.4rem}.stage{text-align:center;place-content:center;justify-items:center;gap:clamp(.4rem,2.2vh,1.4rem);min-block-size:0;display:grid}.site-footer{padding:calc(var(--px) * 4) clamp(.75rem, 3vw, 2rem) .6rem;border-block-start:var(--px) solid var(--green);background-color:color-mix(in oklch, var(--ink) 80%, oklch(30% .08 60));background-image:repeating-linear-gradient(90deg, transparent 0 calc(var(--px) * 4), #ffffff0a calc(var(--px) * 4) calc(var(--px) * 8));gap:.6rem;display:grid;position:relative}.site-footer:before{content:"";inset:calc(var(--px) * -3) 0 auto 0;block-size:calc(var(--px) * 2);background:repeating-linear-gradient(90deg, var(--green) 0 calc(var(--px) * 2), transparent calc(var(--px) * 2) calc(var(--px) * 5));position:absolute}@media (width<=40rem){.footer-bar{text-align:center;justify-content:center}.footer-bar .legal{order:3}}@media (height<=560px){.services,.tagline,.footer-bar{display:none}}}@layer components{h1{text-shadow:var(--px) var(--px) 0 var(--ink);white-space:nowrap;font-size:clamp(1.3rem,min(7.2vw,8.5vh),4.25rem)}h1 .grad{background:linear-gradient(in oklch, var(--yellow), var(--pink));-webkit-text-fill-color:transparent;text-shadow:none;filter:drop-shadow(var(--px) var(--px) 0 var(--ink));-webkit-background-clip:text;background-clip:text}.tagline{color:var(--green);text-align:left;white-space:nowrap;inline-size:22ch;max-inline-size:100%;font-size:clamp(.65rem,min(2.4vw,2.2vh),1rem)}.tagline .typed{vertical-align:top;display:inline-block;overflow:hidden}.pupils{position:relative}.pupil{aspect-ratio:1;background:#0d0a1a;inline-size:8.33333%;position:absolute}.robot-wrap{position:relative}.robot-btn{cursor:pointer;-webkit-tap-highlight-color:transparent;justify-items:center;display:grid;position:relative}.robot-body{display:grid}.robot-body>*{grid-area:1/1}.robot{aspect-ratio:1;block-size:clamp(5rem,30vh,14rem);inline-size:auto}.robot-blink{opacity:0}.shadow{inline-size:60%;block-size:calc(var(--px) * 2);background:color-mix(in oklch, var(--ink) 55%, transparent);margin-block-start:calc(var(--px) * 2)}.bubble{z-index:2;color:var(--ink);font-family:var(--font-pixel);white-space:nowrap;pointer-events:none;box-shadow:var(--edge);background:#fff;padding:.35rem .6rem;font-size:.7rem;position:absolute;inset-block-start:0;inset-inline-start:62%}.bubble:after{content:"";inline-size:calc(var(--px) * 2);block-size:calc(var(--px) * 2);box-shadow:var(--px) 0 0 0 var(--ink), calc(var(--px) * -1) 0 0 0 var(--ink), 0 var(--px) 0 0 var(--ink);background:#fff;position:absolute;inset-block-end:calc(var(--px) * -3);inset-inline-start:calc(var(--px) * 3)}.services{flex-wrap:wrap;justify-content:center;gap:clamp(.6rem,2vw,1.25rem);display:flex}.chip{background:var(--surface);font-family:var(--font-pixel);color:var(--yellow);box-shadow:var(--edge), calc(var(--px) * 2) calc(var(--px) * 2) 0 0 var(--ink);justify-items:center;gap:.4rem;padding:.5rem .75rem;font-size:.7rem;display:grid}.chip .sprite-chip{block-size:clamp(1.4rem,5vh,2.4rem);inline-size:auto}.btn{--btn-bg:var(--yellow);background:var(--btn-bg);color:oklch(20% .05 290);font-family:var(--font-body);text-transform:uppercase;cursor:pointer;box-shadow:inset calc(var(--px) * -1) calc(var(--px) * -1) 0 0 color-mix(in oklch, black 25%, var(--btn-bg)), inset var(--px) var(--px) 0 0 color-mix(in oklch, white 40%, var(--btn-bg)), var(--edge), calc(var(--px) * 2) calc(var(--px) * 2) 0 0 color-mix(in oklch, var(--ink) 60%, transparent);padding:.5rem 1.4rem;font-size:1.5rem;text-decoration:none;transition:translate 60ms steps(2,end);display:inline-block}.btn:hover{translate:0 calc(var(--px) * -.5)}.btn:active{translate:var(--px) var(--px)}.levels{grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem clamp(.75rem,2vw,1.5rem);inline-size:100%;max-inline-size:60rem;margin-inline:auto;display:grid}@media (width<=40rem){.levels{grid-template-columns:repeat(2,minmax(0,1fr))}}.level{gap:.4rem;display:grid}.level .level-head{font-family:var(--font-pixel);flex-wrap:wrap;gap:.1rem .5rem;font-size:.65rem;display:flex}.level .level-no{color:var(--yellow)}.level strong{font-weight:400}.xp{--seg:8px;background:repeating-linear-gradient(90deg, var(--green) 0 calc(var(--seg) - 2px), transparent calc(var(--seg) - 2px) var(--seg)) 0 0 / var(--fill,100%) 100% no-repeat, var(--ink);block-size:.9rem;box-shadow:var(--edge)}.xp.xp-1{--fill:25%}.xp.xp-2{--fill:50%}.xp.xp-3{--fill:75%}.xp.xp-4{--fill:100%}.footer-bar{inline-size:100%;max-inline-size:72rem;color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem 1.25rem;margin-inline:auto;font-size:1.2em;display:flex}.footer-bar .legal{align-items:center;gap:.4rem;display:flex}.footer-bar .sprite-heart-inline{inline-size:1rem}.footer-bar .controls{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.footer-bar .links{gap:1.25rem;display:flex}.footer-bar .links a{text-decoration:none}.footer-bar .links a:hover{color:var(--text);text-underline-offset:.25em;-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.ctl{background:var(--surface);color:var(--text);font-family:var(--font-pixel);cursor:pointer;box-shadow:var(--edge);padding:.4rem .6rem;font-size:.6rem}.ctl b{color:var(--yellow);font-weight:400}.ctl:hover{background:color-mix(in oklch, var(--surface) 80%, white)}.ctl[aria-pressed=true] b{color:var(--green)}.star{inline-size:calc(var(--px) * var(--s));aspect-ratio:1;background:var(--c);position:absolute}.plus-star{position:absolute}.plus-star .sprite{inline-size:calc(var(--px) * 5)}.bg-cloud{opacity:.22;position:absolute;inset-inline-start:0}.bg-cloud .sprite{inline-size:calc(var(--px) * 14 * var(--k))}.moon{inline-size:calc(var(--px) * 8 * 2.5);filter:drop-shadow(0 0 calc(var(--px) * 4) color-mix(in oklch, var(--yellow) 50%, transparent));position:absolute;inset:9% 7% auto auto}.particle{z-index:50;pointer-events:none;position:fixed;translate:-50% -50%}.particle .sprite{inline-size:calc(var(--px) * 5)}}@layer motion{@media (prefers-reduced-motion:no-preference){@keyframes bob{50%{translate:0 calc(var(--px) * -2)}}@keyframes blink-text{50%{opacity:.35}}@keyframes eyes{0%,93%{opacity:0}94%,to{opacity:1}}@keyframes twinkle{50%{opacity:.15}}@keyframes drift{0%{translate:-40vw}to{translate:140vw}}@keyframes jump{0%{translate:0;scale:1}30%{translate:0 -4rem;scale:.95 1.08}60%{translate:0 -4rem}to{translate:0;scale:1}}@keyframes pop{0%{opacity:0;scale:0}to{opacity:1;scale:1}}@keyframes beat{50%{translate:0 calc(var(--px) * -1);scale:1.15}}@keyframes float{0%{opacity:1;translate:-50% -50%}to{translate:calc(-50% + var(--dx)) calc(-50% - 5rem);opacity:0}}@keyframes fall{0%{opacity:1;translate:-50% -50%}to{translate:calc(-50% + var(--dx)) 110dvh;opacity:1}}@keyframes typing{0%{inline-size:0}to{inline-size:22ch}}@keyframes caret{50%{border-inline-end-color:#0000}}@keyframes hover-bob{50%{translate:0 calc(var(--px) * -2)}}.robot-body{animation:1.2s steps(4,end) infinite bob}.robot-body.jump{animation:.6s steps(8,end) jump}.robot-blink{animation:4s step-end infinite eyes}.star{animation:2.4s steps(2,end) infinite twinkle;animation-delay:var(--d)}.plus-star{animation:3s steps(3,end) infinite twinkle;animation-delay:var(--d)}.bg-cloud{animation:drift var(--t) steps(240) infinite;animation-delay:var(--d)}.moon{animation:4s steps(4,end) infinite bob}.blink{animation:1s steps(2,jump-none) infinite blink-text}.hp .sprite-heart{animation:1.2s steps(2,end) infinite beat}.hp .sprite-heart:nth-child(2){animation-delay:.2s}.hp .sprite-heart:nth-child(3){animation-delay:.4s}.bubble{transform-origin:20% 100%;animation:.2s steps(4,end) both pop}.particle{animation:.9s steps(9,end) forwards float}.particle.fall{animation:1.8s steps(24,end) forwards fall}.tagline .typed{border-inline-end:var(--px) solid var(--green);animation:1.4s steps(22,end) .3s both typing,.6s step-end infinite caret}.chip{transition:translate .1s steps(2,end)}.chip:hover{animation:.5s steps(2,end) infinite hover-bob}.app:has(.robot-btn:hover) .star{animation-duration:.6s}.app:has(.robot-btn:hover) .plus-star{animation-duration:.8s}}}@layer prefs{html[data-text=lg]{font-size:125%}html[data-contrast=high]{--muted:white;--text:white;--surface:oklch(20% .05 290);--edge:0 calc(var(--px) * -1) 0 0 white, 0 var(--px) 0 0 white, calc(var(--px) * -1) 0 0 0 white, var(--px) 0 0 0 white}html[data-contrast=high] body{background:oklch(10% .02 290)}html[data-contrast=high] .star,html[data-contrast=high] .plus-star,html[data-contrast=high] .bg-cloud{display:none}html[data-contrast=high] .moon{opacity:.6}html[data-contrast=high] .site-footer{background-color:oklch(10% .02 290);background-image:none}html[data-contrast=high] h1{text-shadow:none}html[data-contrast=high] .robot{filter:drop-shadow(var(--px) 0 0 white) drop-shadow(calc(var(--px) * -1) 0 0 white) drop-shadow(0 var(--px) 0 white) drop-shadow(0 calc(var(--px) * -1) 0 white)}html[data-motion=calm] *,html[data-motion=calm] :before,html[data-motion=calm] :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
