@font-face{font-family:VCR;src:url('vcr.ttf') format('truetype');font-display:swap}
#freeplay-search{position:absolute;left:28%;top:34%;width:48%;z-index:25;background:#101829f5;border:3px solid #76dafa;padding:24px;display:flex;gap:12px;flex-wrap:wrap;font:24px VCR;box-shadow:0 20px 70px #000b}#freeplay-search[hidden]{display:none}#freeplay-search label{width:100%;color:#fff}#freeplay-search input{width:100%;font:24px VCR;padding:12px;background:#030c18;color:#fff;border:2px solid #60778d}#freeplay-search button{font:20px VCR;padding:8px 20px;border:0;background:#7ce2f5;cursor:pointer}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#000;color:#fff;font-family:VCR,monospace}body{display:grid;place-items:center;min-height:100dvh}#game{position:relative;width:min(100vw,177.777778dvh);aspect-ratio:16/9;overflow:hidden;background:#000;touch-action:none;user-select:none}#screen{display:block;width:100%;height:100%;outline:none}#buttons{position:absolute;inset:0;pointer-events:none}.hitbox{position:absolute;border:0;background:transparent;color:transparent;opacity:0;pointer-events:auto;cursor:pointer;touch-action:none;font:inherit}.hitbox:focus-visible{opacity:1;border:3px dashed #fff;color:transparent;background:#ffffff12;border-radius:4px;outline:3px solid #000}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#boot{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:24px;flex-direction:column;background:#000;font-size:clamp(12px,2vw,28px);text-align:center;padding:30px}#boot strong{font-size:clamp(20px,4vw,52px);color:#f45aaf;text-shadow:3px 3px #10c9ec}#boot progress{width:48%;accent-color:#f45aaf;height:8px}#boot button{font:inherit;padding:12px 24px;cursor:pointer}#boot[hidden]{display:none}noscript{position:absolute;inset:40%;width:60%}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}

/* The game fills the browser viewport; lane overlays use the same coordinate space. */
body{display:block;min-height:100dvh}#game{width:100vw;height:100dvh;aspect-ratio:auto}#screen{width:100%;height:100%}#touch-lanes{position:absolute;left:0;right:0;top:16%;bottom:0;z-index:5;display:grid;grid-template-columns:repeat(var(--touch-count,4),1fr);touch-action:none;pointer-events:auto}#touch-lanes[hidden]{display:none}#touch-lanes span{border-right:1px solid #ffffff16;background:linear-gradient(transparent 50%,#00000013)}#touch-lanes span:last-child{border-right:0}#touch-lanes span.held{background:linear-gradient(transparent,#ffffff25)}#buttons{z-index:6}#game:fullscreen{width:100vw;height:100dvh}
