:root{color-scheme:dark;--bg: #0b0e14;--panel: #121722;--panel-2: #181e2b;--border: #2a3348;--text: #e8edf7;--muted: #8b95ab;--accent: #f0d060;--accent-2: #6cb6ff;font-family:Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--text)}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}#app{display:grid;grid-template-columns:320px 1fr;height:100%}#app.playing{grid-template-columns:280px 1fr}.sidebar{background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0}.search{margin:12px 12px 8px;padding:8px 10px;background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:6px;width:calc(100% - 24px)}.areas{overflow:auto;padding:0 8px 16px;flex:1}.area h2{position:sticky;top:0;background:var(--panel);margin:12px 8px 6px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent-2)}.room-row{display:flex;align-items:center;gap:0}.star-btn{flex:none;width:28px;height:28px;padding:0;background:transparent;border:0;color:var(--border);cursor:pointer;border-radius:6px;font-size:14px;line-height:1}.star-btn:hover{background:var(--panel-2);color:var(--accent)}.star-btn.on{color:var(--accent)}.room-btn{display:block;flex:1;min-width:0;text-align:left;background:transparent;border:0;color:var(--text);padding:7px 10px;border-radius:6px;cursor:pointer;font-size:13px}.room-btn:hover{background:var(--panel-2)}.room-btn.active{background:#243044;color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.room-btn.active small{color:var(--accent);opacity:.7}.room-btn small{color:var(--muted);margin-left:6px}.current-room{display:none;margin:0 12px 8px;padding:8px 10px;text-align:left;background:#243044;border:1px solid var(--border);border-left:3px solid var(--accent);color:var(--accent);border-radius:6px;cursor:pointer;font-size:13px;line-height:1.35}.current-room:not([hidden]){display:block}.current-room:hover{background:#2c3a52}.current-room small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.stage-wrap{display:flex;flex-direction:column;min-width:0}.toolbar{display:flex;gap:8px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--border);background:var(--panel);flex-wrap:wrap}.toolbar button,.item-toggle{background:var(--panel-2);border:1px solid var(--border);color:var(--text);padding:6px 4px;border-radius:6px;cursor:pointer;font-size:11px}.item-toggle.on{border-color:var(--accent);color:var(--accent)}.stage{flex:1;display:grid;place-items:center;align-content:center;gap:8px;background:#07090d;position:relative}.room-caption{display:flex;align-items:baseline;gap:10px;font-size:18px;font-weight:600;color:var(--text)}.room-caption[hidden]{display:none}.room-caption small{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent-2)}.room-caption .guide-goal{margin-left:auto;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#48f0a0}.room-caption .guide-goal[hidden]{display:none}.stage canvas{display:block}.stage canvas.crt{position:absolute;pointer-events:none}.hud{position:absolute;left:12px;top:12px;font:12px/1.45 ui-monospace,Consolas,monospace;color:#d7deea;text-shadow:0 1px 2px #000;white-space:pre;pointer-events:none}.help{position:absolute;right:12px;bottom:12px;font-size:12px;color:var(--muted);background:#0c1018cc;padding:10px 12px;border-radius:8px;border:1px solid var(--border);line-height:1.5;display:none}.empty{color:var(--muted);text-align:center;max-width:420px;padding:24px}.empty h2{color:var(--text);margin-bottom:8px}.record-btn{display:inline-flex;align-items:center;gap:6px;background:var(--panel-2);border:1px solid #e05555;color:#f88;font-weight:600}.record-btn:hover{background:#e0555526;color:#ffa0a0}.record-btn.recording{background:#7a1818;border-color:#ff4d4d;color:#fff;box-shadow:0 0 10px #ff4d4d66}.record-dot{width:8px;height:8px;border-radius:50%;background:#ff4d4d;display:inline-block}.record-btn.recording .record-dot{animation:pulse-red 1s infinite}@keyframes pulse-red{0%{transform:scale(.9);opacity:.7}50%{transform:scale(1.3);opacity:1;filter:drop-shadow(0 0 4px #ff4d4d)}to{transform:scale(.9);opacity:.7}}.rec-hud-badge{position:absolute;top:14px;right:14px;display:flex;align-items:center;gap:8px;background:#141822d9;backdrop-filter:blur(4px);border:1px solid #ff4d4d;color:#fff;padding:6px 12px;border-radius:20px;font:12px/1 ui-monospace,monospace;box-shadow:0 2px 8px #00000080;pointer-events:none;z-index:10}.rec-hud-badge[hidden]{display:none}.rec-modal-backdrop{position:fixed;inset:0;background:#04070cd1;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.rec-modal{background:var(--panel);border:1px solid var(--border);border-radius:12px;width:95vw;max-width:1180px;max-height:88vh;display:flex;flex-direction:column;box-shadow:0 16px 40px #000000b3;overflow:hidden}.rec-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:var(--panel-2);border-bottom:1px solid var(--border)}.rec-modal-header h3{margin:0;font-size:16px;display:flex;align-items:center;gap:10px;color:var(--text)}.rec-modal-header .frame-count{font-size:12px;background:#232c3d;padding:3px 8px;border-radius:12px;color:var(--accent-2);font-family:monospace}.rec-modal-close{background:transparent;border:0;color:var(--muted);font-size:20px;cursor:pointer;padding:4px 8px;border-radius:4px}.rec-modal-close:hover{color:#fff;background:var(--border)}.rec-modal-actions{display:flex;gap:8px;padding:10px 18px;background:var(--panel);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center}.rec-act-btn{background:var(--panel-2);border:1px solid var(--border);color:var(--text);padding:6px 12px;border-radius:6px;cursor:pointer;font-size:12px;display:flex;align-items:center;gap:6px;font-weight:500}.rec-act-btn:hover{background:#252e42;border-color:var(--accent-2);color:#fff}.rec-act-btn.primary{background:#21406d;border-color:#3b82f6;color:#93c5fd}.rec-act-btn.primary:hover{background:#2b5592;color:#fff}.rec-toast{margin-left:auto;font-size:12px;color:#4ade80;font-weight:600;opacity:0;transition:opacity .3s ease}.rec-toast.show{opacity:1}.rec-tab-bar{display:flex;gap:4px;padding:8px 18px 0;background:var(--panel-2);border-bottom:1px solid var(--border)}.rec-tab{padding:6px 14px;background:transparent;border:0;border-bottom:2px solid transparent;color:var(--muted);font-size:12px;font-weight:600;cursor:pointer}.rec-tab:hover{color:var(--text)}.rec-tab.active{color:var(--accent-2);border-bottom-color:var(--accent-2)}.rec-modal-body{flex:1;overflow:auto;min-height:250px;background:#090c12}.rec-table{width:100%;border-collapse:collapse;font-size:11px;font-family:ui-monospace,Consolas,monospace}.rec-table th{position:sticky;top:0;background:#151b27;padding:8px 10px;text-align:left;border-bottom:1px solid var(--border);color:var(--muted);font-weight:600;white-space:nowrap;z-index:2}.rec-table td{padding:6px 10px;border-bottom:1px solid #1a2233;white-space:nowrap}.rec-table tr:hover{background:#182030}.rec-table tr.event-row{background:#3b82f614}.tag-btn{display:inline-block;padding:2px 5px;background:#2a3449;color:#93c5fd;border-radius:4px;font-size:10px;font-weight:600;margin-right:3px}.tag-btn.pressed{background:#3b82f6;color:#fff}.tag-pose{background:#263328;color:#86efac;padding:2px 6px;border-radius:4px;font-weight:600}.tag-coll{background:#3d2a1e;color:#fdba74;padding:2px 6px;border-radius:4px}.rec-json-view{margin:0;padding:16px;font-family:ui-monospace,Consolas,monospace;font-size:12px;line-height:1.5;color:#cbd5e1;background:#090c12;white-space:pre-wrap;word-break:break-all}.rec-diff-summary{display:flex;align-items:center;gap:12px;padding:12px 18px;background:#111827;border-bottom:1px solid var(--border);font-size:13px;font-weight:600}.rec-diff-summary.match{color:#4ade80;background:#22c55e1a;border-bottom-color:#22c55e4d}.rec-diff-summary.mismatch{color:#f87171;background:#ef44441f;border-bottom-color:#ef444459}.tag-diff-match{display:inline-block;padding:2px 6px;background:#22c55e2e;color:#4ade80;border-radius:4px;font-weight:700;font-size:10px}.tag-diff-mismatch{display:inline-block;padding:2px 6px;background:#ef444440;color:#f87171;border-radius:4px;font-weight:700;font-size:10px}.rec-table tr.diff-mismatch{background:#ef44441f!important}.rec-table tr.diff-mismatch td{border-bottom-color:#ef444440}.rec-drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px 20px;border:2px dashed #334155;border-radius:8px;margin:20px;background:#0f172a;text-align:center;color:#94a3b8}.rec-drop-zone.dragover{border-color:#38bdf8;background:#38bdf81a}.net-badge{position:fixed;right:8px;bottom:8px;z-index:50;padding:4px 8px;border-radius:4px;background:#000000b3;color:#8f8;font:12px monospace;pointer-events:none}.net-badge[data-status=offline],.net-badge[data-status=connecting]{color:#f88}.net-feed{position:fixed;right:8px;bottom:36px;z-index:50;display:flex;flex-direction:column;align-items:flex-end;gap:4px;font:13px monospace;color:#fff;pointer-events:none}.net-feed>div{padding:3px 8px;border-radius:4px;background:#780000bf}body.online-locked .sidebar,body.online-locked .toolbar{display:none}body.online-locked #app{grid-template-columns:1fr}body.online-locked.admin-mode .sidebar,body.online-locked.admin-mode .toolbar{display:flex}body.online-locked.admin-mode #app{grid-template-columns:280px 1fr}.net-feed>div[data-kind=pickup]{background:#005a1ecc}body.online-locked{--white: #f8f8f8;--shadow: #283888;--steel: #b8c8d0;--blue: #406088;--navy: #284058;--yellow: #f8f820;--gold: #f8a020;--orange: #f84020;background:#000}body.online-locked .stage{gap:14px;background:transparent}body.online-locked .stage>canvas,body.online-locked .game-screen,body.online-locked .chat-players,body.online-locked .chat-log,body.online-locked .chat-speedrun{box-shadow:0 0 0 2px var(--blue),0 0 0 4px var(--steel),0 0 0 6px var(--blue)}body.online-locked .room-caption{font:700 16px/1.2 ui-monospace,Consolas,monospace;text-transform:uppercase;letter-spacing:.06em;color:var(--white);text-shadow:2px 2px 0 var(--shadow)}body.online-locked .room-caption small{font-size:12px;color:var(--gold)}.social-links{display:flex;gap:16px;justify-content:center}.social-links a{display:grid;place-items:center;width:40px;height:40px;background:#284058;color:#f8f8f8;box-shadow:0 0 0 2px #406088,0 0 0 4px #b8c8d0,0 0 0 6px #406088}.social-links .discord-link:hover{background:#5865f2}.social-links .x-link:hover{background:#000}.social-links svg{width:24px;height:24px}.social-links .x-link svg{width:20px;height:20px}.social-links:empty{display:none!important}.stage .stage-links{display:none}body.online-locked:not(.touch) #app.playing .stage .stage-links{order:1;display:flex;gap:16px;justify-content:center;margin-top:6px}.fullscreen-button{display:grid;place-items:center;width:40px;height:40px;padding:0;border:0;background:#284058;color:#f8f8f8;box-shadow:0 0 0 2px #406088,0 0 0 4px #b8c8d0,0 0 0 6px #406088;cursor:pointer}.fullscreen-button:hover{background:#406088}.fullscreen-button svg{width:22px;height:22px}body.fullscreen .room-caption,body.fullscreen .stage-links,body.fullscreen .net-badge,body.fullscreen .site-disclaimer{display:none!important}body.fullscreen .stage>canvas,body.fullscreen .game-screen,body.fullscreen .chat-players,body.fullscreen .chat-log,body.fullscreen .chat-speedrun{box-shadow:none}.rom-gate-box .social-links{margin:16px 0 6px}.start-screen .social-links{position:fixed;right:16px;bottom:16px}body.online-locked .net-feed>div{border:1px solid var(--orange);background:#501808d9;color:var(--white)}body.online-locked .net-feed>div[data-kind=pickup]{border-color:var(--steel);background:#283888d9}body.online-locked .net-badge{border:1px solid var(--steel);background:#000000d9;color:var(--white)}body.online-locked .net-badge[data-status=offline],body.online-locked .net-badge[data-status=connecting]{border-color:var(--orange);color:var(--gold)}.net-badge[hidden]{display:none}.net-lost{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:110;max-width:calc(100vw - 32px);padding:12px 18px;border:1px solid var(--orange, #f80);border-radius:4px;background:#000000d9;color:var(--gold, #fc4);font:16px monospace;text-align:center;pointer-events:none}.net-lost[hidden]{display:none}.flags-body{padding:8px 18px 18px;font-size:12px;color:var(--text)}.flag-section h4{display:flex;align-items:center;gap:8px;margin:14px 0 6px;font-size:13px;color:var(--accent-2)}.flag-section h4 span{margin-right:8px}.flag-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:2px 12px}.flag-group{grid-column:1 / -1;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:2px 12px;margin-bottom:6px}.flag-group-title{grid-column:1 / -1;color:var(--muted);font-weight:600;margin-top:4px}.flag-check{display:flex;align-items:center;gap:6px;cursor:pointer;padding:1px 0}.flag-check:hover{color:#fff}.flag-ammo{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:8px}.flag-num{display:flex;align-items:center;gap:4px}.flag-num span{min-width:92px;color:var(--muted)}.flag-num input,.flag-save-name{width:64px;background:#111827;border:1px solid var(--border);color:var(--text);padding:3px 6px;border-radius:4px}.flag-save-name{width:160px}.flag-saves{display:flex;flex-direction:column;gap:4px}.flag-save{display:flex;align-items:center;gap:8px}.flag-save span{min-width:200px}.equip-menu{position:fixed;z-index:40;background:#000}.equip-menu[hidden]{display:none}.equip-menu-samus{position:absolute;image-rendering:pixelated;pointer-events:none}.equip-menu-samus[hidden]{display:none}.equip-menu-screen{position:absolute;image-rendering:pixelated;image-rendering:crisp-edges;touch-action:none}.game-row{display:flex;align-items:flex-start;gap:24px}.game-screen{position:relative}.game-screen>canvas:first-child{display:block}.chat-side{display:flex;flex-direction:column;gap:24px}.chat-players,.chat-log,.chat-speedrun,.chat-input-box{display:block}.chat-players.pickable{cursor:pointer}.chat-players[hidden],.chat-log[hidden],.chat-speedrun[hidden],.chat-input-box[hidden]{display:none}.save-notice{position:absolute;left:0;top:0;width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges}.save-notice[hidden]{display:none}.revert-countdown{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;image-rendering:pixelated;image-rendering:crisp-edges}.revert-countdown[hidden]{display:none}.boss-gate{position:absolute;image-rendering:pixelated;image-rendering:crisp-edges;touch-action:manipulation}.boss-gate[hidden]{display:none}.group-dialog{position:absolute;left:0;top:0;width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges}.group-dialog[hidden],.group-dialog-field[hidden]{display:none}.group-dialog-field{position:absolute;margin:0;padding:0;border:0;outline:none;font-family:ui-monospace,Consolas,monospace;font-weight:700}.group-dialog-field,.group-dialog-field::selection{color:transparent;caret-color:transparent;background:transparent}.chat-input-box{position:absolute;left:0;bottom:0;width:100%}.chat-input-form{display:contents}.chat-input-field{position:absolute;left:0;bottom:0;width:1px;height:1px;padding:0;border:0;opacity:0;pointer-events:none}.start-screen[hidden]{display:none}.start-screen{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:#000}.start-screen-frame{position:relative}.start-screen-canvas{display:block;width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges}.start-screen-name{position:absolute;margin:0;padding:0;border:0;outline:none;background:transparent;font-family:ui-monospace,Consolas,monospace;font-weight:700;text-align:center}.start-screen-name,.start-screen-name::selection{color:transparent;caret-color:transparent;background:transparent}.pvp-guide{--pg-bg: #0b0f1a;--pg-panel: #131a2b;--pg-line: #24304a;--pg-fg: #e6ecf7;--pg-muted: #93a0bb;--pg-energy: #ff5fa2;--pg-beam: #4fd8ff;--pg-gold: #ffc94a;position:fixed;inset:0;z-index:110;display:grid;place-items:start center;overflow-y:auto;padding:24px 16px;background:#000000bf;color-scheme:dark}.pvp-guide-panel{width:100%;max-width:760px;display:grid;gap:16px;padding:22px 20px 28px;background:var(--pg-bg);color:var(--pg-fg);border:1px solid var(--pg-line);border-radius:8px;font:15px/1.55 Segoe UI,system-ui,sans-serif;box-sizing:border-box}.pvp-guide-panel *{box-sizing:border-box}.pvp-guide-head{display:flex;align-items:start;justify-content:space-between;gap:12px}.pvp-guide h1,.pvp-guide h2{margin:0;text-wrap:balance}.pvp-guide h1{font-size:clamp(24px,5vw,34px);line-height:1.1}.pvp-guide h2{margin-top:10px;font-size:15px;text-transform:uppercase;letter-spacing:.1em;color:var(--pg-muted)}.pvp-guide p{margin:0}.pvp-guide-lede{color:var(--pg-muted)}.pvp-guide-close{flex:none;width:36px;height:36px;font-size:24px;line-height:1;color:var(--pg-fg);background:var(--pg-panel);border:1px solid var(--pg-line);border-radius:6px;cursor:pointer}.pvp-guide-close:hover,.pvp-guide-close:focus-visible{border-color:var(--pg-beam);outline:none}.pvp-guide-tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.pvp-guide-tier{display:grid;grid-template-columns:56px 1fr;gap:12px;align-items:center;padding:10px 14px;background:var(--pg-panel);border:1px solid var(--pg-line);border-radius:6px}.pvp-guide-n{font-size:26px;font-weight:700;color:var(--pg-beam);text-align:right;font-variant-numeric:tabular-nums}.pvp-guide-tier ul{list-style:none;margin:0;padding:0;font-size:14px}.pvp-guide-chart{padding:14px;overflow-x:auto;background:var(--pg-panel);border:1px solid var(--pg-line);border-radius:6px}.pvp-guide-bars,.pvp-guide-axis{display:grid;grid-template-columns:repeat(15,minmax(30px,1fr));gap:6px;min-width:530px}.pvp-guide-bars{align-items:end;height:170px}.pvp-guide-bar{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;height:100%}.pvp-guide-bar i{display:block;width:100%;background:linear-gradient(var(--pg-energy),#7a2d4f);border-radius:3px 3px 0 0}.pvp-guide-bar em{font:500 11px ui-monospace,Consolas,monospace;font-style:normal}.pvp-guide-axis{margin-top:6px;font:500 12px ui-monospace,Consolas,monospace;color:var(--pg-muted);text-align:center}.pvp-guide-axis-label{min-width:530px;margin-top:6px;font-size:13px;color:var(--pg-muted);text-align:center}.pvp-guide-calc{display:grid;gap:16px;padding:16px;background:var(--pg-panel);border:1px solid var(--pg-line);border-radius:6px}.pvp-guide-inputs{display:flex;flex-wrap:wrap;gap:14px}.pvp-guide-field{display:grid;gap:6px;flex:1 1 220px;min-width:0}.pvp-guide-field label{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--pg-muted)}.pvp-guide select{width:100%;padding:8px 10px;font:500 15px Segoe UI,system-ui,sans-serif;color:var(--pg-fg);background:var(--pg-bg);border:1px solid var(--pg-line);border-radius:5px}.pvp-guide select:focus-visible{outline:2px solid var(--pg-beam);outline-offset:1px}.pvp-guide-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.pvp-guide-res{display:grid;gap:2px;padding:2px 0 2px 14px;border-left:3px solid var(--pg-gold)}.pvp-guide-res b{font-size:30px;color:var(--pg-gold);font-variant-numeric:tabular-nums}.pvp-guide-res span{font-size:13.5px;color:var(--pg-muted)}.pvp-guide-res.mult{border-color:var(--pg-energy)}.pvp-guide-res.mult b{color:var(--pg-energy)}.pvp-guide-rules{display:grid;gap:8px;margin:0;padding-left:20px}.pvp-guide-rules li::marker{color:var(--pg-beam)}body.touch{overflow:hidden;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;--white: #f8f8f8;--shadow: #283888;--steel: #b8c8d0;--blue: #406088;--navy: #284058;--yellow: #f8f820;--gold: #f8a020;--orange: #f84020}body.touch .stage{position:absolute;inset:0;display:block}body.touch .stage>canvas,body.touch .game-row{position:absolute;left:var(--touch-game-left);top:var(--touch-game-top)}body.touch .stage>canvas,body.touch .game-screen>canvas:first-child{width:var(--touch-game-w);height:var(--touch-game-h)}body.touch .game-row{display:block}body.touch .room-caption{position:absolute;left:0;right:0;top:calc(var(--touch-game-top) + var(--touch-game-h) + 10px);justify-content:center;font-size:12px}body.touch .room-caption small{font-size:10px}body.touch .room-caption .guide-goal{margin-left:0;font-size:10px}body.touch.touch-landscape .room-caption{display:none}body.touch .chat-input-box{top:0;bottom:auto}body.touch input,body.touch textarea{font-size:16px}body.touch.touch-zoomed{touch-action:pinch-zoom}body.touch .net-badge{inset:6px auto auto 6px;max-width:calc(var(--touch-game-left) - 12px);font-size:9px;opacity:.8}body.touch.touch-portrait .net-badge{top:auto;bottom:4px;max-width:none}body.touch .net-feed{inset:8px auto auto 50%;transform:translate(-50%);align-items:center;font-size:11px}body.touch .help,body.touch .empty{display:none}.touch-chat{position:fixed;z-index:20}.touch-chat .chat-log{box-shadow:0 0 0 2px var(--blue),0 0 0 4px var(--steel),0 0 0 6px var(--blue)}.touch-ui{position:fixed;inset:0;z-index:30;pointer-events:none}.touch-ctl,.touch-corner{position:absolute;pointer-events:auto;touch-action:none;display:grid;place-items:center;font:700 12px/1 ui-monospace,Consolas,monospace;letter-spacing:.04em;text-align:center;color:var(--white);text-shadow:1px 1px 0 var(--shadow);background:#08102873;box-shadow:inset 0 0 0 2px var(--blue),inset 0 0 0 4px var(--steel),inset 0 0 0 6px var(--blue)}.touch-ctl.down,.touch-ctl.on{background:#406088bf;color:var(--yellow)}.touch-toggle.on{color:var(--gold)}.touch-stick{border-radius:50%;background:#0810284d}.touch-knob{width:46%;height:46%;border-radius:50%;background:#b8c8d059;box-shadow:inset 0 0 0 2px var(--blue),inset 0 0 0 4px var(--steel),inset 0 0 0 6px var(--blue);pointer-events:none}.touch-stick.down{background:#08102873}.touch-aim{position:absolute;left:50%;width:0;height:0;margin-left:-7px;border:7px solid transparent;opacity:.6;pointer-events:none}.touch-aim-up{top:-16px;border-bottom-color:var(--steel)}.touch-aim-down{bottom:-16px;border-top-color:var(--steel)}.touch-shoot.aim-up .touch-aim-up{border-bottom-color:var(--yellow);opacity:1}.touch-shoot.aim-down .touch-aim-down{border-top-color:var(--yellow);opacity:1}.touch-action{background:#08102899}.touch-corner{top:4px;right:4px;padding:8px 10px;border:0;font-size:11px}.touch-reset{right:72px}.touch-corner[hidden],.touch-hint[hidden],.touch-players[hidden]{display:none}.touch-hint{position:absolute;left:0;right:0;top:50%;text-align:center;font:700 12px ui-monospace,Consolas,monospace;color:var(--gold);text-shadow:1px 1px 0 var(--shadow)}body.touch-editing .touch-ctl{outline:2px dashed var(--gold);outline-offset:2px}body.touch-editing .touch-ctl.dragging{outline-color:var(--yellow)}.touch-players{position:fixed;inset:0;z-index:60;display:grid;place-items:center;background:#0009}.touch-players .chat-players{box-shadow:0 0 0 2px var(--blue),0 0 0 4px var(--steel),0 0 0 6px var(--blue)}.site-disclaimer{position:fixed;left:10px;bottom:8px;z-index:-1;margin:0;max-width:calc(100vw - 20px);font-size:11px;color:#e8edf752;pointer-events:none;user-select:none}body{isolation:isolate}body:has(.start-screen:not([hidden])) .site-disclaimer{z-index:101}body.touch .site-disclaimer{display:none}.rom-gate{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:16px;overflow-y:auto;background:#000;color:#f8f8f8}body:has(.rom-gate) .site-disclaimer{display:none}.rom-gate-box{width:100%;max-width:640px;margin:auto;text-align:center;line-height:1.5}.rom-gate-title{margin:0 0 20px;font-size:32px;letter-spacing:.12em;color:#f8a020}.rom-gate-video{display:block;width:min(100%,71vh);aspect-ratio:16 / 9;margin:0 auto 20px;border:2px solid #406088;background:#000}.rom-gate-box p{margin:0 0 16px;color:#b8c8d0}.rom-gate-rom{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0 0 20px;padding:12px 14px;border:2px solid #406088;text-align:left;font-family:ui-monospace,Consolas,monospace;font-size:13px}.rom-gate-rom dt{color:#b8c8d0}.rom-gate-rom dd{margin:0;overflow-wrap:anywhere}.rom-gate-box .rom-gate-search{margin:-8px 0 20px;font-size:13px;color:#6f7f96}.rom-gate-search a{color:#b8c8d0;font-family:ui-monospace,Consolas,monospace;overflow-wrap:anywhere}.rom-gate-search a:hover,.rom-gate-search a:focus-visible{color:#f8f8f8}.rom-gate-button{display:inline-block;padding:10px 22px;border:2px solid #b8c8d0;color:#f8f8f8;font-weight:600;letter-spacing:.08em;cursor:pointer}.rom-gate-button:hover,.rom-gate-button:focus-within{border-color:#f8f8f8;background:#284058}.rom-gate-box .rom-gate-drop{margin:10px 0 0;font-size:13px;color:#6f7f96}@media(pointer:coarse){.rom-gate-box .rom-gate-drop{display:none}}.rom-gate-box .rom-gate-status{margin:16px 0 0;min-height:1.5em;color:#f8f8f8}.rom-gate-box .rom-gate-status.error{color:#ff6060}.rom-gate-box .rom-gate-disclaimer{margin:0;font-size:12px;color:#6f7f96}body.stream-mode{cursor:none;overflow:hidden}.stream-canvas{position:fixed;left:0;top:0;z-index:2147483647}.rando-board{position:fixed;inset:0;z-index:110;display:grid;place-items:center;background:#000000b3}.rando-board canvas{image-rendering:pixelated;image-rendering:crisp-edges}.lang-prompt-box{max-width:360px}.lang-prompt-select{display:block;width:100%;margin:0 0 20px;padding:8px 10px;border:2px solid #406088;background:#000;color:#f8f8f8;font:inherit;font-size:16px}.lang-prompt-select:focus-visible{outline:none;border-color:#b8c8d0}.lang-prompt-ok{background:none;font:inherit;font-weight:600}
