:root{--bg-top: #141026;--bg-bottom: #09070f;--panel: #1b1633;--panel-alt: #221b3d;--panel-border: #352a5e;--accent: #6c5ce7;--accent-2: #00d2ff;--gold: #f6c453;--danger: #ff5470;--hp-green: #3ddc97;--text: #e8e6ff;--text-muted: #9a93c7;--hex-fill: #211a3d;--hex-stroke: #3a2f63;--font-body: "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{font-family:var(--font-body);color:var(--text);background:radial-gradient(1200px 800px at 50% -10%,rgba(108,92,231,.18),transparent 60%),radial-gradient(900px 700px at 110% 120%,rgba(0,210,255,.1),transparent 60%),linear-gradient(160deg,var(--bg-top) 0%,var(--bg-bottom) 100%);background-attachment:fixed;overflow:hidden}#app{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.menu{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;padding:48px 56px 52px;min-width:420px;border-radius:22px;border:1px solid var(--panel-border);background:linear-gradient(160deg,#221b3dc7,#1b1633b8);backdrop-filter:blur(14px) saturate(120%);-webkit-backdrop-filter:blur(14px) saturate(120%);box-shadow:0 24px 70px #0000008c,0 0 0 1px #6c5ce71f inset,0 0 60px #6c5ce714;animation:menu-rise .36s cubic-bezier(.2,.9,.25,1) both}@keyframes menu-rise{0%{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.menu-title{margin:0;font-size:46px;font-weight:800;letter-spacing:.5px;background:linear-gradient(100deg,var(--accent-2),var(--accent) 55%,var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 28px rgba(108,92,231,.35);animation:title-pulse 3.6s ease-in-out infinite}@keyframes title-pulse{0%,to{filter:brightness(1) drop-shadow(0 0 6px rgba(0,210,255,.18))}50%{filter:brightness(1.12) drop-shadow(0 0 14px rgba(108,92,231,.4))}}.menu-subtitle{margin:0 0 22px;font-size:14px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted)}.menu-buttons{display:flex;flex-direction:column;gap:14px;width:100%}.menu-button{position:relative;display:inline-flex;align-items:center;justify-content:center;width:100%;padding:14px 22px;font-family:inherit;font-size:16px;font-weight:600;letter-spacing:.4px;color:var(--text);cursor:pointer;border:0;border-radius:14px;background:linear-gradient(var(--panel),var(--panel)) padding-box,linear-gradient(120deg,var(--accent),var(--accent-2)) border-box;border:1.5px solid transparent;box-shadow:0 6px 18px #00000059;transition:transform .15s cubic-bezier(.2,.9,.25,1),box-shadow .15s ease,filter .15s ease;overflow:hidden}.menu-button:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(120deg,#6c5ce740,#00d2ff2e);opacity:0;transition:opacity .15s ease}.menu-button-label{position:relative;z-index:1}.menu-button:hover{transform:translateY(-3px);box-shadow:0 12px 30px #00000080,0 0 22px #6c5ce773;filter:brightness(1.06)}.menu-button:hover:before{opacity:1}.menu-button:focus-visible{outline:2px solid var(--accent-2);outline-offset:2px}.menu-button:active{transform:translateY(-1px) scale(.99);box-shadow:0 4px 12px #00000073;filter:brightness(.98)}.conn-badge{position:fixed;left:14px;bottom:14px;z-index:50;display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 10px;font-size:12px;font-weight:600;letter-spacing:.3px;color:var(--text-muted);border:1px solid var(--panel-border);border-radius:999px;background:#1b1633b8;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 4px 14px #00000059}.conn-dot{width:9px;height:9px;border-radius:50%;background:var(--gold);box-shadow:0 0 8px var(--gold);transition:background .2s ease,box-shadow .2s ease}.conn-label{white-space:nowrap}.settings-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#09070f9e;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:fade-in .18s ease both}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.settings-panel{display:flex;flex-direction:column;gap:18px;width:360px;max-width:calc(100vw - 48px);max-height:calc(100vh - 48px);overflow-y:auto;padding:28px 30px 26px;border-radius:20px;border:1px solid var(--panel-border);background:linear-gradient(160deg,var(--panel-alt),var(--panel));box-shadow:0 24px 70px #0009;animation:menu-rise .24s cubic-bezier(.2,.9,.25,1) both}.settings-reset,.settings-credits{margin-top:4px}.credits-intro{margin:0;font-size:13px;line-height:1.5;color:var(--text-muted)}.credits-list{display:flex;flex-direction:column;gap:12px}.credits-item{padding:12px 14px;border-radius:12px;border:1px solid var(--panel-border);background:#ffffff08}.credits-item-title{font-size:14px;font-weight:700;color:var(--text)}.credits-item-meta{margin-top:2px;font-size:12px;color:var(--accent)}.credits-item-note{margin-top:6px;font-size:12px;line-height:1.5;color:var(--text-muted)}.credits-footer{margin:0;font-size:11px;color:var(--text-muted);opacity:.8}.credits-block{display:flex;flex-direction:column;gap:4px}.credits-strong{font-size:15px;font-weight:700;color:var(--text)}.credits-line{font-size:13px;line-height:1.5;color:var(--text-muted)}.credits-link{color:var(--accent);text-decoration:none;border-bottom:1px solid transparent;transition:color .12s ease,border-color .12s ease;border-radius:2px}.credits-link:hover,.credits-link:focus-visible{color:var(--text);border-bottom-color:var(--accent);outline:2px solid var(--accent);outline-offset:2px}.fatal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:24px;background:#080a10eb;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.fatal-panel{display:flex;flex-direction:column;gap:14px;width:420px;max-width:calc(100vw - 48px);padding:28px 30px;border-radius:18px;border:1px solid var(--panel-border, #2a3142);background:linear-gradient(160deg,var(--panel-alt, #161b27),var(--panel, #10141d));box-shadow:0 24px 70px #0009;text-align:center}.fatal-title{margin:0;font-size:22px;font-weight:700;color:var(--text, #e8edf6)}.fatal-message{margin:0;font-size:14px;line-height:1.55;color:var(--text-muted, #9aa4b2)}.fatal-id{margin:0;font-size:11px;font-family:ui-monospace,Cascadia Code,monospace;color:var(--text-muted, #9aa4b2);opacity:.85}.fatal-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:4px}.settings-title{margin:0;font-size:24px;font-weight:700;color:var(--text)}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.settings-label{font-size:14px;color:var(--text-muted)}.settings-slider{flex:1;max-width:180px;accent-color:var(--accent);cursor:pointer}.settings-toggle{width:18px;height:18px;accent-color:var(--accent);cursor:pointer}.settings-close{margin-top:6px}.back-button{position:fixed;top:14px;left:14px;z-index:60;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:600;color:var(--text);cursor:pointer;border:1px solid var(--panel-border);border-radius:10px;background:#1b1633d1;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 4px 14px #0006;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.back-button:hover{transform:translateY(-2px);background:#221b3deb;box-shadow:0 8px 22px #00000080,0 0 16px #6c5ce759}.back-button:active{transform:translateY(0)}#game-root{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}#game-root canvas{display:block;margin:auto;box-shadow:0 20px 60px #00000080;border-radius:8px}.menu-emblem{width:66px;height:66px;margin-bottom:6px;border-radius:18px;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:800;letter-spacing:1px;color:var(--bg-bottom);background:linear-gradient(135deg,var(--accent-2),var(--accent) 58%,var(--gold));box-shadow:0 10px 26px #6c5ce780,0 0 0 1px #ffffff29 inset;animation:title-pulse 3.6s ease-in-out infinite}.menu-button--primary{background:linear-gradient(120deg,#6c5ce766,#00d2ff3d) padding-box,linear-gradient(120deg,var(--accent-2),var(--gold)) border-box;font-size:17px}.menu-button--primary .menu-button-label{text-shadow:0 0 10px rgba(0,210,255,.4)}.menu-footer{margin:20px 0 0;font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--text-muted);opacity:.65}.settings-section{margin:4px 0 -6px;font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:var(--text-muted)}.settings-value{min-width:40px;text-align:right;font-size:13px;font-weight:700;color:var(--accent-2)}.settings-select{min-width:110px;padding:6px 10px;font-family:inherit;font-size:13px;font-weight:600;color:var(--text);cursor:pointer;border:1px solid var(--panel-border);border-radius:8px;background:var(--panel);transition:border-color .15s ease,box-shadow .15s ease}.settings-select:hover,.settings-select:focus-visible{border-color:var(--accent);box-shadow:0 0 10px #6c5ce74d;outline:none}body:before{content:"";position:fixed;top:-20%;right:-20%;bottom:-20%;left:-20%;z-index:-1;pointer-events:none;background:radial-gradient(700px 500px at 20% 30%,rgba(108,92,231,.12),transparent 60%),radial-gradient(600px 460px at 80% 70%,rgba(0,210,255,.08),transparent 60%);animation:bg-drift 26s ease-in-out infinite alternate}@keyframes bg-drift{0%{transform:translate3d(-2%,-1%,0) scale(1)}to{transform:translate3d(2%,2%,0) scale(1.06)}}@media(prefers-reduced-motion:reduce){body:before{animation:none}.menu-title,.menu-emblem{animation:none}}.mp-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:24px;z-index:20}.mp-root{width:100%;display:flex;justify-content:center}.mp-panel{position:relative;display:flex;flex-direction:column;gap:14px;width:100%;padding:30px 34px 28px;border-radius:20px;border:1px solid var(--panel-border);background:linear-gradient(160deg,#221b3dd1,#1b1633c7);backdrop-filter:blur(14px) saturate(120%);-webkit-backdrop-filter:blur(14px) saturate(120%);box-shadow:0 24px 70px #0000008c,0 0 0 1px #6c5ce71f inset,0 0 60px #6c5ce714}.mp-panel--narrow{max-width:440px}.mp-panel--wide{max-width:660px}.mp-anim{animation:mp-rise .32s cubic-bezier(.2,.9,.25,1) both}@keyframes mp-rise{0%{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.mp-eyebrow{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--text-muted);font-weight:700}.mp-heading{margin:0;font-size:28px;font-weight:800;letter-spacing:.4px;background:linear-gradient(100deg,var(--accent-2),var(--accent) 60%,var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent}.mp-heading--go{background:linear-gradient(100deg,var(--hp-green),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}.mp-sub{margin:0;font-size:13px;color:var(--text-muted)}.mp-field{display:flex;flex-direction:column;gap:6px}.mp-label{font-size:12px;letter-spacing:.4px;color:var(--text-muted);font-weight:600}.mp-input{width:100%;padding:11px 14px;font-family:inherit;font-size:15px;color:var(--text);background:#09070f8c;border:1.5px solid var(--panel-border);border-radius:11px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.mp-input::placeholder{color:var(--text-muted);opacity:.7}.mp-input:focus{border-color:var(--accent-2);box-shadow:0 0 0 3px #00d2ff29}.mp-input--code{letter-spacing:6px;font-weight:800;text-transform:uppercase;text-align:center}.mp-size-row{display:flex;gap:10px}.mp-size{flex:1;padding:12px 0;font-family:inherit;font-size:16px;font-weight:700;color:var(--text-muted);cursor:pointer;background:#09070f80;border:1.5px solid var(--panel-border);border-radius:11px;transition:transform .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease}.mp-size:hover{transform:translateY(-2px);color:var(--text)}.mp-size--active{color:var(--text);border-color:var(--accent-2);background:linear-gradient(150deg,#00d2ff2e,#6c5ce72e);box-shadow:0 0 16px #00d2ff40}.mp-error{padding:9px 13px;font-size:13px;font-weight:600;color:#ffd2dc;background:#ff547024;border:1px solid rgba(255,84,112,.5);border-radius:10px}.mp-actions{display:flex;gap:12px;margin-top:4px}.mp-actions--spread{flex-wrap:wrap;align-items:flex-start}.mp-actions .mp-btn{flex:1}.mp-btn{position:relative;padding:12px 18px;font-family:inherit;font-size:15px;font-weight:700;letter-spacing:.3px;color:var(--text);cursor:pointer;border:1.5px solid transparent;border-radius:12px;background:linear-gradient(var(--panel),var(--panel)) padding-box,linear-gradient(120deg,var(--accent),var(--accent-2)) border-box;box-shadow:0 6px 16px #00000059;transition:transform .14s ease,box-shadow .14s ease,filter .14s ease,opacity .14s ease}.mp-btn:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.08);box-shadow:0 10px 24px #00000073,0 0 18px #6c5ce766}.mp-btn:active:not(:disabled){transform:translateY(0) scale(.99)}.mp-btn:disabled{opacity:.45;cursor:not-allowed;filter:saturate(.6)}.mp-btn--primary{background:linear-gradient(120deg,var(--accent),var(--accent-2)) padding-box,linear-gradient(120deg,var(--accent-2),var(--gold)) border-box}.mp-btn--ghost{background:#09070f66 padding-box,linear-gradient(120deg,var(--panel-border),var(--panel-border)) border-box;color:var(--text-muted)}.mp-btn--ready{background:linear-gradient(120deg,#3ddc972e,#00d2ff24) padding-box,linear-gradient(120deg,var(--hp-green),var(--accent-2)) border-box}.mp-btn--unready{background:#09070f66 padding-box,linear-gradient(120deg,var(--gold),var(--accent)) border-box;color:var(--gold)}.mp-lobby-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.mp-code-row{display:flex;align-items:center;gap:12px;margin-top:4px}.mp-code{font-size:34px;font-weight:800;letter-spacing:8px;color:var(--gold);text-shadow:0 0 18px rgba(246,196,83,.35)}.mp-copy{padding:6px 12px;font-family:inherit;font-size:12px;font-weight:700;color:var(--text);cursor:pointer;background:#09070f80;border:1px solid var(--panel-border);border-radius:8px;transition:border-color .12s ease,color .12s ease}.mp-copy:hover{border-color:var(--accent-2);color:var(--accent-2)}.mp-lobby-count{font-size:15px;font-weight:700;color:var(--text-muted)}.mp-banner{padding:9px 14px;border-radius:10px;font-weight:700;font-size:13px;text-align:center}.mp-banner--go{color:#0a2a1d;background:linear-gradient(120deg,var(--hp-green),var(--accent-2));animation:mp-pulse 1s ease-in-out infinite}@keyframes mp-pulse{0%,to{filter:brightness(1)}50%{filter:brightness(1.18)}}.mp-slots{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.mp-slot{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:12px;border:1px solid var(--panel-border);background:#09070f66;animation:mp-slot-in .22s ease both}@keyframes mp-slot-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.mp-slot--empty{opacity:.55;border-style:dashed}.mp-slot--self{border-color:var(--accent-2);box-shadow:0 0 14px #00d2ff2e inset}.mp-slot--offline{opacity:.55}.mp-avatar{flex:0 0 auto;width:38px;height:38px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;color:#0a0712;border-radius:50%;background:linear-gradient(150deg,var(--accent-2),var(--accent));box-shadow:0 0 12px #6c5ce74d}.mp-avatar--empty{background:#352a5e80;color:var(--text-muted);box-shadow:none}.mp-slot-body{display:flex;flex-direction:column;gap:3px;min-width:0}.mp-slot-head{display:flex;align-items:center;gap:7px}.mp-slot-name{font-size:14px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}.mp-slot-tags{display:flex;gap:4px}.mp-tag{font-size:9px;font-weight:800;letter-spacing:.5px;padding:1px 5px;border-radius:5px}.mp-tag--host{color:#2a1d05;background:var(--gold)}.mp-tag--you{color:#03222a;background:var(--accent-2)}.mp-status{font-size:12px;font-weight:600}.mp-status--ready{color:var(--hp-green)}.mp-status--idle{color:var(--text-muted)}.mp-status--offline{color:var(--danger)}.mp-start-wrap{flex:1;display:flex;flex-direction:column;gap:4px}.mp-hint{font-size:11px;color:var(--text-muted);text-align:center}.mp-match-meta{display:flex;flex-wrap:wrap;gap:10px}.mp-meta-chip{display:flex;flex-direction:column;gap:2px;padding:8px 14px;border-radius:10px;background:#09070f73;border:1px solid var(--panel-border)}.mp-meta-k{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--text-muted)}.mp-meta-v{font-size:15px;font-weight:700;color:var(--text)}.mp-placeholder{margin-top:4px;padding:14px;border-radius:12px;text-align:center;font-size:13px;font-weight:600;color:var(--accent-2);background:#00d2ff14;border:1px dashed rgba(0,210,255,.4)}.mp-fillnote{font-size:12px;font-weight:600;color:var(--accent-2);background:#00d2ff14;border:1px solid rgba(0,210,255,.3);border-radius:9px;padding:7px 12px}.mp-confirm{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0a0816b8;z-index:40}.mp-confirm-box{max-width:420px;padding:26px 28px 22px;border-radius:16px;border:1px solid var(--panel-border);background:linear-gradient(160deg,#221b3df5,#1b1633f5);box-shadow:0 24px 70px #0009}.mp-confirm-title{margin:0 0 8px;font-size:20px;font-weight:800;color:var(--text)}.mp-confirm-text{margin:0 0 16px;font-size:13px;line-height:1.5;color:var(--text-muted)}.mp-confirm-row{display:flex;gap:10px}.mp-confirm-row .mp-btn{flex:1}.mp-btn--danger{color:#fff;background:linear-gradient(120deg,#b3263e,#ff5470);border-color:#ff547099}.mp-conn{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#0a0816c7;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:50}.mp-conn-title{font-size:24px;font-weight:800;color:var(--danger);letter-spacing:.5px}.mp-conn-text{font-size:14px;color:var(--text-muted);margin-bottom:8px}.mp-conn .mp-btn{min-width:200px}.mp-summary{max-width:760px}.mp-summary-victory{background:linear-gradient(100deg,var(--gold),#ffe9a8 60%,var(--gold));-webkit-background-clip:text;background-clip:text;animation:mp-victory-glow 1.6s ease-in-out infinite alternate}@keyframes mp-victory-glow{0%{filter:drop-shadow(0 0 6px rgba(246,196,83,.35))}to{filter:drop-shadow(0 0 18px rgba(246,196,83,.7))}}.mp-summary-sub{font-size:14px;font-weight:700;color:var(--text)}.mp-summary-stats{font-size:11px;color:var(--text-muted)}.mp-standings{display:flex;flex-direction:column;gap:4px;max-height:46vh;overflow-y:auto;padding-right:4px}.mp-stand-row{display:grid;grid-template-columns:44px 1.6fr .9fr .6fr .7fr 1.2fr 1.1fr;gap:8px;align-items:center;padding:7px 10px;border-radius:10px;border:1px solid rgba(108,92,231,.18);background:#221b3d80;font-size:12px;color:var(--text)}.mp-stand-head{background:none;border-color:transparent;color:var(--text-muted);font-size:10px;letter-spacing:1px;text-transform:uppercase;font-weight:700;padding-bottom:2px}.mp-stand-row--top1{border-color:var(--gold);background:#f6c4531a}.mp-stand-row--top2{border-color:#c0c8d8;background:#c0c8d814}.mp-stand-row--top3{border-color:#cd8f52;background:#cd8f5214}.mp-stand-row--self{box-shadow:0 0 0 1.5px var(--accent-2) inset}.mp-stand-place{font-weight:800;font-size:14px}.mp-stand-name{display:flex;align-items:center;gap:6px;font-weight:700;min-width:0}.mp-stand-name span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mp-stand-cell{color:var(--text-muted);font-weight:600}.mp-stand-traits{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mp-tag--bot{color:#1a1430;background:var(--accent-2);opacity:.8}.mp-tag--left{color:#fff;background:var(--danger)}.mp-history-list{display:flex;flex-direction:column;gap:6px;max-height:52vh;overflow-y:auto}.mp-history-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:12px;border:1px solid rgba(108,92,231,.25);background:#221b3d8c;color:var(--text);cursor:pointer;text-align:left;transition:border-color .12s ease,transform .12s ease}.mp-history-row:hover{border-color:var(--accent-2);transform:translateY(-1px)}.mp-history-row--won{border-color:var(--gold)}.mp-history-place{font-size:16px;font-weight:800;color:var(--gold);min-width:42px}.mp-history-main{flex:1;min-width:0}.mp-history-title{font-size:13px;font-weight:700}.mp-history-sub{font-size:11px;color:var(--text-muted)}.mp-history-open{font-size:20px;color:var(--text-muted)}
