:root{--ro-font-body: "Segoe UI", system-ui, -apple-system, sans-serif;--ro-font-display: "Bahnschrift", "Segoe UI", system-ui, sans-serif;--ro-control-border: #364052;--ro-scroll-thumb: #48556a;--ro-scroll-hover: #65768f;--ro-danger-dim: #331c27;--ro-danger-border: #723044;--ro-danger-text: #ffb1bf;--ro-warning-dim: #30281c;--ro-warning-border: #6e5834;--ro-warning-text: #efce96;--ro-bg: #080b10;--ro-surface: #12161f;--ro-surface-2: #1a2030;--ro-surface-3: #222a3d;--ro-accent: #4ecdc4;--ro-accent-dim: rgba(78, 205, 196, .12);--ro-accent-glow: rgba(78, 205, 196, .25);--ro-text: #e8edf5;--ro-muted: #8b95a8;--ro-border: rgba(255, 255, 255, .08);--ro-radius: 16px;--ro-radius-sm: 10px;--ro-shadow: 0 16px 48px rgba(0, 0, 0, .4);--ro-danger: #ff4757;--ro-success: #2ecc71}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--ro-bg);color:var(--ro-text);overflow-x:hidden;line-height:1.5}#root{min-height:100vh}button{cursor:pointer;border:none;outline:none;font-family:inherit}input,select{font-family:inherit}*{scrollbar-width:thin;scrollbar-color:var(--ro-scroll-thumb) var(--ro-bg)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--ro-bg)}::-webkit-scrollbar-thumb{background:var(--ro-scroll-thumb);border:2px solid var(--ro-bg);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--ro-scroll-hover)}::-webkit-scrollbar-thumb:active{background:var(--ro-accent)}html{scrollbar-gutter:stable}@media(forced-colors:active){*{scrollbar-color:auto}}.App{min-height:100vh;display:flex;flex-direction:column}.game-card{min-width:0;overflow:hidden;background:var(--ro-surface);border:1px solid var(--ro-border);border-radius:14px;transition:border-color .16s,transform .16s}.game-card:hover,.game-card:focus-within{border-color:var(--ro-accent)}.home-page .game-cover{position:relative;display:block;width:100%;padding:0;aspect-ratio:7/4.2;overflow:hidden;background:var(--ro-surface-2);border:0;border-radius:0;color:var(--ro-text)}.game-cover img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;transition:transform .22s}.game-cover:hover img{transform:scale(1.035)}.game-cover-fallback{display:grid;place-items:center;height:100%;padding:24px;font-size:1.25rem;font-weight:750;text-align:center}.game-console{position:absolute;top:12px;left:12px;padding:4px 8px;background:#080b10e8;border:1px solid #ffffff29;border-radius:5px;color:#e8edf5;font-size:.62rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase}.game-cover-more{position:absolute;right:12px;bottom:12px;display:grid;place-items:center;width:30px;height:30px;background:#080b10db;border:1px solid #ffffff38;border-radius:50%;font-size:1.15rem}.game-card-info{padding:15px}.game-card-info h3{font-size:1rem;line-height:1.4;min-height:2.8em;font-weight:700;letter-spacing:-.02em;overflow-wrap:anywhere;color:var(--ro-text)}.game-card-info>p{display:flex;justify-content:space-between;gap:8px;min-height:1.5em;margin:5px 0 16px;color:var(--ro-muted);font-size:.72rem}.game-card-info>p span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-card-info>p span:last-child{white-space:nowrap}.game-card-actions{display:flex;gap:8px;align-items:center}.home-page .game-play{flex:1;min-height:40px;padding:8px;background:var(--ro-accent-dim);color:var(--ro-accent);border:1px solid var(--ro-accent-glow);font-size:.8rem;font-weight:750}.home-page .game-play:hover:not(:disabled){background:var(--ro-accent);color:var(--ro-bg)}.game-play span{font-size:1.1rem;line-height:1;vertical-align:-1px}.home-page .game-details{min-height:40px;padding:8px 6px;background:transparent;border-color:transparent;color:var(--ro-muted);font-size:.74rem}.home-page .game-details:hover{color:var(--ro-text)}.game-card.unavailable .game-cover img{filter:grayscale(1);opacity:.55}.upload-game{flex:none}.upload-game input{display:none}@media(max-width:600px){.game-card-info{padding:11px}.game-card-info h3{font-size:.84rem}.game-card-info>p{display:block;font-size:.68rem;margin-bottom:11px}.game-card-info>p span{display:block}.game-card-actions{flex-wrap:wrap;gap:4px}.home-page .game-play{width:100%;flex-basis:100%;min-height:42px}.home-page .game-details{width:100%;min-height:34px}.game-console{top:7px;left:7px;font-size:.55rem}.game-cover-more{display:none}}.game-title-translation{display:block;color:var(--ro-muted);font-size:.78rem;line-height:1.5;overflow-wrap:anywhere;margin:2px 0 8px}.mini-game-list button small{display:block;color:var(--ro-muted);font-size:.75rem}.hero-cartridge>small{display:block;color:var(--ro-muted);font-size:.65rem;line-height:1.4;margin-top:4px}.community-avatar{display:inline-block;flex:0 0 auto;object-fit:cover;border-radius:10px;background:var(--ro-surface-2);image-rendering:pixelated;vertical-align:middle}.lobby-chat{display:flex;flex-direction:column;min-height:0;flex:1;background:#12161fb8;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--ro-border);border-radius:var(--ro-radius);box-shadow:var(--ro-shadow);overflow:hidden}.lobby-chat-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--ro-border);background:linear-gradient(180deg,rgba(255,255,255,.03),transparent)}.lobby-chat-header h3{margin:0;font-size:.95rem;font-weight:600;letter-spacing:-.01em}.lobby-chat-sub{margin:2px 0 0;font-size:.75rem;color:var(--ro-muted)}.lobby-chat-status{width:8px;height:8px;border-radius:50%;background:var(--ro-muted);flex-shrink:0;box-shadow:0 0 0 3px #8b95a826}.lobby-chat-status.on{background:var(--ro-success);box-shadow:0 0 0 3px #2ecc7133}.lobby-chat-messages{flex:1;min-height:0;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:12px;scrollbar-width:thin;scrollbar-color:rgba(78,205,196,.35) transparent}.lobby-chat-messages::-webkit-scrollbar{width:6px}.lobby-chat-messages::-webkit-scrollbar-thumb{background:#4ecdc459;border-radius:999px}.lobby-chat-empty{margin:auto;text-align:center;color:var(--ro-muted);font-size:.85rem;line-height:1.5}.lobby-chat-empty span{display:block;font-size:.75rem;opacity:.75;margin-top:4px}.lobby-chat-msg{padding:10px 12px;border-radius:10px;background:#ffffff08;border:1px solid rgba(255,255,255,.05)}.lobby-chat-msg-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.lobby-chat-nick{font-size:.78rem;font-weight:600;color:var(--ro-accent)}.lobby-chat-time{font-size:.68rem;color:var(--ro-muted)}.lobby-chat-text{margin:0;font-size:.84rem;line-height:1.45;color:var(--ro-text);word-break:break-word}.lobby-chat-form{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--ro-border);background:#080b1073}.lobby-chat-form input{flex:1;min-width:0;padding:10px 14px;border-radius:10px;border:1px solid var(--ro-border);background:var(--ro-surface-2);color:var(--ro-text);font-size:.85rem}.lobby-chat-form input:focus{outline:none;border-color:#4ecdc473;box-shadow:0 0 0 3px #4ecdc41a}.lobby-chat-form input::placeholder{color:var(--ro-muted)}.lobby-chat-form button{width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,var(--ro-accent),#2a9d8f);color:#041210;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:opacity .15s,transform .15s}.lobby-chat-form button:hover:not(:disabled){transform:translateY(-1px)}.lobby-chat-form button:disabled{opacity:.45;cursor:not-allowed}.rcm-overlay{position:fixed;inset:0;background:#000000c7;display:flex;align-items:center;justify-content:center;z-index:3000;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:20px}.rcm-modal{background:linear-gradient(180deg,#1a1a1a,#121212);border:1px solid #2c2c2c;border-radius:16px;width:100%;max-width:720px;max-height:calc(100vh - 40px);display:flex;flex-direction:column;box-shadow:0 20px 80px #000000b3;overflow:hidden}.rcm-modal-wide{max-width:980px}.rcm-instructions{margin:14px 24px 4px;font:15px/1.5 system-ui;color:#e8f5f4}.rcm-local-note{margin:0 24px 8px;font:12px/1.4 system-ui;color:#a9bfbd}.rcm-modal button:focus-visible{outline:3px solid #70e6db;outline-offset:3px}.rcm-footer{flex-wrap:wrap;gap:8px}.rcm-btn:disabled{opacity:.5;cursor:not-allowed}.snes-capture-banner button{display:block;margin:10px auto 0}@media(max-width:600px){.rcm-overlay{padding:8px}.rcm-modal{max-height:calc(100dvh - 16px)}.rcm-header{padding:14px!important}.rcm-header h2{font-size:19px}.rcm-instructions,.rcm-local-note{margin-left:14px;margin-right:14px}.rcm-mode-switch{padding-left:14px;padding-right:14px}.rcm-footer{padding:12px!important}}.rcm-mode-switch{display:flex;gap:10px;padding:12px 24px 14px;border-bottom:1px solid #1f1f1f}.rcm-mode-btn{flex:1;padding:10px 16px;background:#1c1c1c;border:2px solid #2a2a2a;border-radius:10px;color:#b9c1c8;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .15s ease}.rcm-mode-btn:hover:not(:disabled){background:#232323;border-color:#3a3a3a;color:#fff}.rcm-mode-btn.active{background:linear-gradient(135deg,#4ecdc4,#26a69a);border-color:#6df3eb;color:#0f1818;box-shadow:0 4px 14px #4ecdc459}.rcm-mode-btn:disabled{opacity:.45;cursor:not-allowed}.rcm-body-controller{display:grid;grid-template-columns:1.3fr 1fr;gap:18px;padding:18px 24px;overflow-y:auto;align-items:start}@media(max-width:860px){.rcm-body-controller{grid-template-columns:1fr}}.snes-controller-wrap{display:flex;flex-direction:column;gap:14px;align-items:center}.snes-controller{position:relative;width:100%;max-width:520px;aspect-ratio:600 / 320;background:transparent}.snes-body{position:absolute;inset:12% 5% 8%;background:linear-gradient(180deg,#c3c4c8,#9a9ba0);border-radius:50%/60%;border:3px solid #2b2b2e;box-shadow:inset 0 -6px 12px #00000040,inset 0 4px 8px #ffffff26,0 10px 28px #0000008c}.snes-grip{position:absolute;width:18%;height:60%;bottom:0;background:linear-gradient(180deg,#b9babf,#8c8e94);border:3px solid #2b2b2e;box-shadow:0 6px 18px #00000073}.snes-grip-left{left:0;border-radius:60% 30% 50% 50%/70% 80% 30% 20%}.snes-grip-right{right:0;border-radius:30% 60% 50% 50%/80% 70% 20% 30%}.snes-dpad-bg{position:absolute;left:13%;top:38%;width:18%;height:38%;background:radial-gradient(ellipse at center,#1a1a1c 60%,transparent 75%);border-radius:50%;pointer-events:none}.snes-actions-bg{position:absolute;right:9%;top:38%;width:20%;height:38%;background:radial-gradient(ellipse at center,#1a1a1c 60%,transparent 75%);border-radius:50%;pointer-events:none}.snes-btn{position:absolute;transform:translate(-50%,-50%);border:2px solid #1a1a1d;cursor:pointer;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.85rem;color:#fff;padding:0;outline:none;transition:transform .1s ease,box-shadow .15s ease,filter .15s ease;box-shadow:0 2px 5px #00000080,inset 0 -2px 3px #0000004d}.snes-btn:hover{filter:brightness(1.2);z-index:5}.snes-btn:active{transform:translate(-50%,-50%) scale(.92)}.snes-btn.pressed{filter:brightness(1.55);box-shadow:0 0 0 4px #70e6db,0 0 24px #70e6dbe6;transform:translate(-50%,-50%) scale(.92)}.rcm-test-row{display:flex;align-items:center;gap:12px;margin:8px 24px 0;color:#c8d5d4;font-size:.9rem}.rcm-test-row .active{border-color:#70e6db;color:#70e6db}.snes-btn.mapping{animation:snesPulse .7s ease-in-out infinite;z-index:10}@keyframes snesPulse{0%,to{box-shadow:0 0 #4ecdc4d9,0 2px 5px #00000080}50%{box-shadow:0 0 0 10px #4ecdc400,0 2px 5px #00000080;filter:brightness(1.4)}}.snes-btn.dpad-arrow{width:32px;height:32px;background:linear-gradient(180deg,#5a5a60,#3a3a3e);border-radius:4px}.snes-btn.dpad-arrow .snes-btn-label{display:none}.snes-btn.face-button{width:38px;height:38px;border-radius:50%;font-size:.95rem}.snes-btn.face-a{background:radial-gradient(circle at 30% 30%,#ff6c84 10%,#c92a47);border-color:#6d0e22}.snes-btn.face-b{background:radial-gradient(circle at 30% 30%,#ffd166 10%,#d18c1a);border-color:#6e4400;color:#2a1e00}.snes-btn.face-x{background:radial-gradient(circle at 30% 30%,#88d4ff 10%,#2a82c8);border-color:#0b3556}.snes-btn.face-y{background:radial-gradient(circle at 30% 30%,#82f4a8 10%,#2da659);border-color:#0e4022;color:#08240f}.snes-btn.shoulder{width:64px;height:22px;border-radius:18px 18px 8px 8px;background:linear-gradient(180deg,#d6d7db,#a7a9ad);color:#1f1f22;border-color:#2b2b2e;font-size:.8rem}.snes-btn.center-button{width:40px;height:12px;border-radius:10px;background:linear-gradient(180deg,#4a4a52,#28282d);border-color:#1a1a1d;transform:translate(-50%,-50%) rotate(-22deg);font-size:.6rem}.snes-btn.center-button:active{transform:translate(-50%,-50%) rotate(-22deg) scale(.92)}.snes-btn.center-button.mapping{animation:snesPulseRot .7s ease-in-out infinite}@keyframes snesPulseRot{0%,to{box-shadow:0 0 #4ecdc4d9;filter:brightness(1)}50%{box-shadow:0 0 0 10px #4ecdc400;filter:brightness(1.6)}}.snes-capture-banner{background:linear-gradient(135deg,#4ecdc4,#2da59c);color:#0c1e1c;font-weight:700;padding:10px 16px;border-radius:10px;text-align:center;font-size:.95rem;box-shadow:0 4px 16px #4ecdc459;animation:bannerFlash 1.2s ease-in-out infinite}@keyframes bannerFlash{0%,to{box-shadow:0 4px 16px #4ecdc459}50%{box-shadow:0 4px 24px #4ecdc4bf}}.rcm-bindings-list h3{color:#fff;margin:0 0 10px;font-size:1rem}.rcm-bindings-table{width:100%;border-collapse:collapse;font-size:.85rem}.rcm-bindings-table th{text-align:left;color:#4ecdc4;font-size:.7rem;text-transform:uppercase;letter-spacing:1px;padding:6px 4px;border-bottom:1px solid #2a2a2a}.rcm-bindings-table td{padding:4px;border-bottom:1px solid #1c1c1c;color:#d3d8dd}.rcm-bindings-table tr.mapping td{background:#4ecdc414}.rcm-binding-cell{width:100%;background:#1c1c1c;border:1px solid #2a2a2a;border-radius:6px;color:#d3d8dd;padding:5px 8px;cursor:pointer;font-family:JetBrains Mono,Fira Code,monospace;font-size:.8rem;text-align:center;transition:all .12s}.rcm-binding-cell:hover:not(:disabled){background:#262626;border-color:#4ecdc4;color:#fff}.rcm-binding-cell:disabled{opacity:.4;cursor:not-allowed}.rcm-binding-gp{position:relative;display:flex;gap:4px;align-items:center}.rcm-binding-gp .rcm-binding-cell{flex:1}.rcm-binding-clear{background:#2a1c1c;border:1px solid #4a2a2a;color:#ff7782;width:22px;height:22px;border-radius:50%;cursor:pointer;font-size:.75rem;display:flex;align-items:center;justify-content:center;flex:none;padding:0}.rcm-binding-clear:hover{background:#4a2020;color:#fff}.rcm-gp-status{margin-top:14px;padding:10px 14px;background:#161616;border:1px solid #232323;border-radius:10px;color:#d3d8dd;font-size:.85rem;line-height:1.4}.rcm-gp-name{color:#6df3eb;font-family:JetBrains Mono,monospace;font-size:.8rem;word-break:break-all}.rcm-header{display:flex;justify-content:space-between;align-items:flex-start;padding:20px 24px 12px;border-bottom:1px solid #222}.rcm-header h2{margin:0;font-size:1.35rem;color:#fff}.rcm-sub{margin:4px 0 0;color:#9aa3ad;font-size:.9rem}.rcm-close{background:transparent;border:1px solid #333;color:#ccc;width:32px;height:32px;border-radius:8px;cursor:pointer;font-size:1rem}.rcm-close:hover{background:#222;color:#fff}.rcm-body{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;padding:16px 24px;overflow-y:auto}@media(max-width:640px){.rcm-body{grid-template-columns:1fr}}.rcm-pad{display:flex;flex-direction:column;gap:14px}.rcm-section{background:#181818;border:1px solid #232323;border-radius:12px;padding:12px}.rcm-section-title{color:#4ecdc4;font-size:.8rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;margin-bottom:10px}.rcm-dpad{display:flex;flex-direction:column;align-items:center;gap:6px}.rcm-dpad-row{display:flex;align-items:center;gap:6px}.rcm-dpad-center{width:64px;height:64px}.rcm-action-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.rcm-row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.rcm-key{flex:1 1 auto;min-width:88px;min-height:64px;background:#222;border:2px solid #333;border-radius:10px;color:#fff;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px;font-size:.85rem;font-weight:600;transition:transform .1s,background .2s,border-color .2s}.rcm-key:hover{border-color:#4ecdc4;background:#262626}.rcm-key.mapping{background:#4ecdc4;color:#102b29;border-color:#6df3eb;box-shadow:0 0 24px #4ecdc473;animation:rcmPulse 1s ease-in-out infinite}@keyframes rcmPulse{0%,to{box-shadow:0 0 24px #4ecdc473}50%{box-shadow:0 0 32px #4ecdc4d9}}.rcm-key-label{font-size:.8rem;opacity:.85;letter-spacing:.4px}.rcm-key-value{font-family:JetBrains Mono,Fira Code,monospace;font-size:1.05rem;font-weight:700;background:#0000004d;padding:4px 10px;border-radius:6px;min-width:50px;text-align:center}.rcm-key.mapping .rcm-key-value{background:#ffffff4d;color:#fff}.rcm-tips{background:#161616;border:1px solid #222;border-radius:12px;padding:16px;color:#d6dde2;font-size:.9rem}.rcm-tips h3{margin:0 0 10px;color:#fff;font-size:1rem}.rcm-tips ol{padding-left:18px;margin:0 0 12px;display:flex;flex-direction:column;gap:4px}.rcm-note{color:#9aa3ad;margin:8px 0;line-height:1.4}.rcm-note.small{font-size:.8rem}.rcm-conflict{color:#ffb454;font-weight:600;margin:6px 0 0}.rcm-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px 18px;border-top:1px solid #222;background:#111}.rcm-btn{border:none;border-radius:10px;padding:12px 22px;font-weight:700;font-size:.95rem;cursor:pointer;transition:transform .08s,background .2s}.rcm-btn:active{transform:scale(.97)}.rcm-btn-primary{background:linear-gradient(135deg,#28a745,#1f7a36);color:#fff;box-shadow:0 6px 16px #28a74559}.rcm-btn-primary:hover{filter:brightness(1.08)}.rcm-btn-secondary{background:#2a2a2a;color:#eaeaea;border:1px solid #383838}.rcm-btn-secondary:hover{background:#333}.tutorial-overlay{position:fixed;inset:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:2900;padding:20px}.tutorial-card{background:linear-gradient(180deg,#181818,#0f0f0f);border:1px solid #2a2a2a;border-radius:16px;max-width:540px;padding:28px;color:#e7ecf0;box-shadow:0 12px 60px #000000b3}.tutorial-card h3{margin:0 0 14px;font-size:1.3rem;color:#fff}.tutorial-card p{margin:8px 0;line-height:1.45}.tutorial-card em{color:#4ecdc4;font-style:normal;font-weight:600}.tutorial-card .control-btn{margin-top:14px;width:100%;font-size:1rem;padding:12px}.slot-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:16px;font-weight:600;font-size:.85rem;border:1px solid #2c2c2c;background:#1c1c1c;color:#d3d8dd}.slot-pill.free{border-color:#28a74566;color:#c7f0d0;background:#28a7451f}.slot-pill.occupied{border-color:#667eea66;color:#d9e1ff;background:#667eea29}.slot-pill.locked{opacity:.65}.slot-btn.host-slot.occupied{border-color:#667eea;color:#d9e1ff}.join-p2-hint{display:block;color:#aaa;margin-top:6px;font-size:.85rem}.join-p2-cta.full{color:#ffb454}.avatar-picker{min-width:0;padding:0;margin:8px 0;border:0;color:var(--ro-text)}.avatar-picker legend{font-weight:650;margin-bottom:12px}.avatar-picker__preview{display:flex;align-items:center;gap:12px}.avatar-picker__preview p{margin:0;line-height:1.5}.avatar-picker small,.avatar-picker__hint{color:var(--ro-muted)}.avatar-picker h4{margin:18px 0 10px;font-size:14px}.avatar-picker__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(86px,1fr));gap:8px}.avatar-picker__tile{position:relative;display:flex!important;flex-direction:column;align-items:center;gap:6px!important;padding:10px 5px;border:1px solid var(--ro-control-border);border-radius:10px;background:var(--ro-surface);text-align:center;cursor:pointer}.avatar-picker__tile input{position:absolute;opacity:0;width:1px;height:1px}.avatar-picker__tile>span{font-size:12px;min-height:2.5em;line-height:1.25;display:flex;align-items:center}.avatar-picker__tile>small{font-size:10px}.avatar-picker__tile:not(.is-locked):hover,.avatar-picker__tile.is-selected{border-color:var(--ro-accent);background:var(--ro-surface-2)}.avatar-picker__tile:focus-within{outline:2px solid var(--ro-accent);outline-offset:3px}.avatar-picker__tile.is-locked{cursor:not-allowed}.avatar-picker__tile.is-locked .community-avatar{opacity:.55}.avatar-picker__upload{margin-top:18px;padding:12px;border:1px dashed var(--ro-control-border);border-radius:10px}.avatar-picker__upload label{display:grid;gap:8px}.avatar-picker__upload input{width:100%;min-width:0}.avatar-picker__upload small{display:block;margin-top:8px;line-height:1.5}.avatar-picker__hint{font-size:13px;line-height:1.5}@media(forced-colors:active){.avatar-picker__tile.is-selected{outline:2px solid Highlight}}.email-verification{margin-top:24px;padding-top:20px;border-top:1px solid var(--ro-control-border)}.email-verification h3{margin:0 0 10px}.email-verification-note{color:var(--ro-muted);font-size:.9rem}.email-verification-status{padding:12px;background:var(--ro-surface-2);border-radius:10px;overflow-wrap:anywhere}.email-verification-actions{display:flex;flex-wrap:wrap;gap:10px}.email-verification-actions button{min-height:44px}@media(max-width:480px){.email-verification-actions{flex-direction:column}}.activities-hub{color:var(--ro-text);line-height:1.6;min-width:0}.activity-tabs{display:flex;gap:6px;padding:5px;margin-bottom:24px;background:var(--ro-bg);border:1px solid var(--ro-border);border-radius:10px}.home-page .activity-tabs button{flex:1;border-color:transparent;background:transparent;color:var(--ro-muted);min-height:42px;font-size:.81rem}.home-page .activity-tabs button[aria-current]{background:var(--ro-surface-3);color:var(--ro-accent);border-color:var(--ro-control-border)}.activity-fieldset{border:0;padding:0;margin:0;min-width:0}.activity-fieldset:disabled{opacity:.65}.activity-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:18px 0;font-size:.8rem}.activity-actions>span{color:var(--ro-muted)}.activity-note,.activity-challenge{padding:20px;margin:18px 0;border:1px solid var(--ro-border);border-radius:12px;background:var(--ro-surface-2);font-size:.82rem;color:var(--ro-muted)}.activity-challenge{border-color:var(--ro-accent-glow);background:var(--ro-accent-dim)}.activity-challenge h3{font-size:1.25rem;margin:5px 0 12px;letter-spacing:-.025em}.activity-challenge p{margin:9px 0}.activity-challenge strong{color:var(--ro-accent)}.activity-challenge progress{accent-color:var(--ro-accent);width:min(240px,65%);height:8px;border:0;border-radius:8px;overflow:hidden;background:var(--ro-bg);margin:14px 10px 14px 0}.activity-challenge progress::-webkit-progress-bar{background:var(--ro-bg)}.activity-challenge progress::-webkit-progress-value{background:var(--ro-accent);border-radius:8px}.activity-challenge progress::-moz-progress-bar{background:var(--ro-accent)}.activities-hub section>h3{margin:26px 0 12px;font-size:1.15rem}.activities-hub section>p{color:var(--ro-muted);font-size:.85rem;margin:12px 0}.activities-hub section>.search-label{margin:20px 0 12px}.activity-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:14px;margin:20px 0}.activity-list article,.activity-match{border:1px solid var(--ro-border);background:var(--ro-bg);border-radius:12px;padding:20px;min-width:0;overflow-wrap:anywhere}.activity-list article>button{display:block;margin-top:16px}.activity-list h3,.activity-list h4,.activity-match h4{margin:0 0 10px;font-size:1rem}.activity-list p,.activity-list small,.activity-match>p{color:var(--ro-muted);font-size:.8rem}.activity-list small{display:block;margin-top:10px}.activity-search{display:flex;align-items:end;gap:10px;margin:18px 0}.activity-search label{flex:1;display:grid;gap:8px}.activity-search input{display:block;width:100%}.activity-search button{min-height:44px;padding-inline:24px}.activity-form,.activity-management{padding:20px;background:var(--ro-bg);border:1px solid var(--ro-border);border-radius:12px;margin:18px 0}.activity-management{display:grid;gap:24px}.activity-review{padding:18px;border:1px solid var(--ro-warning-border);background:var(--ro-warning-dim);border-radius:10px;margin:18px 0}.activity-review p{margin:0 0 12px;color:var(--ro-warning-text)}.activity-members,.activity-rules{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.83rem;color:var(--ro-muted);margin:12px 0 20px}.activity-bracket{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:14px;margin:18px 0}.activity-match>strong{display:inline-flex;padding:4px 9px;border-radius:6px;background:var(--ro-surface-3);font-size:.7rem;color:var(--ro-accent)}.activity-match .portal-form{margin-top:18px}.activity-votes span{display:block;font-size:.8rem}.activity-audit{margin:24px 0 0;padding:15px;border:1px solid var(--ro-border);border-radius:10px;background:var(--ro-bg)}.activity-audit summary{cursor:pointer;font-weight:650;font-size:.84rem;min-height:24px}.activity-audit ol{padding-left:20px;margin-top:14px}.activity-audit li{padding:10px 0;overflow-wrap:anywhere;color:var(--ro-muted);font-size:.77rem;border-top:1px solid var(--ro-border)}.activity-table-wrap{max-width:100%;overflow-x:auto;margin-top:20px;border:1px solid var(--ro-border);border-radius:10px}.activity-table{width:100%;border-collapse:collapse;font-size:.85rem}.activity-table th,.activity-table td{padding:16px;text-align:left;border-bottom:1px solid var(--ro-border)}.activity-table th{background:var(--ro-bg);font-size:.69rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ro-muted);font-weight:650}.activity-table td:first-child{color:var(--ro-accent);font-weight:750}.activity-table tr:last-child td{border-bottom:0}.activity-table small{display:block;color:var(--ro-muted);margin-top:3px;font-size:.72rem}.portal-activity-entry{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.portal-activity-entry article{padding:25px;border-radius:14px;background:var(--ro-surface);border:1px solid var(--ro-border)}.portal-activity-entry h3{font-size:1.25rem;letter-spacing:-.025em;margin:7px 0 12px}.portal-activity-entry p:not(.eyebrow){font-size:.83rem;color:var(--ro-muted);max-width:55ch}.portal-activity-entry button{margin-top:20px;color:var(--ro-accent);border-color:var(--ro-accent-glow);background:var(--ro-accent-dim)}.activities-hub label{display:block}.activities-hub .portal-form label,.activities-hub .search-label{display:grid;gap:8px}.activities-hub input,.activities-hub select,.activities-hub textarea{max-width:100%}@media(max-width:600px){.portal-activity-entry{grid-template-columns:1fr}.portal-activity-entry article{padding:20px}.activity-tabs{gap:2px;padding:4px}.home-page .activity-tabs button{font-size:.7rem;padding:9px 7px}.activity-search{gap:8px}.activity-search button{padding-inline:14px}.activity-form,.activity-management,.activity-match,.activity-list article{padding:16px}.activity-note,.activity-challenge{padding:16px}.activity-table th,.activity-table td{padding:12px 9px;font-size:.76rem}.activity-table th{font-size:.61rem}.activity-actions button{font-size:.75rem}.activity-challenge h3{font-size:1.1rem}}.home-page{--ink:var(--ro-text);--muted:var(--ro-muted);--paper:var(--ro-surface);--cream:var(--ro-surface-2);--teal:var(--ro-accent);--line:var(--ro-border);--shadow:var(--ro-shadow);min-height:100vh;background:var(--ro-bg);color:var(--ro-text);font-family:var(--ro-font-body);color-scheme:dark}.home-page :where(button,input,select,textarea){font:inherit}.home-page :where(button,a,input,select,textarea,summary){-webkit-tap-highlight-color:transparent}.home-page :where(button){min-height:40px;padding:9px 14px;border:1px solid var(--ro-border);border-radius:8px;background:var(--ro-surface-2);color:var(--ro-text);font-size:.85rem;font-weight:650;cursor:pointer;transition:background-color .15s,border-color .15s,transform .15s}.home-page :where(button):hover:not(:disabled){background:var(--ro-surface-3);border-color:var(--ro-control-border)}.home-page :where(button):active:not(:disabled){transform:translateY(1px)}.home-page :where(button):disabled{opacity:.45;cursor:not-allowed}.home-page :where(a){color:var(--ro-accent);text-decoration:none;cursor:pointer}.home-page :where(a):hover{text-decoration:underline}.home-page :where(button,a,input,select,textarea,summary):focus-visible{outline:2px solid var(--ro-accent);outline-offset:3px}.home-page :where(input,select,textarea){width:100%;min-height:44px;padding:11px 13px;border:1px solid var(--ro-control-border);border-radius:8px;background:var(--ro-bg);color:var(--ro-text);font-size:.88rem;line-height:1.45}.home-page :where(input)::placeholder,.home-page :where(textarea)::placeholder{color:var(--ro-muted);opacity:1}.home-page :where(textarea){min-height:100px;resize:none}.home-page :where(select){cursor:pointer}.home-page :where(label){font-size:.78rem;font-weight:600;color:var(--ro-muted)}.home-page :where(p){line-height:1.6}.home-page :where(h1,h2,h3,h4){color:var(--ro-text);text-wrap:balance}.home-page :where(small){line-height:1.55}.skip-link{position:fixed;left:16px;top:-80px;z-index:100;padding:12px;background:var(--ro-accent);color:var(--ro-bg)!important;border-radius:8px}.skip-link:focus{top:12px}.site-header{position:sticky;top:0;z-index:20;min-height:76px;display:flex;align-items:center;gap:44px;padding:12px max(28px,calc((100vw - 1320px)/2));background:#080b10f5;border-bottom:1px solid var(--ro-border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:11px;flex-shrink:0;color:var(--ro-text)!important;text-decoration:none!important}.brand-mark{position:relative;display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--ro-accent-glow);border-radius:10px;background:var(--ro-accent-dim);color:var(--ro-accent);font-size:1.5rem;font-weight:900;font-family:var(--ro-font-display);line-height:1}.brand-mark>span{position:absolute;right:4px;bottom:5px;font-size:.5rem;color:var(--ro-text)}.brand strong{font-size:1.25rem;letter-spacing:-.05em;line-height:1.15}.brand strong>span,.portal-footer>strong>span{color:var(--ro-accent)}.brand small{display:block;margin-top:4px;color:var(--ro-muted);font-size:.48rem;letter-spacing:.14em;font-weight:550}.site-header nav{display:flex;align-items:center;gap:26px;margin-right:auto}.site-header nav a{font-size:.84rem;font-weight:600;color:var(--ro-muted);white-space:nowrap}.site-header nav a:hover{color:var(--ro-text);text-decoration:none}.account-actions{display:flex;align-items:center;gap:8px;margin-left:auto;min-width:0}.account-actions button{font-size:.78rem}.account-button{background:var(--ro-accent)!important;color:var(--ro-bg)!important;border-color:var(--ro-accent)!important;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-button{background:transparent!important;border-color:transparent!important;color:var(--ro-muted)!important}.home-page main{max-width:1320px;margin:auto;padding:0 28px 24px}.hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:center;gap:64px;padding:42px 0 32px}.eyebrow{display:flex;align-items:center;gap:6px;color:var(--ro-accent);font-size:.63rem;font-weight:750;letter-spacing:.16em;text-transform:uppercase;margin-bottom:12px}.hero h1{font-family:var(--ro-font-display);font-size:clamp(2rem,3.25vw,3.1rem);font-weight:750;line-height:1.12;letter-spacing:-.045em}.hero h1 em{color:var(--ro-accent);font-style:normal}.hero-copy>p:not(.eyebrow):not(.guest-note){max-width:440px;margin:17px 0 20px;color:var(--ro-muted);font-size:.88rem;line-height:1.75}.hero-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:44px;padding:11px 16px;border:1px solid var(--ro-border);border-radius:8px;font-size:.82rem;font-weight:700;text-decoration:none!important}.primary-button{background:var(--ro-accent)!important;color:var(--ro-bg)!important;border-color:var(--ro-accent)!important}.primary-button:hover{filter:brightness(1.08)}.secondary-button{background:var(--ro-surface);color:var(--ro-text)!important}.secondary-button:hover{background:var(--ro-surface-2)}.guest-note{margin-top:16px;color:var(--ro-muted);font-size:.7rem}.signal-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--ro-accent);flex-shrink:0}.hero-library{padding:16px 18px 0;min-width:0;border:1px solid var(--ro-border);border-radius:14px;background:var(--ro-surface)}.library-caption{display:flex;justify-content:space-between;color:var(--ro-muted);font-size:.59rem;font-weight:700;letter-spacing:.16em}.library-caption>span:last-child{color:var(--ro-accent)}.hero-cartridges{display:flex;align-items:center;justify-content:center;gap:9px;height:165px;padding:18px 0 10px}.home-page .hero-cartridge{width:33.333%;min-width:0;position:relative;border-radius:7px;background:#353c48;border:1px solid #58616f;box-shadow:0 8px 16px #0007;padding:5px 5px 12px;transform:rotate(-9deg);transition:transform .18s}.home-page .hero-cartridge:hover{transform:rotate(-9deg) translateY(-5px);background:#414b5b}.home-page .cartridge-1{transform:translateY(-7px);z-index:1}.home-page .cartridge-1:hover{transform:translateY(-12px)}.home-page .cartridge-2{transform:rotate(9deg)}.home-page .cartridge-2:hover{transform:rotate(9deg) translateY(-5px)}.cartridge-label{height:88px;overflow:hidden;border-radius:3px;background:var(--ro-surface-2)}.cartridge-label img{display:block;width:100%;height:100%;object-fit:cover}.hero-cartridge>span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:5px 2px;font-size:.5rem;color:#f0f3f8}.hero-cartridge>i{position:absolute;left:20%;right:20%;bottom:5px;height:3px;border-radius:2px;background:#181c25}.hero-library>p{display:flex;align-items:center;gap:8px;border-top:1px solid var(--ro-border);padding:12px 0;color:var(--ro-muted);font-size:.63rem}.hero-library>p>span:last-child{margin-left:auto}.portal-section{padding:30px 0;scroll-margin-top:95px;border-bottom:1px solid var(--ro-border)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.section-heading h2,.community-band h2{font-family:var(--ro-font-display);font-size:1.65rem;font-weight:700;letter-spacing:-.035em;line-height:1.3}.section-heading .eyebrow{margin-bottom:6px}.section-heading>span{font-size:.78rem;color:var(--ro-muted)}.section-heading>div:last-child:not(:first-child){display:flex;gap:8px;flex-wrap:wrap}.section-heading button{font-size:.75rem}.catalog-section{padding-top:23px}.catalog-filters{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(0,1fr) minmax(0,1fr);gap:12px}.catalog-filters label,.search-label{display:grid;gap:7px}.search-field{display:flex;align-items:center;padding-left:14px;border:1px solid var(--ro-control-border);border-radius:8px;background:var(--ro-surface);overflow:hidden}.search-field>span{font-family:Arial,sans-serif;font-size:1.5rem;color:var(--ro-muted)}.home-page .search-field input{background:transparent;border:0;min-width:0;box-shadow:none;outline-offset:-3px;padding-left:10px}.search-field button{min-width:40px;padding:6px;border:0;background:transparent;font-size:1.3rem}.catalog-filters select{background:var(--ro-surface)}.catalog-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:18px 0}.catalog-tabs{display:flex;gap:6px;flex-wrap:wrap}.catalog-tabs button{min-height:34px;padding:7px 11px;font-size:.73rem;color:var(--ro-muted);border-color:transparent;background:transparent}.catalog-tabs button[aria-pressed=true]{background:var(--ro-accent-dim);color:var(--ro-accent);border-color:var(--ro-accent-glow)}.catalog-count{font-size:.72rem;color:var(--ro-muted);white-space:nowrap}.game-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.catalog-loading{display:flex;align-items:center;justify-content:center;gap:12px;min-height:300px;color:var(--ro-muted);font-size:.9rem}.portal-spinner{width:18px;height:18px;border:2px solid var(--ro-border);border-top-color:var(--ro-accent);border-radius:50%;animation:portal-spin .8s linear infinite}@keyframes portal-spin{to{transform:rotate(360deg)}}.catalog-more{display:flex;align-items:center;justify-content:center;gap:20px;padding-top:25px;color:var(--ro-muted);font-size:.75rem}.catalog-more button{min-width:190px}.catalog-footnote{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:24px;padding-top:20px;border-top:1px solid var(--ro-border)}.catalog-footnote p{font-size:.75rem;color:var(--ro-muted)}.catalog-footnote button{font-size:.73rem;background:transparent}.room-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.room-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px;border:1px solid var(--ro-border);border-radius:12px;background:var(--ro-surface)}.room-card h3{font-size:1rem;margin:6px 0}.room-card p{font-size:.77rem;color:var(--ro-muted)}.room-card-actions{display:flex;gap:7px}.room-card-actions button:first-child{background:var(--ro-accent);color:var(--ro-bg)}.live-badge,.intent{font-size:.6rem;letter-spacing:.1em;font-weight:750;color:var(--ro-accent)}.empty-state{display:flex;align-items:center;justify-content:center;gap:12px;flex-direction:column;padding:25px;border:1px dashed var(--ro-control-border);border-radius:12px;background:var(--ro-surface);text-align:center}.empty-state strong{font-size:.94rem}.empty-state p{font-size:.8rem;color:var(--ro-muted);max-width:60ch}.empty-state a{padding:7px 0;font-size:.83rem;font-weight:700}.page-error,.form-error{padding:13px 16px;border:1px solid var(--ro-danger-border);border-radius:9px;background:var(--ro-danger-dim);color:var(--ro-danger-text);font-size:.84rem}.page-error{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:15px 0}.page-error button{color:inherit;background:transparent}.event-list{display:grid;gap:12px}.event-card{display:grid;grid-template-columns:130px minmax(0,1fr) auto;gap:18px;align-items:center;padding:20px;border:1px solid var(--ro-border);border-radius:12px;background:var(--ro-surface)}.event-card time{font-size:.83rem;font-weight:700;color:var(--ro-accent)}.event-card h3{margin:5px 0;font-size:.95rem}.event-card p,.event-card small{font-size:.78rem;color:var(--ro-muted)}.event-card>div:last-child{display:grid;gap:9px;text-align:right;font-size:.7rem}.personal-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.personal-columns>div{min-width:0;padding:23px;background:var(--ro-surface);border:1px solid var(--ro-border);border-radius:12px}.personal-columns h3{margin-bottom:12px;font-size:.92rem}.personal-columns h3:not(:first-child){margin-top:24px}.mini-game-list{display:flex;gap:8px;flex-wrap:wrap}.mini-game-list button{font-size:.78rem}.muted,.empty-copy{color:var(--ro-muted);font-size:.83rem}.achievement-list{display:grid;gap:10px}.achievement-list article{display:grid;gap:5px;padding:15px;border:1px solid var(--ro-border);border-radius:10px;background:var(--ro-surface-2)}.achievement-list strong{font-size:.88rem}.achievement-list small{font-size:.76rem;color:var(--ro-muted)}.achievement-list strong,.achievement-list small,.personal-columns p{overflow-wrap:anywhere}.game-achievements>h3{font-size:1.1rem;margin-bottom:18px}.achievement-status{color:var(--ro-accent);font-size:.65rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.achievement-explainer{margin-top:18px;color:var(--ro-muted);font-size:.77rem}.achievement-explainer summary{cursor:pointer;min-height:32px;line-height:32px;color:var(--ro-text)}.achievement-explainer p{padding:8px 0;max-width:90ch}.community-band{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:42px;align-items:center;padding:38px 0}.community-band>div>p:not(.eyebrow){color:var(--ro-muted);font-size:.86rem;margin:15px 0}.community-band .lobby-chat{height:365px;min-height:0;box-shadow:none;background:var(--ro-surface)}.portal-footer{display:flex;align-items:center;gap:18px;border-top:1px solid var(--ro-border);padding:24px 0;color:var(--ro-muted);font-size:.72rem}.portal-footer>strong{font-size:1rem;letter-spacing:-.04em;color:var(--ro-text)}.portal-footer>a{margin-left:auto;font-size:.74rem}.portal-toast{position:fixed;right:24px;bottom:24px;z-index:80;max-width:min(380px,calc(100vw - 32px));padding:15px 20px;border:1px solid var(--ro-control-border);border-left:3px solid var(--ro-accent);border-radius:10px;background:var(--ro-surface-2);color:var(--ro-text);box-shadow:var(--ro-shadow);font-size:.84rem}.portal-toast.error{border-left-color:var(--ro-danger)}.portal-dialog-backdrop{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:24px;background:#020409bf;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);overflow:auto}.portal-dialog{position:relative;width:min(100%,500px);max-height:calc(100dvh - 48px);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;border:1px solid var(--ro-control-border);border-radius:18px;background:var(--ro-surface);box-shadow:0 28px 90px #000a;color:var(--ro-text)}.portal-dialog-wide{width:min(100%,940px)}.portal-dialog>header{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 24px;border-bottom:1px solid var(--ro-border);background:var(--ro-surface)}.portal-dialog h2{font-family:var(--ro-font-display);font-size:1.3rem;letter-spacing:-.025em}.portal-dialog .icon-button{display:grid;place-items:center;flex:none;width:36px;height:36px;min-height:36px;padding:0;font-size:1.5rem;font-weight:400;border-radius:50%;background:var(--ro-surface-2);color:var(--ro-muted)}.portal-dialog-content{padding:24px}.portal-dialog-content>p{margin-bottom:16px}.portal-form,.recovery-code,.game-detail{display:grid;gap:18px}.portal-form label{display:grid;gap:7px}.portal-form h3{font-size:1rem}.portal-form p{font-size:.81rem;color:var(--ro-muted)}.portal-form .form-error{color:var(--ro-danger-text)}.portal-form button:disabled{cursor:not-allowed}.dialog-tabs{display:flex;gap:6px;padding:0 0 20px}.dialog-tabs button{flex:1;color:var(--ro-muted);border-color:transparent;background:var(--ro-surface-2)}.dialog-tabs button.active{background:var(--ro-accent-dim);border-color:var(--ro-accent-glow);color:var(--ro-accent)}.recovery-code output{padding:20px;border:1px dashed var(--ro-accent);border-radius:9px;background:var(--ro-bg);color:var(--ro-accent);text-align:center;font-family:ui-monospace,monospace;font-size:1.08rem;word-break:break-all}.community-columns{display:grid;grid-template-columns:1fr 1fr;gap:26px}.community-columns section{min-width:0}.community-columns h3{margin:20px 0 12px;font-size:.95rem}.person-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:13px 0;border-bottom:1px solid var(--ro-border)}.avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--ro-accent-dim);color:var(--ro-accent);font-weight:750}.person-row div:not(.row-actions){display:grid}.person-row small{color:var(--ro-muted);font-size:.72rem}.row-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:end}.row-actions button{padding:7px 10px;font-size:.72rem}.person-name{display:grid;min-height:0!important;padding:0!important;border:0!important;background:transparent!important;text-align:left}.invitation-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:12px 0;border-bottom:1px solid var(--ro-border);font-size:.8rem}.invitation-row span{margin-right:auto}.public-profile{position:absolute;inset:76px 24px 24px;padding:24px;border:1px solid var(--ro-control-border);border-radius:12px;background:var(--ro-surface);box-shadow:var(--ro-shadow);overflow:auto;z-index:3}.public-profile>.icon-button{float:right}.inline-report{display:grid;gap:9px;padding:15px;margin:12px 0;border:1px solid var(--ro-border);border-radius:9px;background:var(--ro-surface-2)}.inline-report label{display:grid;gap:8px}.password-form{border-top:1px solid var(--ro-border);padding-top:24px;margin-top:24px}.game-detail img{display:block;width:100%;max-height:250px;object-fit:contain;border-radius:9px;background:var(--ro-bg)}.game-detail p{font-size:.88rem;line-height:1.75}.detail-meta{margin-top:15px;color:var(--ro-accent);font-size:.76rem!important}.dialog-actions{display:flex;gap:10px;flex-wrap:wrap}.dialog-actions>button{flex:1}.dialog-hint{font-size:.78rem;color:var(--ro-muted)}@media(max-width:1100px){.site-header{gap:25px}.site-header nav{gap:18px}.hero{gap:30px}.game-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hero-library{padding-inline:12px}.cartridge-label{height:73px}.hero-cartridges{height:150px}}@media(max-width:800px){.site-header{flex-wrap:wrap;gap:8px 20px;padding:13px 20px}.site-header nav{order:3;flex-basis:100%;justify-content:center;border-top:1px solid var(--ro-border);padding-top:9px;margin-top:3px;gap:38px}.site-header nav a{font-size:.76rem}.home-page main{padding-inline:20px}.hero{gap:22px;padding-top:28px}.hero h1{font-size:2rem}.hero-library{display:none}.hero{grid-template-columns:1fr}.hero-copy>p:not(.eyebrow):not(.guest-note){max-width:560px}.hero h1 br{display:none}.hero h1 em{display:block}.portal-section{scroll-margin-top:125px}.catalog-filters{grid-template-columns:1fr 1fr}.catalog-search{grid-column:1/-1}.game-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.room-grid,.personal-columns,.community-band{grid-template-columns:1fr}.community-band{gap:22px}.community-columns{grid-template-columns:1fr}.event-card{grid-template-columns:110px minmax(0,1fr)}.event-card>div:last-child{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between}.brand small{display:none}.account-actions button{padding:8px 10px;min-height:38px}.account-button{max-width:145px}.account-actions{gap:3px}.catalog-footnote{align-items:start}.catalog-footnote p{max-width:65%}}@media(max-width:520px){.site-header{padding:11px 16px}.brand{gap:8px}.brand strong{font-size:1.1rem}.brand-mark{width:30px;height:32px;font-size:1.2rem}.account-actions button{font-size:.66rem;padding:7px}.account-button{max-width:122px}.account-actions .text-button{min-width:32px;padding:5px}.account-actions:has(button:nth-child(3)){gap:2px}.site-header:has(.account-actions button:nth-child(3)) .brand strong{display:none}.home-page main{padding-inline:16px}.hero{padding:26px 0 20px}.hero h1{font-size:1.95rem;max-width:350px}.hero-copy>p:not(.eyebrow):not(.guest-note){font-size:.82rem;margin:13px 0 17px}.hero-actions{gap:7px}.hero-actions a{font-size:.73rem;padding:10px 12px;gap:10px}.guest-note{font-size:.66rem;margin-top:12px}.eyebrow{font-size:.57rem}.section-heading{gap:12px;align-items:center}.section-heading h2,.community-band h2{font-size:1.3rem}.section-heading button{font-size:.66rem;padding:8px 10px}.catalog-section .section-heading>button{max-width:118px;min-height:42px}.catalog-filters{gap:10px}.catalog-filters label{font-size:.68rem}.catalog-filters select,.catalog-filters input{font-size:.75rem;padding:10px;min-height:44px}.catalog-toolbar{align-items:start;gap:8px;flex-wrap:wrap;margin:14px 0}.catalog-tabs{gap:3px}.catalog-tabs button{font-size:.65rem;padding:7px 9px;min-height:36px}.catalog-count{font-size:.65rem;margin-left:auto;line-height:30px}.game-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.catalog-more,.catalog-footnote{flex-direction:column;gap:12px}.catalog-footnote p{max-width:none}.room-card{flex-direction:column;align-items:start;padding:18px}.room-card-actions{width:100%}.room-card-actions button{flex:1}.event-card{grid-template-columns:1fr;gap:10px;padding:17px}.event-card>div:last-child{grid-column:auto}.portal-section{padding-block:25px}.personal-columns>div{padding:18px}.portal-footer{flex-wrap:wrap;gap:10px;font-size:.64rem}.portal-footer p{display:none}.portal-dialog-backdrop{padding:10px;align-items:center}.portal-dialog{position:relative;width:100%;max-height:calc(100dvh - 20px);border-radius:14px}.portal-dialog>header{padding:17px 18px;gap:12px}.portal-dialog h2{font-size:1.15rem}.portal-dialog-content{padding:18px}.person-row{grid-template-columns:auto 1fr}.row-actions{grid-column:1/-1;justify-content:start}.dialog-actions{flex-direction:column}.public-profile{inset:70px 10px 10px;padding:18px}.page-error{flex-wrap:wrap}.portal-toast{right:16px;bottom:16px}.community-band .lobby-chat{height:360px}}@media(prefers-reduced-motion:reduce){.home-page *,.home-page *:before,.home-page *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media(forced-colors:active){.home-page button,.game-card,.portal-dialog,.search-field{border:1px solid ButtonText}.home-page :focus-visible{outline:2px solid Highlight}.signal-dot{background:Highlight}}.featured-rooms{padding:8px 0 30px}.featured-rooms .section-heading{margin-bottom:16px}.featured-rooms .section-heading h2{font-size:1.4rem}.featured-rooms .section-heading>a{font-size:.8rem;white-space:nowrap}.featured-rooms-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.home-page .room-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.home-page .room-card{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:0;min-width:0;border:1px solid var(--ro-border);background:var(--ro-surface);border-radius:12px;overflow:hidden}.room-preview{position:relative;aspect-ratio:16 / 9;overflow:hidden;background:var(--ro-bg);border-bottom:1px solid var(--ro-border)}.room-preview img{display:block;width:100%;height:100%;object-fit:contain}.room-preview-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;height:100%;color:var(--ro-muted)}.room-preview-empty>span{font-size:2rem;color:var(--ro-control-border)}.room-preview-empty small{font-size:.7rem}.room-live-label{position:absolute;top:10px;left:10px;display:flex;align-items:center;gap:6px;background:var(--ro-bg);border:1px solid var(--ro-border);border-radius:5px;padding:4px 7px;font-size:.6rem;color:var(--ro-text)}.room-live-label i{width:5px;height:5px;border-radius:50%;background:var(--ro-accent)}.room-card-info{padding:17px;min-width:0;flex:1}.room-card-heading{display:flex;align-items:start;gap:10px}.home-page .room-card h3{margin:0;font:650 1rem/1.35 var(--ro-font-display);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;min-width:0;flex:1}.room-availability{font-size:.6rem;white-space:nowrap;padding:4px 6px;border-radius:5px;background:var(--ro-surface-2);color:var(--ro-muted)}.room-availability.has-seats{background:var(--ro-accent-dim);color:var(--ro-accent)}.home-page .room-card .room-host{margin:9px 0 3px;font-size:.75rem;color:var(--ro-muted);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.room-host strong{color:var(--ro-text);font-weight:500}.home-page .room-card .room-players{margin:0 0 15px;font-size:.7rem;color:var(--ro-muted)}.home-page .room-card-actions{display:flex;gap:8px;width:100%}.home-page .room-card-actions>:is(a,button){display:flex;align-items:center;justify-content:center;gap:12px;min-height:38px;flex:1;padding:8px 10px;font-size:.73rem;font-weight:650;border-radius:7px;white-space:nowrap;text-decoration:none}.room-card-actions .room-play{background:var(--ro-accent-dim);border:1px solid var(--ro-accent-glow);color:var(--ro-accent)}.room-card-actions .room-play:hover{background:var(--ro-accent);color:var(--ro-bg)}.room-card-actions .room-watch{color:var(--ro-muted);border:1px solid var(--ro-border)}.room-card-actions .room-watch:hover{color:var(--ro-text);background:var(--ro-surface-2)}.home-page .room-card-compact{flex-direction:row}.room-card-compact .room-preview{width:108px;min-width:108px;aspect-ratio:auto;border-bottom:0;border-right:1px solid var(--ro-border)}.room-card-compact .room-preview img{object-fit:contain}.room-card-compact .room-preview-empty{padding:8px;text-align:center}.room-card-compact .room-live-label{top:6px;left:6px;font-size:.5rem;padding:3px 5px}.room-card-compact .room-card-info{padding:12px}.room-card-compact .room-card-heading{flex-wrap:wrap;gap:5px}.home-page .room-card-compact h3{font-size:.85rem;min-height:2.7em;flex-basis:100%}.room-card-compact .room-availability{padding:0;background:transparent}.home-page .room-card-compact .room-host{margin-top:5px;font-size:.68rem}.home-page .room-card-compact .room-players{display:none}.home-page .room-card-compact .room-card-actions{margin-top:10px;gap:5px}.home-page .room-card-compact .room-card-actions>:is(a,button){font-size:.66rem;padding:7px;gap:4px}.rooms-loading{display:flex;align-items:center;justify-content:center;gap:12px;min-height:162px;color:var(--ro-muted);font-size:.85rem}.rooms-count,.section-description{color:var(--ro-muted);font-size:.8rem}.section-description{margin:-4px 0 22px}.featured-rooms-empty{display:flex;align-items:center;gap:18px;padding:24px;border:1px dashed var(--ro-control-border);border-radius:12px;background:var(--ro-surface)}.featured-rooms-empty>span{font-size:2rem;color:var(--ro-accent)}.featured-rooms-empty strong{font-size:.9rem}.featured-rooms-empty p{margin:5px 0 0;font-size:.8rem;color:var(--ro-muted)}.featured-rooms-empty>:is(a,button){margin-left:auto;white-space:nowrap;font-size:.8rem}@media(max-width:1100px){.featured-rooms-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.featured-rooms-grid>:nth-child(3){display:none}.home-page .room-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.featured-rooms-grid,.home-page .room-grid{grid-template-columns:1fr}.featured-rooms .section-heading{align-items:start}.featured-rooms .section-heading h2{font-size:1.2rem}.featured-rooms .section-heading>a{font-size:.65rem;white-space:normal;max-width:85px;text-align:right}.featured-rooms-empty{flex-wrap:wrap;padding:18px}.featured-rooms-empty>:is(a,button){margin-left:0}.room-card-compact .room-preview{width:100px;min-width:100px}}.room-settings{display:grid;gap:20px;color:var(--ro-text);font-family:var(--ro-font-body)}.room-settings button{min-height:40px;padding:9px 13px;border:1px solid var(--ro-control-border);border-radius:8px;background:var(--ro-surface-2);color:var(--ro-text);font:650 .78rem/1.35 var(--ro-font-body)}.room-settings button:not(:disabled):hover{border-color:var(--ro-accent);background:var(--ro-surface-3)}.room-settings button:disabled{opacity:.48;cursor:not-allowed}.room-settings :is(button,input,select,textarea):focus-visible{outline:2px solid var(--ro-accent);outline-offset:3px}.room-settings-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--ro-border);border-radius:12px;background:var(--ro-bg);overflow:hidden}.room-settings-summary>div{display:grid;gap:3px;min-width:0;padding:14px 16px;border-right:1px solid var(--ro-border)}.room-settings-summary>div:last-child{border:0}.room-settings-summary span,.room-settings-heading span{color:var(--ro-muted);font-size:.62rem;font-weight:750;letter-spacing:.12em;text-transform:uppercase}.room-settings-summary strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem}.room-settings-tabs{display:flex;gap:5px;padding:4px;border:1px solid var(--ro-border);border-radius:10px;background:var(--ro-bg)}.room-settings-tabs button{flex:1;border-color:transparent;background:transparent;color:var(--ro-muted)}.room-settings-tabs button[aria-current]{border-color:var(--ro-control-border);background:var(--ro-surface-3);color:var(--ro-accent)}.room-settings-form,.room-people{display:grid;gap:16px}.room-settings-section{display:grid;gap:16px;padding:20px;border:1px solid var(--ro-border);border-radius:12px;background:var(--ro-bg)}.room-settings-heading{display:flex;align-items:start;justify-content:space-between;gap:16px}.room-settings-heading h3{margin-top:3px;font:750 1rem/1.3 var(--ro-font-display)}.room-settings-heading small{color:var(--ro-muted);font-size:.7rem}.room-settings label,.room-moderation-form label{display:grid;gap:7px;color:var(--ro-muted);font-size:.78rem}.room-settings :is(input[type=text],input[type=password],textarea,select){width:100%;min-width:0;min-height:44px;padding:10px 12px;border:1px solid var(--ro-control-border);border-radius:8px;background:var(--ro-surface);color:var(--ro-text);font:inherit;color-scheme:dark}.room-settings textarea{resize:vertical;line-height:1.5}.room-settings :is(input,textarea):disabled{opacity:.52;cursor:not-allowed}.room-settings fieldset{min-width:0;border:0}.room-settings legend{margin-bottom:9px;color:var(--ro-muted);font-size:.75rem}.room-visibility{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.room-visibility legend{grid-column:1/-1}.room-visibility label,.room-toggle{display:flex;align-items:start;gap:10px;min-width:0;padding:13px;border:1px solid var(--ro-border);border-radius:9px;background:var(--ro-surface);cursor:pointer}.room-visibility input,.room-toggle input,.room-password-options input{flex:none;width:18px;height:18px;margin-top:1px;accent-color:var(--ro-accent)}.room-visibility span,.room-toggle span{display:grid;gap:3px}.room-visibility strong,.room-toggle strong{color:var(--ro-text);font-size:.79rem}.room-visibility small,.room-toggle small,.room-settings label small{color:var(--ro-muted);font-size:.7rem;line-height:1.45}.room-visibility label:has(input:checked),.room-toggle:has(input:checked){border-color:var(--ro-accent-glow);background:var(--ro-accent-dim)}.room-visibility:disabled label,.room-toggle:has(input:disabled){cursor:not-allowed;opacity:.55}.room-password-options{display:flex;flex-wrap:wrap;gap:14px}.room-password-options label{display:flex;align-items:center;gap:7px;color:var(--ro-text)}.room-new-password{display:grid;gap:9px}.room-password-reveal{display:flex!important;align-items:center;gap:8px;color:var(--ro-text)!important}.room-password-reveal input{width:18px;height:18px;accent-color:var(--ro-accent)}.room-settings-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}.room-settings-callout,.room-settings-notice,.room-settings-premium-help{padding:13px 15px;border:1px solid var(--ro-accent-glow);border-radius:9px;background:var(--ro-accent-dim);color:var(--ro-text);font-size:.78rem}.room-settings-error{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;border:1px solid var(--ro-danger-border);border-radius:9px;background:var(--ro-danger-dim);color:var(--ro-danger-text);font-size:.8rem}.room-settings-error button{color:inherit}.room-settings-loading,.room-settings-empty{padding:18px;color:var(--ro-muted);font-size:.8rem;text-align:center}.room-people-list,.room-restriction-list{display:grid}.room-people-list article,.room-restriction-list article{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 0;border-bottom:1px solid var(--ro-border)}.room-people-list article:last-child,.room-restriction-list article:last-child{border-bottom:0}.room-people-list article>div:first-child,.room-restriction-list article>div:first-child{display:grid;min-width:0;gap:3px}.room-people-list small,.room-restriction-list small{color:var(--ro-muted);font-size:.7rem;overflow-wrap:anywhere}.room-person-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.room-settings .danger-button{border-color:var(--ro-danger-border);background:var(--ro-danger-dim);color:var(--ro-danger-text)}.room-settings .danger-button:not(:disabled):hover{border-color:var(--ro-danger);background:var(--ro-danger-dim)}.room-moderation-form,.room-close-confirm{display:grid;gap:12px;padding:17px;border:1px solid var(--ro-warning-border);border-radius:10px;background:var(--ro-warning-dim)}.room-moderation-form p,.room-close-confirm p,.room-danger-zone p{color:var(--ro-muted);font-size:.76rem}.room-moderation-form>div,.room-close-confirm>div{display:flex;gap:8px;flex-wrap:wrap}.room-queue{display:grid;gap:8px;padding-left:25px;color:var(--ro-muted);font-size:.8rem}.room-danger-zone{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px;border:1px solid var(--ro-danger-border);border-radius:12px;background:var(--ro-danger-dim)}.room-danger-zone>div:first-child{display:grid;gap:4px}.room-danger-zone .room-close-confirm{flex:1}@media(max-width:680px){.room-settings-summary{grid-template-columns:1fr}.room-settings-summary>div{border-right:0;border-bottom:1px solid var(--ro-border)}.room-visibility{grid-template-columns:1fr}.room-settings-section{padding:16px}.room-people-list article,.room-restriction-list article,.room-danger-zone{align-items:stretch;flex-direction:column}.room-person-actions{justify-content:stretch}.room-person-actions button{flex:1}.room-settings-actions{flex-direction:column}.room-settings-actions button{width:100%}}@media(prefers-reduced-motion:reduce){.room-settings *{scroll-behavior:auto!important;transition:none!important}}@media(forced-colors:active){.room-settings button,.room-settings-section,.room-settings :is(input,textarea),.room-settings-summary{border:1px solid ButtonText}.room-settings :focus-visible{outline:2px solid Highlight}}.game-room{min-height:100vh;height:100vh;display:flex;flex-direction:column;background:#000;color:#fff;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.game-header{background:#1a1a1a;padding:10px 20px;border-bottom:2px solid #333;display:flex;justify-content:space-between;align-items:center;min-height:60px}.header-left{display:flex;align-items:center;gap:15px}.back-btn{background:#333;color:#fff;border:1px solid #444;padding:8px 15px;border-radius:6px;cursor:pointer;display:flex;align-items:center;gap:8px;font-size:.9rem;transition:all .2s}.back-btn:hover{background:#444;border-color:#f5576c}.room-info h2{font-size:1.1rem;color:#4ecdc4;margin:0}.room-info p{margin:0;font-size:.9rem;color:#aaa}.room-stats{font-size:.8rem;color:#888;margin-top:2px}.center-controls-bar{display:flex;justify-content:center;align-items:center;gap:20px;padding:10px;background:#ffffff08;border-bottom:1px solid #222;flex-wrap:wrap}.personal-controls-action{display:flex;flex-direction:column;align-items:center;gap:5px}.personal-controls-action>span{font:12px/1.4 system-ui;color:#b8d8d5}.control-btn.personal-controls-btn{background:#4ecdc4;color:#092322;border:1px solid #8ae8e1;font:700 15px/1.3 system-ui;padding:12px 18px;min-height:44px;border-radius:9px}.control-btn.personal-controls-btn:hover{background:#7fe1da}.slots-caption{align-self:center;color:#bbb;font:12px system-ui}.player-slots-bar{flex-wrap:wrap;justify-content:center}.slot-btn:disabled{cursor:default;opacity:.75}.size-controls label{font:13px system-ui;white-space:nowrap}.controls-saved-notice{text-align:center;color:#9fe3b2;margin:6px 12px;font:13px system-ui}.friendly-help p{font:15px/1.6 system-ui;color:#d0dbdc}.friendly-help summary{cursor:pointer;padding:8px 0;font:600 14px system-ui}.emulator-wrapper .ejs_context_menu{display:none!important}.personal-controls-btn:focus-visible,.slot-btn:focus-visible{outline:3px solid #fff;outline-offset:3px}@media(max-width:720px){.game-header{flex-wrap:wrap;gap:10px;padding:10px}.game-header .controls{flex-wrap:wrap;gap:6px}.center-controls-bar{gap:12px}.personal-controls-action{width:100%}.personal-controls-action button{width:100%;max-width:360px}}.latency-badge{font-size:.65rem;padding:2px 5px;border-radius:4px;background:#00000080;margin-left:8px;font-family:monospace;font-weight:700}.latency-badge.low{color:#2ed573}.latency-badge.mid{color:#ffa502}.latency-badge.high{color:#ff4757}.online-user .latency-badge{margin-left:5px}.user-meta{margin-left:auto;display:flex;align-items:center;gap:8px}.conn-type{font-size:.6rem;padding:1px 4px;border-radius:3px;font-weight:700;text-transform:uppercase}.conn-type.p2p{background:#2ed57326;color:#2ed573;border:1px solid rgba(46,213,115,.3)}.conn-type.relay{background:#ff475726;color:#ff4757;border:1px solid rgba(255,71,87,.3)}.chat-conn-type{font-size:.65rem;opacity:.6;font-weight:400;margin-left:4px}.release-btn .latency-badge{background:#fff3}.controls{display:flex;gap:12px;align-items:center}.player-slots-bar{display:flex;gap:8px;background:#222;padding:5px 10px;border-radius:6px;border:1px solid #333}.slot-btn{padding:6px 12px;border:none;border-radius:4px;font-size:.75rem;font-weight:700;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:5px}.slot-btn.host-slot{background:#333;color:#fff}.slot-btn.host-slot.unlocked{border-left:3px solid #28a745}.slot-btn.host-slot.locked{border-left:3px solid #dc3545;opacity:.7}.slot-btn.take-btn{background:#667eea;color:#fff}.slot-btn.release-btn{background:#f5576c;color:#fff}.slot-btn:hover{filter:brightness(1.2)}.insert-coin-btn{padding:8px 16px;background:linear-gradient(135deg,gold,#ffb347);color:#000;border:2px solid #ffa500;border-radius:8px;font-size:.85rem;font-weight:700;cursor:pointer;transition:all .3s;display:flex;align-items:center;gap:6px;box-shadow:0 2px 8px #ffd7004d;text-transform:uppercase;letter-spacing:.5px}.insert-coin-btn:hover{background:linear-gradient(135deg,#ffed4e,gold);box-shadow:0 4px 12px #ffd70080;transform:translateY(-2px)}.insert-coin-btn:active{transform:translateY(0);box-shadow:0 2px 4px #ffd7004d}.control-btn.warning{background:#ff9800;color:#fff}.size-controls{display:flex;align-items:center;gap:10px;background:#222;padding:5px 12px;border-radius:6px;border:1px solid #333}.size-slider{width:100px;cursor:pointer}.size-label{font-size:.8rem;color:#4ecdc4;font-family:monospace;min-width:50px}.control-btn{padding:10px 18px;border:none;border-radius:6px;font-weight:700;cursor:pointer;transition:transform .1s,background .2s;font-size:.9rem}.control-btn:active{transform:scale(.95)}.control-btn.primary{background:#667eea;color:#fff}.control-btn.success{background:#28a745;color:#fff}.control-btn.danger{background:#dc3545;color:#fff}.control-btn:not(.primary):not(.success):not(.danger):not(.personal-controls-btn){background:#333;color:#eee}.status-badge{padding:8px 15px;border-radius:20px;font-size:.85rem;font-weight:700}.status-badge.success{background:#28a74533;color:#28a745;border:1px solid #28a745}.game-content{flex:1;display:flex;overflow:hidden}.emulator-section{flex:1;background:#080808;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;padding:20px}.host-view,.remote-view{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.emulator-wrapper{width:100%;height:100%;display:flex;align-items:center;justify-content:center}#game .ejs_popup_container,#game .ejs_popup_box,#game .ejs_popup_body,#game .ejs_cheat_parent{pointer-events:auto}.stream-container{position:relative;display:flex;align-items:center;justify-content:center;background:#000;box-shadow:0 0 30px #00000080;border:4px solid #333;border-radius:4px;overflow:hidden}.stream-video,.stream-img{width:100%;height:100%;object-fit:fill;image-rendering:pixelated;background:#000;transition:opacity .3s ease}.stream-video.hidden{position:absolute;opacity:0;pointer-events:none}.stream-video.visible{position:relative;opacity:1}.guest-player-view,.guest-emulator-container{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center}.guest-emulator-container{background:#000;box-shadow:0 0 30px #00000080;border:4px solid #333;border-radius:4px;overflow:hidden}.netplay-join-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#000000b8;z-index:20}.netplay-join-overlay.error .connection-attempt-card{border-color:#ff4757}.remote-view{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:auto}@media(max-width:1024px){.stream-img,.stream-video{width:100%;height:auto;aspect-ratio:4/3}}.placeholder{color:#666;font-size:1.2rem;text-align:center;padding:40px;background:#111;border-radius:12px;border:2px dashed #222}.connection-attempt-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#00000059}.connection-attempt-card{background:#141414eb;border:1px solid #2a2a2a;border-radius:12px;padding:16px 20px;color:#fff;text-align:center;min-width:240px;box-shadow:0 0 24px #00000080}.connection-attempt-title{color:#4ecdc4;font-size:1rem;margin-bottom:8px}.connection-attempt-row{color:#ddd;font-size:.95rem;margin:4px 0}.stream-reminder{position:absolute;bottom:20px;background:#000c;padding:10px 20px;border-radius:30px;color:#ff9800;font-weight:700;border:1px solid #ff9800;animation:pulse 2s infinite;pointer-events:none;z-index:5}.rom-error-overlay{display:flex;align-items:center;justify-content:center;background:#111;border:2px solid #dc3545;border-radius:8px}.rom-error-card{text-align:center;padding:2rem;max-width:420px}.rom-error-card h3{color:#ff6b6b;margin-bottom:.75rem}.rom-error-card p{color:#ccc;margin:.5rem 0}.rom-error-hint{font-size:.9rem;color:#888!important}.rom-error-card code{background:#222;padding:2px 6px;border-radius:4px;font-size:.85rem}.guest-play-view{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%}.netplay-join-banner{background:#ff980026;border:1px solid #ff9800;color:#ffb74d;padding:10px 16px;border-radius:8px;font-weight:600;text-align:center;max-width:600px}.netplay-join-banner.ready{background:#28a74526;border-color:#28a745;color:#7dcea0}.netplay-join-banner.error{background:#dc354526;border-color:#dc3545;color:#ff8a95}.join-p2-cta{margin-top:16px;text-align:center;padding:16px;background:#667eea1a;border:2px dashed #667eea;border-radius:12px;max-width:520px}.join-p2-cta p{color:#aaa;margin-bottom:12px;font-size:.95rem}.join-p2-title{color:#fff!important;margin:0 0 4px!important;font-size:1.15rem!important;font-weight:700;letter-spacing:.5px}.join-p2-subtitle{display:block;color:#bbb;margin-bottom:14px;font-size:.85rem}.take-btn-prominent{background:linear-gradient(135deg,#667eea,#764ba2)!important;font-size:1rem!important;padding:10px 20px!important;font-weight:700}.slot-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:10px;margin-bottom:12px}.slot-picker-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:12px 8px;border-radius:12px;border:2px solid transparent;cursor:pointer;background:linear-gradient(135deg,#2a2f4a,#1e2238);color:#fff;font-family:inherit;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease,filter .15s ease;min-height:92px}.slot-picker-card.available{border-color:#28a745;box-shadow:0 0 #28a74566;animation:slotPulse 2.4s ease-in-out infinite}.slot-picker-card.available:hover{transform:translateY(-3px) scale(1.04);box-shadow:0 8px 22px #28a74573;filter:brightness(1.1);background:linear-gradient(135deg,#2f8a4a,#1e5a32)}.slot-picker-card.available:active{transform:translateY(-1px) scale(1.02)}.slot-picker-card.disabled{cursor:not-allowed;opacity:.55}.slot-picker-card.occupied{border-color:#6c757d;background:linear-gradient(135deg,#3a3f55,#25283a)}.slot-picker-card.locked{border-color:#dc3545;background:linear-gradient(135deg,#4a2a30,#2a1820)}.slot-picker-num{font-size:1.5rem;font-weight:800;letter-spacing:1px;line-height:1}.slot-picker-icon{font-size:1.3rem;line-height:1}.slot-picker-status{font-size:.7rem;text-transform:uppercase;letter-spacing:.6px;opacity:.85;margin-top:2px}.slot-picker-auto{width:100%;padding:10px 16px;border:1px dashed rgba(255,255,255,.25);border-radius:10px;background:transparent;color:#cdd2ff;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.slot-picker-auto:hover{background:#667eea26;border-color:#667eea;color:#fff}@keyframes slotPulse{0%,to{box-shadow:0 0 #28a74559}50%{box-shadow:0 0 0 8px #28a74500}}.player-active-banner{position:absolute;bottom:12px;left:50%;transform:translate(-50%);background:#667eeaf2;color:#fff;padding:8px 12px 8px 16px;border-radius:20px;font-weight:700;font-size:.9rem;z-index:10;display:inline-flex;align-items:center;gap:10px;box-shadow:0 4px 16px #00000059;animation:bannerFadeIn .25s ease-out;max-width:92%}.player-active-banner-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-active-banner-close{flex:none;width:22px;height:22px;border-radius:50%;border:none;background:#dc3545;color:#fff;font-size:1rem;font-weight:700;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;transition:transform .15s ease,background .15s ease;box-shadow:0 2px 6px #0000004d}.player-active-banner-close:hover{background:#ff4d5e;transform:scale(1.1)}.player-active-banner-close:active{transform:scale(.95)}@keyframes bannerFadeIn{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@keyframes pulse{0%{transform:scale(1);opacity:.8}50%{transform:scale(1.05);opacity:1}to{transform:scale(1);opacity:.8}}.chat-section{width:320px;background:#111;border-left:2px solid #222;display:flex;flex-direction:column}.online-users{background:#1a1a1a;border-bottom:2px solid #222;padding:12px}.online-users-title{font-size:.85rem;color:#4ecdc4;font-weight:700;margin-bottom:8px}.online-users-list{display:flex;flex-direction:column;gap:6px;max-height:150px;overflow-y:auto}.online-user{display:flex;align-items:center;gap:8px;font-size:.85rem;padding:4px 8px;background:#ffffff0d;border-radius:4px}.user-badge{padding:2px 6px;border-radius:10px;font-size:.7rem;font-weight:700;white-space:nowrap}.user-badge.host{background:#667eea;color:#fff}.user-badge.p2{background:#f5576c;color:#fff}.user-badge.viewer{background:#4ecdc4;color:#000}.user-nick{flex:1;min-width:0;white-space:nowrap;color:#ccc;overflow:hidden;text-overflow:ellipsis}.online-users-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.online-users-title small{color:var(--ro-muted);font-size:.65rem;font-weight:400}.viewer-label{color:var(--ro-muted);font-size:.65rem;white-space:nowrap}.player-signal{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;min-width:65px;padding:3px 6px;border:1px solid var(--ro-border);border-radius:6px;background:var(--ro-bg);font:500 11px/1.4 var(--ro-font-body);vertical-align:middle;color:var(--ro-muted)}.player-signal-icon{display:inline-grid;place-items:center;width:14px;height:14px;border:1px solid currentColor;border-radius:50%;font-weight:700;font-size:10px}.player-signal-ping{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--ro-text)}.signal-ready{color:var(--ro-accent)}.signal-waiting,.signal-checking{color:var(--ro-warning-text)}.signal-error{color:var(--ro-danger-text)}.chat-message .player-signal{margin-left:5px;min-width:0;padding:1px 4px;font-size:10px}.sync-error-notice{display:grid;gap:5px;margin:8px 12px;padding:12px 16px;border:1px solid var(--ro-danger-border);border-radius:10px;color:var(--ro-danger-text);background:var(--ro-danger-dim);font-size:.8rem}@media(forced-colors:active){.player-signal,.player-signal-icon{border-color:CanvasText}}.chat-messages{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:12px}.chat-message{padding:10px 14px;border-radius:10px;font-size:.9rem;max-width:90%;word-wrap:break-word}.chat-message.user{background:#222;align-self:flex-start;border-bottom-left-radius:2px}.chat-message.system{background:#ff98001a;color:#ff9800;font-style:italic;font-size:.8rem;align-self:center;text-align:center}.chat-message b{color:#4ecdc4;margin-right:5px}.chat-input-form{padding:15px;background:#1a1a1a;display:flex;gap:8px;border-top:2px solid #222}.chat-input-form input{flex:1;background:#000;border:1px solid #333;color:#fff;padding:10px 12px;border-radius:6px;font-size:.9rem}.chat-input-form input:focus{outline:none;border-color:#4ecdc4}.chat-send-btn{padding:10px 16px;background:#4ecdc4;border:none;border-radius:6px;font-size:1.2rem;cursor:pointer;transition:all .2s}.chat-send-btn:hover:not(:disabled){background:#3bb5ad;transform:scale(1.05)}.chat-send-btn:disabled{opacity:.3;cursor:not-allowed}.loading,.error-container{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#000;color:#fff;gap:20px}.error-container h2{color:#f5576c}.connection-overlay{position:fixed;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:9999;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.connection-status{text-align:center;background:#1a1a1a;padding:40px;border-radius:20px;border:2px solid #4ecdc4;box-shadow:0 0 30px #4ecdc480}.connection-spinner{width:60px;height:60px;border:6px solid rgba(78,205,196,.2);border-top:6px solid #4ecdc4;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 20px}.connection-status h3{color:#4ecdc4;margin:0 0 15px;font-size:1.5rem}.connection-status p{color:#ccc;font-size:1rem;margin:0}.f2-menu-overlay{position:fixed;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:3000;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.f2-menu{background:#141414;border:2px solid #2a2a2a;border-radius:16px;width:92%;max-width:720px;padding:20px 24px;box-shadow:0 0 40px #0009}.f2-menu-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.f2-menu-header h3{margin:0;color:#4ecdc4}.f2-close{background:#333;color:#fff;border:1px solid #444;padding:6px 12px;border-radius:6px;cursor:pointer}.f2-section{margin-top:16px;padding-top:12px;border-top:1px solid #222}.f2-section h4{margin:0 0 10px;color:#ff9800;font-size:.95rem}.f2-row{display:flex;align-items:center;justify-content:space-between;margin:6px 0;font-size:.9rem}.f2-actions{gap:8px;flex-wrap:wrap}.f2-btn{background:#2b2b2b;color:#fff;border:1px solid #444;padding:6px 10px;border-radius:6px;cursor:pointer;font-size:.85rem}.f2-btn.active{background:#4ecdc4;color:#000;border-color:#4ecdc4}.f2-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;align-items:center;font-size:.85rem}.f2-grid label{color:#ddd}.f2-grid select,.f2-grid input[type=range]{background:#0f0f0f;color:#fff;border:1px solid #333;border-radius:6px;padding:6px 8px}.f2-toggle{display:flex;align-items:center;gap:8px;font-size:.85rem}.f2-stats{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;font-size:.85rem;color:#ccc}.stats-overlay{position:fixed;background:#141414eb;border:1px solid #2a2a2a;border-radius:10px;padding:10px 12px;color:#ccc;font-size:.8rem;z-index:2600;min-width:220px;box-shadow:0 0 24px #00000073}.stats-overlay-title{color:#4ecdc4;font-size:.85rem;margin-bottom:6px}.stats-overlay-drag{cursor:move;-webkit-user-select:none;user-select:none}.stats-overlay-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px}.retroarch-hamburger-zone{position:absolute;top:0;left:0;right:0;height:48px;pointer-events:none;z-index:10}.retroarch-hamburger-zone .retroarch-hamburger-btn{pointer-events:auto;position:absolute;top:8px;left:8px;width:40px;height:40px;padding:0;border:none;border-radius:8px;background:#0009;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;opacity:0;transition:opacity .2s ease,background .2s ease}.retroarch-hamburger-zone .retroarch-hamburger-btn.visible,.retroarch-hamburger-zone .retroarch-hamburger-btn:hover{opacity:1;background:#000000bf}.retroarch-hamburger-bar{display:block;width:22px;height:3px;background:#fff;border-radius:2px}@media(max-width:900px){.game-content{flex-direction:column}.chat-section{width:100%;height:300px}}.game-room{height:100dvh;min-height:560px;background:var(--ro-bg);color:var(--ro-text);font-family:var(--ro-font-body);color-scheme:dark}.game-room :where(button,input){font-family:inherit}.game-room :where(button){cursor:pointer}.game-room :where(button):disabled{cursor:not-allowed}.game-room :where(button,input,a,[tabindex]):focus-visible{outline:2px solid var(--ro-accent);outline-offset:3px}.game-room .game-header{flex-shrink:0;padding:14px 24px;gap:20px;background:var(--ro-surface);border-bottom:1px solid var(--ro-border)}.game-room .header-left,.game-room .room-info{min-width:0}.room-overline{margin:0 0 5px;font:650 .6rem/1.3 var(--ro-font-body);letter-spacing:.12em;color:var(--ro-muted)}.game-room .room-info h2{color:var(--ro-text);font:650 1.15rem/1.3 var(--ro-font-display);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-room .room-stats{margin-top:5px;color:var(--ro-muted);font-size:.68rem}.game-room .controls{gap:8px;flex-wrap:wrap;justify-content:end}.game-room :is(.back-btn,.control-btn){min-height:38px;padding:9px 12px;border:1px solid var(--ro-control-border);border-radius:8px;background:var(--ro-surface-2);color:var(--ro-text);font:600 .75rem/1.3 var(--ro-font-body);transition:background-color .15s,border-color .15s}.game-room :is(.back-btn,.control-btn):hover{background:var(--ro-surface-3);border-color:var(--ro-accent)}.game-room .status-badge{border:0;background:transparent;color:var(--ro-muted);padding:5px 0;font:500 .65rem var(--ro-font-body)}.game-room .status-badge.success{color:var(--ro-accent)}.game-room .status-badge.error{color:var(--ro-danger-text)}.game-room .center-controls-bar{justify-content:space-between;flex-shrink:0;padding:14px 24px;gap:16px;background:var(--ro-bg);border-bottom:1px solid var(--ro-border)}.game-room .personal-controls-action{align-items:start;gap:6px}.game-room .personal-controls-action>span{color:var(--ro-muted);font:400 .65rem var(--ro-font-body)}.game-room .control-btn.personal-controls-btn{background:var(--ro-accent);color:var(--ro-bg);border-color:var(--ro-accent);min-height:42px;font-size:.78rem}.game-room .control-btn.personal-controls-btn:hover{filter:brightness(1.08)}.game-room .player-slots-bar{padding:0;background:transparent;border:0;gap:5px}.game-room .slot-btn{min-height:34px;padding:8px;font:600 .65rem var(--ro-font-body);border-radius:6px;background:var(--ro-surface);color:var(--ro-text)}.game-room .slot-btn.unlocked{border-color:var(--ro-accent-glow)}.game-room .slot-btn.occupied{background:var(--ro-surface-2);border-color:var(--ro-control-border)}.game-room .slots-caption{color:var(--ro-muted);font-size:.65rem;margin-right:5px}.screen-options{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.screen-options-label{color:var(--ro-muted);font-size:.7rem}.screen-presets{display:flex;padding:3px;gap:2px;background:var(--ro-surface);border:1px solid var(--ro-border);border-radius:9px}.screen-presets button,.room-fullscreen{min-height:34px;padding:8px 10px;border:1px solid transparent;border-radius:6px;font:600 .7rem var(--ro-font-body);color:var(--ro-muted);background:transparent}.screen-presets button:hover,.room-fullscreen:hover{background:var(--ro-surface-2);color:var(--ro-text)}.screen-presets button[aria-pressed=true]{background:var(--ro-accent-dim);border-color:var(--ro-accent-glow);color:var(--ro-accent)}.room-fullscreen{border-color:var(--ro-control-border);color:var(--ro-text)}.game-room .game-content{min-height:0}.game-room .emulator-section{min-width:0;min-height:0;padding:24px;background:var(--ro-bg);overflow:auto}.game-room .host-view,.game-room .remote-view{min-width:0;flex-shrink:0}.game-room .emulator-wrapper{border:1px solid var(--ro-border);border-radius:8px;overflow:hidden;box-shadow:0 12px 40px #0005;flex-shrink:0}.game-room .chat-section{position:relative;width:330px;flex:0 0 330px;min-height:0;background:var(--ro-surface);border-left:1px solid var(--ro-border)}.game-room .chat-section[hidden]{display:none}.room-chat-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 16px 14px}.room-chat-heading h2{margin:5px 0 0;font:650 1.05rem var(--ro-font-display)}.room-chat-heading button{width:32px;height:32px;border:1px solid var(--ro-border);border-radius:7px;background:transparent;color:var(--ro-muted);font-size:1.3rem}.room-chat-heading button:hover{color:var(--ro-text);background:var(--ro-surface-2)}.game-room .online-users{background:transparent;padding:0 16px 16px;border-bottom:1px solid var(--ro-border)}.game-room .online-users-title{font-size:.7rem}.game-room .online-users-list{max-height:180px}.game-room .online-user{background:var(--ro-surface-2);padding:7px;font-size:.72rem;border-radius:6px}.game-room .user-nick{color:var(--ro-text)}.game-room .user-badge{font-size:.58rem;border-radius:5px}.game-room .user-badge.host{background:var(--ro-accent-dim);color:var(--ro-accent)}.game-room .user-badge.p2{background:var(--ro-surface-3);color:var(--ro-text)}.game-room .chat-messages{padding:16px;min-height:80px;gap:12px;overflow-wrap:anywhere;scrollbar-gutter:stable}.game-room .chat-message{max-width:100%;padding:10px 12px;font-size:.78rem;line-height:1.5}.game-room .chat-message.user{background:var(--ro-surface-2);width:100%}.game-room .chat-message b{display:block;margin-bottom:5px;color:var(--ro-accent)!important;font-size:.68rem}.game-room .chat-message.system{background:transparent;color:var(--ro-muted);font-size:.68rem;padding:5px}.room-chat-empty{display:flex;flex-direction:column;justify-content:center;align-items:center;margin:auto;max-width:230px;text-align:center;padding:20px 0;color:var(--ro-muted)}.room-chat-empty>span{font-size:2rem;color:var(--ro-accent)}.room-chat-empty strong{font-size:.8rem;font-weight:500;margin-top:10px;color:var(--ro-text)}.room-chat-empty p{font-size:.72rem;line-height:1.6;margin-top:8px}.game-room .chat-input-form{flex-shrink:0;padding:12px 12px 6px;gap:8px;background:transparent;border-top:1px solid var(--ro-border)}.game-room .chat-input-form input{min-width:0;min-height:42px;background:var(--ro-bg);border-color:var(--ro-control-border);font-size:.75rem}.game-room .chat-send-btn{min-width:42px;padding:8px;background:var(--ro-accent);color:var(--ro-bg);font-size:1.2rem}.chat-input-hint{flex-shrink:0;margin:0;padding:0 14px 12px;color:var(--ro-muted);font-size:.58rem}.unread-count{display:inline-grid;place-items:center;min-width:19px;height:19px;padding:0 4px;margin-left:6px;border-radius:5px;background:var(--ro-accent);color:var(--ro-bg);font-size:.65rem}.chat-new-messages{align-self:center;margin:0 12px 8px;padding:7px 14px;border:1px solid var(--ro-accent-glow);border-radius:20px;background:var(--ro-accent-dim);color:var(--ro-accent);font-size:.7rem}.chat-new-messages:hover{background:var(--ro-accent);color:var(--ro-bg)}@media(max-width:1100px){.game-room .center-controls-bar{justify-content:center;gap:12px 22px}.game-room .game-header{padding-inline:16px}.game-room .status-badge.success{display:none}.game-room .chat-section{width:300px;flex-basis:300px}}@media(max-width:900px){.game-room{height:auto;min-height:100dvh}.game-room .game-header{flex-wrap:wrap;padding:12px 16px;gap:12px}.game-room .header-left{width:100%}.game-room .controls{justify-content:start}.game-room .center-controls-bar{padding:14px 12px}.game-room .personal-controls-action{width:auto;align-items:center}.game-room .screen-options{justify-content:center}.game-room .game-content{overflow:visible;flex-direction:column}.game-room .emulator-section{flex:none;min-height:220px;padding:16px 12px;overflow:visible}.game-room .chat-section{flex:none;width:100%;height:460px;border-left:0;border-top:1px solid var(--ro-border)}.game-room .room-info h2{font-size:1rem}.game-room .room-stats{font-size:.6rem}.room-chat-heading{padding-top:14px}.game-room:fullscreen{overflow:auto;height:100dvh}}@media(max-width:420px){.game-room .screen-options{gap:6px}.screen-options-label{display:none}.screen-presets button,.room-fullscreen{font-size:.65rem;padding-inline:8px}.game-room .player-active-banner{border-radius:8px;font-size:.65rem;padding:6px}}@media(prefers-reduced-motion:reduce){.game-room *,.game-room *:before,.game-room *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media(forced-colors:active){.game-room button,.game-room .emulator-wrapper,.game-room .online-user{border:1px solid ButtonText}.screen-presets button[aria-pressed=true]{outline:2px solid Highlight}}.save-library>p{margin-bottom:16px}.save-library button:not(.primary-button):not(.secondary-button){min-height:40px;padding:9px 13px;border:1px solid var(--ro-control-border);border-radius:8px;background:var(--ro-surface-2);color:var(--ro-text);font:600 .75rem/1.4 var(--ro-font-body);cursor:pointer}.save-library button:not(:disabled):hover{border-color:var(--ro-accent)}.save-library button:disabled{opacity:.5;cursor:not-allowed}.save-library :is(button,input,select):focus-visible{outline:2px solid var(--ro-accent);outline-offset:3px}.save-plan{padding:12px 16px;border:1px solid var(--ro-accent-glow);border-radius:8px;background:var(--ro-accent-dim)}.save-tabs,.save-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.save-fields label{display:grid;gap:8px;min-width:0;color:var(--ro-muted);font-size:.8rem}.save-fields :is(input,select){width:100%;min-width:0;min-height:44px;border:1px solid var(--ro-control-border);border-radius:8px;padding:10px 12px;background:var(--ro-bg);color:var(--ro-text);font:inherit;color-scheme:dark}.save-fields{display:grid;grid-template-columns:1fr 2fr;gap:12px}.save-create{padding:16px;background:var(--ro-surface-2);border-radius:12px;margin:16px 0}.save-create small,.save-list small{display:block;color:var(--ro-muted);margin-top:6px}.save-list article{border-bottom:1px solid var(--ro-border);padding:16px 0;overflow-wrap:anywhere}.save-confirm{padding:16px;border:1px solid var(--ro-warning-border);border-radius:10px;margin:16px 0;background:var(--ro-warning-dim)}@media(max-width:560px){.save-fields{grid-template-columns:1fr}}.game-room .game-content{isolation:isolate}.room-password-page{min-height:100dvh;display:grid;place-items:center;padding:24px;background:var(--ro-bg);color:var(--ro-text)}.room-password-page>form{width:min(100%,420px);padding:24px;background:var(--ro-surface);border:1px solid var(--ro-control-border);border-radius:18px}:root{--admin-bg: var(--ro-bg);--admin-surface: var(--ro-surface);--admin-surface-2: var(--ro-surface-2);--admin-surface-3: var(--ro-surface-3);--admin-accent: var(--ro-accent);--admin-accent-dim: var(--ro-accent-dim);--admin-accent-glow: var(--ro-accent-glow);--admin-text: var(--ro-text);--admin-muted: var(--ro-muted);--admin-border: var(--ro-border);--admin-radius: 12px;--admin-radius-sm: 8px;--admin-shadow: 0 8px 32px rgba(0, 0, 0, .45);--admin-danger: var(--ro-danger);--admin-success: var(--ro-success);--admin-warn: #f39c12}.admin-login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--admin-bg);position:relative;overflow:hidden}.admin-login-glow{position:absolute;width:500px;height:500px;background:radial-gradient(circle,var(--admin-accent-glow) 0%,transparent 70%);top:20%;left:50%;transform:translate(-50%);pointer-events:none}.admin-login-card{position:relative;background:var(--admin-surface);border:1px solid var(--admin-border);border-radius:16px;padding:40px;width:100%;max-width:400px;box-shadow:var(--admin-shadow)}.admin-login-brand{display:flex;align-items:center;gap:16px;margin-bottom:32px}.admin-login-brand h1{margin:0;font-size:1.25rem;color:var(--admin-text)}.admin-login-brand p{margin:4px 0 0;font-size:.8rem;color:var(--admin-muted)}.admin-logo-mark{width:48px;height:48px;background:linear-gradient(135deg,var(--admin-accent),#2a9d8f);border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1rem;color:#000}.admin-logo-mark.sm{width:32px;height:32px;font-size:.7rem;border-radius:8px}.admin-login-error{background:#ff475726;border:1px solid var(--admin-danger);color:#ff8a94;padding:10px 12px;border-radius:var(--admin-radius-sm);font-size:.85rem;margin-bottom:16px}.admin-loading-screen{color:var(--admin-muted);font-size:.9rem}.admin-app{min-height:100vh;background:var(--admin-bg);color:var(--admin-text);display:flex;flex-direction:column}.admin-topbar{position:sticky;top:0;z-index:100;height:56px;background:#12161feb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--admin-border);display:flex;align-items:center;padding:0 20px;gap:16px}.admin-menu-toggle{display:none;background:none;border:none;color:var(--admin-text);font-size:1.25rem;cursor:pointer;padding:8px}.admin-topbar-brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:.95rem}.admin-topbar-right{display:flex;align-items:center;gap:16px;margin-left:auto}.admin-user-btn{display:flex;align-items:center;gap:8px;background:var(--admin-surface-2);border:1px solid var(--admin-border);border-radius:24px;padding:4px 12px 4px 4px;color:var(--admin-text);cursor:pointer;font-size:.85rem}.admin-avatar{width:28px;height:28px;background:var(--admin-accent);color:#000;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.75rem}.admin-user-menu{position:relative}.admin-user-dropdown{position:absolute;right:0;top:calc(100% + 8px);background:var(--admin-surface);border:1px solid var(--admin-border);border-radius:var(--admin-radius-sm);min-width:160px;box-shadow:var(--admin-shadow);overflow:hidden}.admin-user-dropdown button{display:block;width:100%;text-align:left;padding:10px 16px;background:none;border:none;color:var(--admin-text);cursor:pointer;font-size:.85rem}.admin-user-dropdown button:hover{background:var(--admin-surface-2)}.admin-body{display:flex;flex:1}.admin-sidebar{width:220px;flex-shrink:0;background:var(--admin-surface);border-right:1px solid var(--admin-border);padding:16px 12px}.admin-nav{display:flex;flex-direction:column;gap:4px}.admin-nav-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:none;border:none;border-radius:var(--admin-radius-sm);color:var(--admin-muted);cursor:pointer;font-size:.875rem;text-align:left;position:relative;transition:background .15s,color .15s}.admin-nav-item:hover{background:var(--admin-surface-2);color:var(--admin-text)}.admin-nav-item.active{background:var(--admin-accent-dim);color:var(--admin-accent);border-left:3px solid var(--admin-accent);padding-left:9px}.admin-nav-icon{font-size:1rem;opacity:.8}.admin-nav-badge{margin-left:auto;background:var(--admin-accent);color:#000;font-size:.65rem;font-weight:700;padding:2px 6px;border-radius:10px}.admin-main{flex:1;padding:24px;overflow-y:auto;min-width:0}.admin-sidebar-backdrop{display:none}.admin-page-header{margin-bottom:24px}.admin-page-header h2{margin:0 0 4px;font-size:1.5rem;font-weight:600}.admin-page-header p{margin:0;color:var(--admin-muted);font-size:.9rem}.admin-breadcrumb{display:flex;align-items:center;gap:8px;margin-bottom:16px;font-size:.8rem;color:var(--admin-muted);flex-wrap:wrap}.admin-back-link{background:none;border:none;color:var(--admin-accent);cursor:pointer;padding:0;font-size:.85rem}.admin-back-link:hover{text-decoration:underline}.admin-breadcrumb-sep{opacity:.4}.admin-breadcrumb-current{color:var(--admin-text)}.admin-panel-card{background:var(--admin-surface);border:1px solid var(--admin-border);border-radius:var(--admin-radius);padding:20px;margin-bottom:20px}.admin-panel-card h3{margin:0 0 16px;font-size:.95rem;font-weight:600}.admin-panel-card h3 small{font-weight:400;color:var(--admin-muted);margin-left:8px}.admin-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px;margin-bottom:24px}.admin-stat-card{background:var(--admin-surface);border:1px solid var(--admin-border);border-radius:var(--admin-radius);padding:20px;display:flex;flex-direction:column;gap:4px}.admin-stat-card.accent{border-color:#4ecdc44d;background:linear-gradient(135deg,var(--admin-surface) 0%,rgba(78,205,196,.08) 100%)}.admin-stat-card.warn{border-color:#f39c124d}.admin-stat-value{font-size:2rem;font-weight:700;line-height:1;color:var(--admin-text)}.admin-stat-label{font-size:.75rem;color:var(--admin-muted);text-transform:uppercase;letter-spacing:.04em}.admin-quick-actions{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-bottom:24px}.admin-action-card{background:var(--admin-surface);border:1px solid var(--admin-border);border-radius:var(--admin-radius);padding:24px;text-align:left;cursor:pointer;color:var(--admin-text);transition:border-color .2s,transform .15s}.admin-action-card:hover{border-color:var(--admin-accent);transform:translateY(-2px)}.admin-action-icon{font-size:1.5rem;display:block;margin-bottom:8px}.admin-action-card strong{display:block;margin-bottom:4px}.admin-action-card small{color:var(--admin-muted);font-size:.8rem}.admin-wizard{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}.admin-wizard-step{flex:1;min-width:100px;display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--admin-surface);border:1px solid var(--admin-border);border-radius:var(--admin-radius-sm);font-size:.8rem;color:var(--admin-muted)}.admin-wizard-step.active{border-color:var(--admin-accent);color:var(--admin-accent);background:var(--admin-accent-dim)}.admin-wizard-step.done .admin-wizard-num{background:var(--admin-accent);color:#000}.admin-wizard-num{width:24px;height:24px;border-radius:50%;background:var(--admin-surface-3);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700}.admin-field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.admin-field span,.admin-field-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--admin-muted)}.admin-field input,.admin-field select,.admin-field textarea,.admin-input,.admin-select{padding:10px 12px;background:var(--admin-bg);border:1px solid var(--admin-border);border-radius:var(--admin-radius-sm);color:var(--admin-text);font-size:.875rem}.admin-field input:focus,.admin-input:focus,.admin-select:focus{outline:none;border-color:var(--admin-accent)}.admin-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.admin-check{display:flex;align-items:center;gap:8px;font-size:.85rem;margin-bottom:8px;cursor:pointer}.admin-btn-primary{background:var(--admin-accent);color:#000;border:none;border-radius:var(--admin-radius-sm);padding:10px 20px;font-weight:600;font-size:.875rem;cursor:pointer;transition:opacity .15s,transform .1s}.admin-btn-primary:hover:not(:disabled){opacity:.9}.admin-btn-primary:disabled{opacity:.5;cursor:not-allowed}.admin-btn-secondary{background:var(--admin-surface-3);color:var(--admin-text);border:1px solid var(--admin-border);border-radius:var(--admin-radius-sm);padding:10px 20px;font-size:.875rem;cursor:pointer}.admin-btn-ghost{background:none;border:1px solid var(--admin-border);color:var(--admin-muted);border-radius:var(--admin-radius-sm);padding:10px 16px;font-size:.875rem;cursor:pointer}.admin-btn-danger{background:var(--admin-danger);color:#fff;border:none;border-radius:var(--admin-radius-sm);padding:10px 16px;font-size:.875rem;cursor:pointer}.admin-btn-block{width:100%}.admin-btn-sm{padding:6px 12px;font-size:.75rem}.admin-btn-row{display:flex;gap:8px;flex-wrap:wrap}.admin-analyze-progress{margin-top:10px;background:var(--admin-surface-2, #1a1a2e);border-radius:6px;overflow:hidden;position:relative;height:28px}.admin-analyze-progress-bar{height:100%;background:linear-gradient(90deg,var(--admin-accent, #4ecdc4),#22c55e);transition:width .3s ease;min-width:2%}.admin-analyze-progress-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:11px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.6);pointer-events:none}.admin-dropzone{border:2px dashed var(--admin-border);border-radius:var(--admin-radius);padding:32px 20px;text-align:center;margin-bottom:12px;transition:border-color .2s,background .2s}.admin-dropzone.drag-over{border-color:var(--admin-accent);background:var(--admin-accent-dim)}.admin-dropzone-icon{font-size:2rem;display:block;margin-bottom:8px}.admin-dropzone p{margin:0 0 12px;color:var(--admin-muted);font-size:.85rem}.admin-add-layout{display:grid;grid-template-columns:320px 1fr;gap:20px;align-items:start}.admin-queue-list{list-style:none;padding:0;margin:12px 0 0;max-height:280px;overflow-y:auto}.admin-queue-item{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--admin-radius-sm);cursor:pointer;font-size:.8rem;margin-bottom:4px}.admin-queue-item:hover{background:var(--admin-surface-2)}.admin-queue-item.active{background:var(--admin-accent-dim);outline:1px solid rgba(78,205,196,.3)}.admin-queue-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-queue-nav{display:flex;justify-content:space-between;align-items:center;margin-top:12px;font-size:.85rem}.admin-queue-nav button{background:var(--admin-surface-2);border:1px solid var(--admin-border);color:var(--admin-text);border-radius:var(--admin-radius-sm);padding:6px 12px;cursor:pointer}.admin-queue-nav button:disabled{opacity:.4;cursor:not-allowed}.admin-queue-summary{list-style:none;padding:0;margin:0 0 12px}.admin-queue-summary li{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--admin-border);font-size:.85rem}.admin-status-pill{font-size:.65rem;padding:2px 8px;border-radius:10px;background:var(--admin-surface-3);color:var(--admin-muted);white-space:nowrap}.admin-status-pill.status-ready{background:#2ecc7133;color:var(--admin-success)}.admin-status-pill.status-analyzing{background:#4ecdc433;color:var(--admin-accent)}.admin-status-pill.status-error{background:#ff475733;color:var(--admin-danger)}.admin-status-pill.status-saved{background:#4ecdc426;color:var(--admin-accent)}.admin-filters{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}.admin-filters .admin-input{flex:1;min-width:180px}.admin-library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.admin-library-card{background:var(--admin-surface);border:1px solid var(--admin-border);border-radius:var(--admin-radius);overflow:hidden;transition:border-color .2s}.admin-library-card:hover{border-color:#4ecdc44d}.admin-library-card.inactive{opacity:.55}.admin-library-cover{height:90px;display:flex;align-items:center;justify-content:center}.admin-library-cover img{max-height:75px;max-width:85%;object-fit:contain}.admin-library-body{padding:14px}.admin-library-body strong{display:block;font-size:.9rem;margin-bottom:2px}.admin-library-body small{font-size:.7rem;color:var(--admin-muted)}.admin-library-meta,.admin-library-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.admin-library-actions{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap}.admin-pill{font-size:.65rem;padding:2px 8px;border-radius:4px;background:var(--admin-surface-3);color:var(--admin-muted)}.admin-pill.muted{opacity:.8}.admin-pill.tag{background:#0000004d}.admin-pill-btn{font-size:.7rem;padding:4px 10px;border-radius:4px;border:none;cursor:pointer;background:var(--admin-surface-3);color:var(--admin-muted)}.admin-pill-btn.on{background:#2ecc7133;color:var(--admin-success)}.admin-btn-ia{background:linear-gradient(135deg,#4ecdc440,#667eea40);border:1px solid rgba(78,205,196,.4);color:var(--admin-accent);border-radius:var(--admin-radius-sm);cursor:pointer;font-weight:600;min-width:44px}.admin-btn-ia:hover:not(:disabled){background:#4ecdc433;border-color:var(--admin-accent)}.admin-btn-ia:disabled{opacity:.6;cursor:wait}.game-form-layout{display:grid;grid-template-columns:200px 1fr;gap:24px;align-items:start}.lobby-preview-wrap{position:sticky;top:80px}.admin-section-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.06em;color:var(--admin-muted);display:block;margin-bottom:8px}.lobby-preview-card{width:160px}.lobby-preview-body{display:flex;background:#2a2a2a;border-radius:6px 6px 2px 2px;padding:6px;gap:4px}.lobby-preview-label{flex:1;height:72px;border-radius:4px;display:flex;align-items:center;justify-content:center;overflow:hidden}.lobby-preview-art{max-width:100%;max-height:100%;object-fit:contain}.lobby-preview-placeholder{font-size:.55rem;text-align:center;padding:4px;color:#fffc}.lobby-preview-grip{width:14px;background:repeating-linear-gradient(90deg,#666,#666 2px,#777 2px 4px);border-radius:2px}.lobby-preview-title{margin-top:8px;text-align:center}.lobby-preview-title-main{display:block;font-size:.75rem;font-weight:600}.lobby-preview-title-sub{display:block;font-size:.6rem;color:var(--admin-muted)}.lobby-preview-meta{display:flex;justify-content:center;flex-wrap:wrap;gap:4px;margin-top:6px}.lobby-badge{font-size:.55rem;padding:2px 5px;background:var(--admin-surface-3);border-radius:3px}.admin-collapsible{border:1px solid var(--admin-border);border-radius:var(--admin-radius-sm);margin-bottom:12px;overflow:hidden}.admin-collapsible-head{width:100%;text-align:left;padding:12px 14px;background:var(--admin-surface-2);border:none;color:var(--admin-text);font-size:.85rem;font-weight:600;cursor:pointer}.admin-collapsible-body{padding:14px}.admin-tags-list{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.admin-tag{background:var(--admin-surface-3);border:none;border-radius:12px;padding:4px 10px;font-size:.75rem;color:var(--admin-text);cursor:pointer}.admin-tag:hover{background:var(--admin-danger)}.admin-tag-input{display:flex;gap:6px}.admin-tag-input input{flex:1}.admin-tag-input button{padding:0 12px;background:var(--admin-accent);color:#000;border:none;border-radius:var(--admin-radius-sm);cursor:pointer;font-weight:700}.admin-cover-grid{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}.admin-cover-option{background:var(--admin-bg);border:2px solid var(--admin-border);border-radius:var(--admin-radius-sm);padding:6px;cursor:pointer;width:96px;text-align:center}.admin-cover-option.selected{border-color:var(--admin-accent)}.admin-cover-option img{width:80px;height:80px;object-fit:contain}.admin-cover-option small{display:block;font-size:.6rem;color:var(--admin-muted);margin-top:4px}.admin-confidence{font-size:.75rem;padding:6px 10px;border-radius:var(--admin-radius-sm);margin-bottom:12px}.admin-confidence.confidence-high{background:#2ecc7126;color:var(--admin-success)}.admin-confidence.confidence-mid{background:#f39c1226;color:var(--admin-warn)}.admin-confidence.confidence-low{background:#ff475726;color:#ff8a94}.admin-warnings{background:#f39c121a;border:1px solid rgba(243,156,18,.3);border-radius:var(--admin-radius-sm);padding:10px;font-size:.8rem;color:var(--admin-warn);margin-bottom:12px}.admin-form-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px;padding-top:16px;border-top:1px solid var(--admin-border)}.admin-empty{text-align:center;padding:48px 20px;color:var(--admin-muted)}.admin-empty span{font-size:2.5rem;display:block;margin-bottom:12px;opacity:.6}.admin-muted{color:var(--admin-muted);font-size:.85rem}.admin-skeleton-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.admin-skeleton-card{height:200px;background:linear-gradient(90deg,var(--admin-surface) 25%,var(--admin-surface-2) 50%,var(--admin-surface) 75%);background-size:200% 100%;animation:admin-shimmer 1.2s infinite;border-radius:var(--admin-radius)}@keyframes admin-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.admin-settings-card{max-width:480px}.admin-settings-form{margin-top:24px;padding-top:24px;border-top:1px solid var(--admin-border)}.admin-settings-form h3{margin:0 0 16px;font-size:.95rem}.admin-modal-overlay{position:fixed;inset:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.admin-modal{background:var(--admin-surface);border:1px solid var(--admin-border);border-radius:var(--admin-radius);padding:24px;max-width:400px;width:100%;box-shadow:var(--admin-shadow)}.admin-modal h4{margin:0 0 8px}.admin-modal p{margin:0 0 20px;color:var(--admin-muted);font-size:.9rem}.admin-modal-actions{display:flex;gap:10px;justify-content:flex-end}.admin-toast-stack{position:fixed;bottom:24px;right:24px;z-index:2000;display:flex;flex-direction:column;gap:8px;max-width:360px}.admin-toast{padding:12px 16px;border-radius:var(--admin-radius-sm);font-size:.875rem;cursor:pointer;box-shadow:var(--admin-shadow);animation:admin-toast-in .25s ease}@keyframes admin-toast-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.admin-toast-success{background:#1a3d2e;border:1px solid var(--admin-success);color:#7dcea0}.admin-toast-error{background:#3d1a1f;border:1px solid var(--admin-danger);color:#ff8a94}.admin-toast-info{background:var(--admin-surface);border:1px solid var(--admin-border);color:var(--admin-text)}@media(max-width:900px){.admin-menu-toggle{display:block}.admin-sidebar{position:fixed;left:0;top:56px;bottom:0;z-index:90;visibility:hidden;transform:translate(-100%);transition:transform .25s}.admin-sidebar.open{visibility:visible;transform:translate(0)}.admin-sidebar-backdrop{display:block;position:fixed;inset:56px 0 0;background:#00000080;z-index:80}.admin-add-layout,.game-form-layout{grid-template-columns:1fr}.lobby-preview-wrap{position:static}.admin-form-grid{grid-template-columns:1fr}.admin-main{padding:16px}}.admin-app{color-scheme:dark}.admin-panel-card{margin-bottom:24px}.admin-section-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-bottom:20px}.admin-section-heading h3{margin:6px 0 0}.admin-quality-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.admin-quality-item{text-align:left;display:flex;flex-direction:column;gap:8px;padding:20px;background:var(--admin-bg);border:1px solid var(--admin-border);border-radius:var(--admin-radius-sm);color:var(--admin-text);cursor:pointer}.admin-quality-item:hover{border-color:var(--admin-accent)}.admin-quality-item strong{font-size:2rem;color:var(--admin-accent)}.admin-quality-item small{color:var(--admin-muted);line-height:1.6}.admin-ai-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:20px 0}.admin-ai-details dt{color:var(--admin-muted);font-size:.8rem}.admin-ai-details dd{margin:6px 0 0;font-weight:600;overflow-wrap:anywhere}.admin-ai-status p{line-height:1.7}.admin-ai-status small{display:block;color:var(--admin-muted);margin-top:8px}.admin-help{font-size:.8rem;max-width:80ch}.admin-ai-success{color:var(--admin-success)}.admin-filters{align-items:end}.admin-filters .admin-field{flex:1 1 180px;min-width:0}.admin-filters .admin-field:first-child{flex:2 1 240px}.admin-filters .admin-input,.admin-filters .admin-select{width:100%;min-width:0;border-color:var(--ro-control-border)}.admin-list-summary,.admin-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0 24px;color:var(--admin-muted)}.admin-pagination{justify-content:center}.admin-rom-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:100%;color:var(--admin-muted)}.admin-ai-review{border:1px solid var(--admin-accent);border-radius:var(--admin-radius);background:var(--admin-bg);padding:24px;margin-bottom:24px}.admin-ai-review p{line-height:1.6}.admin-table-scroll{overflow-x:auto}.admin-review-table{width:100%;border-collapse:collapse;table-layout:fixed;min-width:500px}.admin-review-table th,.admin-review-table td{padding:12px;border-bottom:1px solid var(--admin-border);text-align:left;vertical-align:top;overflow-wrap:anywhere;font-size:.85rem}.admin-review-table th:first-child{width:22%}.admin-review-table thead{color:var(--admin-muted)}.admin-portal-link{color:var(--admin-accent);font-size:.8rem;text-decoration:none}.admin-app :is(button,a,input,select,textarea):focus-visible{outline:2px solid var(--admin-accent);outline-offset:3px}.admin-app button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:900px){.admin-quality-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.admin-ai-details{grid-template-columns:1fr}.admin-ai-review{padding:16px}.admin-topbar-brand>span:last-child{font-size:.8rem}.admin-quality-item{padding:14px}.admin-topbar{gap:8px}.admin-user-btn>span:last-child{display:none}}.admin-app{font-family:var(--ro-font-body)}.admin-app :is(h1,h2,h3,h4){font-family:var(--ro-font-display)}.admin-field :is(input,textarea,select){border-color:var(--ro-control-border)}@media(prefers-reduced-motion:reduce){.admin-app *,.admin-toast{animation:none!important;transition:none!important}}.admin-community .admin-panel-card{margin-bottom:1.25rem;padding:1.25rem;overflow-wrap:anywhere}.admin-community article{padding:1rem 0;border-bottom:1px solid var(--admin-border, #ddd)}.admin-community label{display:grid;gap:.4rem;margin:.7rem 0}.admin-community input,.admin-community select,.admin-community textarea{max-width:100%;padding:.65rem;color:inherit;background:transparent;border:1px solid #888;border-radius:6px}.admin-community button{padding:.55rem .8rem;margin:.25rem .35rem .25rem 0}.admin-community textarea{min-height:5rem;resize:none}.admin-community fieldset{border:0;padding:0;min-width:0}.admin-community-action{border-color:var(--admin-warning, #d99b45)}.admin-community-actions,.admin-community-search{display:flex;gap:.45rem;flex-wrap:wrap;align-items:center}.admin-community-search input{flex:1 1 16rem}.admin-community .admin-danger-button{color:#ffd8dc;border-color:#a94855;background:#a9485529}.admin-community button:focus-visible,.admin-community input:focus-visible,.admin-community select:focus-visible,.admin-community textarea:focus-visible{outline:3px solid var(--admin-primary, #4ecdc4);outline-offset:2px}.admin-metrics-table{overflow-x:auto}.admin-metrics-table th,.admin-metrics-table td{text-align:left;padding:.7rem}.lobby-chat-notice{padding:.75rem;font-size:.85rem}.premium-page{width:100%;min-width:0;max-width:1040px;box-sizing:border-box;margin:0 auto;padding:36px 24px 64px;color:var(--ro-text, #E8EDF5);font-family:var(--ro-font-sans, "Segoe UI", sans-serif)}.premium-heading{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:32px}.premium-heading h1{font-family:Bahnschrift,Segoe UI,sans-serif;font-size:clamp(1.75rem,5vw,2.75rem);line-height:1.15;margin:8px 0 16px}.premium-heading p{max-width:660px;line-height:1.65}.premium-eyebrow{color:var(--ro-primary, #4ECDC4);font-size:.8rem;font-weight:700;letter-spacing:.12em}.premium-plans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.premium-plan{position:relative;display:grid;gap:10px;padding:26px;border:2px solid var(--ro-control-border, #364052);border-radius:10px;background:var(--ro-surface, #12161F);cursor:pointer}.premium-plan input{position:absolute;top:24px;right:24px;accent-color:var(--ro-primary, #4ECDC4);width:20px;height:20px}.premium-plan.selected{border-color:var(--ro-primary, #4ECDC4)}.premium-plan strong{font-family:Bahnschrift,Segoe UI,sans-serif;font-size:2.4rem;font-variant-numeric:tabular-nums}.premium-plan small,.premium-muted{color:var(--ro-muted, #8B95A8);line-height:1.65}.premium-section{margin-top:28px;padding:24px;background:var(--ro-surface, #12161F);border:1px solid var(--ro-control-border, #364052);border-radius:10px}.premium-section h2{margin-top:0;font-size:1.3rem}.premium-section p{line-height:1.65}.premium-checkout{max-width:640px}.premium-checkout .premium-consent{display:flex;align-items:flex-start;gap:12px;line-height:1.55}.premium-consent input{width:20px;min-width:20px;height:20px;margin-top:3px;accent-color:var(--ro-primary, #4ECDC4)}.premium-notice{padding:16px;border-left:3px solid var(--ro-primary, #4ECDC4);background:var(--ro-raised, #1A2030);line-height:1.6}.premium-table-wrap{overflow-x:auto}.premium-page table{width:100%;border-collapse:collapse;min-width:480px;text-align:left;font-variant-numeric:tabular-nums}.premium-page th,.premium-page td{padding:14px 12px;border-bottom:1px solid var(--ro-control-border, #364052)}.premium-invoice{display:inline-flex;text-decoration:none}.premium-page button,.premium-page a{cursor:pointer}.premium-page a{color:var(--ro-primary, #4ECDC4)}.premium-page a.primary-button{color:var(--ro-background, #080B10)}.premium-page button:disabled,.premium-page input:disabled{cursor:not-allowed;opacity:.6}.premium-page :is(button,a,input):focus-visible,.premium-plan:focus-within{outline:3px solid var(--ro-primary, #4ECDC4);outline-offset:4px}.premium-page .text-button:hover,.premium-page a:hover{text-decoration:underline}.premium-plan:hover{background:var(--ro-raised, #1A2030)}@media(max-width:600px){.premium-page{padding:24px 16px 48px}.premium-heading{flex-direction:column;gap:8px}.premium-plans{grid-template-columns:1fr;gap:12px}.premium-plan{padding:20px 14px}.premium-plan input{top:16px;right:12px}.premium-plan strong{font-size:1.9rem}.premium-section{padding:20px 16px}}
