.gx{background:var(--gx-bg);min-height:100dvh;color:var(--gx-text);image-rendering:pixelated;-webkit-font-smoothing:none;font-family:"Press Start 2P",ui-monospace,monospace;font-size:12px;line-height:1.6;position:relative;overflow-x:hidden}.gx[data-scanlines=on]:after{content:"";pointer-events:none;z-index:60;background:repeating-linear-gradient(#0000002e 0 1px,#0000 1px 3px);position:fixed;inset:0}.gx canvas{image-rendering:pixelated}.gx-title{color:var(--gx-accent);text-shadow:3px 3px 0 var(--gx-shadow,#000);font-size:clamp(16px,4vw,28px);line-height:1.4}.gx-accent{color:var(--gx-accent)}.gx-muted{color:var(--gx-muted)}.gx-good{color:var(--gx-good)}.gx-bad{color:var(--gx-bad)}.gx-body{font-size:11px;line-height:1.9}.gx-panel{background:var(--gx-panel);border:4px solid var(--gx-border);padding:16px;box-shadow:0 0 0 4px #000,6px 6px 0 4px #00000080}.gx-tag{background:var(--gx-accent);color:var(--gx-bg);padding:4px 6px}.gx-quote{border-left:4px solid var(--gx-accent);padding-left:10px}.gx-slot{border:2px dashed var(--gx-muted);padding:6px 8px;font-size:10px}.gx-slot[data-state=right]{border-style:solid;border-color:var(--gx-good);color:var(--gx-good)}.gx-slot[data-state=wrong]{border-style:solid;border-color:var(--gx-bad);color:var(--gx-bad)}.gx-option{text-align:left;font:inherit;color:var(--gx-text);background:var(--gx-option-bg,#00000040);border:3px solid var(--gx-border);cursor:pointer;align-items:flex-start;gap:10px;padding:10px;font-size:10px;line-height:1.8;transition:transform 80ms steps(2,end);display:flex}.gx-option:hover:not(:disabled){box-shadow:2px 2px 0 var(--gx-accent);transform:translate(-2px,-2px)}.gx-option:focus-visible{outline:3px solid var(--gx-accent);outline-offset:2px}.gx-option[data-state=picked]{border-color:var(--gx-accent);background:color-mix(in srgb, var(--gx-accent) 14%, transparent)}.gx-option[data-state=right]{border-color:var(--gx-good);color:var(--gx-good)}.gx-option[data-state=wrong]{border-color:var(--gx-bad);color:var(--gx-bad);text-decoration:line-through}.gx-option:disabled{cursor:default}.gx-key{text-align:center;background:var(--gx-border);min-width:22px;color:var(--gx-bg);flex:none;padding:2px 4px}.gx-btn{font:inherit;background:var(--gx-accent);color:var(--gx-bg);cursor:pointer;border:3px solid #000;padding:10px 14px;font-size:10px;box-shadow:3px 3px #000}.gx-btn:hover:not(:disabled){transform:translate(-1px,-1px);box-shadow:4px 4px #000}.gx-btn:active:not(:disabled){transform:translate(2px,2px);box-shadow:1px 1px #000}.gx-btn:disabled{opacity:.4;cursor:default}.gx-btn:focus-visible{outline:3px solid var(--gx-text);outline-offset:2px}.gx-btn-ghost{color:var(--gx-text);border-color:var(--gx-border);box-shadow:none;background:0 0}.gx-btn-sm{padding:5px 8px;font-size:9px}.gx-feedback{border-top:3px dashed var(--gx-border);padding-top:12px}.gx-feedback[data-ok=yes]>div:first-child{color:var(--gx-good)}.gx-feedback[data-ok=partial]>div:first-child{color:var(--gx-accent)}.gx-feedback[data-ok=no]>div:first-child{color:var(--gx-bad)}.gx-hud{background:var(--gx-panel);border-bottom:4px solid #000;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;font-size:9px;display:flex}.gx-xpbar{border:2px solid var(--gx-border);background:#000;width:80px;height:10px}.gx-xpbar>div{background:var(--gx-good);height:100%;transition:width .3s steps(6,end)}.gx-screen{background:var(--gx-bg);overflow:hidden}.gx-banner,.gx-levelup{background:var(--gx-panel);border:3px solid var(--gx-accent);white-space:nowrap;z-index:10;padding:10px 14px;font-size:10px;position:absolute;top:12%;left:50%;transform:translate(-50%)}.gx-levelup{color:var(--gx-accent);font-size:14px;top:40%}.gx-overlay{z-index:40;background:#0000008c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0;overflow-y:auto}.gx-dialogue-wrap{z-index:40;cursor:pointer;justify-content:center;padding:16px;display:flex;position:fixed;inset:auto 0 0}.gx-dialogue{width:100%;max-width:760px}.gx-style{cursor:pointer;font:inherit;border:4px solid;flex-direction:column;align-items:center;padding:14px 8px;display:flex;box-shadow:0 0 0 3px #000}.gx-style[data-active=yes]{transform:translateY(-4px);box-shadow:0 0 0 3px #000,0 8px #00000080}.gx-touch{z-index:30;pointer-events:none;justify-content:space-between;align-items:flex-end;padding:16px 20px 24px;display:none;position:fixed;inset:auto 0 0}.gx-pad{color:#fff;border:3px solid var(--gx-border);width:40px;height:40px;font:inherit;pointer-events:auto;touch-action:none;background:#0000008c;position:absolute}.gx-pad-a{background:var(--gx-accent);width:64px;height:64px;color:var(--gx-bg);border-radius:9999px;position:static}@keyframes gx-pop{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.gx-pop{animation:.16s steps(4,end) gx-pop}.gx-banner.gx-pop,.gx-levelup.gx-pop{animation:none}@keyframes gx-blink{50%{opacity:.2}}.gx-blink{animation:1s steps(2,end) infinite gx-blink}@media (prefers-reduced-motion:reduce){.gx-pop,.gx-blink{animation:none}}.gx-simple{font-family:var(--font-geist-sans), system-ui, sans-serif;letter-spacing:0;font-size:17px;line-height:1.55}.gx-simple [class*=text-\[],.gx-simple .gx-body,.gx-simple .gx-option,.gx-simple .gx-slot{line-height:1.55;font-size:1.05rem!important}.gx-simple .gx-muted[class*=text-\[]{font-size:.9rem!important}.gx-simple .gx-hud{font-size:15px!important}.gx-simple .gx-tag,.gx-simple .gx-key{font-size:12px!important}.gx-simple .gx-panel{box-shadow:none;border-width:2px;border-radius:10px}.gx-simple .gx-option{border-radius:8px;padding:14px 16px}.gx-simple .gx-btn{border-radius:8px;padding:12px 18px;font-family:inherit;font-size:16px;font-weight:600}.gx-simple .gx-pop,.gx-simple .gx-blink{animation:none!important}.gx-simple .gx-option[data-state=wrong]{text-decoration:line-through}.gx-achievement{z-index:25;background:var(--gx-panel);border:3px solid var(--gx-accent);text-align:center;box-shadow:4px 4px 0 var(--gx-shadow,#000);padding:8px 14px;font-size:10px;line-height:1.9;position:absolute;top:56px;left:50%;transform:translate(-50%)}@media (pointer:coarse){.gx-touch{display:flex}.gx-keyhint{display:none!important}.gx-pad{width:52px;height:52px;font-size:14px}.gx-pad-a{width:76px;height:76px;font-size:16px}.gx-touch .relative{width:156px!important;height:156px!important}.gx-touch .relative>.gx-pad:first-child{top:0;left:52px}.gx-touch .relative>.gx-pad:nth-child(2){top:52px;left:0}.gx-touch .relative>.gx-pad:nth-child(3){top:52px;left:auto;right:0}.gx-touch .relative>.gx-pad:nth-child(4){top:auto;bottom:0;left:52px}.gx-touch{padding-bottom:max(24px, env(safe-area-inset-bottom))}}@media (pointer:coarse) and (orientation:portrait){.gx-mount-pad{bottom:190px}}@media (max-width:520px){.gx-btn-label{display:none}.gx-hud{gap:8px}.gx-hud .gap-3{gap:6px}.gx-hud .gx-btn-sm{min-width:36px;min-height:36px;padding-left:8px;padding-right:8px}.gx-xpbar{width:48px}}.gx-tpl{flex-direction:column;display:flex;position:absolute;inset:0;overflow:hidden}.gx-tpl-dark{background:radial-gradient(ellipse at 50% 30%, var(--gx-panel), var(--gx-bg) 75%)}.gx-tpl-top{color:#fff;white-space:nowrap;background:#00000073;justify-content:flex-end;align-items:center;gap:4px;padding:6px 12px;font-size:9px;display:flex;overflow:hidden}.gx-tpl-top .gx-muted{opacity:.35}.gx-tpl-scene{flex:1;justify-content:center;align-items:center;padding:16px;display:flex;overflow-y:auto}.gx-tpl-beat{text-align:center;background:var(--gx-panel);border:3px solid var(--gx-border);box-shadow:4px 4px 0 var(--gx-shadow);margin:0 12px 12px;padding:10px 12px;font-size:10px;line-height:1.6}.gx-tpl-beat[data-tone=good]{border-color:var(--gx-good)}.gx-tpl-beat[data-tone=bad]{border-color:var(--gx-bad)}.gx-tpl-card{background:var(--gx-panel);border:3px solid var(--gx-border);box-shadow:4px 4px 0 var(--gx-shadow);font:inherit;color:var(--gx-text);cursor:pointer;flex-direction:column;align-items:center;padding:12px 8px;transition:transform 80ms steps(2,end);display:flex}.gx-tpl-card:disabled{cursor:default}.gx-tpl-card[data-state=open]:hover{border-color:var(--gx-accent);transform:translateY(-3px)}.gx-tpl-card[data-state=right]{border-color:var(--gx-good);opacity:.85}.gx-tpl-card[data-state=wrong]{border-color:var(--gx-bad);opacity:.7}.gx-tpl-card[data-state=idle]{opacity:.7}.gx-board{background:#6b4a2b;border:4px solid #3d2a17;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;padding:14px;display:grid;box-shadow:inset 0 0 0 3px #0003,4px 4px #000}.gx-clue{color:#2a2116;background:#f3e9c6;min-height:70px;padding:14px 10px 10px;position:relative;box-shadow:3px 3px #00000073}.gx-clue .gx-muted{color:#7a6a4c}.gx-clue[data-state=open]{color:#7a6a4c;background:#d9cfae}.gx-clue[data-state=cold]{opacity:.8;background:#e6dcc0}.gx-pin{background:#c0392b;width:8px;height:8px;margin-left:-4px;position:absolute;top:4px;left:50%;box-shadow:1px 1px #000}.gx-clue[data-state=found] .gx-pin{background:#2e8b3a}.gx-map{gap:8px;width:100%;display:grid}.gx-territory{aspect-ratio:1;min-height:52px;max-height:110px;font:inherit;border:3px solid var(--gx-border);background:var(--gx-option-bg);color:var(--gx-muted);box-shadow:3px 3px 0 var(--gx-shadow);font-size:22px}.gx-territory[data-open=yes]{color:var(--gx-accent);border-color:var(--gx-accent);cursor:pointer;animation:1s steps(2,end) infinite gx-blink}.gx-territory[data-owner=you]{background:var(--gx-good);color:#fff}.gx-territory[data-owner=rival]{background:var(--gx-bad);color:#fff;opacity:.85}.gx-capital{border:3px dashed var(--gx-border);width:100%;color:var(--gx-muted);flex-direction:column;align-items:center;gap:6px;padding:12px;display:flex}.gx-capital[data-state=siege]{border-style:solid;border-color:var(--gx-accent);color:var(--gx-text)}.gx-capital[data-state=won]{border-style:solid;border-color:var(--gx-good);color:var(--gx-good)}.gx-bubble{border:3px solid var(--gx-border);background:var(--gx-panel);max-width:85%;box-shadow:3px 3px 0 var(--gx-shadow);padding:10px 12px}.gx-bubble[data-who=learner]{border-color:var(--gx-accent);margin-left:auto}.gx-input{font:inherit;color:var(--gx-text);background:var(--gx-option-bg);border:3px solid var(--gx-border);padding:10px;font-size:11px;line-height:1.6}.gx-input:focus{border-color:var(--gx-accent);outline:none}@media (prefers-reduced-motion:no-preference){.gx-speaking{animation:.4s steps(2,end) infinite gx-talk}@keyframes gx-talk{50%{transform:translateY(-3px)}}}@media (min-width:1280px) and (min-height:760px){.gx-overlay>.gx-panel,.gx-tpl-scene>*,.gx-tpl-beat,.gx-tpl-top{zoom:1.2}}@media (min-width:1680px) and (min-height:900px){.gx-overlay>.gx-panel,.gx-tpl-scene>*,.gx-tpl-beat,.gx-tpl-top{zoom:1.4}}.gx-arc{background:var(--gx-bg)}.gx-arc-q{background:var(--gx-panel);border-bottom:3px solid var(--gx-border);min-height:56px;padding:10px 14px}.gx-arc-q .gx-body{font-size:11px;line-height:1.7}.gx-arc-field{touch-action:manipulation;flex:1;min-height:240px;position:relative;overflow:hidden}.gx-arc-canvas{width:100%;height:100%;image-rendering:pixelated;position:absolute;inset:0}.gx-arc-lane{font:inherit;text-align:left;color:var(--gx-text);cursor:crosshair;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-left:4px solid #0000;align-items:flex-start;gap:8px;padding:6px 10px 0 80px;font-size:10px;line-height:1.6;display:flex;position:absolute;left:0;right:0}.gx-arc-lane .gx-key{flex:none}.gx-arc-text{-webkit-line-clamp:3;text-shadow:2px 2px 0 var(--gx-shadow,#000);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.gx-arc-lane[data-state=aim]{background:linear-gradient(90deg, color-mix(in srgb, var(--gx-accent) 22%, transparent), transparent 85%);border-left-color:var(--gx-accent)}.gx-arc-lane[data-state=locked]{background:color-mix(in srgb, var(--gx-accent) 30%, transparent);border-left-color:var(--gx-accent)}.gx-arc-lane[data-state=right]{background:color-mix(in srgb, var(--gx-good) 35%, transparent);border-left-color:var(--gx-good)}.gx-arc-lane[data-state=wrong]{background:color-mix(in srgb, var(--gx-bad) 35%, transparent);border-left-color:var(--gx-bad)}.gx-arc-lane:focus-visible{outline:2px dashed var(--gx-accent);outline-offset:-4px}.gx-arc-intel{z-index:5;flex-direction:column;width:min(92%,560px);max-height:88%;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.gx-arc-intel-lines{gap:8px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.gx-arc-strip{z-index:4;font:inherit;text-align:left;color:var(--gx-text);background:var(--gx-panel);border:3px solid var(--gx-border);box-shadow:3px 3px 0 var(--gx-shadow);padding:8px 10px;font-size:9px;line-height:1.6;position:absolute;bottom:8px;left:8px;right:8px}.gx-arc-strip[data-ok=yes]{border-color:var(--gx-good)}.gx-arc-strip[data-ok=no]{border-color:var(--gx-bad)}.gx-arc-pad{padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:var(--gx-panel);border-top:3px solid var(--gx-border);align-items:center;gap:8px;display:flex}.gx-arc-fire{min-width:120px;min-height:48px;margin-left:auto}.gx-arc-boss{background:#00000080;border:1px solid #fff;width:70px;height:7px;margin-left:8px;display:inline-block}.gx-arc-boss>span{background:var(--gx-bad);height:100%;transition:width .25s steps(4,end);display:block}@media (pointer:coarse){.gx-arc-pad .gx-btn-sm{min-width:48px;min-height:48px}}.gx-convo{background:color-mix(in srgb, var(--gx-bg) 70%, transparent);border:3px solid var(--gx-border);box-shadow:4px 4px 0 var(--gx-shadow);padding:12px}.gx-convo-face{flex-direction:column;flex:none;align-items:center;display:flex}.gx-bubble[data-tone=good]{border-color:var(--gx-good)}.gx-bubble[data-tone=bad]{border-color:var(--gx-bad)}.gx-reply{font:inherit;text-align:left;color:var(--gx-text);background:var(--gx-option-bg);border:3px solid var(--gx-accent);box-shadow:3px 3px 0 var(--gx-shadow);cursor:pointer;align-items:flex-start;gap:8px;margin-left:12%;padding:10px 12px;font-size:10px;line-height:1.6;display:flex}.gx-reply:hover:not(:disabled){transform:translate(-3px)}.gx-reply:disabled{cursor:default}.gx-reply[data-state=picked]{background:color-mix(in srgb, var(--gx-accent) 25%, var(--gx-option-bg))}.gx-reply[data-state=right]{border-color:var(--gx-good);background:color-mix(in srgb, var(--gx-good) 25%, var(--gx-option-bg))}.gx-reply[data-state=wrong]{border-color:var(--gx-bad);background:color-mix(in srgb, var(--gx-bad) 25%, var(--gx-option-bg))}.gx-reply[data-state=idle]:disabled{opacity:.55}.gx-territory{flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex}.gx-territory-value{color:var(--gx-accent);letter-spacing:1px;font-size:8px}.gx-territory[data-owner=you] .gx-territory-value,.gx-territory[data-owner=rival] .gx-territory-value{color:#fff;opacity:.85}.gx-territory[data-target=yes]{outline:3px solid var(--gx-accent);outline-offset:2px}.gx-suspect{font:inherit;color:var(--gx-text);background:var(--gx-panel);border:3px solid var(--gx-border);box-shadow:3px 3px 0 var(--gx-shadow);text-align:center;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;display:flex;position:relative}.gx-suspect[data-cleared=yes]{opacity:.55}.gx-suspect[data-open=yes]{border-color:var(--gx-accent);cursor:pointer;animation:1s steps(2,end) infinite gx-blink}.gx-stamp{color:var(--gx-good);border:2px solid var(--gx-good);background:#0000008c;padding:2px 6px;font-size:10px;position:absolute;top:38%;left:50%;transform:translate(-50%,-50%)rotate(-14deg)}.gx-lead{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;display:block}.gx-lead:disabled{cursor:default}.gx-clue:has(.gx-lead:not(:disabled)):hover{transform:translateY(-2px)}.gx-sp{background:var(--gx-bg)}.gx-sp-board{color:#fff;border-bottom:3px solid var(--gx-border);background:#111;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;font-size:11px;display:flex}.gx-sp-clock{background:#00000080;height:6px}.gx-sp-clock>span{background:var(--gx-good);height:100%;transition:width 80ms linear;display:block}.gx-sp-clock>span[data-low=yes]{background:var(--gx-bad)}.gx-sp-field{touch-action:manipulation;flex:1;min-height:200px;position:relative;overflow:hidden}.gx-sp-mate{cursor:pointer;background:0 0;border:0;width:64px;height:72px;position:absolute;transform:translate(-50%,-60%)}.gx-sp-mate:focus-visible{outline:2px dashed var(--gx-accent)}.gx-sp-meter{width:min(86%,420px);font:inherit;color:var(--gx-text);background:var(--gx-panel);border:3px solid var(--gx-accent);box-shadow:4px 4px 0 var(--gx-shadow);z-index:5;cursor:pointer;padding:10px;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.gx-sp-meter-track{background:#222;border:2px solid #000;height:18px;display:block;position:relative}.gx-sp-meter-sweet{background:color-mix(in srgb, var(--gx-good) 55%, transparent);position:absolute;top:0;bottom:0}.gx-sp-meter-perfect{background:var(--gx-good);position:absolute;top:0;bottom:0}.gx-sp-meter-mark{background:#fff;width:4px;margin-left:-2px;position:absolute;top:-4px;bottom:-4px;box-shadow:0 0 0 1px #000}.gx-sp-call{z-index:4;text-align:center;background:var(--gx-panel);border:3px solid var(--gx-border);padding:8px 10px;font-size:10px;position:absolute;top:8px;left:8px;right:8px}.gx-sp-call[data-tone=good]{border-color:var(--gx-good)}.gx-sp-call[data-tone=bad]{border-color:var(--gx-bad)}.gx-sp-plays{padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:var(--gx-panel);border-top:3px solid var(--gx-border);gap:6px;max-height:42%;display:grid;overflow-y:auto}@media (min-width:720px){.gx-sp-plays{grid-template-columns:1fr 1fr}}.gx-sp-plays .gx-option{padding-top:8px;padding-bottom:8px}.gx-weak{border-style:dashed}.gx-weak .gx-key{background:var(--gx-bad);color:#fff}.gx-overlay .gx-reply{margin-left:8%}.gx-round-stars{letter-spacing:6px;color:var(--gx-accent);text-shadow:3px 3px 0 var(--gx-shadow,#000);font-size:30px}.gx-hub-level{width:72px;height:72px;color:var(--gx-bg);background:var(--gx-accent);border:3px solid var(--gx-border);box-shadow:4px 4px 0 var(--gx-shadow);flex-direction:column;justify-content:center;align-items:center;display:flex}.gx-hub-style{text-align:center;background:var(--gx-option-bg);border:2px solid var(--gx-border);opacity:.45;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;display:flex}.gx-hub-style[data-played=yes]{opacity:1;border-color:var(--gx-accent)}.gx-rematch{animation:1.6s steps(2,end) infinite gx-rematch-pulse;border-color:var(--gx-accent)!important}.gx-rematch:hover{filter:brightness(1.15)}@keyframes gx-rematch-pulse{50%{box-shadow:0 0 0 2px var(--gx-accent)}}@media (prefers-reduced-motion:reduce){.gx-rematch{animation:none}}.gx-auto{position:relative;overflow:hidden}.gx-auto[data-auto=yes]:after{content:"";transform-origin:0;background:#00000059;width:100%;height:4px;animation:3.2s linear forwards gx-drain;position:absolute;bottom:0;left:0}@keyframes gx-drain{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.gx-territory{position:relative}.gx-territory-n{opacity:.7;font-size:8px;position:absolute;top:3px;left:5px}
