:root{color-scheme:dark;--bg: #101114;--ambient-opacity: .28;--ambient-saturation: .35;--ambient-brightness: 1;--ambient-blur: 2px;--ambient-shell-opacity: 0;--surface: #181a1e;--surface-hover: #22252a;--accent: #c94752;--accent-hover: #eb6670;--text: #e3e5e8;--muted: #969ba5;--border: #2b2e34;--success: #60bd98;--warning: #e6b766;--error: #ff777c;--topbar: 64px;--platform-banner: 0px;--sidebar: 200px;--friends: 280px;--radius: 4px;--dur-fast: .12s;--dur-base: .16s;--dur-slow: .22s;--ease-out: cubic-bezier(.2, .8, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.34, 1.3, .4, 1);font:14px/1.5 Segoe UI,Microsoft YaHei,sans-serif;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-synthesis:none}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:#35424f transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:#35424f;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#4a5a6e}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-corner{background:transparent}@supports (transition-timing-function: linear(0,1)){:root{--ease-spring: linear(0, .45, .55, 1.05, 1)}}html,body,#root{height:100%}body{margin:0;min-width:360px;overflow:hidden}button,input,select{font:inherit}button{color:inherit;cursor:pointer;border:0;background:none}button,a{touch-action:manipulation}button:disabled{opacity:.42;cursor:not-allowed}button:focus-visible,a:focus-visible{outline:2px solid var(--accent-hover);outline-offset:4px}a{color:var(--accent-hover);text-decoration:none}a:hover{color:var(--text)}img{display:block;max-width:100%}svg{flex:0 0 auto;vertical-align:middle}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.3}h1{font-size:28px;letter-spacing:-.6px;font-weight:600}h2{font-size:20px;font-weight:600}h3{font-size:16px;font-weight:600}input,select{min-width:0;width:100%;height:44px;padding:10px 12px;background:#131519;border:1px solid var(--border);border-radius:var(--radius);color:var(--text)}input::placeholder{color:#8793a2;opacity:1}input:focus,select:focus{border-color:var(--accent);outline:none;box-shadow:none}input[type=checkbox],input[type=radio]{width:20px;height:20px;accent-color:var(--accent)}::selection{background:#76363c;color:#fff}.muted,.hint{color:var(--muted)}.hint{font-size:13px;line-height:1.7}.ready{color:var(--success)}select{cursor:pointer}select:disabled{cursor:not-allowed;opacity:.42}@supports (appearance: base-select){select,select::picker(select){appearance:base-select}select{display:flex;align-items:center;gap:12px}select::picker-icon{margin-left:auto;color:var(--muted)}select::picker(select){margin-top:6px;padding:6px;max-height:260px;overflow-y:auto;border:1px solid #34373e;border-radius:4px;background:var(--surface);color:var(--text);box-shadow:0 12px 32px #0008}select option{display:flex;align-items:center;gap:12px;min-height:38px;padding:8px 12px;border-radius:4px;font-size:14px}select option:hover,select option:focus{background:var(--surface-hover);outline:none}select option:checked{color:#ff9295;background:#39232b}select option::checkmark{color:var(--accent-hover)}}.app{position:relative;isolation:isolate;height:100%;height:100vh;height:100dvh;overflow:hidden;padding-top:calc(var(--topbar) + var(--platform-banner))}.app:not(.login-app):before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:url(/assets/app-graphite-texture2.png) center / cover no-repeat;opacity:var(--ambient-opacity);filter:saturate(var(--ambient-saturation)) brightness(var(--ambient-brightness)) blur(var(--ambient-blur))}.app:not(.login-app)>.topbar,.app:not(.login-app)>.sidebar,.app:not(.login-app)>.friends-rail{background-color:rgb(20 21 25 / var(--ambient-shell-opacity))}.app.login-app{padding-top:0}.app.has-platform-banner:not(.login-app){--platform-banner: 36px}.platform-banner{position:fixed;z-index:18;top:var(--topbar);left:0;right:0;height:36px;display:flex;align-items:center;gap:8px;padding:0 16px;overflow:hidden;color:#f3d7a1;background:#2a2116;border-bottom:1px solid #6a5330;-webkit-app-region:no-drag}.platform-banner.overlay-top{top:0}.platform-banner.chrome-pad{padding-right:148px}.platform-banner-body{margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;animation:platform-banner-play var(--platform-banner-interval, 8s) ease-out infinite}@keyframes platform-banner-play{0%{opacity:.45;transform:translateY(4px)}12%{opacity:1;transform:none}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.platform-banner-body{animation:none;opacity:1;transform:none}}@media(max-width:480px){.app.has-platform-banner:not(.login-app){--platform-banner: 56px}.platform-banner{height:56px}.platform-banner-body{white-space:normal;text-overflow:unset;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.35}}.topbar{position:fixed;z-index:20;inset:0 0 auto;height:var(--topbar);display:flex;align-items:center;gap:28px;padding:0 20px 0 28px;border-bottom:1px solid var(--border);background:#141519;-webkit-app-region:drag}.topbar button,.topbar input,.topbar label{-webkit-app-region:no-drag}.brand{display:flex;gap:12px;align-items:center;padding:0;flex:0 0 230px;white-space:nowrap;text-align:left}.brand img{width:38px;height:38px;object-fit:contain}.brand span{font-size:22px;font-weight:600;letter-spacing:.4px}.brand-group{display:flex;align-items:center;flex:0 0 auto;gap:16px;min-width:0}.brand-group .brand{flex:0 0 auto}.client-download-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 13px;border:1px solid #a94953;border-radius:4px;color:#ef929a;background:#2b1d22;font-size:13px;font-weight:600;white-space:nowrap;text-decoration:none;-webkit-app-region:no-drag}.client-download-link:hover,.client-download-link:focus-visible{color:#ffbec3;border-color:var(--accent-hover);background:#3b232a}.global-search,.room-search,.friend-search{display:flex;align-items:center;gap:10px;color:var(--muted);border:1px solid var(--border);border-radius:var(--radius);background:#191b20;padding:0 12px}.global-search{flex:0 1 280px;margin-left:auto;height:40px;min-width:160px}.global-search input{height:38px;font-size:14px}.global-search input,.room-search input,.friend-search input{padding-inline:0;border:0;background:transparent;outline:none}.global-search:focus-within,.room-search:focus-within,.friend-search:focus-within{border-color:var(--accent);box-shadow:none}.global-search button{display:grid;place-items:center;width:44px;height:44px;color:var(--muted)}.top-actions{flex-shrink:0;display:flex;align-items:center;gap:8px}.icon-button{width:44px;height:44px;padding:0;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);border-radius:var(--radius);position:relative}.icon-button:hover{color:var(--text);background:var(--surface-hover)}.top-actions .icon-button[aria-label=关闭窗口]:hover{color:#fff;background:#bd3c43}.divider{height:32px;width:1px;margin:0 6px;background:#36414e}.unread{position:absolute;width:10px;height:10px;border-radius:50%;top:6px;right:7px;background:var(--accent);box-shadow:0 0 0 2px #141519;animation:badge-in .16s var(--ease-spring)}.sidebar{position:fixed;z-index:10;top:calc(var(--topbar) + var(--platform-banner));bottom:0;left:0;width:var(--sidebar);padding-top:20px;border-right:1px solid var(--border);background:#141519;overflow-y:auto}.recent-games{margin:16px 16px 0;padding-top:16px;border-top:1px solid var(--border)}.recent-games h2{margin:0 8px 12px;color:var(--muted);font-size:12px;font-weight:600}.recent-games-list{display:grid;gap:4px}.recent-game{display:flex;align-items:center;gap:12px;min-width:0;width:100%;padding:6px;border-radius:6px;text-align:left;font-size:14px;font-weight:600}.recent-game img{width:36px;height:36px;flex:none;border-radius:4px;object-fit:cover}.recent-game span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-game:hover{background:#241b21}.recent-game.selected{color:var(--accent-hover);background:#251c20}.recent-game:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(max-width:850px)and (min-width:641px){.recent-games{margin-inline:12px}.recent-games h2,.recent-game span{display:none}.recent-game{justify-content:center;padding:6px 0}}.nav-item{display:flex;align-items:center;gap:20px;width:100%;height:48px;padding:0 24px;border-left:2px solid transparent;font-size:14px;font-weight:500;text-align:left}.nav-item.selected{color:var(--accent-hover);border-left-color:var(--accent);background:#251c20}.nav-item:hover{background-color:#241b21}.content{display:flex;flex-direction:column;margin-left:var(--sidebar);margin-right:var(--friends);padding:24px;height:calc(100vh - var(--topbar) - var(--platform-banner));height:calc(100dvh - var(--topbar) - var(--platform-banner));overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.site-legal{margin-top:auto;padding-top:12px;font-size:12px;line-height:1.5;text-align:center}.site-legal p{margin:0}.site-legal a{color:inherit;text-decoration:underline;text-underline-offset:2px}.site-legal a:hover,.site-legal a:focus-visible{color:var(--text)}.content>h1{margin:0 0 18px}.preview-notice{position:fixed;z-index:21;bottom:12px;left:calc(var(--sidebar) + 24px);max-width:calc(100vw - var(--sidebar) - var(--friends) - 48px);padding:8px 12px;border:1px solid #59462e;border-radius:4px;color:var(--warning);background:#261f17;font-size:12px}.preview-notice a{margin-left:12px;color:var(--warning);text-decoration:underline}.game-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;align-items:start;width:100%}.game-card{position:relative;width:100%;max-width:360px;padding:0;overflow:hidden;background:#191b1f;border:1px solid #ffffff12;border-radius:var(--radius);text-align:left;transition:border-color .15s ease,transform .15s ease}.game-card:hover{border-color:var(--accent);transform:translateY(-2px)}.game-map-status{position:absolute;top:10px;right:10px;z-index:1;max-width:calc(100% - 20px);padding:4px 9px;border-radius:999px;background:#da4050;color:#fff;font-size:12px;font-weight:700;line-height:1.2;box-shadow:0 2px 8px #0009}.game-cover{width:100%;aspect-ratio:.9;object-fit:cover}.game-meta{padding:10px 14px 14px}.game-meta h2{font-size:18px;margin-bottom:5px;overflow-wrap:anywhere}.game-meta>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.game-meta>div>span:first-child{color:#b2bcc9;font-size:13px}.game-heat{display:inline-flex;align-items:center;gap:5px;margin-right:auto;min-width:0;font-variant-numeric:tabular-nums}.game-heat svg{flex:0 0 auto;color:currentColor}.game-meta>div>span.game-heat{color:#ff951f;font-size:15px;font-weight:600;letter-spacing:.2px}.outline-button{display:inline-flex;flex:0 0 auto;align-items:center;gap:8px;min-height:40px;padding:7px 10px;color:var(--text);background:linear-gradient(115deg,#c9475205,#c947521c);border:1px solid #c9475266;border-radius:4px;font-size:14px;white-space:nowrap}.game-card:hover .outline-button{background:linear-gradient(115deg,#c9475212,#c9475233);border-color:var(--accent)}.game-card:focus-visible .outline-button{border-color:var(--accent-hover)}.outline-button svg{color:var(--accent-hover)}.game-friends{position:absolute;top:10px;right:10px;display:flex;align-items:flex-end;flex-direction:column;gap:6px;pointer-events:none}.game-friends-label{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:4px;color:#a4dfc1;background:#101714ed;font-size:12px}.game-friends-avatars{display:flex;gap:4px}.game-friends-avatars .avatar{border:1px solid #ffffff80}.primary,.secondary,.quiet,.text-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border-radius:3px;padding:9px 18px;font-weight:500;text-align:center}.primary{color:#fff;background:var(--accent);border:1px solid var(--accent)}.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.secondary{color:#c8cbd1;background:#202227;border:1px solid #3a3d45}.secondary:hover:not(:disabled){background:#292c32;border-color:#656a75;color:var(--text)}.quiet{color:var(--muted);border:1px solid var(--border);background:#202227}.quiet:hover{color:var(--text);background:var(--surface-hover)}.text-button{padding-inline:0;color:var(--accent-hover);font-size:14px;font-weight:500}.text-button:hover{color:#ffb0b3}.breadcrumb{display:flex;align-items:center;gap:10px;margin:-8px 0 12px;padding:4px 0;min-height:28px;color:#c1cad4;transition:color .14s ease}.breadcrumb span{color:#778494}.breadcrumb:hover{color:#fff}.breadcrumb:active:not(:disabled){transform:translateY(1px)}.room-topline{position:relative;display:flex;align-items:center;gap:16px;min-height:32px;margin:-8px 0 2px}.room-topline .breadcrumb{flex:0 0 auto;margin:0}.room-topline-feedback{display:flex;justify-content:flex-end;flex:1 1 auto;min-width:0;overflow:hidden}.room-topline-feedback .room-action-feedback{min-height:28px;padding:0 0 0 10px}.room-topline-feedback .room-action-feedback>span,.room-topline-feedback .room-auto-start-error{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-picker{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);white-space:nowrap}.map-picker select{height:36px;padding:4px 12px;font-size:14px}.rooms-section{padding-top:20px}.rooms-section>h2{font-size:20px;margin-bottom:10px}.room-tools{display:flex;align-items:center;gap:16px;margin-bottom:18px}.filters{display:flex;align-items:center;gap:12px}.region-label{font-size:13px;color:var(--muted);white-space:nowrap}.filters button{display:inline-flex;align-items:center;gap:8px;padding:7px 20px;min-height:40px;color:#b3bfce;white-space:nowrap;border:1px solid var(--border);border-radius:3px;background:#191b20}.region-ping{font-size:12px;font-variant-numeric:tabular-nums;color:#7d8590}.region-ping.good{color:var(--success)}.region-ping.poor{color:var(--warning)}.region-ping.bad{color:var(--error)}.filters button:hover{color:#fff;background:var(--surface-hover)}.filters button.active{border-color:#654047;color:#efb1b6;background:#302227;box-shadow:none}.room-search{margin-left:auto;width:min(40%,382px);height:40px}.room-search input{height:100%;padding-block:0}.room-tools>.icon-button{width:56px;height:40px;border:1px solid var(--border);background:#1a1c20}.room-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.room-card{display:flex;align-items:stretch;gap:16px;padding:10px;min-width:0;min-height:132px;background:#181a1e;border:1px solid var(--border);border-radius:var(--radius)}.room-art{width:64px;flex:0 0 64px;object-fit:cover;border:1px solid #34303b;border-radius:4px}.room-card-body{display:flex;flex-direction:column;justify-content:space-between;flex:1;min-width:0;padding:5px 2px}.room-title{display:flex;gap:10px;justify-content:space-between;align-items:center}.room-title h3{font-size:15px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.room-title>span{color:#adbbcd;font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}.lock-badge{vertical-align:-2px;margin-right:5px}.password-field{display:flex;gap:8px;align-items:center}.password-field input{flex:1;min-width:0}.password-field .eye-toggle{flex-shrink:0;width:44px;height:44px;padding:0;color:#adbbcd}.room-password-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px}.room-password-row .muted{display:inline-flex;align-items:center;gap:6px;min-height:24px}.room-password-row .text-button{min-height:32px;padding-block:4px}.room-status{display:flex;gap:8px;align-items:center;color:var(--muted);margin:8px 0 12px;font-size:14px}.room-status i{height:11px;width:11px;border-radius:50%;background:currentColor;flex:0 0 auto}.room-status.waiting{color:var(--success)}.room-status>span{margin-left:12px;color:#aebacc;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px}.small-roster{display:flex;align-items:center;gap:6px;min-width:0;flex-wrap:wrap}.small-roster .avatar{width:32px;height:32px}.network-latency{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:22px;color:#aeb6c3;font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.network-latency.good{color:var(--success)}.network-latency.poor{color:var(--warning)}.network-latency.bad{color:var(--error)}.network-latency.unavailable{color:#7d8590}.avatar{object-fit:cover;border:1px solid #555b65;border-radius:50%;background:#161e26;flex:0 0 auto}.vacant{width:32px;height:32px;border:1px dashed #526071;border-radius:4px;color:#8392a3;display:grid;place-items:center;flex:0 0 auto}.room-bottom>button{padding:7px 12px;min-height:46px;white-space:nowrap;font-size:14px}.friends-rail{position:fixed;top:calc(var(--topbar) + var(--platform-banner));right:0;bottom:0;z-index:15;width:var(--friends);padding:20px;overflow-y:auto;scrollbar-gutter:stable;border-left:1px solid var(--border);background:#141519}.party-rail{margin:-20px -20px 0;padding:20px 20px 24px;border-bottom:1px solid var(--border)}.party-rail+header{margin-top:20px}.party-rail header,.party-rail-actions{display:flex;align-items:center;justify-content:space-between;gap:7px}.party-rail h2{font-size:17px;white-space:nowrap}.party-rail h2 span{margin-left:5px}.party-invite-action{display:inline-flex;align-items:center;gap:5px;padding:4px 0;color:var(--accent-hover);font-size:13px;font-weight:600;white-space:nowrap}.party-invite-action:disabled{color:var(--muted)}.party-invite-action:not(:disabled):hover{color:#ff8890}.party-leave{display:grid;place-items:center;width:24px;height:24px;padding:0;color:var(--muted)}.party-leave:hover{color:var(--text)}.party-slots{display:flex;flex-wrap:wrap;gap:4px;margin-top:23px}.party-slot{position:relative;display:grid;place-items:center;width:calc((100% - 16px)/5);max-width:42px;aspect-ratio:1;flex:none}.party-slot .avatar{width:100%;height:100%;border-radius:50%;border:1px solid #666b72}.party-kick{position:absolute;top:-7px;right:-5px;display:grid;place-items:center;width:18px;height:18px;padding:0;border-radius:50%;color:#fff;background:#a23b47;opacity:0;transition:opacity .15s ease}.party-slot:hover .party-kick,.party-kick:focus-visible{opacity:1}.party-slot small{position:absolute;top:calc(100% - 4px);left:50%;transform:translate(-50%);padding:1px 4px;border-radius:3px;color:#fff;background:var(--accent);font-size:10px;line-height:1.1;white-space:nowrap}.party-slot.empty{min-height:0;padding:0;color:#aab0ba;border:1px dashed #69717e;border-radius:50%}.party-slot.empty:not(:disabled):hover{color:var(--text);border-color:var(--accent-hover)}.party-slot.empty:disabled{opacity:.5}.party-member-hint{margin:16px 0 0;color:var(--muted);font-size:12px;line-height:1.5}.party-over-limit{margin:16px 0 0;color:#e7a8ad;font-size:12px;line-height:1.4}.friends-rail-actions{display:flex;align-items:center;gap:2px}.friends-rail>header{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--border)}.friends-rail h2{margin:0;font-size:17px}.friends-rail h2 span{color:var(--muted);font-weight:400;font-size:13px}.friend-groups{display:flex;flex-direction:column}.friend-group{border-bottom:1px solid rgb(255 255 255 / 6%)}.friend-group-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:44px;padding:10px 4px;color:#c9cdd3;text-align:left}.friend-group-toggle:hover{color:var(--text)}.friend-group-toggle>span{display:flex;align-items:center;gap:8px;min-width:0}.friend-group-toggle strong{font-size:13px;font-weight:600}.friend-group-toggle small{color:#737a86;font-size:12px}.friend-group-toggle>svg{color:#6f7784;transition:transform .14s ease,color .14s ease}.friend-group-toggle>svg.expanded{color:#aeb5bf;transform:rotate(180deg)}.friend-group.playing .friend-group-toggle>span>svg{color:var(--success)}.friend-group.online .friend-group-toggle>span>svg{color:#75a9d6}.friend-group.offline .friend-group-toggle>span>svg{color:#69717e}.friend-group.not_on_platform .friend-group-toggle>span>svg{color:#8e796c}.friend-list{display:flex;flex-direction:column;gap:2px;padding-bottom:10px}.friend-row{position:relative;display:flex;align-items:center;gap:11px;width:100%;min-height:52px;padding:6px;text-align:left;border-radius:var(--radius)}.friend-row:hover{background:#ffffff0a}.friend-avatar{position:relative;display:grid;flex:0 0 40px;width:40px;min-height:40px;padding:0;place-items:center;border-radius:50%}.friend-avatar>.avatar{width:40px;height:40px}.friend-avatar>svg{position:absolute;right:-1px;bottom:-1px;color:#626a77;filter:drop-shadow(0 0 2px #141519)}.friend-avatar>svg.active{color:var(--success)}.friend-copy{flex:1;min-width:0}.friend-row strong,.friend-name{font-size:14px;font-weight:500;display:block;width:100%;padding:0;overflow:hidden;color:inherit;text-align:left;text-overflow:ellipsis;white-space:nowrap}.friend-name:hover,.friend-copy small a:hover{color:var(--text);text-decoration:underline;text-underline-offset:2px}.friend-row small{display:block;overflow:hidden;color:#abb7c6;font-size:12px;line-height:1.35;margin-top:3px;text-overflow:ellipsis;white-space:nowrap}.friend-copy small a{color:#d7dce3;font-weight:500;text-decoration:none}.friend-group.offline .friend-copy strong,.friend-group.offline .friend-copy .friend-name,.friend-group.not_on_platform .friend-copy strong,.friend-group.not_on_platform .friend-copy .friend-name{color:#b2b6bd}.friend-group.offline .friend-copy small,.friend-group.not_on_platform .friend-copy small{color:#777e89}.platform-friend-list{padding-top:2px}.friend-rail-error{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;padding:8px 10px;color:#d9a0a4;font-size:12px;border:1px solid rgb(201 71 82 / 28%);border-radius:var(--radius);background:#c9475212}.friend-rail-error .text-button{flex:none;min-height:30px;padding:3px 6px}.friends-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;color:var(--muted);padding-top:54px;font-size:14px}.close-friends{display:none}.room-detail{margin-top:24px;padding:24px;background:#16181c;border:1px solid var(--border);border-radius:var(--radius)}.section-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.section-heading h2{font-size:20px;overflow-wrap:anywhere}.section-heading p{margin-top:6px;font-size:14px}.roster{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:24px 0}.roster-large{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.roster-large .player-slot{min-height:118px;padding:12px 8px}.roster-large .avatar{width:44px;height:44px}.roster-count{font-size:12px;color:var(--muted);white-space:nowrap}.player-slot strong{max-width:100%;overflow-wrap:anywhere;text-align:center}.player-slot{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;padding:22px 8px;min-height:160px;background:#1c1e23;border:1px solid var(--border);border-radius:var(--radius)}.player-slot strong{display:flex;align-items:center;justify-content:center;gap:6px;font-size:15px;overflow-wrap:anywhere}.player-slot strong svg{color:var(--warning)}.player-slot>span:last-child{font-size:13px}.player-slot>.network-latency:last-child{font-size:12px}.empty-player{display:grid;place-items:center;height:64px;width:64px;border-radius:50%;border:1px dashed #526071;color:#647589}.room-controls{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12px}.room-controls>.muted{display:inline-flex;align-items:center;gap:8px}.room-detail>.hint{margin-top:12px;text-align:right}.chat-area{margin-top:26px;padding-top:22px;border-top:1px solid var(--border)}.chat-area h3{font-size:16px}.chat-list{min-height:100px;max-height:230px;overflow-y:auto;scrollbar-gutter:stable;padding:16px 0}.chat-list p{display:flex;align-items:baseline;gap:12px;margin-bottom:8px;font-size:14px}.chat-list strong{color:#b4c4d8;font-size:13px;flex:0 0 auto;max-width:140px;overflow-wrap:anywhere}.chat-list p span{overflow-wrap:anywhere;min-width:0}.chat-area form{display:flex;gap:8px}.chat-area form button{background:#2c2028;color:var(--accent-hover)}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:280px;text-align:center;color:var(--muted);padding:36px 20px}.empty h3{color:#d3dce6}.empty>p{max-width:430px;font-size:15px}.empty .primary,.empty .secondary{margin-top:8px}.empty.error>svg{color:var(--error)}.error-banner{display:flex;gap:16px;align-items:center;justify-content:space-between;background:#2b1a20;color:#ffa4a8;border:1px solid #703d47;border-radius:var(--radius);padding:12px 16px;margin:12px 0 18px;font-size:14px;overflow-wrap:anywhere}.error-banner button{flex:0 0 auto;text-decoration:underline;min-height:32px}.toast{position:fixed;z-index:50;inset:auto 0 28px;display:flex;gap:12px;align-items:center;width:max-content;max-width:min(480px,calc(100vw - 32px));height:fit-content;margin:0 auto;padding:4px 4px 4px 16px;background:#22252a;color:var(--text);border:1px solid #363a42;border-radius:6px;box-shadow:0 6px 24px #0005;font-size:13px;line-height:1.6;animation:toast-enter .16s ease-out;-webkit-app-region:no-drag;pointer-events:auto}.toast:popover-open{inset:auto 0 28px;width:max-content;height:fit-content;margin:0 auto;padding:4px 4px 4px 16px;overflow:visible;background:#22252a;color:var(--text);border:1px solid #363a42}.toast-icon{flex:0 0 auto;color:#aab6c9}.toast-message{min-width:0;overflow-wrap:anywhere;padding:8px 0}.toast>button{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;padding:0;margin-left:4px;color:#969ba5;border-radius:3px}.toast>button:hover{background:#ffffff0a;color:#e3e5e8}.toast>button svg{pointer-events:none}@keyframes toast-enter{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.toast{animation:none}}.modal{width:min(500px,calc(100vw - 32px));max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);overflow:hidden;padding:0;border:1px solid #34373e;border-radius:6px;background:#1a1c20;color:var(--text);box-shadow:0 24px 100px #000b}.modal[open]{display:flex;flex-direction:column}.modal,.modal *{-webkit-app-region:no-drag}.modal.compact{width:min(460px,calc(100vw - 32px))}.modal::backdrop{background:#03060ac2;backdrop-filter:blur(3px)}.modal>header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0;padding:20px 20px 16px 28px;border-bottom:0;flex-shrink:0}.modal>header .icon-button{flex:0 0 44px}.modal>header .icon-button svg{pointer-events:none}.modal-body{min-height:0;overflow-y:auto;scrollbar-gutter:stable;padding:0 28px 24px;overscroll-behavior:contain}.modal h2{font-size:18px}.modal-body>p{font-size:14px;line-height:1.8}.modal form>label{display:flex;flex-direction:column;gap:8px;margin:0;color:#c3cdda;font-size:14px}.modal footer{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12px;margin-top:8px;padding-top:20px;border-top:1px solid var(--border)}.modal footer>.text-button{margin-right:auto}.operation{display:flex;align-items:center;gap:16px;min-height:70px}.operation>svg{color:var(--accent)}.operation p{font-size:15px}.progress-line{overflow:hidden;height:3px;border-radius:3px;background:#2a323d;margin:16px 0 0}.progress-line>span{display:block;width:34%;height:100%;background:var(--accent);animation:progress-travel 1.3s ease-in-out infinite}.login-body{text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px;padding:8px 0 12px}.login-body>.muted{font-size:13px;line-height:1.8}.login-body .primary{margin-top:8px;width:100%}.modal-body,.account-login,.modal form,.account-login form{display:flex;flex-direction:column;gap:20px}.modal form>button{align-self:flex-end}.account-login form>label{display:flex;flex-direction:column;gap:8px;margin:0;color:#c3cdda;font-size:14px}.account-login .filters{flex:none;gap:8px}.account-login .filters button{flex:1}.account-login .password-field button{flex-shrink:0;white-space:nowrap}.account-login form footer{margin:0;padding:0;border:0}.account-login form footer .primary{width:100%}.account-alternatives{display:flex;flex-direction:column;align-items:stretch;gap:12px;padding-top:20px;border-top:1px solid var(--border)}.account-alternatives .text-button{align-self:flex-start;min-height:32px;padding-block:4px;text-align:left}.account-alternatives .quiet{justify-content:center}.modal-body .profile-head,.modal-body .friend-search,.modal-body .mail-list,.modal-body>.hint,.modal-body .setting-row+.hint{margin:0}.profile-head{display:flex;align-items:center;gap:14px;margin-bottom:24px}.profile-head>div{min-width:0}.profile-head strong{overflow-wrap:anywhere}.profile-head .muted{font-size:12px;margin-top:5px}.profile-head>.icon-button{margin-left:auto}.modal.friends-modal{width:min(860px,calc(100vw - 32px));height:min(650px,calc(100vh - 48px));height:min(650px,calc(100dvh - 48px))}.friends-modal .modal-body{flex:1;overflow:hidden;padding:0}.friends-workspace{display:grid;grid-template-columns:220px minmax(0,1fr);height:100%;min-height:0}.friends-modal-nav{display:flex;flex-direction:column;gap:4px;padding:8px 20px 24px;border-right:1px solid var(--border)}.friends-modal-nav>button{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:10px;min-height:62px;padding:10px 12px;color:#adb4bf;border:1px solid transparent;border-radius:6px;text-align:left}.friends-modal-nav>button:hover{color:var(--text);background:#202228}.friends-modal-nav>button.active{color:var(--text);border-color:#41444c;background:#26292f}.friends-modal-nav>button>span{display:flex;min-width:0;flex-direction:column;gap:3px}.friends-modal-nav strong{font-size:13px;font-weight:600}.friends-modal-nav small{overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.friends-modal-content{min-width:0;overflow-y:auto;padding:10px 30px 30px;scrollbar-gutter:stable}.friends-modal-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.friends-modal-heading h3{margin:0 0 6px;font-size:20px;font-weight:600}.friends-modal-heading p,.steam-friend-discovery p{margin:0;color:var(--muted);font-size:12px;line-height:1.6}.friend-search.friends-modal-search,.steam-friend-discovery .friend-search{min-height:42px;margin:0 0 20px}.platform-friend-groups{display:flex;flex-direction:column;gap:22px}.platform-friend-group>header{display:flex;align-items:center;justify-content:space-between;min-height:32px;color:#cbd2dc;border-bottom:1px solid var(--border)}.platform-friend-group>header>span{display:flex;align-items:center;gap:9px}.platform-friend-group>header strong{font-size:12px;font-weight:600}.platform-friend-group>header small{color:var(--muted);font-size:11px}.platform-friend-group.playing>header svg{color:#38c784}.platform-friend-group.online>header svg{color:#6a91c9}.platform-friend-group.offline>header svg{color:#717783}.friend-management,.steam-friend-match{display:flex;align-items:center;gap:13px;min-height:64px;border-bottom:1px solid rgb(255 255 255 / 5%)}.friend-management-copy,.steam-friend-match>span:not(.friend-avatar){flex:1;min-width:0}.friend-management-copy strong,.friend-management-copy small,.steam-friend-match strong,.steam-friend-match small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.friend-management-copy strong,.steam-friend-match strong{font-size:13px;font-weight:600}.friend-management-copy small,.steam-friend-match small{margin-top:4px;color:var(--muted);font-size:11px}.friend-management>button,.steam-friend-match>button{flex:none}.friend-management .danger{color:#e9777e}.friend-id-form{padding:16px 18px 18px;margin-bottom:22px;border:1px solid var(--border);border-radius:4px;background:#17191d}.friend-id-control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.friend-id-control button{min-width:96px}.steam-friend-discovery{display:flex;flex-direction:column}.steam-friend-discovery>header{display:flex;align-items:center;gap:16px;margin-bottom:14px}.steam-friend-discovery>header>div{flex:1;min-width:0}.steam-friend-discovery>header strong{display:block;margin-bottom:3px;font-size:14px}.refresh-steam-friends{gap:7px}.steam-friend-results{display:flex;flex-direction:column}.steam-bind-prompt{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:14px;padding:20px;border:1px solid var(--border);background:#17191d}.friend-discovery-error{padding:10px 12px;margin:0 0 10px!important;color:var(--error)!important;border-left:2px solid var(--error);background:#a3363e1a}.friend-discovery-meta{padding-top:12px;text-align:right}.friends-modal-empty{display:grid;place-items:center;gap:7px;min-height:150px;color:var(--muted);text-align:center}.friends-modal-empty p,.friends-modal-empty small{margin:0}@media(max-width:720px){.modal.friends-modal{height:calc(100vh - 32px);height:calc(100dvh - 32px)}.friends-modal .modal-body{overflow-y:auto}.friends-workspace{display:flex;flex-direction:column;height:auto;min-height:100%}.friends-modal-nav{flex-direction:row;padding:0 20px 14px;border-right:0;border-bottom:1px solid var(--border)}.friends-modal-nav>button{flex:1}.friends-modal-content{overflow:visible;padding:22px 20px 28px}.friend-id-control{grid-template-columns:1fr}.friend-id-control button{width:100%}.steam-bind-prompt{grid-template-columns:36px minmax(0,1fr)}.steam-bind-prompt button{grid-column:1 / -1}}.mail-list{margin-top:12px}.mail-list article{padding:16px 0;border-top:1px solid var(--border)}.mail-list article strong{font-size:15px}.mail-list article p{font-size:14px;color:#b5c2d1;margin:8px 0;overflow-wrap:anywhere}.mail-list button{margin-top:8px;font-size:14px}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--border);font-size:14px}.setting-row+.hint{margin:12px 0 20px}.modal-body>.hint{margin-block:12px}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes progress-travel{0%{transform:translate(-100%)}to{transform:translate(395%)}}@media(max-width:1400px){:root{--sidebar: 196px;--friends: 230px}.brand{flex-basis:260px;gap:12px}.brand span{font-size:22px}.topbar{gap:20px;padding-left:24px}.top-actions{gap:2px}.content{padding-inline:20px}.nav-item{padding-left:22px;gap:16px}.friends-rail{padding-inline:16px}.friend-row{gap:12px}.friend-row>.avatar{width:40px;height:40px}.game-grid{gap:16px}.game-meta{padding-inline:12px}.game-meta>div{flex-wrap:wrap}.room-card{gap:12px}.room-art{width:72px;flex-basis:72px}.room-bottom{flex-wrap:wrap}.room-bottom>button{margin-left:auto}.filters{gap:8px}.filters button{padding-inline:14px}.room-tools{gap:12px}}@media(max-width:1120px){:root{--sidebar: 168px;--friends: 0px}.brand{flex-basis:auto}.brand img{width:45px;height:44px}.brand span{font-size:22px}.topbar{gap:20px;padding-inline:20px}.top-actions{gap:0}.divider{margin-inline:2px}.nav-item{font-size:14px;gap:12px;padding-inline:16px}.friends-rail{width:270px;transform:translate(100%);visibility:hidden;transition:transform .18s ease,visibility .18s;box-shadow:-12px 0 40px #0008}.app:not(.login-app)>.friends-rail{background-color:#141519}.friends-open .friends-rail{transform:translate(0);visibility:visible}.close-friends{display:inline-flex;margin:-12px 0 12px}.game-grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr))}.game-meta>div{flex-wrap:nowrap}.room-title h3{font-size:15px}.room-art{width:70px;flex-basis:70px}.room-status{font-size:13px}.room-status>span{margin-left:4px}}@media(max-width:850px){:root{--sidebar: 76px;--topbar: 68px}.topbar{padding-inline:14px;gap:14px}.brand{gap:8px}.brand img{width:38px;height:38px}.brand span{font-size:22px}.brand-group{gap:8px}.client-download-link{width:36px;padding:0}.client-download-link span{display:none}.global-search{min-width:100px;height:42px}.global-search input{font-size:14px}.top-actions .icon-button{width:44px}.top-actions .divider{height:24px;margin-inline:0}.nav-item{justify-content:center;padding-inline:0;border-left-width:3px}.nav-item span{display:none}.content{padding:20px 18px 40px}h1{font-size:28px}.rooms-section>h2{font-size:20px}.room-grid{grid-template-columns:minmax(0,1fr)}.room-art{width:92px;flex-basis:92px}.room-bottom{flex-wrap:nowrap}.room-tools{flex-wrap:wrap}.filters{flex:1 1 100%}.room-search{margin-left:0;width:auto;flex:1}.roster{grid-template-columns:repeat(2,minmax(0,1fr))}.room-detail{padding:18px}}@media(max-width:640px){:root{--topbar: 116px;--sidebar: 0px}.topbar{display:grid;grid-template-columns:1fr auto;grid-template-rows:58px 48px;gap:0 6px;padding:0 12px 10px}.brand{min-width:0}.brand span{font-size:22px;letter-spacing:0}.brand img{width:34px;height:34px}.brand-group{grid-row:1;grid-column:1 / -1}.client-download-link{width:auto;padding:0 9px}.client-download-link span{display:inline}.global-search{grid-row:2;grid-column:1;height:42px;width:100%}.top-actions{grid-column:2;grid-row:2}.top-actions .icon-button{width:44px;height:44px}.top-actions .icon-button>svg{width:21px;height:21px}.top-actions .divider,.sidebar{display:none}.content{padding:20px 16px 36px}.content>h1{margin-bottom:16px}.game-grid{grid-template-columns:minmax(0,1fr);gap:20px}.game-card{max-width:none}.game-cover{aspect-ratio:1.15;object-position:50% 42%}.game-meta{padding:14px 16px}.game-meta>div{flex-wrap:nowrap}.game-meta h2{font-size:18px}.map-picker{flex:1 1 100%}.breadcrumb{font-size:14px}.rooms-section>h2{font-size:20px}.filters{gap:8px}.filters button{padding:8px 15px;flex:1;font-size:14px}.room-card{min-height:140px;gap:12px}.room-art{width:66px;flex-basis:66px}.room-card-body{padding:3px 0}.room-title h3{font-size:15px}.room-title>span{font-size:13px}.room-status{font-size:12px;gap:6px}.room-status i{width:8px;height:8px}.room-bottom{flex-wrap:wrap;gap:8px}.small-roster{gap:4px}.small-roster .avatar,.small-roster .vacant{width:32px;height:32px}.room-bottom>button{min-height:40px;padding:6px 9px;font-size:13px}.section-heading{gap:12px}.section-heading h2{font-size:20px}.section-heading>button{white-space:nowrap}.roster{gap:10px}.player-slot{min-height:150px;padding:16px 8px}.room-controls>button,.room-controls>a{flex:1}.room-controls>.muted{flex-basis:100%;justify-content:center;font-size:14px}.chat-list p{flex-wrap:wrap;gap:4px 10px}.modal>header{padding:16px 12px 12px 20px}.modal-body{padding:0 20px 20px}.modal>header .icon-button{flex:0 0 44px}.modal>header .icon-button svg{pointer-events:none}.modal h2{font-size:18px}.toast,.toast:popover-open{bottom:16px}.empty{min-height:230px;padding-inline:12px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.progress-line>span,.workshop-progress-track.indeterminate>span{width:100%;transform:none;opacity:.7}.game-card:hover{transform:none}}.profile-id{font-size:11px;color:var(--muted);overflow-wrap:anywhere;margin-top:4px}.account-upgrade{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;background:var(--surface-hover);border-radius:4px}.account-upgrade strong{font-size:14px}.account-upgrade button{flex-shrink:0}.account-section{display:flex;flex-direction:column;align-items:stretch;gap:12px;padding-top:16px;border-top:1px solid var(--border)}.account-section h3{font-size:15px}.account-section>button{align-self:flex-start}.modal .account-section form{gap:12px}.identity-summary,.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px}.identity-summary strong{font-weight:500;overflow-wrap:anywhere}.status-label{font-size:12px;color:var(--muted)}.modal.account-modal{width:min(900px,calc(100vw - 32px));height:min(650px,calc(100vh - 48px));height:min(650px,calc(100dvh - 48px))}.account-modal .modal-body{flex:1;display:block;overflow:hidden;padding:0}.account-workspace{display:grid;grid-template-columns:320px minmax(0,1fr);height:100%;min-height:0}.account-sidebar{min-width:0;display:flex;flex-direction:column;padding:8px 20px 24px;border-right:1px solid var(--border)}.account-identity{display:grid;grid-template-columns:48px minmax(0,1fr) 36px;align-items:center;gap:14px;padding:0 8px 12px}.account-identity .avatar{width:48px;height:48px}.account-identity-copy{min-width:0;display:flex;flex-direction:column;gap:3px}.account-identity-copy strong{overflow:hidden;color:var(--text);font-size:15px;text-overflow:ellipsis;white-space:nowrap}.account-identity-copy span{color:#aeb5c0;font-size:12px}.account-platform-id{grid-column:1 / -1;display:flex;flex-direction:column;gap:6px;min-width:0;color:var(--muted);font-size:11px}.account-platform-id code{color:#b8c0cc;font-size:11px;line-height:1.65;overflow-wrap:anywhere;user-select:text}.account-copy.icon-button{width:36px;height:36px}.account-nav{display:flex;flex-direction:column;gap:4px;padding:16px 0}.account-nav>button{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:62px;padding:9px 10px;color:#adb4bf;border:1px solid transparent;border-radius:6px;text-align:left}.account-nav>button:hover{color:var(--text);background:#202228}.account-nav>button.active{color:var(--text);border-color:#41444c;background:#26292f}.account-nav-icon{display:grid;place-items:center}.account-nav-copy{min-width:0;display:flex;flex-direction:column;gap:3px}.account-nav-copy strong{font-size:13px;font-weight:600}.account-nav-copy small{overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.account-status-tag{display:inline-flex;align-items:center;min-height:22px;padding:2px 7px;border-radius:3px;font-size:10px;font-weight:600;line-height:1.4;white-space:nowrap}.account-status-tag.pending{color:#ff8b92;background:#4a262b}.account-status-tag.done{color:#80d8b2;background:#1d3b32}.account-status-tag.neutral{color:#b8c0cc;background:#2b2e34}.account-logout{display:inline-flex;align-items:center;align-self:stretch;gap:10px;min-height:44px;margin-top:auto;padding:8px 12px;color:#aeb5c0;text-align:left}.account-logout:hover{color:var(--text)}.account-content{min-width:0;overflow-y:auto;padding:10px 30px 30px;scrollbar-gutter:stable}.account-content>header{margin-bottom:24px}.account-content>header h3{margin:0 0 7px;font-size:20px;font-weight:600}.account-content>header p,.account-action-row p{color:var(--muted);font-size:13px;line-height:1.65}.account-content-section{display:flex;flex-direction:column;align-items:flex-start;gap:16px;padding-top:8px}.account-content-section h4,.account-action h4{font-size:15px;font-weight:600}.account-content-section .account-form{width:100%}.account-action{margin-bottom:12px;padding:0 16px;background:#202227;border-radius:6px}.account-action:last-child{margin-bottom:0}.account-action-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:14px;min-height:108px;padding:18px 0}.account-action-icon{display:grid;place-items:center;color:#cbd2dc}.account-action-title{display:flex;align-items:center;gap:10px;margin-bottom:7px}.account-action-row>button{min-width:92px}.account-inline-form{padding:18px 18px 20px;margin-bottom:18px;background:#16181c;border:1px solid var(--border);border-radius:4px}.account-inline-form .account-login form,.account-inline-form>.account-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}.account-inline-form .error-banner,.account-inline-form .hint,.account-inline-form footer{grid-column:1 / -1}.account-inline-form footer{margin:0;padding:0;border:0}.steam-binding-status{display:flex;align-items:center;gap:14px}.steam-binding-status>svg{flex:0 0 auto}.steam-binding-status strong{font-size:14px}.steam-binding-status .hint{margin-top:5px}@media(max-width:760px){.modal.account-modal{height:calc(100vh - 32px);height:calc(100dvh - 32px)}.account-modal .modal-body{overflow-y:auto}.account-workspace{display:flex;flex-direction:column;height:auto;min-height:100%}.account-sidebar{flex:none;padding:0 20px;border-right:0;border-bottom:1px solid var(--border)}.account-identity{padding-top:4px}.account-nav{flex-direction:row;overflow-x:auto;padding:10px 0}.account-nav>button{grid-template-columns:24px auto auto;flex:0 0 auto;min-height:44px;border-bottom:2px solid transparent;border-left:0}.account-nav>button.active{border-bottom-color:var(--accent)}.account-nav-copy small,.account-logout{display:none}.account-content{flex:1;overflow:visible;padding:24px 20px}}@media(max-width:520px){.account-status-tag{display:none}.account-action-row{grid-template-columns:32px minmax(0,1fr)}.account-action-row>button{grid-column:2;justify-self:start}.account-inline-form .account-login form,.account-inline-form>.account-form{grid-template-columns:minmax(0,1fr)}}.settings-list .setting-row{padding:12px 0}.settings-list .setting-row:last-child{border-bottom:0}.setting-row select{width:auto;min-width:168px}.close-choice{display:flex;flex-direction:column;gap:10px;margin:4px 0 8px}.modal .close-choice label{display:flex;flex-direction:row;align-items:center;gap:10px;margin:0;cursor:pointer;font-size:14px}.close-modal .close-choice label{padding:16px;border:1px solid var(--border);border-radius:6px;gap:14px;background:#1d1f24}.close-modal .close-choice label:hover{background:#24262c}.close-modal .close-choice label:has(input:checked){border-color:var(--accent);background:#2a2126}.close-choice label>span{display:grid;gap:5px}.close-choice strong{color:var(--text);font-size:14px;font-weight:600}.close-choice small{color:var(--muted);font-size:12px}.close-modal .close-choice input{appearance:none;flex:0 0 18px;width:18px;height:18px;margin:0;padding:0;border:1px solid #777e8b;border-radius:50%;background:transparent}.close-modal .close-choice input:checked{border:5px solid var(--accent);background:var(--text)}.close-modal .close-remember{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;cursor:pointer;font-size:13px}.close-remember input,.preference-switch{appearance:none;position:relative;flex:0 0 36px;width:36px;height:22px;margin:0;padding:0;border:1px solid #646a75;border-radius:12px;background:#343840;cursor:pointer;transition:background-color .16s ease,border-color .16s ease}.close-remember input:after,.preference-switch:after{content:"";position:absolute;top:50%;transform:translateY(-50%);left:3px;width:14px;height:14px;border-radius:50%;background:#e5e7eb;transition:left .16s ease}.close-remember input:checked,.preference-switch:checked{background:var(--accent);border-color:var(--accent)}.close-remember input:checked:after,.preference-switch:checked:after{left:17px}.close-modal input:focus-visible{outline:2px solid var(--text);outline-offset:4px}.modal .account-section .account-form{display:flex;flex-direction:column;gap:12px}.consent-row{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.6}.consent-row input{flex:0 0 auto;margin-top:2px}.consent-row a{color:var(--accent)}.nickname-save{display:flex;gap:12px;align-items:center}.nickname-save input{flex:1;min-width:0}.nickname-save button{flex:0 0 auto}@media(max-width:480px){.nickname-save,.account-upgrade{flex-wrap:wrap}}button,a,input,select{transition:background-color .14s ease,color .14s ease,border-color .14s ease,opacity .14s ease}.room-card{transition:border-color .16s ease,background-color .16s ease}.room-card:hover{border-color:#4b4f59;background:#1d1f24}.primary:active:not(:disabled),.secondary:active:not(:disabled),.quiet:active:not(:disabled){transform:translateY(1px)}.brand,.icon-button,.nav-item,.text-button,.filters button,.detail-navigation button,.friend-row{transition:background-color .14s ease,color .14s ease,transform var(--dur-fast) var(--ease-spring)}.brand:active:not(:disabled),.icon-button:active:not(:disabled),.nav-item:active:not(:disabled),.text-button:active:not(:disabled),.filters button:active:not(:disabled),.detail-navigation button:active:not(:disabled),.friend-row:active:not(:disabled){transform:scale(.96);transition:none}.game-card:active:not(:disabled){transform:translateY(-2px) scale(.985);transition:none}.spin-holder{animation:spin 1s linear infinite;animation-play-state:paused}.spin-holder.spinning{animation-play-state:running}@keyframes dialog-exit{to{opacity:0;transform:translateY(6px)}}@keyframes backdrop-exit{to{opacity:0}}.toast-out{animation:toast-exit .14s var(--ease-in-out) forwards}@keyframes toast-exit{to{opacity:0}}.op-state{animation:fade-slide-in var(--dur-base) var(--ease-out)}@keyframes fade-slide-in{0%{opacity:0;transform:translateY(3px)}}.error-banner,.empty,.preview-notice{animation:fade-slide-in var(--dur-base) var(--ease-out)}::view-transition-old(root),::view-transition-new(root){animation-duration:var(--dur-slow);animation-timing-function:var(--ease-in-out)}::view-transition-group(*){animation-duration:var(--dur-slow);animation-timing-function:var(--ease-in-out)}.pane-enter{animation:fade-slide-in var(--dur-base) var(--ease-out)}.content{animation:fade-slide-in .2s var(--ease-out)}.room-grid{transition:opacity var(--dur-base) var(--ease-out)}.room-grid.stale{opacity:.55;pointer-events:none}.chat-list p{animation:msg-in .16s var(--ease-out)}@keyframes msg-in{0%{opacity:0;transform:translateY(4px)}}.player-slot{animation:slot-in .2s var(--ease-out)}@keyframes slot-in{0%{opacity:0;transform:scale(.94)}}.player-slot span{transition:color .14s ease}.friend-row{animation:fade-slide-in var(--dur-base) var(--ease-out)}@keyframes badge-in{0%{opacity:0;transform:scale(.4)}}.modal[open]{animation:dialog-enter .16s cubic-bezier(.2,.8,.2,1)}.modal[open]::backdrop{animation:backdrop-enter .16s ease-out}@keyframes dialog-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes backdrop-enter{0%{opacity:0}to{opacity:1}}.modal[open][data-closing]{animation:dialog-exit .14s var(--ease-in-out) forwards}.modal[open][data-closing]::backdrop{animation:backdrop-exit .14s ease-out forwards}.modal.launch-confirmation-modal[open]::backdrop{background-color:#03060ac2;background-image:radial-gradient(circle at center,rgb(166 33 51 / .19) 0%,rgb(166 33 51 / .15) 38%,transparent 70%),repeating-radial-gradient(circle at center,transparent 0 118px,rgb(194 55 67 / .1) 119px,rgb(194 55 67 / .1) 120px,transparent 122px,transparent 146px);background-repeat:no-repeat;background-position:center;background-size:min(710px,calc(100vmin - 40px)) min(710px,calc(100vmin - 40px)),min(680px,calc(100vmin - 60px)) min(680px,calc(100vmin - 60px));animation:backdrop-enter 10ms ease-out,launch-backdrop-pulse 5s ease-in-out infinite alternate}@keyframes launch-backdrop-pulse{0%{background-size:min(710px,calc(100vmin - 40px)) min(710px,calc(100vmin - 40px)),min(680px,calc(100vmin - 60px)) min(680px,calc(100vmin - 60px))}to{background-size:min(770px,calc(100vmin - 20px)) min(770px,calc(100vmin - 20px)),min(740px,calc(100vmin - 40px)) min(740px,calc(100vmin - 40px))}}.modal.launch-confirmation-modal[open][data-closing]::backdrop{animation:backdrop-exit .14s ease-out forwards}@media(prefers-reduced-motion:reduce){.modal.launch-confirmation-modal[open]::backdrop,.modal.launch-confirmation-modal[open][data-closing]::backdrop{animation:none}.modal[open],.modal[open]::backdrop,.modal[open][data-closing],.modal[open][data-closing]::backdrop,.toast-out,.op-state,.error-banner,.empty,.preview-notice,.pane-enter,.content,.chat-list p,.player-slot,.friend-row,.unread{animation:none}.primary:active:not(:disabled),.secondary:active:not(:disabled),.quiet:active:not(:disabled),.brand:active:not(:disabled),.icon-button:active:not(:disabled),.nav-item:active:not(:disabled),.text-button:active:not(:disabled),.breadcrumb:active:not(:disabled),.filters button:active:not(:disabled),.detail-navigation button:active:not(:disabled),.friend-row:active:not(:disabled),.game-card:active:not(:disabled){transform:none}.spin-holder,.spin-holder.spinning{animation:none}.friend-group-toggle>svg{transition:none}}.top-actions .icon-button>svg,.nav-item>svg{width:20px;height:20px}.workshop-copy{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.8;color:#c8cbd1}.game-meta h2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.game-cover{aspect-ratio:4 / 3;object-fit:contain;background:#111216}.game-meta h2{min-height:2.6em}.game-overview{display:grid;grid-template-columns:160px minmax(0,1fr) 192px;gap:20px;align-items:start;padding:8px 0}.overview-cover{width:160px;aspect-ratio:4/3;object-fit:contain;background:#181a1e;border:1px solid var(--border);border-radius:4px}.overview-title{min-width:0}.overview-title h1{font-size:21px;font-weight:600;line-height:1.45;overflow-wrap:anywhere;margin:0 0 8px;letter-spacing:0}.eyebrow{font-size:11px;letter-spacing:1px;color:var(--muted)}.overview-title a{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.overview-title a:hover{color:var(--text)}.map-freshness{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 0;font-size:12px;color:var(--muted)}.map-freshness.is-current{color:var(--success)}.map-freshness.is-outdated,.map-freshness.is-updating,.map-freshness.is-missing,.map-freshness.is-incomplete{color:var(--warning)}.workshop-progress{display:grid;gap:6px;max-width:360px;margin-top:8px;color:var(--muted);font-size:12px}.workshop-progress-track{height:5px;overflow:hidden;border-radius:3px;background:#2a323d}.workshop-progress-track>span{display:block;height:100%;background:var(--accent)}.workshop-progress-track.indeterminate>span{width:34%;animation:progress-travel 1.3s ease-in-out infinite}.workshop-task-inline{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 18px;padding:16px 20px;border:1px solid var(--accent);border-radius:10px;background:var(--panel)}.workshop-task-copy{min-width:0;flex:1}.workshop-task-copy p{margin:8px 0 0;color:var(--muted)}.workshop-task-actions{display:flex;gap:8px;flex-wrap:wrap}.workshop-task-inline .workshop-progress{max-width:520px}.web-resource-notice{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:14px;align-items:center;margin:0 0 16px;padding:12px 14px;border:1px solid #6c5b3c;border-radius:6px;background:#e6b76612}.web-resource-notice>svg{color:var(--warning)}.web-resource-notice p{margin:3px 0;color:var(--muted)}.web-resource-notice small{color:var(--muted)}.web-resource-notice label,.web-client-choice{display:grid;gap:4px;color:var(--muted);font-size:12px}.web-resource-notice select,.web-client-choice select{min-width:112px}.web-resource-notice button{white-space:nowrap}.web-confirm-actions{flex-wrap:wrap}.web-confirm-actions .web-client-choice{margin-right:auto}@media(max-width:800px){.web-resource-notice{grid-template-columns:auto minmax(0,1fr)}.web-resource-notice label,.web-resource-notice button{grid-column:2}}.overview-actions{display:grid;gap:8px}.overview-actions .map-picker{display:block;width:100%}.overview-actions .map-picker select{width:100%}.quick-match-button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:8px 14px;border:1px solid #42b878;border-radius:3px;background:#16834a;color:#fff;font-size:15px;font-weight:700}.quick-match-button:hover:not(:disabled){background:#199754}.quick-match-button:disabled{opacity:.5;cursor:not-allowed}.match-search-popover{position:absolute;top:50%;left:50%;z-index:2;transform:translate(-50%,-50%);display:flex;align-items:center;gap:14px;padding:8px 14px;border:1px solid #365044;border-radius:4px;background:#1b2821;box-shadow:0 4px 14px #0004;color:#daeee2;font-size:13px;line-height:20px;white-space:nowrap;pointer-events:none}.match-search-status{display:flex;align-items:center;gap:10px}.match-search-status>.spin{color:#65ce91}.match-player-count{display:flex;align-items:center;gap:5px;color:#aed0ba;font-size:12px;font-variant-numeric:tabular-nums}.match-search-popover time{padding-left:14px;border-left:1px solid #365044;font-size:12px;font-variant-numeric:tabular-nums}.match-inline-error{margin:8px 0 0;color:var(--danger);font-size:13px}@media(max-width:640px){.room-topline:has(.match-search-popover) .breadcrumb{width:28px;overflow:hidden;font-size:0;gap:0}.match-search-popover{gap:10px;padding:6px 10px;font-size:12px}.match-search-status{gap:7px}.match-search-popover time{padding-left:10px}}.room-tools .room-create-button{flex:0 0 auto;min-width:136px;height:40px;min-height:40px;padding-block:0;border-color:#b94b57;background:#9d3945;color:#fff;font-size:14px;font-weight:700;white-space:nowrap}.room-tools .room-create-button:hover:not(:disabled){border-color:#e0626c;background:#b94b57;color:#fff}.modal.invite-picker-modal{width:min(480px,calc(100vw - 32px))}.invite-picker>p{margin:0 0 16px;color:var(--muted);font-size:13px;line-height:1.5}.invite-picker-search{display:flex;align-items:center;gap:8px;height:42px;padding:0 12px;border:1px solid var(--border);border-radius:4px;color:var(--muted);background:#15171b}.invite-picker-search:focus-within{border-color:#8996a9}.invite-picker-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--text)}.invite-picker-list{min-height:148px;max-height:min(330px,40vh);max-height:min(330px,40dvh);overflow-y:auto;margin-top:12px}.invite-picker-friend{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:7px 9px;border-radius:4px;text-align:left}.invite-picker-friend:hover,.invite-picker-friend.selected{background:#292d35}.invite-picker-friend.selected{box-shadow:inset 2px 0 var(--accent)}.invite-picker-friend>span{display:flex;min-width:0;flex-direction:column;gap:3px}.invite-picker-friend strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.invite-picker-friend small{color:var(--muted);font-size:12px}.invite-picker-empty{padding:32px 8px;text-align:center;color:var(--muted)}.invite-picker footer{border-top:0}.detail-navigation{display:flex;gap:28px;border-bottom:1px solid var(--border);margin-bottom:24px}.detail-navigation button{min-height:44px;padding:10px 0;border-bottom:2px solid transparent;color:var(--muted);font-size:14px}.detail-navigation button[aria-pressed=true]{border-bottom-color:var(--accent);color:var(--text)}.detail-navigation button:hover{color:var(--text)}.game-reading{max-width:840px;padding:0 0 32px}.game-reading>header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.game-reading h2{font-size:18px}.game-reading>.hint{margin-top:20px}.change-entry{padding:0 0 24px;margin-bottom:24px;border-bottom:1px solid var(--border)}.change-date{display:flex;gap:12px;align-items:center;margin-bottom:14px;color:#bbc0c9;font-size:13px;font-variant-numeric:tabular-nums}.change-date span{color:var(--accent-hover);font-size:11px}.detail-navigation+div .rooms-section{padding-top:0}.game-meta>div{justify-content:flex-end}@media(max-width:1280px){.game-overview{grid-template-columns:116px minmax(0,1fr) 172px;gap:16px}.overview-cover{width:116px}}@media(max-width:980px){.game-overview:not(.room-overview){grid-template-columns:96px minmax(0,1fr) 172px}.game-overview:not(.room-overview) .overview-cover{width:96px}}@media(max-width:760px){.game-overview{grid-template-columns:96px minmax(0,1fr);gap:12px}.overview-cover{width:96px}.overview-actions{grid-column:1/-1;grid-template-columns:1fr}.overview-actions .map-picker{grid-column:1/-1}.detail-navigation{gap:24px}}@media(max-width:640px){.game-overview:not(.room-overview){grid-template-columns:82px minmax(0,1fr)}.game-overview:not(.room-overview) .overview-cover{width:82px}}.workshop-rich{color:#c8cbd1;font-size:14px;line-height:1.8;overflow-wrap:anywhere}.workshop-rich img{display:block;width:auto;max-width:100%;height:auto;margin:16px 0;border-radius:3px}.workshop-rich a{text-decoration:underline;text-underline-offset:3px;color:#dfabb0}.workshop-rich a:hover{color:#fff}.workshop-rich p,.workshop-rich ul,.workshop-rich ol,.workshop-rich blockquote{margin:12px 0}.workshop-rich h1,.workshop-rich h2,.workshop-rich h3,.workshop-rich h4{font-size:17px;margin:20px 0 12px}.workshop-rich pre{white-space:pre-wrap}.modal .field-error,.account-login .field-error{display:block;color:var(--error);font-size:12px;line-height:1.5;overflow-wrap:anywhere}.modal input[aria-invalid=true],.account-login input[aria-invalid=true]{border-color:var(--error)}.room-exit{color:var(--error);border-color:#754047;flex-shrink:0}.room-exit:hover:not(:disabled){color:#ff9295;border-color:var(--accent);background:#39232b}.departure-warning{display:flex;gap:14px;padding:14px;border:1px solid #754047;border-radius:var(--radius);background:#2a1e23}.departure-warning>svg{flex:0 0 auto;color:var(--error)}.departure-warning strong{color:#ffd9db}.departure-warning p{margin:6px 0 0;color:#d2bac0;font-size:13px;line-height:1.65}.departure-ack{display:flex;align-items:flex-start;gap:10px;margin-top:16px;color:#d7dce4;font-size:13px;line-height:1.55;cursor:pointer}.departure-ack input{flex:0 0 auto;margin-top:1px}.departure-danger:not(:disabled){background:#c93e49;border-color:#df5963}.player-slot.is-self{border-color:#606979;background:#22262e}.player-slot strong{flex-wrap:wrap}.player-slot .player-name{min-width:0;overflow-wrap:anywhere}.player-slot .self-badge{flex:0 0 auto;padding:1px 6px;border-radius:3px;background:#343d4b;color:#e3e9f2;font-size:11px;font-weight:600;line-height:18px;white-space:nowrap}.room-list{overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:#15171b;transition:opacity var(--dur-base) var(--ease-out)}.room-list.stale{opacity:.55;pointer-events:none}.room-list-more{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px}.room-list-more>.secondary{min-width:128px}.room-list-more p{margin:0;color:var(--muted);font-size:13px}.room-list-head,.room-row{display:grid;grid-template-columns:minmax(180px,1.35fr) 62px 112px minmax(112px,.8fr) minmax(96px,.75fr) 126px;gap:16px;align-items:center}.room-list-head{min-height:38px;padding:0 14px;color:#818895;border-bottom:1px solid var(--border);font-size:12px}.room-row{min-height:58px;padding:8px 14px;color:#b6bdc8;border-bottom:1px solid #272a30;font-size:13px;transition:background-color var(--dur-fast) ease}.room-row:last-child{border-bottom:0}.room-row:hover{background:#1b1d22}.room-row>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-row>button{min-height:36px;padding:6px 10px;font-size:13px;white-space:nowrap}.room-list-name{min-width:0;display:flex;align-items:center;gap:10px}.room-list-name strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:14px;font-weight:600}.password-room{display:inline-flex;flex:0 0 auto;align-items:center;gap:4px;color:#b8c2d0;font-size:11px}.room-list-count{color:#c6cdd8;font-variant-numeric:tabular-nums}.room-list-state{display:inline-flex;align-items:center;gap:7px;color:#a8b0bb}.room-list-state i{width:8px;height:8px;flex:0 0 auto;border-radius:50%;background:currentColor}.room-list-state.waiting{color:var(--success)}.room-list-host{color:#c8cdd5}.room-overview-block{width:100%}.game-overview.room-overview{grid-template-columns:160px minmax(0,1fr) minmax(220px,260px);grid-template-rows:minmax(104px,auto);gap:20px;padding:8px 0;align-items:start}.room-overview .overview-cover{width:160px}.room-overview .overview-title h1{margin:0 0 8px;overflow:hidden;font-size:21px;text-overflow:ellipsis;white-space:nowrap}.room-identity{display:flex;align-items:center;gap:18px;min-width:0;margin-top:14px}.room-identity>div{display:flex;align-items:center;gap:5px;min-width:0}.room-identity strong{overflow:hidden;color:var(--text);font-size:16px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.room-identity-state{flex:0 0 auto;padding-left:16px;border-left:1px solid var(--border);color:var(--success);font-size:13px}.room-identity-state.is-failed,.room-identity-state.is-expired{color:var(--error)}.room-identity input{width:min(100%,240px);height:30px;padding:3px 7px}.room-overview-summary{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(90px,.65fr) minmax(0,1.2fr);gap:0;min-width:0;padding:16px 0;border:1px solid var(--border);border-radius:4px;background:#1c1e22}.room-overview-summary.has-hosting{grid-template-columns:minmax(0,1.1fr) minmax(0,1.15fr) minmax(90px,.62fr) minmax(0,1.12fr)}.local-client-hint{display:flex;align-items:center;flex-wrap:wrap;gap:10px;min-height:50px;margin:18px 0 20px;padding:10px 14px;border:1px solid #604047;border-radius:4px;background:#2b2226;color:#cbd0d7;font-size:13px}.local-client-hint>svg{flex:0 0 auto;color:#e27882}.local-client-hint>a{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 11px;border:1px solid #a94953;border-radius:4px;color:#f3a1a8;text-decoration:none;white-space:nowrap}.local-client-hint>a:hover,.local-client-hint>a:focus-visible{color:#fff;background:#493037}.room-overview-summary>*,.room-overview-summary>.room-auto-start{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:10px;min-width:0;padding:0 18px;border-left:1px solid var(--border);color:#aeb7c3;font-size:13px}.room-overview-summary>*:first-child{border-left:0}.room-overview-summary .room-auto-start{justify-content:flex-start;margin:0}.room-overview-summary .auto-start-caption{min-height:18px}.room-overview-summary .preference-switch{flex:0 0 auto;width:36px;height:22px}.room-mode-inline>span,.room-password-inline>span{color:#aeb7c3;white-space:nowrap}.room-mode-inline select{width:100%;height:36px;padding:5px 10px;font-size:13px}.room-name-edit{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;padding:0;color:#9aa5b4;border-radius:3px}.room-name-edit:hover{color:var(--text);background:#25282e}.room-mode-inline strong{color:#cbd2dc;font-size:13px;font-weight:500}.room-password-inline{position:relative}.room-password-control{display:flex;align-items:center;width:100%;min-width:0;height:36px;border:1px solid var(--border);border-radius:4px;background:#191b1f}.room-password-control:focus-within{border-color:var(--accent)}.room-password-control input{flex:1;min-width:0;height:100%;padding:6px 10px;border:0;background:transparent;letter-spacing:1px}.room-password-control input:focus{outline:0}.room-password-control .eye-toggle{flex:0 0 36px;width:36px;height:34px;padding:0;color:#aeb7c3}.room-password-inline small{position:absolute;top:100%;left:18px;color:#7f8996;font-size:11px;white-space:nowrap}.room-password-inline small:empty{display:none}.room-password-inline.saving small{color:#aeb7c3}.room-password-inline.saved small{color:var(--success)}.room-password-inline.error small{color:var(--error)}.room-password-inline.error .room-password-control{border-color:var(--error)}.room-overview-actions{display:flex;flex-direction:column;gap:8px;width:100%}.room-overview-actions .room-launch{width:100%;min-height:48px;padding:9px 16px;font-size:18px;font-weight:700}.room-overview-actions .room-exit{width:100%;min-height:48px;background:transparent}.room-progress{display:flex;align-items:center;justify-content:center;gap:8px;min-height:54px;color:#b8c0cc}.room-launch-state{color:#b8c0cc;border-color:#3b4049;background:#1b1d22;opacity:1}.room-launch-state:disabled{cursor:default;opacity:1}.room-state-icon{display:grid;place-items:center;color:inherit}.room-state-icon.is-connected{color:var(--success)}.room-action-feedback{display:flex;align-items:center;gap:8px;min-width:0;min-height:36px;padding:6px 10px;color:#aeb7c3;border-left:1px solid var(--border);font-size:12px;line-height:1.45}.room-action-feedback>span{min-width:0;overflow-wrap:anywhere}.room-action-feedback.error{color:#ff9a9d}.room-action-feedback .text-button{flex:0 0 auto;min-height:32px;padding:4px 6px;white-space:nowrap}.room-detail{margin-top:0;padding:0;border:0;background:transparent}.room-workspace{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(300px,.88fr);gap:12px;min-height:396px}.roster-panel,.room-workspace .chat-area{min-width:0;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:#16181c}.roster-panel>header{display:flex;align-items:center;min-height:34px;margin-bottom:8px}.roster-panel h2,.room-workspace .chat-area h2{font-size:17px}.roster-panel h2 span{margin-left:6px;color:#b6c0ce;font-size:14px;font-weight:400;font-variant-numeric:tabular-nums}.roster{display:flex;flex-direction:column;gap:4px;margin:0;padding-right:2px}.roster.roster-scroll{max-height:350px;overflow-y:auto;scrollbar-gutter:stable}.player-slot,.roster-large .player-slot{display:grid;grid-template-columns:24px 40px minmax(110px,1fr) 72px 74px;gap:10px;align-items:center;min-height:38px;padding:3px 10px;text-align:left;border:1px solid #2a2d33;border-radius:3px;background:#1b1d22;animation:none}.player-slot .slot-index{color:#87909d;font-size:12px;font-variant-numeric:tabular-nums}.player-slot .avatar,.roster-large .avatar{width:30px;height:30px}.player-slot strong{display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:6px;min-width:0;max-width:none;text-align:left;font-size:13px}.player-slot .player-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-slot .owner-badge{display:inline-flex;flex:0 0 auto;align-items:center;gap:3px;padding:1px 5px;color:#e7b65d;border:1px solid #684f28;border-radius:3px;font-size:10px;font-weight:500;white-space:nowrap}.player-slot>.ready,.player-slot>.muted{font-size:12px;white-space:nowrap}.player-slot>.network-latency{justify-self:end;font-size:11px}.player-slot.is-self{border-color:#47515f;background:#20242b}.empty-player{display:grid;place-items:center;width:30px;height:30px;border:1px dashed #526071;border-radius:50%;color:#758497}.empty-label{grid-column:3 / -1}.room-workspace .chat-area{display:flex;flex-direction:column;margin:0;border-top:1px solid var(--border)}.room-workspace .chat-area h2{min-height:34px;padding:4px 0 10px;border-bottom:1px solid var(--border)}.room-workspace .chat-list{flex:1;min-height:220px;max-height:310px;padding:12px 0}.room-workspace .chat-list .chat-message{display:flex;align-items:flex-start;flex-wrap:nowrap;gap:8px;margin-bottom:10px}.room-workspace .chat-list .chat-message>.avatar{flex:0 0 26px;width:26px;height:26px;margin-top:1px}.room-workspace .chat-list .chat-copy{display:block;min-width:0;line-height:1.75}.room-workspace .chat-list .chat-copy strong{display:inline;max-width:none;color:#b9c7d9;font-size:13px}.room-workspace .chat-list .chat-copy>span{display:inline;color:#d8dce3}.room-workspace .chat-area form{margin-top:auto}.room-workspace .chat-area form input{height:42px}.room-workspace .chat-area form button{width:44px;height:42px}.room-overview-block+.detail-navigation{margin-bottom:10px}@media(min-height:760px)and (min-width:981px){.game-detail-content{padding-top:18px}.active-room-content{overflow-y:hidden;padding-bottom:16px}.active-room-content .game-overview.room-overview{padding-top:8px;padding-bottom:8px}.active-room-content>.detail-navigation{flex:0 0 auto;min-height:38px}.active-room-content>.detail-navigation button{min-height:38px;padding-block:7px}.active-room-content>.detail-navigation+div{flex:1 1 auto;min-height:0}.active-room-content .room-detail,.active-room-content .room-workspace{height:100%;min-height:0}.active-room-content .roster-panel,.active-room-content .room-workspace .chat-area{min-height:0}.active-room-content .room-workspace .chat-list{min-height:0;max-height:none}}@media(max-width:1280px){.game-overview.room-overview{grid-template-columns:116px minmax(0,1fr) minmax(200px,240px);gap:16px}.room-overview .overview-cover{width:116px}.room-overview-summary>*{padding-inline:12px}.room-overview-actions .room-launch{font-size:16px}.room-list-head,.room-row{grid-template-columns:minmax(150px,1.2fr) 54px 98px minmax(96px,.8fr) minmax(82px,.7fr) 114px;gap:10px}.player-slot,.roster-large .player-slot{grid-template-columns:20px 36px minmax(86px,1fr) 62px 66px;gap:8px}}@media(max-width:980px){.game-overview.room-overview{grid-template-columns:96px minmax(0,1fr) minmax(200px,260px)}.room-overview .overview-cover{width:96px}.room-overview-summary,.room-overview-summary.has-hosting{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:16px}.room-overview-summary>*:nth-child(odd){border-left:0}.room-overview-actions .room-launch{min-height:48px}.room-workspace{grid-template-columns:minmax(0,1fr)}.roster{max-height:392px}.room-workspace .chat-list{min-height:180px}.room-list-head{display:none}.room-row{grid-template-columns:minmax(160px,1fr) 56px 96px 118px}.room-row .room-list-host{display:none}.room-row>button{grid-column:4;grid-row:1}}@media(max-width:640px){.game-overview.room-overview{grid-template-columns:82px minmax(0,1fr);gap:12px}.room-overview .overview-cover{width:82px}.room-overview-actions{grid-column:1 / -1;flex-direction:row}.room-overview-actions .room-launch{flex:1 1 auto;min-width:0}.room-overview-actions .room-exit{flex:0 0 auto;width:auto;padding-inline:14px}.room-overview-summary,.room-overview-summary.has-hosting{grid-template-columns:minmax(0,1fr)}.room-overview-summary>*{border-left:0}.room-list{border:0;background:transparent}.room-row{grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;margin-bottom:8px;padding:12px;border:1px solid var(--border);border-radius:4px;background:#17191d}.room-list-name{grid-column:1}.room-row .room-list-count{grid-column:2;grid-row:1}.room-row .room-list-state{grid-column:1;grid-row:2}.room-row>span:nth-of-type(3){grid-column:1;grid-row:3}.room-row>button{grid-column:2;grid-row:2 / 4}.player-slot,.roster-large .player-slot{grid-template-columns:18px 34px minmax(0,1fr) auto;gap:7px}.player-slot>.network-latency{display:none}.empty-label{grid-column:3 / -1}}.login-chrome{position:fixed;z-index:20;inset:0 0 auto;height:var(--topbar);display:flex;align-items:center;justify-content:flex-end;padding:0 20px;background:transparent;border:0;-webkit-app-region:drag}.login-chrome .icon-button{-webkit-app-region:no-drag}.login-screen{position:relative;height:100%;height:100vh;height:100dvh;overflow:hidden;display:flex;align-items:center}.login-hero{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:78% center;pointer-events:none}.login-shade{position:absolute;inset:0;background:linear-gradient(90deg,#0b0c10f5,#0b0c10e8 26%,#0b0c1088 46%,#0000 68%)}.login-panel{position:relative;z-index:1;display:flex;flex-direction:column;gap:20px;width:min(400px,calc(100vw - 48px));max-height:calc(100vh - 96px);max-height:calc(100dvh - 96px);margin:72px 0 24px 48px;padding:28px;overflow-y:auto;scrollbar-gutter:stable;overscroll-behavior:contain;background:#16181cf0;border:1px solid var(--border);border-radius:6px;-webkit-app-region:no-drag}.login-brand{display:flex;align-items:center;gap:12px}.login-brand.has-download{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:8px 10px}.login-brand.has-download .login-lang{grid-column:1 / -1;grid-row:2;justify-self:end}.login-client-download{padding-inline:9px;font-size:12px}.login-brand img{width:38px;height:38px;object-fit:contain}.login-brand h1{min-width:0;font-size:20px;font-weight:600}.login-lang{margin-left:auto;flex:0 0 auto}.login-lang select{min-width:108px;width:auto}.login-loading{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 0;color:var(--muted)}.login-panel .error-banner{margin:0}.site-legal--overlay{position:absolute;z-index:1;bottom:12px;left:50%;width:min(720px,calc(100vw - 48px));margin:0;padding:0;text-align:center;transform:translate(-50%)}@media(max-width:900px){.login-hero{object-position:55% center}.login-shade{background:linear-gradient(180deg,#0b0c10f5,#0b0c10d8 48%,#0b0c1080)}.login-panel{margin:72px auto 24px}.site-legal--overlay{width:calc(100vw - 48px)}}.room-auto-start{justify-content:flex-start;display:flex;align-items:center;gap:8px;font-size:13px}.modal .room-auto-start{justify-content:space-between}.room-auto-start .preference-switch:disabled{opacity:.45;cursor:not-allowed}.preference-switch:focus-visible,.auto-start-info:focus-visible{outline:2px solid var(--text);outline-offset:4px}.auto-start-caption{display:flex;align-items:center;gap:6px}.modal .auto-start-caption label{margin:0;display:inline}.auto-start-help{position:relative;display:inline-flex}.auto-start-info{display:inline-flex;align-items:center;justify-content:center;padding:3px;border:0;background:transparent;color:var(--muted);cursor:help}.auto-start-info:hover{color:var(--text)}.auto-start-tooltip{position:absolute;z-index:20;bottom:calc(100% + 8px);left:-86px;width:240px;padding:10px 12px;border:1px solid var(--border);border-radius:6px;background:#25282e;color:var(--text);box-shadow:0 6px 24px #0006;font-size:12px;font-weight:400;line-height:1.6}.auto-start-tooltip:after{content:"";position:absolute;top:100%;left:0;width:100%;height:10px}.room-auto-start-error{grid-column:1 / -1;color:var(--text);font-size:13px;margin:0}.modal.launch-confirmation-modal{position:relative;width:min(720px,calc(100vw - 32px));max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);background:#1b1d21}.launch-confirmation-modal:before{position:absolute;z-index:2;top:0;left:0;width:38%;height:2px;background:linear-gradient(90deg,transparent,#a94450 35%,#ff8391 75%,transparent);box-shadow:0 0 24px 1px #e0465573;pointer-events:none;content:"";animation:launch-edge-sweep 1s ease-out both}@keyframes launch-edge-sweep{0%{opacity:0;transform:translate(-100%)}12%{opacity:1}85%{opacity:1}to{opacity:0;transform:translate(270%)}}.launch-confirmation-modal>header{justify-content:center;padding:30px 88px 6px}.launch-confirmation-modal>header h2{font-size:27px;font-weight:700;letter-spacing:.02em;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.launch-confirmation-modal .modal-body{display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:0 36px 30px}.launch-confirmation-intro{flex:0 0 auto;text-align:center}.launch-confirmation-intro p{margin:0}.launch-confirmation-game{color:#c7cbd2;font-size:14px}.launch-confirmation-summary{display:flex;flex:0 0 auto;align-items:center;flex-direction:column;justify-content:center;gap:3px;margin:6px 0 8px;font-size:16px}.launch-confirmation-summary strong{color:#c7cbd2;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}.launch-confirmation-summary .launch-confirmation-countdown{color:#f06a75;font-size:48px;font-weight:760;font-variant-numeric:tabular-nums;letter-spacing:-.06em;line-height:1;text-shadow:0 0 24px rgb(196 71 82 / .25)}.launch-confirmation-complete-icon{color:var(--success)}.launch-confirmation-roster{display:flex;flex-wrap:wrap;flex:0 0 auto;justify-content:center;gap:12px;min-height:0;margin:0;padding:2px 0;list-style:none}.launch-confirmation-player{display:flex;flex:0 0 112px;min-width:0;align-items:center;flex-direction:column;gap:3px;text-align:center}.launch-confirmation-avatar{position:relative;display:inline-flex;width:72px;height:72px;align-items:center;justify-content:center;margin-bottom:4px;border:2px solid transparent;border-radius:50%}.launch-confirmation-avatar .avatar{width:64px;height:64px;border-color:#626771}.launch-confirmation-player.is-pending .launch-confirmation-avatar .avatar{filter:grayscale(1) saturate(.35);opacity:.52}.launch-confirmation-player.is-accepted .launch-confirmation-avatar{border-color:var(--success);box-shadow:0 0 0 3px #47a8741f}.launch-confirmation-player.is-self.is-pending .launch-confirmation-avatar{border-color:#90949e}.launch-confirmation-avatar svg{position:absolute;right:-3px;bottom:-2px;color:var(--success);filter:drop-shadow(0 1px 2px #000a)}.launch-confirmation-player strong{display:block;max-width:100%;overflow:hidden;font-size:14px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.launch-confirmation-actions{display:flex;flex:0 0 auto;flex-direction:column;align-items:stretch;gap:10px;margin-top:4px}.launch-confirmation-actions.is-completing{min-height:96px;justify-content:center}.launch-confirmation-accept{width:100%;min-height:54px;font-size:17px;font-weight:700}.launch-confirmation-subaction,.launch-confirmation-cancel{align-self:center;min-height:32px;border:0;background:transparent;color:#aeb2bb;font-size:13px;cursor:pointer}.launch-confirmation-subaction:hover:not(:disabled),.launch-confirmation-cancel:hover:not(:disabled){color:var(--text);text-decoration:underline}.launch-confirmation-cancel{position:absolute;top:17px;right:22px;z-index:1;min-height:36px;padding:0 12px;border:1px solid #50545d;border-radius:5px;color:#c7cbd2}.launch-confirmation-waiting,.launch-confirmation-error{margin:0;text-align:center}.launch-confirmation-waiting{padding:13px;color:var(--success)}.launch-confirmation-error{color:var(--error)}.launch-confirmation-modal button:focus-visible{outline:2px solid #fff;outline-offset:3px}.launch-confirmation-modal.is-dense .launch-confirmation-roster,.launch-confirmation-modal.is-crowded .launch-confirmation-roster{gap:8px 10px;padding:2px 0 4px}.launch-confirmation-modal.is-dense>header,.launch-confirmation-modal.is-crowded>header{padding-top:20px}.launch-confirmation-modal.is-dense .modal-body,.launch-confirmation-modal.is-crowded .modal-body{padding-bottom:16px}.launch-confirmation-modal.is-dense .launch-confirmation-summary,.launch-confirmation-modal.is-crowded .launch-confirmation-summary{margin:6px 0}.launch-confirmation-modal.is-crowded .launch-confirmation-roster{column-gap:8px}.launch-confirmation-modal.is-dense .launch-confirmation-player,.launch-confirmation-modal.is-crowded .launch-confirmation-player{flex-basis:calc((100% - 5 * 10px) / 6)}.launch-confirmation-modal.is-crowded .launch-confirmation-player{flex-basis:calc((100% - 5 * 8px) / 6)}.launch-confirmation-modal.is-dense .launch-confirmation-avatar,.launch-confirmation-modal.is-crowded .launch-confirmation-avatar{width:40px;height:40px;margin-bottom:0}.launch-confirmation-modal.is-dense .launch-confirmation-avatar .avatar,.launch-confirmation-modal.is-crowded .launch-confirmation-avatar .avatar{width:36px;height:36px}.launch-confirmation-modal.is-dense .launch-confirmation-avatar svg,.launch-confirmation-modal.is-crowded .launch-confirmation-avatar svg{width:18px;height:18px}.launch-confirmation-modal.is-dense .launch-confirmation-player,.launch-confirmation-modal.is-crowded .launch-confirmation-player{gap:0}.launch-confirmation-modal.is-dense .launch-confirmation-player strong,.launch-confirmation-modal.is-crowded .launch-confirmation-player strong{font-size:11px;line-height:15px}.launch-confirmation-modal.is-dense .launch-confirmation-actions,.launch-confirmation-modal.is-crowded .launch-confirmation-actions{gap:5px;margin-top:3px}@media(max-width:640px){.launch-confirmation-modal>header{padding-inline:72px;padding-top:20px}.launch-confirmation-modal>header h2{font-size:22px}.launch-confirmation-modal .modal-body{padding:0 20px 20px}.launch-confirmation-roster{gap:14px 8px}.launch-confirmation-player{flex-basis:calc((100% - 2 * 8px) / 3)}.launch-confirmation-modal.is-dense .launch-confirmation-player,.launch-confirmation-modal.is-crowded .launch-confirmation-player{flex-basis:calc((100% - 24px)/4)}.launch-confirmation-summary{margin:6px 0}.launch-confirmation-actions{margin-top:4px}}@media(max-width:390px){.launch-confirmation-player{flex-basis:calc((100% - 24px)/4)}.launch-confirmation-modal.is-dense .launch-confirmation-player,.launch-confirmation-modal.is-crowded .launch-confirmation-player{flex-basis:calc((100% - 5 * 8px) / 6)}.launch-confirmation-avatar,.launch-confirmation-modal.is-dense .launch-confirmation-avatar,.launch-confirmation-modal.is-crowded .launch-confirmation-avatar{width:42px;height:42px}.launch-confirmation-avatar .avatar,.launch-confirmation-modal.is-dense .launch-confirmation-avatar .avatar,.launch-confirmation-modal.is-crowded .launch-confirmation-avatar .avatar{width:36px;height:36px}}@media(max-height:650px){.launch-confirmation-modal>header{padding-top:12px}.launch-confirmation-modal>header h2{font-size:21px}.launch-confirmation-modal .modal-body{padding-bottom:10px}.launch-confirmation-summary,.launch-confirmation-modal.is-dense .launch-confirmation-summary,.launch-confirmation-modal.is-crowded .launch-confirmation-summary{margin:6px 0}.launch-confirmation-roster,.launch-confirmation-modal.is-dense .launch-confirmation-roster,.launch-confirmation-modal.is-crowded .launch-confirmation-roster{gap:3px 8px;padding:0}.launch-confirmation-avatar,.launch-confirmation-modal.is-dense .launch-confirmation-avatar,.launch-confirmation-modal.is-crowded .launch-confirmation-avatar{width:34px;height:34px;margin-bottom:0}.launch-confirmation-avatar .avatar,.launch-confirmation-modal.is-dense .launch-confirmation-avatar .avatar,.launch-confirmation-modal.is-crowded .launch-confirmation-avatar .avatar{width:30px;height:30px}.launch-confirmation-player strong,.launch-confirmation-modal.is-dense .launch-confirmation-player strong,.launch-confirmation-modal.is-crowded .launch-confirmation-player strong{font-size:11px;line-height:14px}.launch-confirmation-actions,.launch-confirmation-modal.is-dense .launch-confirmation-actions,.launch-confirmation-modal.is-crowded .launch-confirmation-actions{gap:2px;margin-top:5px}.launch-confirmation-accept{min-height:44px}.launch-confirmation-summary .launch-confirmation-countdown{font-size:36px}}@media(prefers-reduced-motion:reduce){.launch-confirmation-modal:before{animation:none;opacity:0}}.roster-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.roster-heading-actions{display:flex;align-items:center;gap:12px}.roster-invite-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:5px 10px;white-space:nowrap;font-size:13px}.roster-web-latency{margin:0;color:#7d8590;font-size:12px;line-height:1.4}.friend-invite{flex:0 0 32px;width:32px;height:32px;min-height:32px;display:inline-flex;align-items:center;justify-content:center;padding:0;color:#fff;background:linear-gradient(145deg,#e35a65,var(--accent) 58%,#a93440);border-radius:4px;box-shadow:inset 0 1px #ffffff30,0 2px 5px #0003}.friend-invite:hover:not(:disabled){color:#fff;background:linear-gradient(145deg,#f16e78,var(--accent-hover) 58%,#bf3c49);border-color:#f18790}.friend-invite.pending{position:relative;isolation:isolate;color:var(--accent-hover);background:transparent;border:1px solid #9d4b53;box-shadow:none;opacity:1;cursor:pointer}.friend-invite.pending:after{content:"";position:absolute;inset:-1px;border:1px solid transparent;border-radius:inherit;background:conic-gradient(from var(--invite-scan-angle),transparent 0 76%,#fff0 80%,#ffd7db 88%,#fff0 96%) border-box;mask:linear-gradient(#000 0 0) padding-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:invite-border-scan 2s linear infinite;pointer-events:none}@property --invite-scan-angle{syntax: "<angle>"; initial-value: 0deg; inherits: false;}@keyframes invite-border-scan{to{--invite-scan-angle: 360deg }}@media(prefers-reduced-motion:reduce){.friend-invite.pending:after{animation:none}}.invite-toast{position:fixed;z-index:40;top:72px;right:24px;width:min(320px,calc(100vw - 32px));padding:12px;background:#22252a;border:1px solid #363a42;border-radius:6px;box-shadow:0 6px 24px #0005;-webkit-app-region:no-drag}.invite-toast p,.invite-toast strong{margin:0 0 6px}.invite-switch{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.invite-actions{display:flex;gap:8px;margin-top:8px}.invite-note{color:#e7c07a}@media(max-width:1120px){.invite-toast{inset:auto 12px 84px;width:auto}}
