:root{
    --bg:#050811;--panel:rgba(12,18,31,.86);--panel-2:rgba(18,27,45,.9);--line:rgba(142,180,214,.15);--line-strong:rgba(96,228,255,.32);
    --text:#f5f8ff;--muted:#8593a9;--cyan:#47e6ff;--pink:#ff5ad6;--lime:#a7ff5a;--orange:#ffb84d;--danger:#ff6577;
    --shadow:0 28px 90px rgba(0,0,0,.48);--radius:22px;--radius-sm:14px;--font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}html{min-height:100%;background:var(--bg)}body{margin:0;min-height:100vh;color:var(--text);font-family:var(--font);background:
radial-gradient(circle at 15% 20%,rgba(71,230,255,.08),transparent 28%),radial-gradient(circle at 85% 10%,rgba(255,90,214,.08),transparent 25%),linear-gradient(145deg,#050811,#090d18 60%,#050811);overflow-x:hidden}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(rgba(255,255,255,.015) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.015) 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(to bottom,black,transparent 88%)}
button,input,select{font:inherit}.hidden{display:none!important}.ambient-grid{position:fixed;inset:0;pointer-events:none;opacity:.6;background:radial-gradient(circle at 50% 50%,transparent 0,rgba(5,8,17,.3) 65%,rgba(5,8,17,.92) 100%)}
a{color:inherit;text-decoration:none}em{font-style:normal;color:var(--cyan);text-shadow:0 0 30px rgba(71,230,255,.22)}
.glass-panel{background:linear-gradient(145deg,rgba(18,26,43,.94),rgba(9,14,25,.9));border:1px solid var(--line);box-shadow:var(--shadow);border-radius:var(--radius);backdrop-filter:blur(20px)}
.glass-panel.compact{border-radius:16px}.eyebrow{margin:0 0 10px;color:var(--cyan);font-size:.7rem;font-weight:800;letter-spacing:.22em;text-transform:uppercase}
.btn{border:1px solid transparent;border-radius:12px;padding:13px 18px;color:var(--text);font-weight:800;letter-spacing:.05em;font-size:.78rem;cursor:pointer;transition:.2s ease;background:transparent;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px}
.btn:hover{transform:translateY(-1px)}.btn.primary{background:linear-gradient(135deg,var(--cyan),#65b8ff);color:#031018;box-shadow:0 10px 32px rgba(71,230,255,.18)}.btn.primary:hover{box-shadow:0 14px 38px rgba(71,230,255,.3)}
.btn.secondary{background:linear-gradient(135deg,rgba(255,90,214,.18),rgba(139,123,255,.2));border-color:rgba(255,90,214,.35)}.btn.secondary.ready{background:linear-gradient(135deg,rgba(167,255,90,.22),rgba(71,230,255,.15));border-color:rgba(167,255,90,.38);color:var(--lime)}
.btn.ghost{border-color:var(--line);background:rgba(255,255,255,.025)}.btn.ghost:hover{border-color:var(--line-strong);background:rgba(71,230,255,.05)}.btn.wide{width:100%}.btn.small{min-height:38px;padding:9px 14px}.danger-text{color:var(--danger)!important}
label{display:flex;flex-direction:column;gap:8px;color:#a8b4c7;font-size:.75rem;font-weight:700;letter-spacing:.05em}label small{color:#5f6b7d;font-weight:500}
input,select{width:100%;border:1px solid var(--line);border-radius:11px;padding:13px 14px;background:rgba(3,7,15,.74);color:var(--text);outline:none;transition:.2s ease}input:focus,select:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(71,230,255,.08)}select option{background:#0b1220}.form-grid{display:grid;gap:14px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.alert{padding:12px 14px;border-radius:11px;font-size:.82rem;margin-bottom:16px}.alert.error{color:#ffdce0;border:1px solid rgba(255,101,119,.36);background:rgba(255,101,119,.09)}.fine-print{font-size:.72rem;color:#657186;line-height:1.55}.centered{text-align:center}
.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 4vw;border-bottom:1px solid var(--line);background:rgba(5,8,17,.74);backdrop-filter:blur(16px);position:sticky;top:0;z-index:20}.brand-lockup{display:flex;align-items:center;gap:12px}.brand-lockup strong{font-size:.9rem;letter-spacing:.15em}.brand-lockup em{color:var(--cyan)}
.brand-mark{width:35px;height:35px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:2px;transform:rotate(45deg)}.brand-mark span{border:2px solid var(--cyan);box-shadow:0 0 14px rgba(71,230,255,.35)}.brand-mark span:nth-child(1){grid-column:1/3;grid-row:1}.brand-mark span:nth-child(2){grid-column:2;grid-row:2/4;border-color:var(--pink)}.brand-mark span:nth-child(3){grid-column:3;grid-row:2/4;border-color:var(--lime)}
.topbar nav{display:flex;gap:28px}.topbar nav a{font-size:.76rem;font-weight:800;color:#657186;letter-spacing:.08em;padding:28px 0 25px;border-bottom:2px solid transparent}.topbar nav a:hover,.topbar nav a.active{color:var(--text);border-color:var(--cyan)}.topbar-actions{display:flex;align-items:center;gap:14px}.online-pill{font-size:.72rem;color:#77859b;border:1px solid var(--line);padding:9px 12px;border-radius:999px}.online-pill i,.live-dot,.refresh-note i,.pulse{width:7px;height:7px;border-radius:50%;background:var(--lime);display:inline-block;box-shadow:0 0 12px rgba(167,255,90,.7);margin-right:7px}.icon-btn{width:38px;height:38px;border:1px solid var(--line);display:grid;place-items:center;border-radius:11px;color:#8190a6}
.page-shell{width:min(1440px,92vw);margin:0 auto;padding:50px 0 80px;position:relative;z-index:1}.page-heading{margin-bottom:28px}.page-heading h1{font-size:clamp(2.4rem,5vw,5rem);line-height:.95;margin:0 0 14px;letter-spacing:-.055em}.page-heading>div>p:last-child{color:var(--muted);margin:0}.split-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px}.heading-actions{display:flex;gap:12px;flex-wrap:wrap}
/* auth */
.auth-page{overflow:hidden}.auth-shell{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr;position:relative;z-index:1}.brand-stage{padding:7vh 7vw;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.brand-stage:after{content:"";position:absolute;width:45vw;height:45vw;border:1px solid rgba(71,230,255,.07);border-radius:50%;left:-10vw;bottom:-18vw;box-shadow:0 0 0 80px rgba(71,230,255,.018),0 0 0 160px rgba(71,230,255,.012)}.brand-mark.large{width:64px;height:64px;margin-bottom:34px}.brand-stage h1{font-size:clamp(5rem,10vw,10rem);line-height:.73;letter-spacing:-.08em;margin:0;position:relative;z-index:1}.brand-stage h1 em{display:inline-block;margin-left:7vw}.hero-copy{color:#7f8ba0;margin:30px 0 0;font-size:1.1rem}.status-strip{position:absolute;left:7vw;bottom:5vh;color:#718097;font-size:.7rem;letter-spacing:.16em}.hero-maze{position:absolute;right:4vw;bottom:10vh;width:26vw;aspect-ratio:1.4;border:1px solid rgba(71,230,255,.18);border-radius:20px;opacity:.76;background:linear-gradient(90deg,transparent 0 8%,rgba(71,230,255,.13) 8% 9%,transparent 9% 26%,rgba(71,230,255,.13) 26% 27%,transparent 27% 54%,rgba(71,230,255,.13) 54% 55%,transparent 55% 80%,rgba(71,230,255,.13) 80% 81%,transparent 81%),linear-gradient(transparent 0 16%,rgba(71,230,255,.13) 16% 17%,transparent 17% 40%,rgba(71,230,255,.13) 40% 41%,transparent 41% 68%,rgba(71,230,255,.13) 68% 69%,transparent 69%);box-shadow:inset 0 0 50px rgba(71,230,255,.05)}.scanline{position:absolute;left:0;right:0;height:1px;background:var(--cyan);box-shadow:0 0 14px var(--cyan);animation:scan 5s linear infinite}.runner,.goal-core{position:absolute;width:12px;height:12px;border-radius:50%;box-shadow:0 0 15px currentColor}.runner-a{color:var(--cyan);background:currentColor;left:11%;top:22%;animation:driftA 6s ease-in-out infinite}.runner-b{color:var(--pink);background:currentColor;left:60%;top:70%;animation:driftB 7s ease-in-out infinite}.goal-core{right:5%;bottom:6%;border:2px solid var(--lime);box-shadow:0 0 20px rgba(167,255,90,.8)}
.auth-panel{margin:4vh 4vw 4vh 0;padding:28px 34px;display:flex;flex-direction:column;justify-content:center;max-height:92vh;overflow:auto}.auth-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;background:rgba(0,0,0,.2);padding:5px;border-radius:13px;margin-bottom:28px}.auth-tabs .tab{border:0;border-radius:10px;padding:11px;background:transparent;color:#6d798c;font-size:.72rem;font-weight:800;cursor:pointer}.auth-tabs .tab.active{background:rgba(71,230,255,.08);color:var(--cyan)}.auth-form{display:none;gap:16px}.auth-form.active{display:grid}.form-heading{display:flex;align-items:flex-start;gap:14px;margin-bottom:6px}.form-heading h2{margin:0 0 4px;font-size:1.45rem}.form-heading p{margin:0;color:var(--muted);font-size:.82rem}.section-number{font-size:.67rem;color:var(--pink);border:1px solid rgba(255,90,214,.35);border-radius:7px;padding:5px 7px}
/* lobby */
.lobby-toolbar{padding:12px 14px;display:grid;grid-template-columns:minmax(240px,1fr) auto auto;gap:14px;align-items:center;margin-bottom:24px}.searchbox{display:flex;align-items:center;gap:10px;background:rgba(0,0,0,.18);border:1px solid var(--line);border-radius:11px;padding-left:12px}.searchbox input{border:0;background:transparent;box-shadow:none}.filter-tabs{display:flex;background:rgba(0,0,0,.18);border-radius:10px;padding:4px}.filter-tabs button{border:0;background:transparent;color:#657186;padding:10px 12px;border-radius:8px;font-weight:800;font-size:.68rem;cursor:pointer}.filter-tabs button.active{background:rgba(71,230,255,.09);color:var(--cyan)}.refresh-note{font-size:.66rem;letter-spacing:.13em;color:#657186;padding:0 8px}.room-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.room-card{position:relative;overflow:hidden;padding:22px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,rgba(18,27,45,.86),rgba(8,13,23,.94));box-shadow:0 16px 44px rgba(0,0,0,.25);transition:.2s ease}.room-card:hover{transform:translateY(-3px);border-color:rgba(71,230,255,.28)}.room-card:before{content:"";position:absolute;right:-30px;top:-45px;width:130px;height:130px;border:1px solid rgba(71,230,255,.08);transform:rotate(45deg)}.room-card-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:18px}.room-card h3{margin:0 0 5px;font-size:1.1rem}.room-code{color:#66748a;font-size:.68rem;letter-spacing:.16em}.status-chip{font-size:.62rem;font-weight:900;letter-spacing:.1em;border:1px solid rgba(167,255,90,.24);color:var(--lime);padding:7px 9px;border-radius:999px;height:max-content}.status-chip.playing,.status-chip.transition,.status-chip.countdown{color:var(--orange);border-color:rgba(255,184,77,.25)}.room-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:18px}.room-stats div{border:1px solid rgba(255,255,255,.055);border-radius:10px;padding:10px;background:rgba(0,0,0,.15)}.room-stats small{display:block;color:#5e6a7d;font-size:.58rem;margin-bottom:4px}.room-stats b{font-size:.78rem}.room-card-foot{display:flex;align-items:center;justify-content:space-between;gap:14px}.room-tags{display:flex;gap:6px;flex-wrap:wrap}.room-tags span{font-size:.58rem;color:#7a8799;border:1px solid var(--line);padding:5px 7px;border-radius:999px}.room-card .btn{min-height:38px;padding:8px 13px}.empty-state{text-align:center;padding:70px}.empty-state h2{margin-bottom:6px}.empty-state p{color:var(--muted)}.empty-maze{width:80px;height:80px;border:2px solid #33415a;margin:0 auto 20px;box-shadow:inset 20px 0 0 transparent;border-radius:12px;background:linear-gradient(90deg,transparent 45%,#33415a 46% 50%,transparent 51%),linear-gradient(transparent 45%,#33415a 46% 50%,transparent 51%)}
/* modal */
.modal-backdrop{position:fixed;inset:0;background:rgba(2,4,10,.78);backdrop-filter:blur(10px);display:none;align-items:center;justify-content:center;padding:24px;z-index:50}.modal-backdrop.active{display:flex}.modal{width:min(520px,96vw);padding:28px;position:relative;max-height:92vh;overflow:auto}.modal-wide{width:min(820px,96vw)}.modal-close{position:absolute;right:18px;top:14px;border:0;background:transparent;color:#6f7b8e;font-size:1.8rem;cursor:pointer}.modal-title h2{margin:0 0 20px}.modal form{display:grid;gap:16px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}.toggle-row{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:12px;border:1px solid var(--line);padding:13px;border-radius:12px;background:rgba(0,0,0,.15)}.toggle-row input{display:none}.toggle{width:42px;height:23px;background:#243047;border-radius:999px;position:relative}.toggle:after{content:"";position:absolute;width:17px;height:17px;border-radius:50%;background:#77849a;left:3px;top:3px;transition:.2s}.toggle-row input:checked+.toggle{background:rgba(71,230,255,.22)}.toggle-row input:checked+.toggle:after{left:22px;background:var(--cyan)}.toggle-row span:last-child{display:flex;flex-direction:column}.toggle-row small{font-size:.67rem;color:#667389;margin-top:3px}.toast-stack{position:fixed;right:20px;bottom:20px;display:grid;gap:10px;z-index:100}.toast{min-width:260px;max-width:360px;padding:13px 16px;border-radius:12px;background:#111a2b;border:1px solid var(--line);box-shadow:var(--shadow);font-size:.8rem;animation:toastIn .25s ease}.toast.error{border-color:rgba(255,101,119,.4);color:#ffdce1}.toast.success{border-color:rgba(167,255,90,.32);color:#e7ffd6}
/* room */
.room-hero{padding:26px 30px;display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px}.room-hero h1{margin:0 0 8px;font-size:2.2rem}.room-hero p:last-child{margin:0;color:var(--muted)}.invite-cluster>span{font-size:.62rem;color:#657186;letter-spacing:.15em}.invite-cluster>div{display:flex;margin-top:7px}.invite-cluster input{border-radius:10px 0 0 10px;min-width:280px}.invite-cluster button{border:1px solid var(--line-strong);background:rgba(71,230,255,.09);color:var(--cyan);padding:0 14px;border-radius:0 10px 10px 0;font-weight:800;cursor:pointer}.room-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(340px,.55fr);gap:24px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.section-heading h2{margin:0;font-size:1.35rem}.section-heading>span{font-size:.75rem;color:#6e7a8e}.player-slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.player-slot{min-height:140px;border:1px solid var(--line);border-radius:16px;padding:18px;background:linear-gradient(145deg,rgba(17,26,43,.82),rgba(8,13,23,.88));position:relative;overflow:hidden}.player-slot.empty{display:grid;place-items:center;color:#4f5d72;border-style:dashed;background:rgba(255,255,255,.012)}.runner-orb{--runner-color:var(--cyan);width:44px;height:44px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff 0 5%,var(--runner-color) 20%,color-mix(in srgb,var(--runner-color),#000 50%) 80%);box-shadow:0 0 30px color-mix(in srgb,var(--runner-color),transparent 55%);border:2px solid rgba(255,255,255,.75)}.player-slot-head{display:flex;align-items:center;gap:12px}.player-slot h3{margin:0 0 3px}.player-slot small{color:#68758a}.player-badges{margin-top:15px;display:flex;gap:7px;flex-wrap:wrap}.player-badges span{font-size:.6rem;border:1px solid var(--line);padding:5px 8px;border-radius:999px;color:#77849a}.player-badges .ready{color:var(--lime);border-color:rgba(167,255,90,.27)}.kick-btn{position:absolute;right:12px;top:12px;border:1px solid rgba(255,101,119,.2);background:rgba(255,101,119,.05);color:#b96a76;border-radius:8px;padding:5px 8px;cursor:pointer}.control-panel{padding:24px;height:max-content}.settings-list{display:grid;gap:2px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px 0}.settings-list div{display:flex;justify-content:space-between;gap:12px;padding:9px 0;font-size:.75rem}.settings-list span{color:#667389}.settings-list b{text-align:right}.color-picker-wrap{padding:18px 0}.color-picker-wrap>span{font-size:.62rem;color:#68758a;letter-spacing:.13em}.color-picker{display:flex;gap:9px;flex-wrap:wrap;margin-top:11px}.color-picker button{width:26px;height:26px;border-radius:50%;border:2px solid transparent;background:var(--swatch);box-shadow:0 0 12px color-mix(in srgb,var(--swatch),transparent 55%);cursor:pointer}.color-picker button.active{border-color:#fff;transform:scale(1.14)}.control-actions{display:grid;gap:10px}
/* game */
.game-body{height:100vh;overflow:hidden}.game-topbar{height:74px;padding:0 28px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid var(--line);background:rgba(5,8,17,.8);position:relative;z-index:10}.race-meta{text-align:center;display:flex;gap:14px;align-items:center}.race-meta span,.race-meta b{font-size:.68rem;letter-spacing:.14em}.race-meta b{color:#67758a}.timer-box{justify-self:end;text-align:right}.timer-box small{display:block;color:#5f6d82;font-size:.55rem;letter-spacing:.13em}.timer-box strong{font-variant-numeric:tabular-nums;font-size:1.3rem;color:var(--cyan)}.game-layout{height:calc(100vh - 74px);display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;padding:18px;position:relative;z-index:1}.maze-stage{display:flex;flex-direction:column;min-width:0;overflow:hidden}.maze-stage-header{height:50px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid var(--line);font-size:.67rem;letter-spacing:.12em}.control-hint{color:#617087}.control-hint kbd{border:1px solid var(--line);border-bottom-color:rgba(255,255,255,.25);border-radius:5px;padding:3px 6px;color:#9aa8bc;margin-right:2px}.canvas-wrap{flex:1;min-height:0;position:relative;padding:20px;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at center,rgba(71,230,255,.03),transparent 65%)}#mazeCanvas{max-width:100%;max-height:100%;filter:drop-shadow(0 0 24px rgba(71,230,255,.05))}.center-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(4,7,14,.72);backdrop-filter:blur(5px);text-align:center}.center-overlay.hidden{display:none!important}.center-overlay strong{font-size:clamp(2.3rem,5vw,5.5rem);letter-spacing:-.05em;text-shadow:0 0 30px rgba(71,230,255,.3)}.center-overlay span{color:#8795aa;letter-spacing:.1em;font-size:.75rem}.race-sidebar{display:flex;flex-direction:column;gap:14px;min-height:0}.leaderboard-panel{padding:20px;flex:1;min-height:0;overflow:hidden}.leaderboard{display:grid;gap:9px;overflow:auto;max-height:calc(100% - 58px)}.leader-row{display:grid;grid-template-columns:28px 30px minmax(0,1fr) auto;gap:9px;align-items:center;border:1px solid var(--line);border-radius:11px;padding:10px;background:rgba(0,0,0,.15)}.leader-row.self{border-color:rgba(71,230,255,.32);background:rgba(71,230,255,.055)}.leader-rank{font-size:.68rem;color:#637087}.leader-dot{width:18px;height:18px;border-radius:50%;background:var(--runner-color);box-shadow:0 0 13px var(--runner-color);border:1px solid white}.leader-row b{font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leader-row small{display:block;color:#667389;font-size:.6rem;margin-top:2px}.leader-points{font-size:.75rem;color:var(--cyan)}.telemetry-panel{padding:18px}.telemetry-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.telemetry-grid div{background:rgba(0,0,0,.18);border:1px solid var(--line);padding:10px;border-radius:10px}.telemetry-grid small{display:block;font-size:.53rem;color:#637087;letter-spacing:.12em}.telemetry-grid strong{font-size:.78rem}.mobile-controls{display:none;grid-template-columns:repeat(3,52px);grid-template-areas:". up ." "left down right";gap:6px;justify-content:center;padding-bottom:12px}.mobile-controls button{width:52px;height:42px;border:1px solid var(--line);background:rgba(255,255,255,.04);color:#fff;border-radius:9px}.mobile-controls [data-dir=up]{grid-area:up}.mobile-controls [data-dir=left]{grid-area:left}.mobile-controls [data-dir=down]{grid-area:down}.mobile-controls [data-dir=right]{grid-area:right}
/* profile */
.profile-page{max-width:1100px}.profile-hero{padding:32px;display:flex;align-items:center;gap:20px;margin-bottom:20px}.profile-orb{--runner-color:var(--cyan);width:72px;height:72px;border-radius:50%;background:radial-gradient(circle at 35% 30%,white 0 5%,var(--runner-color) 20%,#08111e 82%);box-shadow:0 0 34px color-mix(in srgb,var(--runner-color),transparent 55%);border:2px solid rgba(255,255,255,.8)}.profile-hero h1{margin:0;font-size:2.2rem}.profile-hero p:last-child{color:var(--muted)}.guest-profile{text-align:center;padding:50px}.guest-profile p{color:var(--muted);max-width:600px;margin:0 auto 20px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.stat-card{padding:20px}.stat-card small{font-size:.58rem;color:#657186;letter-spacing:.13em}.stat-card strong{display:block;font-size:2.2rem;margin:8px 0 3px}.stat-card span{font-size:.68rem;color:#647187}.history-panel{padding:24px}.history-list{display:grid;gap:8px}.history-list article{display:grid;grid-template-columns:70px minmax(0,1fr) 70px 100px;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:11px;background:rgba(0,0,0,.13)}.history-list article div small{display:block;color:#657186;margin-top:3px}.history-list time{color:#657186;font-size:.72rem;text-align:right}.result{font-size:.62rem;font-weight:900;padding:6px 8px;border-radius:999px;text-align:center}.result.win{color:var(--lime);background:rgba(167,255,90,.08)}.result.loss{color:var(--danger);background:rgba(255,101,119,.08)}.empty-inline{color:#657186;padding:30px;text-align:center}
@keyframes scan{0%{top:0}100%{top:100%}}@keyframes driftA{0%,100%{transform:translate(0,0)}50%{transform:translate(100px,60px)}}@keyframes driftB{0%,100%{transform:translate(0,0)}50%{transform:translate(-70px,-50px)}}@keyframes toastIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(max-width:1100px){.room-grid{grid-template-columns:repeat(2,1fr)}.auth-shell{grid-template-columns:1fr}.brand-stage{display:none}.auth-panel{margin:4vh auto;width:min(620px,92vw)}.room-layout{grid-template-columns:1fr}.game-layout{grid-template-columns:1fr 280px}.stats-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.topbar{padding:0 18px}.topbar nav{display:none}.page-shell{width:92vw;padding-top:30px}.split-heading{align-items:flex-start;flex-direction:column}.room-grid{grid-template-columns:1fr}.lobby-toolbar{grid-template-columns:1fr}.filter-tabs{overflow:auto}.form-grid.two{grid-template-columns:1fr}.room-hero{align-items:flex-start;flex-direction:column}.invite-cluster,.invite-cluster input{width:100%;min-width:0}.player-slots{grid-template-columns:1fr}.game-body{overflow:auto}.game-topbar{grid-template-columns:1fr auto}.game-topbar .race-meta{display:none}.game-layout{height:auto;min-height:calc(100vh - 74px);grid-template-columns:1fr;padding:10px}.maze-stage{min-height:68vh}.race-sidebar{min-height:auto}.mobile-controls{display:grid}.control-hint{display:none}.stats-grid{grid-template-columns:1fr 1fr}.history-list article{grid-template-columns:60px 1fr 55px}.history-list time{display:none}}
/* shared audio + moderated room chat */
.sound-button{font-size:1rem;display:inline-grid;place-items:center}.sound-button.muted{opacity:.62}.game-header-actions{justify-self:end;display:flex;align-items:center;gap:12px}.room-layout-chat{grid-template-columns:minmax(0,1.25fr) minmax(300px,.55fr);align-items:start}.room-layout-chat .room-chat-panel{grid-column:1/-1}.room-chat-panel{padding:18px;min-height:250px;display:flex;flex-direction:column}.room-chat-messages{height:220px;overflow:auto;display:grid;align-content:start;gap:8px;padding:4px 4px 10px}.chat-line{display:grid;grid-template-columns:26px minmax(0,1fr);gap:9px;align-items:start;padding:8px 9px;border:1px solid var(--line);border-radius:10px;background:rgba(0,0,0,.14)}.chat-line.self{border-color:rgba(71,230,255,.24);background:rgba(71,230,255,.04)}.chat-line.filtered{border-color:rgba(255,184,77,.24)}.chat-avatar{width:20px;height:20px;margin-top:2px;border-radius:50%;background:var(--chat-color);box-shadow:0 0 10px color-mix(in srgb,var(--chat-color),transparent 55%)}.chat-line header{display:flex;justify-content:space-between;gap:10px}.chat-line header b{font-size:.7rem}.chat-line time{font-size:.56rem;color:#647187}.chat-line p{margin:3px 0 0;color:#bdc8d8;font-size:.72rem;line-height:1.42;overflow-wrap:anywhere}.chat-empty{color:#627087;text-align:center;padding:32px 10px}.room-chat-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.room-chat-form input{min-width:0}.room-chat-form .btn{padding:0 16px}.game-chat-panel{min-height:200px}.game-chat-panel .room-chat-messages{height:130px}.player-slot h3 a{color:inherit;text-decoration:none}.player-slot h3 a:hover{color:var(--cyan)}
@media(max-width:1100px){.room-layout-chat{grid-template-columns:1fr}.room-layout-chat .room-chat-panel{grid-column:auto}}
@media(max-width:760px){.game-header-actions{gap:7px}.room-chat-form{grid-template-columns:1fr}.room-chat-form .btn{min-height:40px}.game-chat-panel .room-chat-messages{height:200px}}
.library-back{position:fixed;left:18px;top:16px;z-index:20;color:#8593a8;text-decoration:none;font-size:.65rem;font-weight:800;letter-spacing:.12em}.library-back:hover{color:var(--cyan)}
/* host-editable Maze Arena room settings */
.settings-toggle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.inline-input-action{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.inline-input-action .btn{min-height:46px}.field-disabled{opacity:.38}.settings-warning{margin:0;padding:11px 13px;border:1px solid rgba(255,184,77,.18);border-radius:10px;background:rgba(255,184,77,.045)}
@media(max-width:760px){.settings-toggle-grid{grid-template-columns:1fr}.inline-input-action{grid-template-columns:1fr}.inline-input-action .btn{width:100%}}

/* Maze Arena room controls, reports, and challenge directory */
.online-racers-section{margin-top:34px}.online-player-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.online-player-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 15px;border:1px solid var(--line);border-radius:14px;background:rgba(10,16,27,.72)}.online-player-main{display:flex;align-items:center;gap:11px;min-width:0}.online-player-main div{min-width:0}.online-player-main b,.online-player-main small{display:block}.online-player-main b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.online-player-main small{margin-top:3px;color:#69778d;font-size:.65rem}.online-avatar{width:30px;height:30px;flex:0 0 auto;border-radius:50%;background:var(--player-color);box-shadow:0 0 15px color-mix(in srgb,var(--player-color),transparent 50%);border:2px solid rgba(255,255,255,.75)}.empty-online{padding:24px;text-align:center;color:#718097}.chat-status{padding:5px 8px;border:1px solid rgba(77,224,165,.28);border-radius:999px;color:#65e5ae;font-size:.61rem;font-weight:850;letter-spacing:.08em}.chat-status.locked{border-color:rgba(255,189,92,.32);color:#ffcb7a}.room-chat-form input:disabled{opacity:.55;cursor:not-allowed}.room-chat-form button:disabled{opacity:.45;cursor:not-allowed}.player-actions{display:flex;align-items:center;gap:6px}.report-btn{border:1px solid rgba(255,189,92,.28);border-radius:7px;background:rgba(255,189,92,.06);color:#d7ad6e;padding:5px 7px;font-size:.58rem;font-weight:850;letter-spacing:.06em;cursor:pointer}.report-btn:hover{border-color:rgba(255,189,92,.5);color:#ffd89a}.report-btn.compact{padding:3px 5px;font-size:.52rem}.leader-actions{display:grid;justify-items:end;gap:4px}.modal textarea{width:100%;resize:vertical;min-height:110px;border:1px solid var(--line);border-radius:10px;background:#08101c;color:#eef5ff;padding:11px 12px;outline:none;font:inherit}.modal textarea:focus{border-color:var(--cyan)}
@media(max-width:1000px){.online-player-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.online-player-grid{grid-template-columns:1fr}.online-player-card{align-items:flex-start}.online-player-card .btn{flex:0 0 auto}}

/* Race lobby side roster + right-click challenge interaction */
.lobby-directory-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:20px;align-items:start}.lobby-directory-main{min-width:0}.racers-sidebar{position:sticky;top:96px;padding:18px;border-radius:18px;box-shadow:0 20px 54px rgba(0,0,0,.28)}.racers-sidebar-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--line)}.racers-sidebar-head .eyebrow{margin-bottom:5px}.racers-sidebar-head h2{margin:0;font-size:1.12rem}.sidebar-online-dot,.racer-presence-dot{width:8px;height:8px;border-radius:50%;background:var(--lime);box-shadow:0 0 12px rgba(167,255,90,.72);flex:0 0 auto}.sidebar-online-dot{margin-top:8px}.racers-sidebar-hint{margin:12px 0;color:#6e7c91;font-size:.68rem;line-height:1.5}.online-player-list{display:grid;gap:8px;max-height:440px;overflow:auto;padding-right:3px}.racer-bubble{width:100%;display:grid;grid-template-columns:34px minmax(0,1fr) 8px;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:12px;background:rgba(4,9,17,.38);color:var(--text);text-align:left;cursor:context-menu;transition:border-color .18s ease,background .18s ease,transform .18s ease}.racer-bubble:hover,.racer-bubble:focus-visible{border-color:rgba(71,230,255,.32);background:rgba(71,230,255,.055);transform:translateX(-2px);outline:none}.racer-bubble.pending{border-color:rgba(255,184,77,.26);background:rgba(255,184,77,.045)}.racer-bubble.unavailable{opacity:.62}.racer-bubble-copy{min-width:0}.racer-bubble-copy b,.racer-bubble-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.racer-bubble-copy b{font-size:.76rem}.racer-bubble-copy small{margin-top:3px;color:#69778d;font-size:.59rem}.racer-bubble .online-avatar{width:28px;height:28px}.challenge-status{min-height:18px;margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}.racers-sidebar .empty-online{padding:24px 8px;border:0;background:transparent}.lobby-directory-layout .empty-state{min-height:350px}.lobby-directory-layout .lobby-toolbar{margin-bottom:18px}
@media(max-width:1280px){.lobby-directory-layout{grid-template-columns:minmax(0,1fr) 285px}.lobby-directory-main .room-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:940px){.lobby-directory-layout{grid-template-columns:1fr}.racers-sidebar{position:relative;top:auto;order:-1}.online-player-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:260px}}
@media(max-width:620px){.online-player-list{grid-template-columns:1fr}.lobby-directory-main .room-grid{grid-template-columns:1fr}.racers-sidebar-hint{font-size:.64rem}}


/* Host-locked room chat state */
.room-chat-panel{position:relative;isolation:isolate}
.room-chat-panel.chat-locked .room-chat-messages,.room-chat-panel.chat-locked .room-chat-form{filter:grayscale(1);opacity:.22;pointer-events:none;user-select:none}
.room-chat-panel.chat-locked::after{content:'LOCKED';position:absolute;z-index:5;left:50%;top:56%;transform:translate(-50%,-50%);padding:12px 24px;border:1px solid rgba(255,255,255,.16);border-radius:10px;background:rgba(5,8,14,.9);color:#c1c7d0;font-size:1.05rem;font-weight:950;letter-spacing:.28em;box-shadow:0 16px 45px rgba(0,0,0,.48);pointer-events:none}
.room-chat-panel.chat-locked{border-color:rgba(150,158,172,.25);background:linear-gradient(rgba(120,128,142,.055),rgba(120,128,142,.025)),var(--panel)}


/* Enforcement notice and unmistakable host chat lock. */
.room-chat-panel.chat-locked{position:relative;overflow:hidden!important;background:#080b11!important;border-color:rgba(160,168,180,.34)!important;box-shadow:inset 0 0 0 999px rgba(4,6,9,.62)!important}
.room-chat-panel.chat-locked>*{filter:grayscale(1) brightness(.38)!important;opacity:.34!important;pointer-events:none!important;user-select:none!important}
.room-chat-panel.chat-locked::before{content:'';position:absolute;inset:0;z-index:20;background:rgba(3,5,8,.58);backdrop-filter:blur(2px);pointer-events:none}
.room-chat-panel.chat-locked::after{content:'LOCKED';position:absolute;z-index:21;left:50%;top:50%;transform:translate(-50%,-50%);width:min(82%,360px);padding:22px 18px;border:1px solid rgba(255,255,255,.22);border-radius:13px;background:rgba(8,10,15,.96);color:#d7dbe3;text-align:center;font-size:1.35rem;font-weight:950;letter-spacing:.42em;text-indent:.42em;box-shadow:0 24px 70px rgba(0,0,0,.7);pointer-events:none}
.enforcement-backdrop{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:20px;background:rgba(2,4,8,.88);backdrop-filter:blur(12px)}
.enforcement-card{width:min(520px,100%);padding:30px;border:1px solid rgba(255,105,124,.35);border-radius:22px;background:linear-gradient(145deg,#111722,#090d14);box-shadow:0 35px 110px rgba(0,0,0,.72);text-align:center}
.enforcement-symbol{width:68px;height:68px;margin:0 auto 18px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(255,105,124,.42);background:rgba(255,105,124,.1);color:#ff7f91;font-size:2rem;font-weight:900}
.enforcement-card h1{margin:8px 0 10px;font-size:2rem}.enforcement-message{color:#aeb9ca;line-height:1.6}.enforcement-detail{margin:12px 0;padding:13px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.025);text-align:left}.enforcement-detail span{display:block;color:#718096;font-size:.65rem;letter-spacing:.12em;text-transform:uppercase}.enforcement-detail strong{display:block;margin-top:5px;color:#e7edf6;overflow-wrap:anywhere}

.online-avatar,.runner-orb{background-position:center!important;background-size:cover!important;background-repeat:no-repeat!important}.racer-bubble-copy em,.player-title{display:block;margin-top:2px;color:#fbbf24;font-size:.54rem;font-style:normal;font-weight:850;letter-spacing:.07em;text-transform:uppercase}.avatar-frame-maze,.avatar-frame-grid{border-color:#34d399!important;box-shadow:0 0 14px rgba(52,211,153,.38)!important}.avatar-frame-champion,.avatar-frame-high-roller{border-color:#fbbf24!important;box-shadow:0 0 15px rgba(251,191,36,.42)!important}.avatar-frame-veteran,.avatar-frame-tactician,.avatar-frame-mastermind{border-color:#a78bfa!important;box-shadow:0 0 16px rgba(167,139,250,.42)!important}.avatar-frame-quiz,.avatar-frame-precision{border-color:#22d3ee!important;box-shadow:0 0 15px rgba(34,211,238,.38)!important}
.chat-avatar{display:block;background-position:center!important;background-size:cover!important;background-repeat:no-repeat!important;border:2px solid rgba(255,255,255,.22);text-decoration:none}.chat-title{display:block;margin-top:2px;color:#fbbf24;font-size:.57rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.staff-tag{display:inline-block;margin-left:4px;padding:2px 5px;border:1px solid rgba(251,191,36,.35);border-radius:999px;color:#fbbf24;font-size:.48rem;letter-spacing:.08em;vertical-align:middle}

/* Shared profile tags and staff identity */
.maze-profile-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px;max-width:310px}
.maze-profile-tag{padding:3px 6px;border:1px solid rgba(255,255,255,.1);border-radius:999px;background:rgba(255,255,255,.035);color:#9eacbf;font-size:.58rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.maze-profile-tag.role{border-color:rgba(255,196,80,.35);color:#ffd78a;background:rgba(255,196,80,.08)}
.maze-profile-tag.title{border-color:rgba(145,105,255,.35);color:#c9b8ff;background:rgba(145,105,255,.08)}
.maze-profile-tag.featured{border-color:rgba(71,230,255,.35);color:#88efff;background:rgba(71,230,255,.08)}
.maze-staff{display:inline-flex;vertical-align:middle;padding:2px 6px;border-radius:999px;font-size:.54rem;font-style:normal;font-weight:900;letter-spacing:.08em}.maze-staff.admin{color:#181006;background:#ffd16d}.maze-staff.moderator{color:#07171a;background:#68e8f3}
.leader-row a{color:inherit;text-decoration:none}.leader-row a:hover{color:#62e9ff}.leader-row .player-title{display:block;margin-top:2px}
.maze-profile-tag.staff{border-color:rgba(255,196,80,.38);background:rgba(255,196,80,.09);color:#ffd88a}

/* Unified game navigation */
.unified-topbar{height:76px;padding:0 3vw;display:flex;grid-template-columns:none}
.unified-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px}.nav-action{min-height:38px;display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.035);color:#c4cfdf;font-size:.72rem;font-weight:850;letter-spacing:.05em;text-decoration:none;cursor:pointer}.nav-action:hover{border-color:rgba(71,230,255,.34);color:#fff}.topbar-user{display:flex;align-items:center;gap:9px;min-height:42px;padding:5px 11px 5px 5px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.03);color:var(--text);text-decoration:none}.topbar-avatar{width:31px;height:31px;flex:0 0 auto;border-radius:50%;background:#09111d center/cover no-repeat;border:2px solid rgba(255,255,255,.22)}.topbar-user>span:last-child{display:grid;line-height:1.08}.topbar-user b{font-size:.75rem}.topbar-user small{margin-top:3px;color:#77859b;font-size:.55rem;letter-spacing:.06em;text-transform:uppercase}.avatar-frame-maze,.avatar-frame-grid{border-color:#34d399;box-shadow:0 0 12px rgba(52,211,153,.34)}.avatar-frame-champion,.avatar-frame-high-roller{border-color:#fbbf24;box-shadow:0 0 13px rgba(251,191,36,.38)}.avatar-frame-veteran,.avatar-frame-tactician,.avatar-frame-mastermind{border-color:#a78bfa;box-shadow:0 0 13px rgba(167,139,250,.4)}.avatar-frame-quiz,.avatar-frame-precision,.avatar-frame-explorer{border-color:#22d3ee;box-shadow:0 0 13px rgba(34,211,238,.34)}
.race-command-bar{height:62px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(7,11,20,.82);position:relative;z-index:9}.race-command-bar .race-meta{display:flex}.game-body .game-layout{height:calc(100vh - 138px)}
@media(max-width:900px){.unified-actions .online-pill{display:none}.topbar-user>span:last-child{display:none}.nav-action{padding-inline:9px}.race-command-bar{padding:0 14px}.game-body .game-layout{height:calc(100vh - 138px)}}
@media(max-width:620px){.unified-topbar{padding:0 12px}.unified-actions{gap:5px}.unified-actions .nav-action:last-child{display:none}.topbar-user{padding:4px}.brand-lockup strong{display:none}.race-command-bar .race-meta b{display:none}.race-command-bar{height:58px}.game-body .game-layout{height:auto;min-height:calc(100vh - 134px)}}
@media(max-width:760px){.game-body .game-layout{height:auto;min-height:calc(100vh - 138px)}}


/* Lobby activity feed */
.lobby-activity-divider{height:1px;margin:17px 0;background:var(--line)}
.activity-mini-head{margin-bottom:8px}.activity-mini-head h2{font-size:.95rem}
.lobby-activity-list{display:grid;gap:5px}
.lobby-activity-item{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:9px;align-items:center;padding:8px;border-radius:10px;color:var(--text);text-decoration:none}
.lobby-activity-item:hover{background:rgba(255,255,255,.04)}
.lobby-activity-avatar{width:32px;height:32px;border-radius:10px;background:#09111d center/cover no-repeat;border:1px solid var(--line)}
.lobby-activity-item span:nth-child(2){min-width:0;display:grid}.lobby-activity-item b,.lobby-activity-item small,.lobby-activity-item em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lobby-activity-item b{font-size:.7rem}.lobby-activity-item small{margin-top:2px;color:#b7c4d5;font-size:.64rem}.lobby-activity-item em{margin-top:2px;color:#66758a;font-size:.57rem;font-style:normal}.lobby-activity-item>i{color:var(--cyan);font-style:normal}

/* Staging chat is kept directly beneath the starting grid. */
.room-layout-chat{grid-template-columns:minmax(0,1.25fr) minmax(300px,.55fr);align-items:start}
.room-primary-column{display:grid;gap:18px;min-width:0;align-content:start}
.room-layout-chat .room-chat-panel{grid-column:auto}
.starting-grid-section{min-width:0}
.chat-safety-notice{display:flex;align-items:center;gap:9px;margin:0 0 10px;padding:9px 11px;border:1px solid rgba(71,230,255,.17);border-radius:10px;background:rgba(71,230,255,.05);color:#91a2b8}
.chat-safety-notice>span{width:20px;height:20px;flex:0 0 auto;display:grid;place-items:center;border:1px solid rgba(71,230,255,.28);border-radius:50%;color:var(--cyan);font-size:.65rem;font-weight:900}
.chat-safety-notice p{margin:0;font-size:.66rem;line-height:1.42}
.chat-safety-notice.compact{padding:7px 9px;margin-bottom:8px}
.chat-safety-notice.compact p{font-size:.59rem}
@media(max-width:1100px){.room-layout-chat{grid-template-columns:1fr}.room-primary-column{gap:16px}}
