:root{--gb-light: #9bbc0f;--gb-mid: #8bac0f;--gb-dark: #306230;--gb-ink: #0f380f;--gb-font: "Press Start 2P", "Menlo", monospace;--boot: .7s}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--gb-ink);color:var(--gb-ink);overflow:hidden;-webkit-tap-highlight-color:transparent}.crt{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--gb-ink);border-radius:26px;overflow:hidden}.tube{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--gb-light);animation:tv-on var(--boot) cubic-bezier(.23,1,.32,1) both}@keyframes tv-on{0%{transform:scale(.3,.002);filter:brightness(24)}30%{transform:scaleY(.004);filter:brightness(14)}60%{transform:scaleY(.5);filter:brightness(3)}82%{transform:scale(1);filter:brightness(1.6)}to{transform:scale(1);filter:brightness(1)}}.crt.warped{filter:url(#crt-warp)}.crt-defs{position:absolute;width:0;height:0}.crt-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse at 50% 28%,rgba(255,255,255,.09),transparent 55%),radial-gradient(ellipse at center,transparent 58%,rgba(15,56,15,.22) 100%),repeating-linear-gradient(rgba(15,56,15,.1) 0px,rgba(15,56,15,.1) 1px,transparent 1px,transparent 3px);animation:crt-flicker .12s steps(2) infinite}.scanline{position:absolute;left:0;right:0;top:0;height:14vh;pointer-events:none;background:linear-gradient(to bottom,transparent 0%,rgba(255,255,255,.02) 30%,rgba(255,255,255,.09) 48%,rgba(255,255,255,.05) 54%,rgba(15,56,15,.05) 72%,transparent 100%);transform:translateY(-16vh);animation:scan-sweep 12s linear 6s infinite}@keyframes scan-sweep{0%{transform:translateY(-16vh)}50%{transform:translateY(100vh)}to{transform:translateY(100vh)}}@keyframes crt-flicker{0%,to{opacity:.92}50%{opacity:1}}.stage{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.mark{display:inline-grid;grid-auto-rows:var(--cell);--cell: min(14px, 1.75vw, 3vh);gap:calc(var(--cell) * .18);border:calc(var(--cell) * .6) solid var(--gb-ink);padding:calc(var(--cell) * 1.5)}.cell{width:var(--cell);height:var(--cell);display:flex;align-items:center;justify-content:center;font-family:var(--gb-font);font-size:calc(var(--cell) * .42);line-height:1;animation:tile-in .4s backwards;animation-delay:calc(var(--boot) + var(--d))}.f-solid{background:var(--gb-ink);border:calc(var(--cell) * .06) solid var(--gb-light);color:var(--gb-light)}.f-frame{background:var(--gb-light);border:calc(var(--cell) * .14) solid var(--gb-ink);color:var(--gb-ink)}.f-mid{background:var(--gb-mid);border:calc(var(--cell) * .14) solid var(--gb-ink);color:var(--gb-ink)}.f-dark{background:var(--gb-dark);border:calc(var(--cell) * .06) solid var(--gb-light);color:var(--gb-light)}@keyframes tile-in{0%{opacity:0;transform:scale(.4)}}.contact{position:absolute;right:4vw;bottom:6vh;font-family:var(--gb-font);font-size:clamp(11px,1.1vw,14px);text-transform:uppercase;letter-spacing:2px;text-decoration:none;color:var(--gb-ink);background:var(--gb-light);padding:16px 22px;border:4px solid var(--gb-ink);box-shadow:inset 0 0 0 3px var(--gb-light),inset 0 0 0 5px var(--gb-ink);opacity:0;animation:contact-in .6s ease forwards;animation-delay:calc(var(--boot) + 1.2s)}@keyframes contact-in{to{opacity:1}}.contact:hover,.contact:active{color:var(--gb-light);background:var(--gb-ink);box-shadow:inset 0 0 0 3px var(--gb-ink),inset 0 0 0 5px var(--gb-light)}:focus-visible{outline:4px solid var(--gb-ink);outline-offset:3px}@media(prefers-reduced-motion:reduce){.cell,.crt-overlay{animation:none}.contact{animation:none;opacity:1}.tube{animation:none}.scanline{display:none}}
