:root{--game-width: 1200px;--bg: #0b0f14;--bg-2: #101722;--ink: #e6edf3;--dim: #7d8a99;--line: #1e2a38;--zero: #1e90ff;--one: #ffe814;--hit: #7bff8a;--miss: #ff4d6d;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace}*{box-sizing:border-box}.hidden{display:none !important}html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);font-family:var(--mono);-webkit-text-size-adjust:100%;overscroll-behavior:none}body{overflow:hidden}.app{height:100%;height:100dvh;width:min(100%,var(--game-width));margin-inline:auto;display:flex;flex-direction:column;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);user-select:none;-webkit-user-select:none;touch-action:manipulation}.hud{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;padding:0.9rem 1.1rem 0.6rem}.hud-block{display:flex;flex-direction:column;gap:0.15rem;min-width:0}.hud-center{align-items:center}.hud-right{align-items:flex-end;padding-right:2.6rem}.hud-label{font-size:0.65rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--dim)}.hud-value{font-size:1.35rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1}.lives{display:flex;gap:0.35rem}.lives i{display:block;width:0.75rem;height:0.75rem;border-radius:50%;background:var(--hit);box-shadow:0 0 8px var(--hit);transition:background 0.2s,box-shadow 0.2s,transform 0.2s}.lives i.lost{background:transparent;box-shadow:none;border:1px solid var(--line);transform:scale(0.85)}.mute{position:absolute;right:0.9rem;top:50%;transform:translateY(-50%);width:2rem;height:2rem;border-radius:50%;border:1px solid var(--line);background:var(--bg-2);color:var(--ink);font:inherit;font-size:1rem;cursor:pointer;line-height:1}.mute[aria-pressed="true"]{color:var(--dim);text-decoration:line-through}.mute:focus-visible{outline:2px solid var(--zero);outline-offset:2px}@media (min-width: 1201px){.app{border-left:1px solid var(--line);border-right:1px solid var(--line)}body{background:#070a0e}}.stage{position:relative;flex:1 1 auto;min-height:0;background:linear-gradient(to bottom,rgba(255,255,255,0.02) 1px,transparent 1px) 0 0 / 100% 4px,radial-gradient(ellipse at 30% 50%,#131c29 0%,var(--bg) 70%);cursor:pointer}canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.pause-btn{position:absolute;top:0.6rem;left:0.8rem;width:2.4rem;height:2.4rem;border-radius:50%;border:1px solid var(--line);background:rgba(16,23,34,0.8);color:var(--dim);font:inherit;font-size:0.75rem;line-height:1;letter-spacing:0.1em;cursor:pointer;z-index:1}.pause-btn:hover,.pause-btn:focus-visible{color:var(--ink);border-color:var(--zero);outline:none}.pause-btn.hidden{display:none}.actions{display:flex;flex-direction:column;align-items:stretch;gap:0.55rem;width:min(100%,22rem);margin-bottom:0.9rem}.actions .btn{margin:0;width:100%}.pause-actions{margin-bottom:0.7rem}.pause-note{margin:0 0 1.6rem;font-size:0.65rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--dim)}.logo-bit{color:var(--zero)}.logo-pod{color:var(--one)}.brand{margin:0.45rem 0 0;font-size:0.85rem;font-weight:700;letter-spacing:0.22em;text-transform:lowercase;color:var(--dim)}.brand .logo-bit{text-shadow:0 0 8px rgba(30,144,255,0.55)}.brand .logo-pod{text-shadow:0 0 8px rgba(255,232,20,0.55);text-transform:uppercase}.prose .brand{margin-bottom:0.2rem}.brand a{text-decoration:none;border-bottom:1px solid transparent}.brand a:hover,.brand a:focus-visible{border-bottom-color:var(--dim);outline:none}.zero{color:var(--zero);font-weight:700}.one{color:var(--one);font-weight:700}.overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:1.5rem;background:rgba(11,15,20,0.78);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);animation:fade 0.25s ease-out}.overlay.hidden{display:none}@keyframes fade{from{opacity:0}to{opacity:1}}.tagline{margin:0.6rem 0 1.4rem;color:var(--dim);font-size:0.95rem}.howto{list-style:none;padding:0;margin:0 0 1.6rem;max-width:34ch;font-size:0.85rem;line-height:1.55;color:var(--ink)}.howto li{margin:0.4rem 0}.howto b{color:var(--ink)}.prompt{margin:0;font-size:0.75rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--dim);animation:blink 1.6s steps(2,start) infinite}@keyframes blink{to{visibility:hidden}}.headline{margin:0 0 0.5rem;font-size:clamp(1.8rem,7vw,3rem);font-weight:800;letter-spacing:-0.02em;color:var(--miss);text-shadow:0 0 20px rgba(255,77,109,0.5)}#paused .headline{color:var(--zero);text-shadow:0 0 20px rgba(30,144,255,0.5)}.result{margin:0 0 1.2rem;font-size:1rem}.newbest{color:var(--hit);font-weight:700}.newbest.hidden{display:none}.decoded-label{margin:0;font-size:0.65rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--dim)}.decoded{margin:0.3rem 0 1.6rem;width:min(100%,24rem);max-height:8.5rem;overflow-y:auto;overscroll-behavior:contain;text-align:center}.decoded p{margin:0.2rem 0;font-size:1rem;letter-spacing:0.04em;white-space:nowrap;color:var(--dim)}.decoded p.perfect{color:var(--ink)}.decoded i.g{font-style:normal;color:var(--miss)}.decoded:empty::after{content:'nothing yet';color:var(--dim);font-size:0.8rem}.decoded.more{border-bottom:1px solid var(--line)}.ad{display:none}.ad.on{display:block;min-height:90px;padding:0.4rem 0 calc(0.4rem + env(safe-area-inset-bottom));background:var(--bg-2);border-top:1px solid var(--line);text-align:center}.ad.on ins{display:block;margin:0 auto;max-width:970px}.links{margin-top:1.6rem;width:min(100%,24rem);display:grid;grid-template-columns:1fr auto 1fr;align-items:baseline;gap:1.2rem}.links > :first-child{justify-self:end}.links > :last-child{justify-self:start}.links a,.links button{color:var(--dim);font:inherit;font-size:0.7rem;letter-spacing:0.16em;text-transform:uppercase;text-decoration:none;border:0;border-bottom:1px solid var(--line);background:none;padding:0;cursor:pointer}.links a:hover,.links a:focus-visible,.links button:hover,.links button:focus-visible{color:var(--ink);border-color:var(--zero);outline:none}.links .primary{font-size:0.95rem;font-weight:800;color:var(--zero);border-bottom-width:2px;border-bottom-color:var(--zero);text-shadow:0 0 14px rgba(30,144,255,0.5);padding-bottom:0.1rem}.links .primary:hover,.links .primary:focus-visible{color:#fff;text-shadow:0 0 18px var(--zero)}.levels{display:flex;gap:0.4rem;margin:0 0 1.4rem;width:min(100%,24rem)}.levels button{font:inherit;font-size:0.8rem;min-height:3rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--dim);background:var(--bg-2);border:1px solid var(--line);border-radius:10px;padding:0.5rem 0.9rem 0.45rem;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:0.2rem;flex:1 1 0;min-width:0}.levels button small{font-size:0.6rem;font-weight:400;letter-spacing:0.1em;color:var(--dim)}.levels button:hover,.levels button:focus-visible{color:var(--ink);border-color:var(--dim);outline:none}.levels button.on{color:#06121f;background:var(--zero);border-color:var(--zero);box-shadow:0 2px 16px rgba(30,144,255,0.4)}.levels button.on small{color:#06121f;opacity:0.8}.levels-note{margin:-0.9rem 0 1.3rem;font-size:0.65rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--dim)}.level-tag{color:var(--zero);letter-spacing:0.12em}.level-tag:empty{display:none}.level-tag::before{content:'\00b7\00a0';color:var(--dim)}.scores .lvl{font-style:normal;font-weight:400;font-size:0.65em;letter-spacing:0;color:var(--dim);margin-left:0.6em;vertical-align:0.15em}.tabs{display:flex;gap:0.4rem;margin:-0.4rem 0 1rem;width:min(100%,22rem)}.tabs button{font:inherit;font-size:0.72rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--dim);background:var(--bg-2);border:1px solid #2a3a4d;border-radius:999px;padding:0.5rem 1.05rem;min-height:2.25rem;cursor:pointer;flex:1 1 0}.tabs button:hover{color:var(--ink);border-color:var(--dim)}.tabs button.on{color:#1a1400;background:var(--one);border-color:var(--one);box-shadow:0 2px 14px rgba(255,232,20,0.3)}.tabs button:focus-visible{outline:2px solid var(--zero);outline-offset:2px}.entry-note{margin:0.1rem 0 0;font-size:0.65rem;letter-spacing:0.1em;color:var(--dim)}.entry-note.refused{color:var(--miss)}.initials.shake{animation:shakex 0.4s ease-out;border-bottom-color:var(--miss)}@keyframes shakex{0%,100%{transform:translateX(0)}20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}.table-caption{margin:0 0 0.35rem;font-size:0.65rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--dim)}.table-caption.hidden{display:none}.world-rank{margin:-0.4rem 0 0.7rem;font-size:0.8rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--one)}.btn.small{font-size:0.7rem;padding:0.55rem 1.1rem;min-height:2.4rem;margin-bottom:1rem}#over-to-title{margin-top:0.2rem}.btn.hidden{display:none}.world-rank.dim{color:var(--dim)}.world-rank.hidden{display:none}.btn{font:inherit;font-size:0.8rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:#06121f;background:var(--zero);border:2px solid var(--zero);border-radius:999px;padding:0.7rem 1.5rem;min-height:2.75rem;cursor:pointer;box-shadow:0 0 0 rgba(30,144,255,0),0 2px 14px rgba(30,144,255,0.35);transition:transform 0.08s ease-out,box-shadow 0.15s,background 0.15s}.btn:hover,.btn:focus-visible{background:#4aa8ff;border-color:#4aa8ff;box-shadow:0 2px 22px rgba(30,144,255,0.6);outline:none}.btn:active{transform:translateY(1px)}.btn.quiet{color:var(--ink);background:var(--bg-2);border-color:#33455c;box-shadow:none}.btn.quiet:hover,.btn.quiet:focus-visible{color:#fff;background:#17212f;border-color:var(--dim);box-shadow:none}.entry{margin:0.2rem 0 1rem}.entry.hidden{display:none}.entry-row{display:flex;align-items:center;justify-content:center;gap:0.8rem;margin-top:0.5rem}.initials{width:3.4em;font:inherit;font-size:2.2rem;font-weight:800;letter-spacing:0.35em;text-transform:uppercase;text-align:center;color:var(--one);background:var(--bg-2);border:1px solid var(--line);border-bottom:2px solid var(--one);border-radius:6px;padding:0.2rem 0 0.2rem 0.35em;caret-color:var(--one)}.initials:focus{outline:none;border-color:var(--one);box-shadow:0 0 18px rgba(255,232,20,0.35)}.scores{list-style:none;margin:0 0 1.2rem;padding:0;width:min(100%,22rem);font-size:0.95rem;font-variant-numeric:tabular-nums}.scores.hidden{display:none}.scores li{display:grid;grid-template-columns:2ch 1fr auto;gap:1rem;padding:0.3rem 0.6rem;border-bottom:1px solid var(--line);color:var(--ink)}.scores li .rank{color:var(--dim);text-align:right}.scores li .name{text-align:left;letter-spacing:0.25em;font-weight:700}.scores li .pts{text-align:right}.scores li.new{color:var(--one);background:rgba(255,232,20,0.08);border-radius:4px}.scores li.gap{border:0;padding:0.1rem 0.6rem;color:var(--dim)}.scores .you{font-style:normal;font-size:0.6em;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:var(--one);margin-left:0.7em;vertical-align:0.15em}.scores li.none{display:block;border:0;text-align:center;color:var(--dim);font-size:0.85rem;padding:0.5rem}.scores li.gap .rank{letter-spacing:0}.scores li.new .rank{color:var(--one)}.scores.compact{font-size:0.8rem;margin-bottom:0.9rem}.scores.compact li{padding:0.15rem 0.5rem}.headline.high{color:var(--one);text-shadow:0 0 20px rgba(255,232,20,0.5);margin-bottom:1rem}.empty{margin:0 0 1.4rem;color:var(--dim);font-size:0.85rem}.empty.hidden{display:none}#over{overflow-y:auto;justify-content:safe center}body.brand-body{overflow:auto}.brand-page{min-height:100dvh;width:min(100%,44rem);margin:0 auto;padding:clamp(2.5rem,12vh,6rem) 1.25rem 4rem;display:flex;flex-direction:column;text-align:center}.brand-head{margin-bottom:clamp(2rem,8vh,3.5rem)}.brandmark{margin:0;font-size:clamp(2.8rem,14vw,5.5rem);font-weight:800;letter-spacing:-0.02em;line-height:1}.brandmark .logo-bit{text-shadow:0 0 10px rgba(30,144,255,0.8),0 0 36px rgba(30,144,255,0.5)}.brandmark .logo-pod{text-shadow:0 0 10px rgba(255,232,20,0.8),0 0 36px rgba(255,232,20,0.5)}.brand-tagline{margin:1rem 0 0;color:var(--dim);font-size:1rem;letter-spacing:0.02em}.brand-heading{margin:0 0 1rem;font-size:0.7rem;font-weight:700;letter-spacing:0.22em;text-transform:uppercase;color:var(--dim)}.games{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0.8rem}.game-card{display:block}.game-card > a,.game-card.soon{display:grid;grid-template-columns:1fr auto;grid-template-areas:'name go' 'line go';align-items:center;gap:0.15rem 1rem;padding:1.1rem 1.3rem;border:1px solid var(--line);border-radius:14px;background:var(--bg-2);text-align:left;text-decoration:none;color:var(--ink);transition:border-color 0.15s,background 0.15s,transform 0.08s ease-out}.game-card > a:hover,.game-card > a:focus-visible{border-color:var(--zero);background:#17212f;outline:none}.game-card > a:active{transform:translateY(1px)}.game-name{grid-area:name;font-size:1.15rem;font-weight:800;letter-spacing:0.01em}.game-line{grid-area:line;font-size:0.85rem;color:var(--dim)}.game-go{grid-area:go;font-size:0.7rem;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:var(--zero);white-space:nowrap}.game-card.soon{color:var(--dim);border-style:dashed;background:none}.game-card.soon .game-name{color:var(--dim)}.game-card.soon .game-go{color:var(--dim)}.brand-foot{margin-top:auto;padding-top:clamp(2rem,8vh,3.5rem);font-size:0.75rem;letter-spacing:0.14em;color:var(--dim)}.brand-foot a{color:var(--dim);text-decoration:none;border-bottom:1px solid var(--line)}.brand-foot a:hover{color:var(--ink);border-color:var(--zero)}.brand-foot p{margin:0.4rem 0}body.page{overflow:auto}.page .prose{max-width:62ch;margin:0 auto;padding:2rem 1.25rem 4rem;line-height:1.65;font-size:0.95rem}.prose h1{font-size:2rem;letter-spacing:-0.03em;margin:0 0 0.25rem}.prose h2{font-size:1.05rem;margin:2rem 0 0.5rem;color:var(--ink)}.prose p,.prose li{color:#c3ccd6}.prose a{color:var(--zero)}.prose .meta{color:var(--dim);font-size:0.8rem;margin:0 0 1.5rem}.prose .back{display:inline-block;margin-top:2.5rem;padding:0.6rem 1.1rem;border:1px solid var(--zero);border-radius:999px;color:var(--zero);text-decoration:none;font-size:0.75rem;letter-spacing:0.16em;text-transform:uppercase}.prose .back:hover{background:rgba(30,144,255,0.1)}@media (max-height: 480px){.hud{padding:0.5rem 1rem 0.4rem}.hud-value{font-size:1.05rem}.message{padding:0.3rem 1rem 0.4rem}.message-hint{display:none}.howto{display:none}.links{margin-top:0.8rem}.levels{margin-bottom:0.8rem}.levels button{padding:0.3rem 0.6rem;min-width:0}.levels button small{display:none}.scores.compact li:nth-child(n+6){display:none}.decoded-label,.decoded{display:none}}