:root{--page:#08091c;--panel:#10122d;--center:#090b22;--text:#ede9ff;--muted:#aaa2d5;--border:#353164;--accent:#6d5ce7;--accent-soft:#2a2755;--card:#11132d;--card-hover:#17193b;--control:#292653;--control-hover:#3a3571;--input:#090a20;--composer:#171837;--link:#b7a7ff;--danger:#b73567;--success-border:#4a8d70;--success-text:#82e6b4;--ping-border:#8b702b;--ping-bg:#2b2513;--ping-accent:#d4af37;--error-border:#7d3656;--error-text:#ffc0d5;--error-bg:#35162bee;--watch:color-mix(in srgb,var(--control) 82%,var(--link));--watch-hover:color-mix(in srgb,var(--control-hover) 76%,var(--link));color:var(--text);background:var(--page);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:medium}:root[data-theme=artistic-decoration]{--page:#050402;--panel:#11100b;--center:#090806;--text:#f7edcf;--muted:#b9a66f;--border:#6f5520;--accent:#d4af37;--accent-soft:#2e2410;--card:#161208;--card-hover:#211a0c;--control:#2a210f;--control-hover:#443415;--input:#080704;--composer:#151108;--link:#ffd76a;--danger:#9b3f33;--success-border:#8f7a36;--success-text:#f2d36b;--ping-border:#d4af37;--ping-bg:#211907;--ping-accent:#ffd76a;--error-border:#a65a37;--error-text:#ffd1b8;--error-bg:#34180bee;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=steel]{--page:#e8eaed;--panel:#f7f8fa;--center:#eef0f3;--text:#24282d;--muted:#626a73;--border:#aeb5bd;--accent:#65717d;--accent-soft:#d7dce1;--card:#fafbfc;--card-hover:#e2e6ea;--control:#d4d9de;--control-hover:#c1c8cf;--input:#fff;--composer:#f9fafb;--link:#364f68;--danger:#9c4250;--success-border:#56806a;--success-text:#2f694d;--ping-border:#a17d25;--ping-bg:#fff8dc;--ping-accent:#a17d25;--error-border:#a84959;--error-text:#7d2434;--error-bg:#fff0f2ee;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme="90s-kid"]{--page:#120052;--panel:#2a0b8f;--center:#190064;--text:#fff8cc;--muted:#89f7ff;--border:#ff3fc7;--accent:#b6ff27;--accent-soft:#5a22d6;--card:#3210a4;--card-hover:#4520c7;--control:#5426d9;--control-hover:#7146ff;--input:#0b0035;--composer:#260987;--link:#00f7ff;--danger:#ff477e;--success-border:#72ffc2;--success-text:#d7ffd1;--ping-border:#fff04f;--ping-bg:#5a4300;--ping-accent:#fff58a;--error-border:#ff7eb6;--error-text:#ffe1ec;--error-bg:#5b1241ee;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:Verdana,Tahoma,MS Sans Serif,sans-serif}:root[data-theme=brown]{--page:#17100d;--panel:#281b16;--center:#201511;--text:#f1dfcf;--muted:#b99f8b;--border:#604536;--accent:#a86d43;--accent-soft:#493126;--card:#31211a;--card-hover:#3d291f;--control:#4a3227;--control-hover:#604131;--input:#1c120f;--composer:#2c1e18;--link:#e0a878;--danger:#8d493c;--success-border:#637b4a;--success-text:#bad58e;--ping-border:#91713f;--ping-bg:#382b16;--ping-accent:#d4a64d;--error-border:#984f42;--error-text:#ffc3b8;--error-bg:#4a211bee;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=steam]{--page:#0b1711;--panel:#162820;--center:#101d17;--text:#d7efe0;--muted:#8eb49c;--border:#345c46;--accent:#5ba86f;--accent-soft:#213f2d;--card:#182b21;--card-hover:#203b2c;--control:#274635;--control-hover:#315940;--input:#0d1a14;--composer:#18271f;--link:#9be6ad;--danger:#9b4d4d;--success-border:#6aa879;--success-text:#a5f0b8;--ping-border:#7da85b;--ping-bg:#1c2b16;--ping-accent:#a8d66f;--error-border:#a84f5f;--error-text:#ffc5cf;--error-bg:#351b22ee;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{min-width:320px;height:100dvh;margin:0;overflow:hidden}button,input,textarea,select{font:inherit}button{color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}[hidden]{display:none!important}label:has(input[type=checkbox]){-webkit-user-select:none;user-select:none}.app-shell{background:var(--page);height:100dvh;display:grid}.left-panel,.right-panel{background:var(--panel);padding:10px;overflow-y:auto}.left-panel{border-right:1px solid var(--border)}.right-panel{border-left:1px solid var(--border);flex-direction:column;display:flex}.panel-resizer{cursor:col-resize;background:var(--control);touch-action:none}.panel-resizer:hover{background:var(--accent)}.panel-resizing,.panel-resizing *{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}.mobile-panel,.mobile-users-panel,.mobile-backdrop,.mobile-menu-button,.mobile-users-button{display:none}.center-panel{background:var(--center);grid-template-rows:auto minmax(0,1fr) auto;min-width:0;min-height:0;display:grid;position:relative;overflow-x:clip;container-type:inline-size}.center-panel.stream-active{grid-template-rows:minmax(0,1fr)}.center-panel.drop-active:after{content:"Drop files to attach";z-index:5;border:2px dashed var(--accent);color:var(--text);background:color-mix(in srgb,var(--center) 88%,transparent);pointer-events:none;border-radius:8px;place-items:center;display:grid;position:absolute;inset:8px}.inline-livestream{background:#03050b;place-items:center;min-width:0;min-height:0;display:grid;position:relative;overflow:hidden}.inline-livestream:fullscreen{border:0;border-radius:0;width:100%;height:100%}.inline-livestream video{object-fit:contain;object-position:center;background:#03050b;width:100%;min-width:0;max-width:100%;height:100%;min-height:0;max-height:100%;display:block}.inline-livestream>video,.livestream-mosaic-tile>video{position:absolute;inset:0}.inline-livestream.mosaic{container-type:size}.livestream-mosaic{grid-template-columns:1fr;grid-auto-rows:minmax(0,1fr);gap:6px;width:100%;min-width:0;height:100%;min-height:0;padding:6px;display:grid}.livestream-mosaic.count-3,.livestream-mosaic.count-4{grid-template-rows:repeat(2,minmax(0,1fr))}.livestream-mosaic-tile{border:1px solid var(--border);background:#03050b;border-radius:5px;place-items:center;min-width:0;min-height:0;display:grid;position:relative;overflow:hidden}.livestream-mosaic-tile>strong{z-index:2;background:#000a;border-radius:5px;padding:4px 7px;font-size:13px;font-weight:500;position:absolute;top:10px;left:10px}@container (aspect-ratio>=6/5){.livestream-mosaic{grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(2,minmax(0,1fr))}.livestream-mosaic.count-2{grid-template-rows:minmax(0,1fr)}.livestream-mosaic.count-3 .livestream-mosaic-tile:first-child{grid-row:span 2}}.inline-livestream-status,.inline-livestream-retry,.inline-livestream-controls,.inline-livestream-watchers{z-index:2;position:absolute}.inline-livestream-status{color:var(--text);background:color-mix(in srgb,var(--panel) 82%,transparent);border-radius:999px;padding:8px 12px;top:50%;left:50%;transform:translate(-50%,-50%)}.inline-livestream-retry{display:none;top:calc(50% + 44px);left:50%;transform:translate(-50%)}.inline-livestream-controls{border:1px solid var(--border);background:color-mix(in srgb,var(--panel) 90%,transparent);border-radius:10px;align-items:center;gap:8px;padding:8px;display:flex;top:12px;right:12px}.inline-livestream-watchers{align-items:center;display:flex;bottom:12px;left:12px}.inline-livestream-watchers>span{margin-left:-12px;display:flex}.inline-livestream-watchers>span:first-child{margin-left:0}.inline-livestream-watchers .avatar{border:3px solid var(--panel);border-radius:8px;flex-basis:60px;width:60px;height:60px;font-size:22px;box-shadow:0 2px 8px #0008}.inline-stream-volume{align-items:center;gap:5px;width:190px}.volume-slider-track{flex:auto;min-width:0;display:flex;position:relative}.channel-status,.voice-system-toggle{align-items:center;display:flex}.channel-status{flex:none;gap:8px;margin-left:auto}.voice-system-toggle{color:var(--muted);white-space:nowrap;gap:4px;font-size:12px}.volume-percent{width:4ch;color:var(--link);font-variant-numeric:tabular-nums;text-align:right;-webkit-user-select:none;user-select:none;font-size:12px}.brand{align-items:center;gap:9px;margin-bottom:10px;display:flex}.server-icon,.server-icon img,.server-icon span,.brand-mark{width:52px;height:52px}.server-icon{cursor:pointer}.server-icon img,.server-icon span,.brand-mark{object-fit:cover;background:linear-gradient(135deg,#6d28d9,#4f46e5);border-radius:5px;place-items:center;font-weight:900;display:grid}h2{color:var(--muted);letter-spacing:.09em;text-transform:uppercase;margin:14px 6px 5px;font-size:12px}.panel-button,.panel-card{border:1px solid var(--border);width:100%;color:var(--text);background:0 0;border-radius:5px}.panel-button{text-align:left;justify-content:space-between;align-items:center;gap:6px;padding:7px 8px;display:flex}.panel-button,.pm-row{margin-bottom:2px}.panel-button:hover,.panel-button.active,.pm-row:hover,.pm-row.active{color:var(--text);background:var(--accent-soft)}.pm-row{display:flex}.pm-row>button{background:0 0;border:0}.section-separator,.section-details{border-top:1px solid var(--border);margin-top:14px;padding-top:12px}.section-details>summary{color:var(--muted);cursor:pointer;letter-spacing:.09em;text-transform:uppercase;-webkit-user-select:none;user-select:none;margin:0 6px 5px;font-size:12px}.section-details-content{padding-top:2px}.config-section .section-details-content{gap:8px;display:grid}.config-section h2{margin:4px 0 0}.archived-channels .panel-button{color:var(--muted)}.pm-row>button:first-child{text-align:left;flex:1;min-width:0;padding:7px 8px}.panel-button.read-only:not(.active){color:var(--muted);opacity:.68}.unread-indicator{flex:none;margin-left:auto;font-size:12px;line-height:1}.pm-row>.unread-indicator{align-self:center;margin-left:4px}.pm-close{margin-left:auto;padding:4px 7px}.voice-button,.danger,.voice-toggle,.live-button,.watch-button,.primary,.logout{background:var(--accent);border:0;border-radius:6px;width:100%;padding:9px}.voice-button,.danger,.voice-toggle,.live-button,.watch-button{font-weight:400}.danger,.live-button{background:var(--danger)}.voice-toggle{background:var(--control)}.watch-button{background:var(--watch);justify-content:center;gap:4px;margin-top:6px;display:flex}.watch-button:hover:not(:disabled),.watch-button:focus-visible{background:var(--watch-hover)}.watch-buttons.multiple{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:6px;display:grid}.watch-buttons.multiple .watch-button{min-width:0;margin-top:0;padding-inline:6px}.watch-buttons.multiple .watch-mosaic-button{grid-column:1/-1}.watch-mosaic-button{margin-top:6px}.watch-button-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.watch-button-count{white-space:nowrap;flex:none}.logout{background:var(--control);margin-bottom:8px}.settings{background:var(--input);border-radius:6px;margin-top:7px;padding:8px;font-size:13px}.voice-controls{grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px;display:grid}.settings details+details,.settings .live-button{margin-top:8px}.sidecar-download{width:100%;color:var(--link);text-align:center;background:0 0;border:0;margin-top:7px;font-size:12px;text-decoration:none;display:block}.sidecar-approval{gap:14px}.sidecar-approval p{color:var(--muted);margin:0;line-height:1.45}.settings label{margin:6px 0;display:block}.reselect-microphone,.microphone-picker button{border:1px solid var(--border);color:var(--text);background:var(--control);border-radius:5px}.reselect-microphone{width:100%;margin-top:7px;padding:6px;font-size:12px}.microphone-picker{border:1px solid var(--border);background:var(--panel);border-radius:5px;gap:5px;margin-top:6px;padding:6px;display:grid}.microphone-picker>div{grid-template-columns:1fr 1fr;gap:5px;display:grid}.microphone-picker button{padding:5px}.microphone-error{color:var(--error-text);margin-top:5px;display:block}.settings select,.volume-control input[type=range]{width:100%}.preference-checkbox{align-items:center;gap:7px;margin:8px 0;display:flex}.preference-checkbox input{margin:0}.notification-controls{gap:8px;display:grid}.notification-controls .preference-control,.notification-controls .volume-control,.notification-controls .preview-sound,.notification-controls .preference-checkbox{margin:0}.notification-controls .preview-sound{min-height:34px}.notification-note{color:var(--muted);font-size:11px;line-height:1.35}.voice-list{margin-top:8px}.soundboard-grid{gap:3px;display:grid}.soundboard-clip{grid-template-columns:minmax(0,1fr) auto;display:grid}.soundboard .panel-button{background:var(--control);padding:6px 7px;overflow:hidden}.soundboard-clip>button:first-child span{color:var(--muted)}.soundboard-delete{width:28px;color:var(--muted);background:0 0;border:0}.soundboard-upload{cursor:pointer;text-align:center;margin-top:5px;display:block}.voice-empty{color:var(--muted);text-align:center;margin:7px 4px 0;font-size:12px}.voice-person{background:var(--card);border:1px solid #0000;border-radius:5px;margin:6px 0;padding:7px;font-size:13px}.voice-person.speaking{border-color:var(--success-text);box-shadow:inset 0 0 0 1px var(--success-border)}.voice-person.muted{opacity:.55;filter:saturate(.55)}.voice-person-heading{align-items:center;gap:7px;margin-bottom:4px;font-size:15px;display:flex}.voice-emoji{justify-content:center;align-items:center;min-width:1.2em;display:inline-flex}.voice-latency{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto;font-size:11px}.volume-control{grid-template-columns:max-content minmax(60px,1fr) 4ch;align-items:center;column-gap:5px;min-width:0;margin-top:6px;display:grid;position:relative}.volume-control.without-mute{grid-template-columns:minmax(60px,1fr) 4ch}.volume-control label{white-space:nowrap}.volume-control .volume-mute{align-items:center;gap:3px;line-height:1;display:flex}.volume-mute-button{border:1px solid var(--border);min-width:5.5em;color:var(--text);background:var(--control);border-radius:4px;padding:3px 6px;font-weight:400}.volume-mute-button.muted{border-color:var(--danger);background:var(--danger)}.volume-control input[type=checkbox],.volume-control input[type=range]{margin:0}.volume-slider{min-width:0;display:flex;position:relative}.volume-slider input[type=range]{width:100%;min-width:0}.volume-pip{z-index:1;pointer-events:none;background:var(--muted);border-radius:1px;width:2px;height:7px;position:absolute;top:50%;left:50%;transform:translate(-1px,-50%)}.volume-control output{width:4ch;color:var(--link);font-variant-numeric:tabular-nums;text-align:right;-webkit-user-select:none;user-select:none;font-size:12px}.channel-header{border-bottom:1px solid var(--border);align-items:center;gap:8px;min-height:48px;padding:0 13px;font-size:19px;display:flex;position:relative}.channel-title{flex:auto;min-width:0;padding-right:0}.channel-search{-webkit-user-select:text;user-select:text;align-items:center;gap:4px;width:min(21vw,310px);min-width:170px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.app-shell:not(.mobile-shell) .channel-header{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"title search status";display:grid}.app-shell:not(.mobile-shell) .channel-title{grid-area:title}.app-shell:not(.mobile-shell) .channel-search{grid-area:search;width:min(21vw,310px);max-width:none;position:static;transform:none}.app-shell:not(.mobile-shell) .channel-status{grid-area:status}.channel-search input{border:1px solid var(--border);width:100%;min-width:0;color:var(--text);background:var(--input);border-radius:5px;padding:6px 8px;font-size:13px}.channel-search button{border:1px solid var(--border);min-width:28px;height:28px;color:var(--muted);background:var(--control);border-radius:5px;flex:none;padding:0 8px;font-size:12px}.channel-search button[aria-label=Clear\ search]{padding:0 5px}.channel-search button:hover:not(:disabled){color:var(--text);background:var(--control-hover)}.search-results-bar{z-index:2;border:1px solid var(--border);color:var(--muted);background:color-mix(in srgb,var(--panel) 94%,transparent);border-radius:5px;align-items:center;gap:8px;margin:-1px -2px 5px;padding:5px 8px;font-size:12px;display:flex;position:sticky;top:0}.search-empty{color:var(--muted);place-self:center;margin:auto;font-size:13px}.server-name-button,.channel-title-button,.channel-create-button,.channel-actions button{color:inherit;font:inherit;background:0 0;border:0}.server-name-button,.channel-title-button{text-align:left;cursor:pointer;min-width:0;padding:0}.channel-title-button{vertical-align:middle;max-width:100%;display:inline-block}.server-name-button:hover,.channel-title-button:hover{color:var(--link);text-decoration:underline}.channel-list-heading{justify-content:space-between;align-items:center;gap:8px;display:flex}.channel-list-heading h2{margin:0}.channel-create-button{color:var(--muted);cursor:pointer;border-radius:5px;flex:none;padding:2px 5px}.channel-create-button:hover{color:var(--text);background:var(--accent-soft)}.channel-actions{align-items:center;gap:4px;display:flex}.channel-actions button{cursor:pointer;border-radius:4px;padding:3px 5px}.channel-actions button:hover{background:var(--accent-soft)}.permission{border:1px solid var(--success-border);color:var(--success-text);border-radius:4px;padding:3px 6px;font:400 12px ui-monospace,monospace}.permission.read-only{border-color:var(--danger);color:var(--error-text)}.messages{min-width:0;min-height:0;padding:6px 10px;overflow:hidden auto}.messages-content{width:100%;min-width:0;max-width:100%;min-height:100%}.message{border:1px solid var(--border);background:var(--card);content-visibility:auto;contain-intrinsic-size:auto 64px;border-radius:4px;grid-template-columns:52px minmax(0,1fr);gap:9px;width:100%;min-width:0;max-width:100%;margin:3px 0;padding:5px 154px 5px 6px;display:grid;position:relative;overflow-x:clip}.message:hover{background:var(--card-hover)}.message.system-message{opacity:.72;background:0 0;border-style:dashed;grid-template-columns:minmax(0,1fr);padding-block:3px}.message-content{min-width:0;max-width:100%}.message-channel-context{border:1px solid var(--border);width:fit-content;max-width:100%;color:var(--muted);background:var(--control);border-radius:999px;margin-bottom:2px;padding:1px 5px;font-size:11px}.avatar{object-fit:cover;image-rendering:auto;width:52px;height:52px;color:var(--text);border-radius:2px;flex:0 0 52px;place-items:center;font-size:17px;font-weight:800;display:inline-grid}.message header{flex-wrap:wrap;align-items:baseline;gap:6px;font-size:16px;display:flex}.message time{color:var(--muted);font-size:12px}.message p,.message-body{white-space:pre-wrap;overflow-wrap:anywhere;margin:2px 0;line-height:1.32}.message-link,.message-link:visited{color:var(--link);text-decoration:none}.message-link:hover{color:var(--link)}.youtube-embed{width:min(100%,640px);margin:6px 0}.youtube-embed iframe{aspect-ratio:16/9;border:1px solid var(--border);width:100%;display:block}.youtube-embed>button{border:1px solid var(--border);width:100%;min-height:90px;color:var(--link);background:var(--control);place-content:center;gap:4px;display:grid}.youtube-embed small{color:var(--muted)}.youtube-embed>a,.attachment-download{width:fit-content;color:var(--link);background:0 0;border:0;margin-top:3px;padding:0;text-decoration:none;display:block}.quoted-message{border:0;border-left:3px solid var(--accent);width:min(100%,620px);color:var(--muted);background:color-mix(in srgb,var(--control) 55%,transparent);text-align:left;margin:3px 0;padding:4px 7px;display:grid;overflow:hidden}.truncate{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.quoted-message strong{color:var(--text);font-size:12px}.message-actions{border:1px solid var(--border);background:var(--control);opacity:0;pointer-events:none;border-radius:4px;transition:opacity .1s;display:flex;position:absolute;top:5px;right:5px}.message:hover .message-actions,.message:focus-within .message-actions{opacity:1;pointer-events:auto}.message-actions button,.compose-row>button{border:1px solid var(--border);background:var(--control);border-radius:5px;margin:4px;padding:6px}.message-actions button{font-style:normal;font-weight:400;text-decoration:none}.message-actions button:hover,.compose-row>button:hover{background:var(--control-hover)}.removed,.deleted,.offline{color:var(--muted);font-style:italic}mark{color:var(--text);background:var(--accent-soft);border-radius:2px;padding:1px 2px}.message-body mark.mention{color:var(--text);background:var(--accent-soft)}.attachment{flex-direction:column;align-items:flex-start;margin-top:5px;display:flex}.spoiler-media{border-radius:4px;width:fit-content;max-width:100%;display:inline-flex;position:relative;overflow:hidden}.spoiler-media .video-pending{visibility:hidden;width:100%;height:100%;position:absolute;inset:0}.spoiler-media:fullscreen{box-sizing:border-box;background:#000;border-radius:0;justify-content:center;align-items:center;overflow:hidden;aspect-ratio:auto!important;width:100vw!important;max-width:none!important;height:100vh!important;max-height:none!important;display:flex!important}.spoiler-media:fullscreen video{object-fit:contain;background:#000;border-radius:0;width:100%!important;max-width:100vw!important;height:100%!important;max-height:100vh!important}.spoiler-media:fullscreen .custom-video-controls{inset:0}.spoiler-media:fullscreen .video-control-strip{right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));left:max(12px,env(safe-area-inset-left))}.custom-video-controls{z-index:2;color:#fff;opacity:0;pointer-events:none;transition:opacity .12s;position:absolute;inset:0}.custom-video-controls.visible,.custom-video-controls.open{opacity:1}.video-control-strip{pointer-events:auto;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:linear-gradient(90deg,#02030aaa,#02030a70);border-radius:999px;align-items:center;gap:7px;padding:6px 7px;display:flex;position:absolute;bottom:8px;left:8px;right:8px;box-shadow:0 3px 14px #0008}.video-control-button{color:#fffffff0;background:#ffffff18;border:0;border-radius:999px;place-items:center;width:22px;min-width:22px;height:22px;padding:0;font-size:0;line-height:1;display:grid}.video-control-button:hover,.video-control-button:focus-visible{color:#fff;background:#ffffff2e;outline:none}.video-play-icon.play{border-top:5px solid #0000;border-bottom:5px solid #0000;border-left:8px solid;width:0;height:0;margin-left:2px}.video-play-icon.pause{border-left:3px solid;border-right:3px solid;width:8px;height:10px}.video-volume-icon{clip-path:polygon(0 30%,35% 30%,75% 0,75% 100%,35% 70%,0 70%);background:currentColor;border-radius:1px;width:11px;height:9px;position:relative}.video-volume-icon:after{content:"";border:2px solid;border-left:0;border-radius:0 999px 999px 0;width:5px;height:7px;position:absolute;top:1px;right:-6px}.video-fullscreen-icon{width:13px;height:13px;display:block;position:relative}.video-fullscreen-icon:before,.video-fullscreen-icon:after{content:"";border:2px solid;position:absolute;inset:0}.video-fullscreen-icon:before{clip-path:polygon(0 0,42% 0,42% 2px,2px 2px,2px 42%,0 42%,0 0,58% 0,100% 0,100% 42%,calc(100% - 2px) 42%,calc(100% - 2px) 2px,58% 2px)}.video-fullscreen-icon:after{clip-path:polygon(0 58%,2px 58%,2px calc(100% - 2px),42% calc(100% - 2px),42% 100%,0 100%,0 58%,58% calc(100% - 2px),calc(100% - 2px) calc(100% - 2px),calc(100% - 2px) 58%,100% 58%,100% 100%,58% 100%)}.video-fullscreen-icon.exit{transform:scale(.82)}.video-seek{opacity:.92;accent-color:#fff;pointer-events:auto;flex:1;width:100%;height:18px;margin:0}.video-seek:hover,.video-seek:focus-visible{opacity:1}.video-seek::-webkit-slider-runnable-track{background:#ffffffa8;border:0;border-radius:999px;height:4px;box-shadow:0 0 0 1px #0008}.video-seek::-webkit-slider-thumb{width:16px;height:16px;margin-top:-6px}.video-seek::-moz-range-track{background:#ffffffa8;border:0;border-radius:999px;height:4px;box-shadow:0 0 0 1px #0008}.video-seek::-moz-range-thumb{border:0;width:14px;height:14px}.video-volume-control{margin:-16px -12px 0 0;padding:16px 12px 0 6px;position:relative}.video-volume-control:before{content:"";width:118px;height:24px;position:absolute;bottom:100%;right:2px}.video-volume-popover{opacity:0;pointer-events:none;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#02030ad9;border:0;border-radius:999px;width:118px;padding:11px 12px;transition:opacity .12s;position:absolute;bottom:calc(100% + 2px);right:0;box-shadow:0 5px 18px #0009}.video-volume-control.open .video-volume-popover{opacity:1;pointer-events:auto}.video-volume-popover input{accent-color:#fff;width:100%;height:18px;margin:0;display:block}.spoiler-media.media-loading{background:var(--page);width:min(620px,100%);min-height:90px}.spoiler-media.censored img,.spoiler-media.censored video{filter:blur(24px);pointer-events:none;transform:scale(1.08)}.spoiler-media>.censor-button,.spoiler-media>.video-preview-button{color:#fff;letter-spacing:.12em;background:#08091c66;border:0;width:100%;font-weight:800;position:absolute;inset:0}.video-preview-button{place-items:center;display:grid}.video-preview-play-icon{filter:drop-shadow(0 3px 14px #000c);border-top:18px solid #0000;border-bottom:18px solid #0000;border-left:28px solid #fff;width:0;height:0}.image-preview-trigger{cursor:zoom-in;background:0 0;border:0;border-radius:4px;width:fit-content;max-width:100%;padding:0;display:block;overflow:hidden}.link-preview-link{cursor:pointer}.spoiler-media.sized .image-preview-trigger{width:100%}.attachment img,.attachment video{background:var(--page);border-radius:4px;width:auto;max-width:min(620px,100%);height:auto;max-height:420px;display:block}.spoiler-media.sized img,.spoiler-media.sized video{width:100%}.image-preview{--preview-gap:28px;z-index:100;box-sizing:border-box;width:100vw;height:100dvh;padding:max(var(--preview-gap),env(safe-area-inset-top)) max(var(--preview-gap),env(safe-area-inset-right)) max(var(--preview-gap),env(safe-area-inset-bottom)) max(var(--preview-gap),env(safe-area-inset-left));cursor:zoom-out;background:#02030ae6;place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.image-preview>img{width:auto;height:auto;max-width:calc(100vw - max(var(--preview-gap),env(safe-area-inset-left)) - max(var(--preview-gap),env(safe-area-inset-right)));max-height:calc(100vh - max(var(--preview-gap),env(safe-area-inset-top)) - max(var(--preview-gap),env(safe-area-inset-bottom)));max-height:calc(100dvh - max(var(--preview-gap),env(safe-area-inset-top)) - max(var(--preview-gap),env(safe-area-inset-bottom)));object-fit:contain;cursor:default;border-radius:4px;display:block;box-shadow:0 12px 50px #000c}.image-preview-close{top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));color:#fff;background:#101224dd;border:1px solid #fff5;border-radius:5px;place-items:center;width:36px;height:36px;padding:0;display:grid;position:fixed}@media (width<=620px),(height<=520px){.image-preview{--preview-gap:12px;padding-top:max(56px,env(safe-area-inset-top))}.image-preview>img{max-height:calc(100vh - max(56px,env(safe-area-inset-top)) - max(var(--preview-gap),env(safe-area-inset-bottom)));max-height:calc(100dvh - max(56px,env(safe-area-inset-top)) - max(var(--preview-gap),env(safe-area-inset-bottom)))}}.config-separator{border-top:1px solid var(--border);gap:8px;margin-top:6px;padding-top:10px;display:grid}.preview-sound{border:1px solid var(--border);width:100%;color:var(--text);background:var(--control);border-radius:5px;margin-top:12px;padding:7px}.preview-sound:disabled{cursor:not-allowed;color:var(--muted);background:var(--input);opacity:.65}.audio-slot,.attachment audio{width:min(360px,100%);height:34px;display:block}.attachment a{color:var(--link);margin-top:3px;font-size:13px;display:block}.composer-area{min-width:0;position:relative}.jump-to-latest{z-index:4;border:1px solid var(--border);color:var(--text);background:var(--control);cursor:pointer;white-space:nowrap;border-radius:999px;padding:5px 10px;position:absolute;bottom:100%;left:50%;translate:-50% -6px;box-shadow:0 3px 12px #0008}.jump-to-latest:hover{background:var(--control-hover)}.composer{border:1px solid var(--border);background:var(--composer);border-radius:7px;margin:0 10px 8px;padding-top:10px;position:relative}.composer-resizer{z-index:2;cursor:ns-resize;background:var(--control);touch-action:none;border:0;width:100%;height:10px;padding:0;position:absolute;top:0;left:0}.compose-row{grid-template-columns:38px minmax(0,1fr) 38px;align-items:end;display:grid}.compose-action{align-self:center;place-items:center;width:30px;height:30px;line-height:1;display:grid;padding:0!important}.compose-row textarea{resize:none;min-height:42px;max-height:220px;color:var(--text);background:0 0;border:0;outline:0;padding:10px 3px}.composer-meta{color:var(--muted);justify-content:space-between;gap:10px;padding:3px 8px 5px;font-size:11px;display:flex}.composer-meta span:last-child{color:var(--link);text-align:right}.file-list{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:5px;padding:5px;display:flex;overflow-x:auto}.quote-mode{border-bottom:1px solid var(--border);color:var(--muted);justify-content:space-between;align-items:center;gap:8px;padding:5px 8px;font-size:12px;display:flex;overflow:hidden}.quote-mode>.truncate{flex:auto;max-width:100%}.quote-mode strong{color:var(--text)}.edit-mode{color:var(--link)}.quote-mode button{border:1px solid var(--border);width:22px;height:22px;color:var(--muted);background:var(--control);border-radius:4px;flex:0 0 22px;place-items:center;padding:0;display:grid}.file-list>div{gap:5px;min-width:0;display:flex;overflow-x:auto}.file-list>label{white-space:nowrap;align-items:center;gap:4px;padding-inline:5px;display:flex}.file-list span{background:var(--control);white-space:nowrap;border-radius:4px;align-items:center;gap:4px;padding:3px 5px;font-size:12px;display:inline-flex}.file-list span button{width:18px;height:18px;color:var(--muted);background:0 0;border:0;place-items:center;padding:0;display:grid}.upload-progress{color:var(--muted);grid-template-columns:minmax(80px,1fr) auto;align-items:center;gap:8px;padding:3px 8px;font-size:11px;display:grid}.upload-progress progress{width:100%;accent-color:var(--accent)}.error{color:var(--error-text);padding:5px 8px;font-size:13px}.user-row{white-space:nowrap;align-items:center;gap:7px;min-width:0;padding:5px;font-size:14px;display:flex}.self-name{cursor:pointer;flex:auto;min-width:0;font-size:16px;font-weight:800;display:flex;position:relative}.user-row>label:first-child{flex:none}.self-name-text{flex:auto;min-width:0;display:block}.self-name input[type=color]{opacity:0;width:1px;height:1px;position:absolute}.user-row.offline .self-name,.user-row.offline .user-name{flex:0 auto}.user-row.offline small{flex:none}.user-name{min-width:0;color:inherit;text-align:left;background:0 0;border:0;flex:auto;padding:0;font-size:16px}.pin-card{background:var(--card);text-align:left;width:100%;min-width:0;margin-bottom:3px;font-size:13px;display:block}.pin-card.has-thumbnail{grid-template-columns:38px minmax(0,1fr);align-items:center;gap:7px;display:grid}.pin-card>span{max-width:100%;display:block}.pin-thumbnail{border:1px solid var(--border);object-fit:cover;background:var(--control);border-radius:4px;width:38px;height:38px}.pin-thumbnail.spoiler{filter:blur(8px)}.event-card{background:var(--card);grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-bottom:3px;padding:7px 8px;font-size:13px;display:grid}.event-card time{color:var(--muted);white-space:nowrap}.event-card.ongoing span,.event-card.ongoing time{color:var(--success-text);font-weight:700}.preference-control select{border:1px solid var(--border);width:100%;color:var(--text);background:var(--input);text-transform:none;border-radius:5px;padding:7px}.panel-error{border:1px solid var(--error-border);color:var(--error-text);background:var(--error-bg);border-radius:5px;margin-top:auto;padding:8px;animation:5s forwards error-fade;position:sticky;bottom:0}.login-shell{background:radial-gradient(circle at 50% 20%,var(--accent-soft),var(--page) 52%);place-items:center;min-height:100vh;display:grid}.login-card{border:1px solid var(--border);background:var(--panel);border-radius:14px;width:min(420px,100vw - 32px);padding:30px}.login-card .brand-mark{width:112px;height:112px;margin:0 auto 20px;overflow:hidden}.login-card .brand-mark img{object-fit:cover;width:100%;height:100%}.login-server-name{text-align:center;-webkit-user-select:none;user-select:none;margin-bottom:24px;font-size:25px;display:block}.login-card h1,.login-card p{text-align:center}.login-card p{color:var(--muted)}.login-card label{color:var(--text);margin:12px 0;font-size:14px;font-weight:700;display:block}.login-card input:not([type=color]){border:1px solid var(--border);width:100%;color:var(--text);background:var(--input);border-radius:6px;margin-top:5px;padding:10px}.login-card input[type=color]{width:100%;height:40px;margin-top:5px;display:block}.link-button{color:var(--link);background:0 0;border:0;margin:10px auto 0;display:block}@keyframes error-fade{0%,75%{opacity:1}to{opacity:0}}@container (width<=680px){.app-shell:not(.mobile-shell) .channel-header{grid-template:"title status"47px"search search"/minmax(0,1fr) auto;padding-bottom:7px}.app-shell:not(.mobile-shell) .channel-search{width:100%;min-width:0;margin:0}}@media (width<=900px){.app-shell{grid-template-columns:minmax(190px,28vw) 5px 1fr!important}.channel-title{padding-right:0}.channel-search{width:min(100%,260px);min-width:0;max-width:260px;margin-left:auto;position:static;transform:none}.channel-search input{min-width:70px}.right-panel,.center-panel+.panel-resizer{display:none}}@media (width<=620px){.app-shell{grid-template-columns:1fr!important}.left-panel,.panel-resizer{display:none}.message{padding-right:154px}.composer-meta{font-size:10px}}.mobile-shell{height:var(--mobile-viewport-height,100dvh);display:block}.mobile-shell .center-panel{top:var(--mobile-viewport-top,0);height:var(--mobile-viewport-height,100dvh);grid-template-rows:42px minmax(0,1fr) auto;position:fixed;bottom:auto;left:0;right:0;overflow:hidden}.mobile-shell .center-panel.stream-active{grid-template-rows:minmax(0,1fr)}.mobile-menu-button,.mobile-users-button{border:1px solid var(--border);width:32px;height:32px;color:var(--text);background:var(--control);border-radius:5px;flex:0 0 32px;place-items:center;padding:0;display:grid}.mobile-shell .channel-header{gap:8px;padding:0 6px;font-size:16px}.mobile-shell .channel-title{flex:1;padding-right:0}.mobile-shell .channel-search{display:none}.mobile-shell .channel-status{flex:none;gap:6px}.mobile-shell .permission{flex:none;padding:2px 4px;font-size:10px}.mobile-shell .voice-system-toggle{font-size:11px}.mobile-backdrop{z-index:20;background:#0009;border:0;width:100%;height:100%;padding:0;display:block;position:fixed;inset:0}.mobile-panel{z-index:21;width:min(88vw,340px);padding:max(8px,env(safe-area-inset-top)) 8px max(8px,env(safe-area-inset-bottom));overscroll-behavior:contain;border-right:1px solid var(--border);background:var(--panel);pointer-events:none;transition:transform .14s ease-out;display:block;position:fixed;inset:0 auto 0 0;overflow-y:auto;transform:translate(-105%);box-shadow:12px 0 30px #0008}.mobile-panel.open{pointer-events:auto;transform:translate(0)}.mobile-users-panel{z-index:21;width:min(82vw,310px);padding:max(8px,env(safe-area-inset-top)) 8px max(8px,env(safe-area-inset-bottom));overscroll-behavior:contain;border-left:1px solid var(--border);background:var(--panel);pointer-events:none;transition:transform .14s ease-out;display:block;position:fixed;inset:0 0 0 auto;overflow-y:auto;transform:translate(105%);box-shadow:-12px 0 30px #0008}.mobile-users-panel.open{pointer-events:auto;transform:translate(0)}.mobile-users-panel>header{justify-content:space-between;align-items:center;min-height:34px;display:flex}.mobile-users-panel>header strong{-webkit-user-select:none;user-select:none}.mobile-users-panel>header button{border:1px solid var(--border);width:32px;height:32px;color:var(--text);background:var(--control);border-radius:5px;padding:0;font-size:20px}.mobile-presence-row{align-items:center;gap:7px;min-width:0;padding:4px 2px;display:flex}.mobile-voice-row.speaking{box-shadow:inset 0 0 0 1px var(--success-border);border-radius:5px}.mobile-presence-row .avatar{flex-basis:34px;width:34px;height:34px;font-size:12px}.mobile-panel-header{grid-template-columns:minmax(0,1fr) auto 32px;align-items:center;gap:5px;margin-bottom:7px;display:grid}.mobile-panel-header strong{-webkit-user-select:none;user-select:none;padding-left:3px;font-size:15px}.mobile-panel-header button{border:1px solid var(--border);min-height:32px;color:var(--text);background:var(--control);border-radius:5px;padding:5px 8px}.mobile-panel-header .mobile-panel-close{padding:0;font-size:20px}.mobile-panel .voice-button,.mobile-panel>.danger{padding:7px}.mobile-panel .settings{padding:6px}.mobile-livestream-note{color:var(--muted);margin:3px 0 6px;font-size:12px}.mobile-panel .voice-controls{margin-bottom:5px}.mobile-panel .volume-control{margin:4px 0 7px}.mobile-microphone details{border-top:1px solid var(--border);padding-top:6px}.mobile-microphone summary{color:var(--muted);cursor:pointer;text-transform:uppercase;font-size:12px}.mobile-channels h2,.mobile-channels .section-details{margin-top:10px}.mobile-channels h2{margin-left:3px}.mobile-channels .panel-button{min-height:34px;margin-bottom:2px;padding:5px 7px}.mobile-channels .section-separator,.mobile-channels .section-details{padding-top:8px}.mobile-shell .messages{padding:3px 4px}.mobile-shell .message{grid-template-columns:40px minmax(0,1fr);gap:6px;margin:2px 0;padding:4px}.mobile-shell .message.system-message{grid-template-columns:minmax(0,1fr);padding-inline:6px}.mobile-shell .avatar{flex-basis:40px;width:40px;height:40px;font-size:14px}.mobile-shell .message header{gap:4px;font-size:14px}.mobile-shell .message time{font-size:10px}.mobile-shell .message-actions{display:none}.mobile-shell .composer{margin:0 4px calc(4px + max(env(safe-area-inset-bottom),var(--mobile-system-bottom-inset,0px)));min-height:0;max-height:min(180px,var(--mobile-composer-max-height,45dvh));overscroll-behavior:contain;border-radius:7px;padding:0;overflow-y:auto}.mobile-shell .jump-to-latest{padding:5px 9px;font-size:12px;translate:-50% -4px}.mobile-shell .composer-resizer{display:none}.mobile-shell .compose-row{grid-template-columns:36px minmax(0,1fr) 36px;height:42px;min-height:42px}.mobile-shell .compose-row textarea{min-height:0;max-height:42px;padding:9px 3px;height:42px!important}.mobile-shell .compose-action{width:30px;height:30px;margin:3px}.mobile-shell .composer-meta{justify-content:flex-end;padding:2px 6px}.mobile-error{z-index:30;right:8px;bottom:max(8px,env(safe-area-inset-bottom));border:1px solid var(--error-border);color:var(--error-text);background:var(--error-bg);pointer-events:none;border-radius:5px;padding:8px;animation:5s forwards error-fade;position:fixed;left:8px}@media (prefers-reduced-motion:reduce){.mobile-panel,.mobile-users-panel{transition:none}}.fatal-error{min-height:100vh;color:var(--text);background:var(--page);place-items:center;padding:20px;display:grid}.fatal-error section{border:1px solid var(--error-border);background:var(--panel);border-radius:8px;max-width:520px;padding:18px}.fatal-error h1{margin:0 0 8px;font-size:18px}.fatal-error p{overflow-wrap:anywhere;color:var(--error-text)}.fatal-error button{background:var(--control);border:0;border-radius:6px;padding:8px 12px}.loading-screen{min-height:100vh;color:var(--muted);background:var(--page);place-items:center;display:grid}.loading-screen section{border:1px solid var(--border);background:var(--panel);border-radius:8px;padding:14px 18px}summary,h2,.server-name,.permission,.voice-empty,.channel-header{-webkit-user-select:none;user-select:none}:root[data-theme="90s-kid"] body,:root[data-theme="90s-kid"] .app-shell{background:radial-gradient(circle at 1px 1px,#ffffff2c 1px,#0000 0) 0 0/16px 16px,linear-gradient(135deg,#2b00a8 0%,#8b16ff 34%,#180064 68%,#050020 100%)}:root[data-theme="90s-kid"] .left-panel,:root[data-theme="90s-kid"] .right-panel,:root[data-theme="90s-kid"] .mobile-panel,:root[data-theme="90s-kid"] .mobile-users-panel,:root[data-theme="90s-kid"] .center-panel,:root[data-theme="90s-kid"] .login-card{background-image:linear-gradient(#3d19bf 0,#2a0b8f 40px,#0000 41px),radial-gradient(circle at 100% 0,#ff3fc726 0,#0000 34%),radial-gradient(circle at 0 100%,#00f7ff1f 0,#0000 30%)}:root[data-theme="90s-kid"] .channel-header{color:#fffbe8;text-shadow:1px 1px #16002e,0 0 8px #ff3fc7;background:linear-gradient(90deg,#ff3fc7 0%,#862cff 38%,#00f7ff 72%,#b6ff27 100%);border-bottom:2px solid #fff04f}:root[data-theme="90s-kid"] .panel-button,:root[data-theme="90s-kid"] .panel-card,:root[data-theme="90s-kid"] .pm-row>button,:root[data-theme="90s-kid"] .message,:root[data-theme="90s-kid"] .composer,:root[data-theme="90s-kid"] .settings,:root[data-theme="90s-kid"] .login-card,:root[data-theme="90s-kid"] .voice-button,:root[data-theme="90s-kid"] .danger,:root[data-theme="90s-kid"] .voice-toggle,:root[data-theme="90s-kid"] .live-button,:root[data-theme="90s-kid"] .watch-button,:root[data-theme="90s-kid"] .logout,:root[data-theme="90s-kid"] .primary,:root[data-theme="90s-kid"] .preview-sound,:root[data-theme="90s-kid"] .mobile-menu-button,:root[data-theme="90s-kid"] .mobile-users-button,:root[data-theme="90s-kid"] .mobile-users-panel>header button{border:2px solid #130044;border-color:#fff7 #130044 #130044 #fff7;border-radius:0;box-shadow:inset 1px 1px #fff5,inset -1px -1px #0008,2px 2px #050018}:root[data-theme="90s-kid"] .panel-button:hover,:root[data-theme="90s-kid"] .panel-button.active,:root[data-theme="90s-kid"] .pm-row:hover,:root[data-theme="90s-kid"] .pm-row.active,:root[data-theme="90s-kid"] .channel-create-button:hover,:root[data-theme="90s-kid"] .channel-actions button:hover{background:linear-gradient(90deg,#ff3fc766,#00f7ff33),var(--accent-soft);color:#fffbe8}:root[data-theme="90s-kid"] h2,:root[data-theme="90s-kid"] .section-details>summary{color:#fff04f;text-shadow:1px 1px #16002e,0 0 6px #ff3fc7}:root[data-theme="90s-kid"] .server-icon img,:root[data-theme="90s-kid"] .server-icon span,:root[data-theme="90s-kid"] .brand-mark{background:linear-gradient(135deg,#ff3fc7 0%,#862cff 42%,#00f7ff 72%,#b6ff27 100%);border:2px solid #fff8;border-radius:0;box-shadow:0 0 0 2px #ff3fc7,0 0 0 4px #00f7ff,0 0 18px #ff3fc799}:root[data-theme="90s-kid"] .message header strong,:root[data-theme="90s-kid"] .self-name,:root[data-theme="90s-kid"] .user-name,:root[data-theme="90s-kid"] .login-server-name{text-shadow:1px 1px #12002f,0 0 5px #00f7ff55}:root[data-theme="90s-kid"] .message-link,:root[data-theme="90s-kid"] .message-link:visited,:root[data-theme="90s-kid"] .attachment a,:root[data-theme="90s-kid"] .link-button,:root[data-theme="90s-kid"] .sidecar-download{color:#00f7ff;text-decoration:underline;text-decoration-thickness:2px}:root[data-theme="90s-kid"] .message-link:hover,:root[data-theme="90s-kid"] .attachment a:hover,:root[data-theme="90s-kid"] .link-button:hover,:root[data-theme="90s-kid"] .sidecar-download:hover{color:#fff04f}:root[data-theme="90s-kid"] input:not([type=range]),:root[data-theme="90s-kid"] textarea,:root[data-theme="90s-kid"] select{border:2px inset #7b5cff;border-radius:0}:root[data-theme="90s-kid"] ::selection{color:#120052;background:#b6ff27}@media (prefers-reduced-motion:no-preference){:root[data-theme="90s-kid"] .channel-header:after{content:"UNDER CONSTRUCTION // BEST VIEWED IN NETSCAPE // ";white-space:nowrap;color:#fff04f;letter-spacing:.08em;text-shadow:1px 1px #16002e,0 0 6px #ff3fc7;flex:none;max-width:min(34vw,320px);font-size:12px;animation:8s linear infinite nineties-safe-marquee;overflow:hidden}}@keyframes nineties-safe-marquee{0%{text-indent:100%}to{text-indent:-160%}}.linux-sidecar-card{max-width:460px}.linux-sidecar-card h1{margin:0;font-size:24px}.linux-sidecar-settings{width:100%}.sidecar-status{color:var(--muted);margin:0;font-size:13px}.user-challenge-button{border:1px solid var(--border);min-width:28px;color:var(--link);background:var(--control);border-radius:4px;flex:none;padding:3px 6px;font-size:12px}.user-challenge-button:hover:not(:disabled){background:var(--control-hover)}.chess-panel{margin-top:8px}.chess-game-card{gap:2px;margin-bottom:7px;display:grid}.chess-game-card span{color:var(--muted);font-size:11px}.chess-empty{color:var(--muted);text-align:center;margin:7px 3px;font-size:12px}.chess-leaderboard{gap:2px;font-size:11px;display:grid}.chess-leaderboard-head,.chess-leaderboard-row{grid-template-columns:2ch minmax(0,1fr) 5ch 12ch;align-items:center;gap:5px;padding:3px 2px;display:grid}.chess-leaderboard-head{color:var(--muted);border-bottom:1px solid var(--border)}.chess-leaderboard-row:nth-child(2n){background:color-mix(in srgb,var(--control) 42%,transparent)}.chess-leaderboard-row>:nth-child(3),.chess-leaderboard-row>:nth-child(4),.chess-leaderboard-head>:nth-child(3),.chess-leaderboard-head>:nth-child(4){text-align:right}.chess-dock{z-index:40;pointer-events:none;gap:6px;width:min(380px,100vw - 28px);display:grid;position:fixed;bottom:14px;right:14px}.chess-challenge-backdrop{z-index:90;background:#0009;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.chess-challenge-dialog{border:2px solid var(--accent);background:var(--panel);border-radius:10px;gap:10px;width:min(520px,100%);padding:18px;display:grid;box-shadow:0 20px 70px #000e}.chess-challenge-dialog h2{text-align:center;margin:0;font-size:24px}.chess-challenge-dialog>p{color:var(--muted);text-align:center;margin:0;font-size:12px}.chess-challenge-card,.chess-watch-button{pointer-events:auto;border:1px solid var(--border);color:var(--text);background:color-mix(in srgb,var(--panel) 95%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:7px;box-shadow:0 8px 30px #0008}.chess-challenge-card{justify-content:space-between;align-items:center;gap:8px;padding:9px 10px;display:flex}.chess-challenge-card>div{gap:5px;display:flex}.chess-challenge-card button,.chess-watch-button,.chess-controls button{border:1px solid var(--border);background:var(--control);border-radius:5px;padding:6px 9px}.chess-challenge-card button:hover,.chess-watch-button:hover,.chess-controls button:hover{background:var(--control-hover)}.chess-watch-button{text-align:left;width:100%;padding:9px 10px}.chess-modal-backdrop{z-index:80;background:#000b;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.chess-modal{border:1px solid var(--border);background:var(--panel);border-radius:8px;width:min(1050px,100%);max-height:calc(100dvh - 32px);display:grid;overflow:auto;box-shadow:0 18px 60px #000c}.chess-modal>header{z-index:3;border-bottom:1px solid var(--border);background:var(--panel);justify-content:space-between;align-items:center;padding:10px 12px;display:flex;position:sticky;top:0}.chess-modal>header button{border:1px solid var(--border);background:var(--control);border-radius:5px;place-items:center;width:32px;height:32px;padding:0;font-size:16px;display:grid}.chess-layout{grid-template-columns:minmax(360px,680px) minmax(220px,1fr);gap:14px;padding:14px;display:grid}.chess-game-column{min-width:0}.chess-ranking-column{flex-direction:column;min-width:0;min-height:0;padding:0 4px;display:flex;overflow:hidden}.chess-ranking-column h2{margin:0 0 8px;font-size:15px}.chess-history-heading{justify-content:space-between;align-items:center;gap:8px;margin-top:18px;display:flex}.chess-history-heading h2{margin:0}.chess-history-heading button{border:1px solid var(--border);background:var(--control);border-radius:4px;padding:4px 7px;font-size:11px}.chess-history-list{scrollbar-width:thin;align-content:start;gap:4px;max-height:480px;display:grid;overflow-y:auto}.chess-history-list>button{border:1px solid var(--border);background:var(--card);text-align:left;border-radius:5px;grid-template-columns:auto minmax(0,1fr);gap:2px 7px;padding:7px 8px;display:grid}.chess-history-list>button:hover,.chess-history-list>button.active{border-color:var(--accent);background:var(--accent-soft)}.chess-history-list>button strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chess-history-list>button span{color:var(--muted);font-size:10px}.chess-history-list>button span:last-child{grid-column:1/-1}.chess-player-strip{border:1px solid var(--border);background:var(--card);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;gap:12px;min-height:58px;padding:7px 9px;display:flex}.chess-player-strip.top{border-radius:6px 6px 0 0}.chess-player-strip.bottom{border-radius:0 0 6px 6px}.chess-player-strip.active{border-color:var(--accent);background:var(--accent-soft)}.chess-player-strip.in-check{background:#ff334426;border-color:#f34;animation:1s ease-in-out infinite alternate chess-check-pulse;box-shadow:inset 0 0 0 1px #f34,0 0 14px #f347}.chess-player-strip strong{font:700 20px ui-monospace,monospace}.chess-player-strip strong.chess-clock-low{color:#f34;text-shadow:0 0 9px #f34a;animation:.42s steps(2,end) infinite chess-clock-low}@keyframes chess-clock-low{50%{opacity:.3}}.chess-player-details{gap:2px;min-width:0;display:grid}.chess-player-details>span:first-child{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.chess-check-badge{color:#fff;letter-spacing:.08em;background:#b80018;border:1px solid #ff6673;border-radius:999px;width:max-content;padding:2px 7px;font:700 11px/1.2 ui-monospace,monospace;box-shadow:0 0 10px #f349}.chess-captured-pieces{min-height:20px;color:var(--muted);white-space:nowrap;align-items:center;gap:5px;display:flex;overflow:hidden}.chess-captured-pieces small{font-size:10px}.chess-captured-pieces>span{align-items:center;gap:1px;display:flex;overflow:hidden}.chess-captured-pieces i{color:var(--text);text-shadow:0 1px 1px #0008;flex:none;font:17px/1 DejaVu Sans,Segoe UI Symbol,serif}.chess-board{aspect-ratio:1;border-inline:1px solid var(--border);-webkit-user-select:none;user-select:none;grid-template-rows:repeat(8,minmax(0,1fr));grid-template-columns:repeat(8,minmax(0,1fr));width:min(100%,680px);display:grid;position:relative;container-type:inline-size}.chess-square{border:0;border-radius:0;place-items:center;width:100%;min-width:0;height:100%;min-height:0;padding:0;display:grid;position:relative;overflow:hidden}.chess-square.light{background:#d8c8aa}.chess-square.dark{background:#725c4b}.chess-square.last{box-shadow:inset 0 0 0 999px #d4af3755}.chess-square.selected{box-shadow:inset 0 0 0 4px var(--accent)}.chess-square.premove-from{box-shadow:inset 0 0 0 4px #4ca6ff}.chess-square.premove-to{box-shadow:inset 0 0 0 5px #b26bff,inset 0 0 24px #b26bff99}.chess-square.in-check{z-index:1;animation:.7s ease-in-out infinite alternate chess-check-pulse;box-shadow:inset 0 0 0 clamp(4px,1cqw,8px) #ff2035,inset 0 0 28px #ff2035cc,0 0 18px #ff2035}@keyframes chess-check-pulse{0%{filter:brightness()}to{filter:brightness(1.35)}}@media (prefers-reduced-motion:reduce){.chess-player-strip.in-check,.chess-square.in-check,.chess-player-strip strong.chess-clock-low,.chess-move-indicator{animation:none}}.chess-piece{z-index:1;text-shadow:0 1px 2px #0008;font-family:DejaVu Sans,Segoe UI Symbol,serif;font-size:clamp(28px,7cqw,58px);line-height:1;position:relative}.chess-piece.white{color:#fff9e7;text-shadow:0 1px 2px #000,0 0 1px #000}.chess-piece.black{color:#17120f;text-shadow:0 1px 1px #fff5}.chess-move-indicator{z-index:0;pointer-events:none;border:clamp(3px,.7cqw,6px) solid #39d98a;border-radius:4px;animation:.7s ease-in-out infinite alternate chess-move-pulse;position:absolute;inset:clamp(3px,.8cqw,7px);box-shadow:inset 0 0 18px #39d98aaa,0 0 14px #39d98acc}.chess-move-indicator.capture{border-color:#ff334f;box-shadow:inset 0 0 22px #ff334faa,0 0 16px #ff334fcc}@keyframes chess-move-pulse{0%{opacity:.72}to{opacity:1;filter:brightness(1.25)}}.chess-square small{color:#0008;font:9px ui-monospace,monospace;position:absolute;bottom:1px;right:2px}.chess-status{color:var(--muted);justify-content:space-between;gap:10px;padding:9px 2px;font-size:13px;display:flex}.chess-status strong{color:var(--text)}.chess-premove-status{color:#cda7ff;align-items:center;gap:6px;font-weight:600;display:flex}.chess-premove-status button{color:inherit;background:0 0;border:1px solid;border-radius:4px;padding:2px 6px;font-size:11px}.chess-controls{flex-wrap:wrap;align-items:center;gap:6px;padding-top:2px;display:flex}.chess-controls button{flex:none;width:auto;min-width:96px}.chess-controls button.danger{border-color:var(--danger);background:var(--danger)}.chess-controls span{color:var(--muted);font-size:12px}.chess-pause-status{border:1px solid var(--accent);background:var(--accent-soft);text-align:center;border-radius:5px;margin:8px 0 0;padding:7px 9px;font-size:12px}.chess-castling-help{border:1px solid var(--border);color:var(--muted);background:var(--card);border-radius:5px;margin:9px 0 0;padding:8px 9px;font-size:12px;line-height:1.45}.chess-castling-help strong{color:var(--text)}.chess-pgn{border:1px solid var(--border);border-radius:5px;margin-top:10px}.chess-pgn summary{cursor:pointer;padding:7px 9px}.chess-pgn pre{border-top:1px solid var(--border);white-space:pre-wrap;max-height:180px;margin:0;padding:8px;font-size:11px;overflow:auto}.mobile-chess-watch{border:1px solid var(--border);background:var(--control);border-radius:5px;width:100%;margin-bottom:8px;padding:7px}@media (width<=800px){.chess-modal-backdrop{padding:0}.chess-modal{border:0;border-radius:0;width:100%;height:100%;max-height:none}.chess-layout{grid-template-columns:1fr;padding:8px}.chess-ranking-column{padding-top:6px}.chess-board{width:100%}.chess-status{flex-direction:column;gap:3px}.chess-dock{right:8px;bottom:calc(8px + var(--mobile-system-bottom-inset,0px));width:calc(100vw - 16px)}.chess-challenge-backdrop{padding:10px}.chess-challenge-dialog{padding:14px}.chess-challenge-card{flex-direction:column;align-items:flex-start}}.inline-livestream.minimized{z-index:60;aspect-ratio:16/9;border:1px solid var(--border);border-radius:8px;width:min(420px,100vw - 32px);height:auto;position:fixed;bottom:16px;right:16px;box-shadow:0 12px 36px #000a}.inline-livestream.minimized .inline-livestream-controls{justify-content:flex-end;gap:5px;padding:5px;inset:auto 6px 6px}.inline-livestream.minimized .inline-stream-volume,.inline-livestream.minimized .inline-livestream-watchers{display:none}.inline-livestream.minimized .livestream-mosaic{gap:2px;padding:2px}.inline-livestream.minimized .livestream-mosaic-tile>strong{padding:2px 4px;font-size:10px;top:4px;left:4px}.watch-button.active{outline:2px solid var(--link);outline-offset:-2px;background:var(--watch-hover)}@media (width<=600px){.inline-livestream.minimized{right:8px;bottom:calc(8px + var(--mobile-system-bottom-inset,0px));width:min(360px,100vw - 16px)}.inline-livestream.minimized .inline-livestream-controls>label{display:none}}.voice-audio-warning{border-color:#ffb84d;animation:.7s steps(2,end) infinite voice-audio-warning;box-shadow:0 0 0 1px #ffb84d,0 0 12px #ffb84d8c}@keyframes voice-audio-warning{50%{filter:brightness(1.35)}}.inline-livestream-close{z-index:4;color:#fff;background:#101224dd;border:1px solid #fff5;border-radius:5px;place-items:center;width:36px;height:36px;padding:0;display:grid;position:absolute;top:8px;right:8px}.inline-livestream.minimized{cursor:grab;touch-action:none}.inline-livestream.minimized.dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.inline-livestream.minimized .inline-livestream-controls{width:auto;max-width:calc(100% - 12px);bottom:6px;left:auto;right:6px}.inline-livestream.minimized .inline-livestream-close{top:6px;right:6px}.inline-livestream.expanded .inline-livestream-controls{right:56px}.cinema-viewer{color:#fff;background:#02030a;outline:none;place-items:center;min-width:0;min-height:0;display:grid;position:relative;overflow:hidden}.cinema-viewer.expanded{width:100%;height:100%}.cinema-viewer:fullscreen{border:0;border-radius:0;width:100%;height:100%}.cinema-viewer.minimized{z-index:61;aspect-ratio:16/9;border:1px solid var(--border);cursor:grab;touch-action:none;border-radius:8px;width:min(420px,100vw - 32px);position:fixed;bottom:16px;right:16px;box-shadow:0 12px 36px #000a}.cinema-viewer.minimized.dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.cinema-viewer video{object-fit:contain;background:#02030a;width:100%;height:100%;display:block;position:absolute;inset:0}.cinema-enable-playback{z-index:4;border:1px solid var(--border);color:var(--text);background:color-mix(in srgb,var(--panel) 90%,transparent);border-radius:8px;place-self:center;padding:10px 14px;font-weight:700;position:absolute;box-shadow:0 6px 20px #0008}.cinema-enable-playback:hover{background:color-mix(in srgb,var(--control-hover) 90%,transparent)}.cinema-titlebar{z-index:3;justify-content:space-between;align-items:flex-start;gap:10px;padding:10px 10px 24px;display:flex;position:absolute;top:0;left:0;right:0}.cinema-titlebar>div{gap:2px;min-width:0;display:grid}.cinema-titlebar strong{text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 4px #000;font-size:15px;overflow:hidden}.cinema-titlebar small{color:#ddd;text-shadow:0 1px 4px #000;font-size:11px}.media-square-close{color:#fff;background:#101224dd;border:1px solid #fff5;border-radius:5px;flex:0 0 36px;place-items:center;width:36px;height:36px;padding:0;font-size:22px;line-height:1;display:grid}.cinema-status{z-index:3;color:var(--text);background:color-mix(in srgb,var(--panel) 80%,transparent);pointer-events:none;border-radius:999px;padding:5px 8px;font-size:11px;position:absolute;bottom:62px;left:10px}.cinema-countdown{z-index:4;text-shadow:0 5px 28px #000;font:700 clamp(68px,16vw,180px)/1 ui-sans-serif,system-ui,sans-serif;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.cinema-paused{z-index:2;text-align:center;text-shadow:0 5px 28px #000;pointer-events:none;place-items:center;gap:5px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.cinema-paused strong{letter-spacing:.08em;font:700 clamp(34px,9vw,88px)/1 ui-sans-serif,system-ui,sans-serif}.cinema-paused span{font-size:clamp(12px,2vw,18px)}.cinema-controls{z-index:3;border:1px solid var(--border);color:var(--text);background:color-mix(in srgb,var(--panel) 90%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;pointer-events:none;border-radius:8px;grid-template-columns:auto auto auto auto minmax(90px,1fr) auto minmax(70px,140px) auto auto auto;align-items:center;gap:6px;padding:8px;transition:opacity .16s,transform .16s;display:grid;position:absolute;bottom:10px;left:10px;right:10px;transform:translateY(10px)}.cinema-controls.visible,.cinema-controls:focus-within{opacity:1;pointer-events:auto;transform:none}.cinema-controls button{border:1px solid var(--border);min-width:36px;height:32px;color:var(--text);background:var(--control);border-radius:5px;padding:4px 8px}.cinema-controls button:hover:not(:disabled),.cinema-controls button.active{background:var(--control-hover)}.cinema-timeline,.cinema-volume{width:100%;min-width:0;accent-color:var(--accent)}.cinema-timeline{opacity:1;pointer-events:auto}@media (hover:none){.cinema-controls{opacity:1;pointer-events:auto;transform:none}}.cinema-time{white-space:nowrap;font:11px ui-monospace,monospace}.cinema-expand{z-index:3;border:1px solid var(--border);width:36px;height:36px;color:var(--text);background:color-mix(in srgb,var(--panel) 90%,transparent);border-radius:5px;place-items:center;padding:0;display:grid;position:absolute;bottom:8px;right:8px}.cinema-viewer.minimized .cinema-status{text-overflow:ellipsis;white-space:nowrap;max-width:calc(100% - 70px);bottom:10px;left:auto;right:52px;overflow:hidden}.cinema-viewer.minimized .cinema-titlebar small{display:none}.cinema-panel{gap:7px;padding:2px 0 6px;display:grid}.cinema-empty,.cinema-upload-status{color:var(--muted);margin:3px 2px;font-size:11px;line-height:1.35}.cinema-active-card{border:1px solid var(--accent);background:var(--accent-soft);border-radius:6px;gap:3px;padding:8px;display:grid}.cinema-active-card>span,.cinema-active-card>small{color:var(--muted);font-size:11px}.cinema-panel-actions{grid-template-columns:minmax(0,1fr) auto;gap:5px;margin-top:4px;display:grid}.cinema-panel-actions .danger{width:auto;padding:7px 10px}.cinema-library-controls,.cinema-upload-controls{border-top:1px solid var(--border);gap:6px;padding-top:7px;display:grid}.cinema-library-controls label,.cinema-upload-controls label,.cinema-preferences>label:not(.preference-checkbox){color:var(--muted);gap:3px;margin:0;font-size:11px;display:grid}.cinema-library-controls select,.cinema-preferences select{width:100%}.cinema-file-pick{border:1px dashed var(--border);background:var(--input);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border-radius:5px;padding:7px;overflow:hidden;display:block!important}.cinema-file-pick input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.cinema-upload-progress{color:var(--muted);grid-template-columns:minmax(0,1fr) auto;gap:4px;font-size:11px;display:grid}.cinema-upload-progress progress{grid-column:1/-1;width:100%}.cinema-upload-progress>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.cinema-upload-progress .danger,.cinema-cancel-preparation{width:auto;padding:5px 8px}.cinema-library{border-top:1px solid var(--border);padding-top:5px}.cinema-library>summary{color:var(--muted);cursor:pointer;font-size:11px}.cinema-library-row{border-bottom:1px solid color-mix(in srgb,var(--border) 55%,transparent);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px;padding:5px 0;font-size:11px;display:grid}.cinema-library-row span{gap:1px;display:grid}.cinema-library-row small{color:var(--muted);font-size:10px}.cinema-preferences{gap:8px;padding-top:2px;display:grid}.cinema-preferences .preference-checkbox{margin:0}.cinema-preferences+.cinema-panel{border-top:1px solid var(--border);margin-top:8px;padding-top:8px}.mobile-cinema{margin-top:8px}@media (width<=900px){.cinema-controls{grid-template-columns:auto auto auto minmax(70px,1fr) auto auto auto}.cinema-time,.cinema-volume,.cinema-host-control{display:none}}@media (width<=600px){.cinema-viewer.minimized{right:8px;bottom:calc(8px + var(--mobile-system-bottom-inset,0px));width:min(360px,100vw - 16px)}.cinema-controls{grid-template-columns:repeat(3,auto) minmax(50px,1fr) repeat(3,auto);gap:3px;padding:5px;bottom:5px;left:5px;right:5px}.cinema-controls button{min-width:31px;padding:3px 5px}.cinema-titlebar{padding:7px 7px 20px}.cinema-status{bottom:49px;left:7px}}.cinema-upload-failed{border:1px solid color-mix(in srgb, var(--danger) 45%, transparent);border-radius:8px;align-items:center;gap:8px;padding:7px 8px;display:flex}.cinema-upload-failed>span{flex:1;min-width:0;display:grid}.cinema-upload-failed small{overflow-wrap:anywhere;color:var(--muted)}.cinema-upload-pending{align-items:center;gap:8px;display:flex}.cinema-upload-pending>span{overflow-wrap:anywhere;min-width:0;color:var(--muted);flex:1}.cinema-viewers-list{width:100%}.cinema-viewers-list>span{justify-content:space-between;gap:8px;padding:4px 0;display:flex}.cinema-viewers-list small{color:var(--muted);text-align:right}.cinema-upload-progress{align-items:center}.cinema-library-row-actions{gap:4px;display:flex}.cinema-storage-summary{color:var(--muted);font-size:10px;line-height:1.35}.mahjong-panel{margin-top:8px}.mahjong-game-card{gap:2px;margin-bottom:7px;display:grid}.mahjong-game-card span{color:var(--muted);font-size:11px}.mahjong-empty{color:var(--muted);text-align:center;margin:7px 3px;font-size:12px}.mahjong-leaderboard{gap:2px;font-size:11px;display:grid}.mahjong-leaderboard-head,.mahjong-leaderboard-row{grid-template-columns:2ch minmax(0,1fr) 5ch 3ch 3ch 4ch;align-items:center;gap:5px;padding:3px 2px;display:grid}.mahjong-leaderboard-head{color:var(--muted);border-bottom:1px solid var(--border)}.mahjong-leaderboard-row:nth-child(2n){background:color-mix(in srgb,var(--control) 42%,transparent)}.mahjong-leaderboard-row>:nth-child(n+3),.mahjong-leaderboard-head>:nth-child(n+3){text-align:right}.mahjong-dock{z-index:41;pointer-events:none;gap:6px;width:min(420px,100vw - 28px);display:grid;position:fixed;bottom:62px;right:14px}.mahjong-watch-button{border:1px solid var(--border);width:100%;color:var(--text);background:color-mix(in srgb,var(--panel) 95%,transparent);pointer-events:auto;text-align:left;border-radius:7px;padding:9px 10px;box-shadow:0 8px 30px #0008}.mahjong-watch-button:hover{background:var(--control-hover)}.mahjong-invite-backdrop{z-index:91;pointer-events:auto;background:#0009;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.mahjong-invite-dialog{border:2px solid var(--accent);background:var(--panel);border-radius:10px;gap:10px;width:min(520px,100%);padding:18px;display:grid;box-shadow:0 20px 70px #000e}.mahjong-invite-dialog h2,.mahjong-invite-dialog p{text-align:center;margin:0}.mahjong-invite-dialog p{color:var(--muted);font-size:12px}.mahjong-invite-dialog>div{justify-content:center;gap:8px;display:flex}.mahjong-invite-dialog button{border:1px solid var(--border);background:var(--control);border-radius:5px;width:auto;padding:8px 18px}.mahjong-modal-backdrop{z-index:81;background:#000b;place-items:center;padding:4px;display:grid;position:fixed;inset:0}.mahjong-modal{border:1px solid var(--border);background:var(--panel);border-radius:8px;width:min(1700px,100%);max-height:calc(100dvh - 8px);display:grid;overflow:auto;box-shadow:0 18px 60px #000c}.mahjong-modal>header{z-index:3;border-bottom:1px solid var(--border);background:var(--panel);justify-content:space-between;align-items:center;padding:10px 12px;display:flex;position:sticky;top:0}.mahjong-modal>header button{border:1px solid var(--border);background:var(--control);border-radius:5px;place-items:center;width:32px;height:32px;padding:0;display:grid}.mahjong-layout{grid-template-columns:minmax(0,1fr) 300px;gap:8px;padding:8px;display:grid}.mahjong-ranking-column{flex-direction:column;min-width:0;min-height:0;display:flex;overflow-y:auto}.mahjong-ranking-column h2{margin:0 0 8px;font-size:15px}.mahjong-rules{border:1px solid var(--border);background:var(--card);border-radius:5px;margin-bottom:14px}.mahjong-rules summary{cursor:pointer;padding:8px;font-weight:700}.mahjong-rules p{max-height:240px;color:var(--muted);margin:0;padding:0 8px 8px;font-size:12px;line-height:1.5;overflow-y:auto}.mahjong-event-log{gap:6px;min-height:0;margin-bottom:16px;display:grid}.mahjong-event-log h2{margin:0}.mahjong-event-log>small{color:var(--muted);font-size:10px}.mahjong-event-log ol{border:1px solid var(--border);background:var(--card);border-radius:5px;max-height:310px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.mahjong-event-log li{border-bottom:1px solid var(--border);grid-template-columns:3ch 28px minmax(0,1fr);align-items:start;gap:5px;padding:5px 6px;font-size:11px;line-height:1.35;display:grid}.mahjong-event-log li:last-child{border-bottom:0}.mahjong-event-log li>b{color:var(--muted);font-variant-numeric:tabular-nums;text-align:right}.mahjong-event-log li>i{border:1px solid var(--border);background:var(--input);border-radius:3px;place-items:center;width:26px;height:30px;font:22px/1 Segoe UI Symbol,"Noto Sans Symbols 2",Noto Sans Symbols,Apple Symbols,sans-serif;display:grid}.mahjong-event-log li>i.hidden-tile{color:var(--muted);font:18px/1 ui-monospace,monospace}.mahjong-event-log li>i.event-marker{color:var(--muted);background:0 0;border:0;font:18px/1 ui-monospace,monospace}.mahjong-event-log li>span{min-width:0}.mahjong-event-log .mahjong-log-empty{color:var(--muted);text-align:center;padding:10px;display:block}.mahjong-history-heading{justify-content:space-between;align-items:center;gap:8px;margin-top:18px;display:flex}.mahjong-history-heading h2{margin:0}.mahjong-history-heading button{border:1px solid var(--border);background:var(--control);border-radius:4px;padding:4px 7px;font-size:11px}.mahjong-history-list{align-content:start;gap:4px;max-height:520px;display:grid;overflow-y:auto}.mahjong-history-list>button{border:1px solid var(--border);background:var(--card);text-align:left;border-radius:5px;gap:2px;padding:7px 8px;display:grid}.mahjong-history-list>button:hover,.mahjong-history-list>button.active{border-color:var(--accent);background:var(--accent-soft)}.mahjong-history-list span{color:var(--muted);font-size:10px}.mahjong-empty-state{border:1px solid var(--border);background:var(--card);border-radius:7px;align-content:center;place-items:center;gap:10px;min-height:420px;display:grid}.mahjong-empty-state p{color:var(--muted);margin:0}.mahjong-empty-state button{width:auto;padding:10px 18px}.mahjong-table{border:1px solid var(--border);background:var(--center);border-radius:7px;grid-template:"left top right""left centre right"minmax(250px,1fr)"self self self"/210px minmax(300px,1fr) 210px;gap:7px;padding:8px;display:grid}.mahjong-seat,.mahjong-self{border:1px solid var(--border);background:var(--card);border-radius:6px;align-content:start;gap:5px;min-width:0;padding:7px;display:grid}.mahjong-seat.active,.mahjong-self.active{border-color:var(--accent);background:var(--accent-soft)}.mahjong-seat-top{grid-area:top}.mahjong-seat-left{grid-area:left}.mahjong-seat-right{grid-area:right}.mahjong-self{grid-area:self}.mahjong-seat header,.mahjong-self header{align-items:center;gap:6px;min-width:0;font-size:12px;display:flex}.mahjong-player-avatar{border-radius:5px;flex-basis:36px;width:36px;height:36px;font-size:14px}.mahjong-self .mahjong-player-avatar{flex-basis:44px;width:44px;height:44px;font-size:17px}.mahjong-bot-avatar{background:var(--control)}.mahjong-player-info{gap:1px;min-width:0;display:grid}.mahjong-player-info>div{align-items:center;gap:5px;min-width:0;display:flex}.mahjong-player-info strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.mahjong-player-info>span{color:var(--muted);font-size:10px}.mahjong-double-badge{border:1px solid var(--border);color:var(--accent);background:var(--accent-soft);white-space:nowrap;border-radius:999px;flex:none;padding:1px 4px;font:700 9px/1.2 ui-monospace,monospace}.mahjong-seat header b,.mahjong-self header b{font-variant-numeric:tabular-nums;margin-left:auto}.mahjong-take-seat{border:1px solid var(--accent);background:var(--accent-soft);white-space:nowrap;border-radius:4px;width:auto;padding:3px 5px;font-size:10px}.mahjong-badge{border:1px solid var(--accent);color:var(--link);border-radius:999px;padding:1px 4px;font-size:9px}.mahjong-centre{min-height:250px;color:var(--muted);text-align:center;grid-area:centre;align-content:center;justify-items:center;display:grid;position:relative}.mahjong-centre-info{z-index:1;border:1px solid var(--border);background:color-mix(in srgb,var(--center) 92%,transparent);border-radius:6px;justify-items:center;gap:8px;padding:12px 18px;display:grid}.mahjong-centre strong{color:var(--text);font-size:18px}.mahjong-wall{position:absolute;inset:16px 34px}.mahjong-wall-side,.mahjong-dead-wall{gap:4px;display:flex;position:absolute}.mahjong-wall-side i,.mahjong-dead-wall i{border:1px solid var(--border);background:var(--control);width:18px;height:10px;box-shadow:0 5px 0 var(--control),0 6px 0 var(--border);border-radius:2px;display:block}.mahjong-wall-side.wall-0{top:0;left:50%;transform:translate(-50%)}.mahjong-wall-side.wall-1{flex-direction:column;top:50%;right:0;transform:translateY(-50%)}.mahjong-wall-side.wall-2{bottom:6px;left:50%;transform:translate(-50%)}.mahjong-wall-side.wall-3{flex-direction:column;top:50%;left:0;transform:translateY(-50%)}.mahjong-wall-side.wall-1 i,.mahjong-wall-side.wall-3 i{width:10px;height:18px;box-shadow:5px 0 0 var(--control),6px 0 0 var(--border)}.mahjong-dead-wall{bottom:6px;right:44px}.mahjong-dead-wall i{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 5px 0 var(--accent-soft),0 6px 0 var(--accent)}.mahjong-concealed-backs,.mahjong-hand,.mahjong-discards,.mahjong-melds{flex-wrap:wrap;align-items:flex-start;gap:3px;display:flex}.mahjong-concealed-backs i,.mahjong-tile-back{border:1px solid var(--border);background:var(--control);width:24px;height:34px;box-shadow:inset 0 0 0 2px var(--accent-soft);border-radius:3px;display:block}.mahjong-concealed-backs .mahjong-tile{width:36px;height:50px}.mahjong-concealed-backs .mahjong-tile .mahjong-tile-glyph{font-size:29px}.mahjong-melds .mahjong-tile-glyph{font-size:32px}.mahjong-seat-left .mahjong-concealed-backs,.mahjong-seat-right .mahjong-concealed-backs{max-width:116px}.mahjong-melds span{border:1px solid var(--border);background:var(--input);border-radius:4px;padding:2px;display:flex}.mahjong-melds i{text-align:center;place-items:center;width:38px;height:48px;font-style:normal;display:grid}.mahjong-bonuses{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.mahjong-bonus-tile{border:1px solid var(--border);background:var(--input);border-radius:4px;place-items:center;width:38px;height:48px;font-style:normal;line-height:1;display:inline-grid}.mahjong-bonus-tile .mahjong-tile-glyph{font-size:32px}.mahjong-tile{border:1px solid color-mix(in srgb,var(--border) 65%,#fff);width:32px;height:44px;color:var(--text);background:color-mix(in srgb,var(--card) 82%,#fff);box-shadow:inset 0 -3px 0 color-mix(in srgb,var(--border) 65%,transparent);border-radius:4px;grid-template-rows:1fr auto;place-items:center;padding:0;display:grid}.mahjong-tile-glyph{font:21px/1 Segoe UI Symbol,"Noto Sans Symbols 2",Noto Sans Symbols,Apple Symbols,sans-serif}.mahjong-tile-code{font:700 9px/1 ui-monospace,monospace}.mahjong-tile:disabled{cursor:default;opacity:1}.mahjong-tile:not(:disabled):hover{border-color:var(--accent);background:var(--control-hover);transform:translateY(-2px)}.mahjong-tile.drawn{margin-left:8px}.mahjong-tile.selected{border-color:var(--accent);background:var(--control-hover);transform:translateY(-4px)}.mahjong-tile.last{box-shadow:inset 0 0 0 2px var(--accent),inset 0 -3px 0 var(--border)}.mahjong-tile[data-suit=m]{color:color-mix(in srgb,var(--text) 72%,#d33)}.mahjong-tile[data-suit=s]{color:color-mix(in srgb,var(--text) 72%,#2a5)}.mahjong-tile[data-suit=p]{color:color-mix(in srgb,var(--text) 72%,#38c)}.mahjong-hand{flex-wrap:nowrap;justify-content:flex-start;align-items:flex-end;min-height:100px;padding:8px 0 4px;overflow-x:auto}.mahjong-hand-alert{border:1px solid var(--border);background:var(--control);border-radius:5px;justify-content:space-between;align-items:center;gap:10px;padding:6px 9px;font-size:11px;display:flex}.mahjong-hand-alert strong{color:var(--text);white-space:nowrap;font-size:13px}.mahjong-hand-alert span{color:var(--muted);text-align:right}.mahjong-hand-alert.distance-0,.mahjong-hand-alert.distance-1{border-color:var(--accent);background:var(--accent-soft)}.mahjong-hand-group{background:color-mix(in srgb,var(--control) 70%,transparent);box-shadow:inset 0 0 0 1px var(--border);border:0;border-radius:5px;flex:none;padding:16px 0 0;display:grid;position:relative}.mahjong-hand-group>small{color:var(--muted);text-transform:uppercase;font:700 9px/1 ui-monospace,monospace;position:absolute;top:3px;left:5px}.mahjong-hand-group>span{align-items:flex-end;gap:3px;display:flex}.mahjong-hand-group.set{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.mahjong-hand-group.pair{outline:3px double var(--border);outline-offset:-3px}.mahjong-hand-group.near{outline:1px dashed var(--border);outline-offset:-1px}.mahjong-self .mahjong-tile{flex:none;width:70px;height:96px}.mahjong-self .mahjong-tile .mahjong-tile-glyph{font-size:64px}.mahjong-self .mahjong-tile .mahjong-tile-code{font-size:14px}.mahjong-discard-label{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:700}.mahjong-discards{align-content:start}.mahjong-seat small{color:var(--muted);font-size:10px}.mahjong-status{color:var(--muted);justify-content:space-between;gap:10px;padding:9px 2px;font-size:13px;display:flex}.mahjong-status strong{color:var(--text)}.mahjong-controls{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.mahjong-controls button{border:1px solid var(--border);background:var(--control);border-radius:5px;width:auto;min-width:90px;padding:7px 10px}.mahjong-controls button:hover:not(:disabled){background:var(--control-hover)}.mahjong-controls button.danger{background:var(--danger)}.mahjong-results{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:2px 0 10px;display:grid}.mahjong-results span{border:1px solid var(--border);background:var(--card);border-radius:5px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:6px;padding:8px;display:grid}.mahjong-results b{color:var(--link)}.mahjong-results strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mahjong-results em{color:var(--muted);font-variant-numeric:tabular-nums;font-style:normal}.mahjong-replay-controls{border:1px solid var(--border);background:var(--card);border-radius:5px;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin-top:8px;padding:8px;display:flex}.mahjong-replay-controls button{border:1px solid var(--border);background:var(--control);border-radius:4px;width:auto;padding:6px 10px}.mahjong-replay-controls span{min-width:110px;color:var(--muted);text-align:center;font-variant-numeric:tabular-nums}.mahjong-lobby{gap:12px;display:grid}.mahjong-lobby-table{border:1px solid var(--border);background:var(--center);border-radius:7px;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:16px;display:grid}.mahjong-lobby-seat{border:1px solid var(--border);background:var(--card);border-radius:7px;align-content:start;gap:6px;min-height:150px;padding:12px;display:grid}.mahjong-lobby-seat>span,.mahjong-lobby-seat>small{color:var(--muted)}.mahjong-seat-actions{gap:5px;margin-top:auto;display:grid}.mahjong-seat-actions select,.mahjong-seat-actions button,.mahjong-lobby-seat>button{border:1px solid var(--border);background:var(--control);border-radius:5px;width:100%;padding:6px}.mahjong-lobby-status{color:var(--muted);justify-content:center;align-items:center;gap:18px;display:flex}.mahjong-lobby-status label{align-items:center;gap:6px;display:flex}.mahjong-lobby-status strong{color:var(--text)}@media (width<=1000px){.mahjong-layout{grid-template-columns:1fr}.mahjong-ranking-column{border-top:1px solid var(--border);padding-top:8px}}@media (width<=700px){.mahjong-modal-backdrop{padding:0}.mahjong-modal{border:0;border-radius:0;width:100%;min-height:100dvh;max-height:100dvh}.mahjong-layout{padding:7px}.mahjong-table{grid-template-rows:auto minmax(180px,1fr) auto;grid-template-columns:88px minmax(130px,1fr) 88px;gap:4px;padding:4px}.mahjong-seat{padding:4px}.mahjong-seat header{gap:1px;display:grid}.mahjong-seat header b{margin-left:0}.mahjong-seat .mahjong-discards .mahjong-tile{width:23px;height:31px}.mahjong-seat .mahjong-discards .mahjong-tile .mahjong-tile-glyph,.mahjong-seat .mahjong-melds .mahjong-tile-glyph{font-size:15px}.mahjong-concealed-backs i{width:11px;height:18px}.mahjong-concealed-backs .mahjong-tile{width:18px;height:25px}.mahjong-concealed-backs .mahjong-tile .mahjong-tile-glyph{font-size:13px}.mahjong-hand{min-height:70px}.mahjong-self .mahjong-tile{width:48px;height:66px}.mahjong-self .mahjong-tile .mahjong-tile-glyph{font-size:34px}.mahjong-self .mahjong-tile .mahjong-tile-code{font-size:10px}.mahjong-melds i{width:17px;height:22px}.mahjong-controls{z-index:2;background:var(--panel);padding:7px;position:sticky;bottom:0}.mahjong-controls button{flex:1;min-width:72px}.mahjong-results{grid-template-columns:repeat(2,minmax(0,1fr))}.mahjong-lobby-table{gap:6px;padding:7px}.mahjong-lobby-seat{min-height:130px;padding:8px}}.mahjong-tile{position:relative}.mahjong-tile-outs{border:1px solid var(--border);min-width:18px;height:18px;color:var(--text);background:var(--panel);border-radius:999px;place-items:center;padding:0 4px;font:700 11px/1 ui-monospace,monospace;display:grid;position:absolute;top:3px;right:3px;box-shadow:0 1px 3px #0008}.mahjong-tile.effectively-dead{border-style:dashed;border-color:var(--danger);background:color-mix(in srgb,var(--danger) 12%,var(--card))}.mahjong-tile.effectively-dead .mahjong-tile-outs{border-color:var(--danger);color:#fff;background:var(--danger)}.mahjong-skip-timer{border:1px solid var(--border);color:var(--text);background:var(--card);font-variant-numeric:tabular-nums;border-radius:4px;padding:4px 7px;font-weight:700}.mahjong-skip-timer.ready{border-color:var(--accent);color:var(--link);background:var(--accent-soft)}.mahjong-skip-timer.urgent{border-color:var(--danger);color:#fff;background:var(--danger);animation:.7s ease-in-out infinite alternate mahjong-timer-pulse}.mahjong-controls .mahjong-skip-button{border-color:var(--accent);background:var(--accent-soft)}.mahjong-hand-result{border:1px solid var(--border);background:var(--center);border-radius:7px;gap:10px;margin:2px 0 12px;padding:12px;display:grid;overflow:hidden}.mahjong-hand-result>header{text-align:left;justify-content:center;align-items:center;gap:12px;animation:.45s ease-out both mahjong-result-drop;display:flex}.mahjong-hand-result h2,.mahjong-hand-result p{margin:0}.mahjong-hand-result p{color:var(--muted);font-size:12px}.mahjong-result-burst{border:2px solid var(--accent);background:var(--accent-soft);border-radius:50%;place-items:center;width:54px;height:54px;font-size:34px;animation:.65s cubic-bezier(.2,.8,.2,1) both mahjong-result-burst;display:grid}.mahjong-score-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.mahjong-score-cards article{border:1px solid var(--border);background:var(--card);opacity:0;border-radius:6px;align-content:start;gap:7px;padding:9px;animation:.42s ease-out forwards mahjong-score-card;display:grid}.mahjong-score-cards article.winner{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.mahjong-score-heading{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:5px;display:grid}.mahjong-score-heading>b{color:var(--link)}.mahjong-score-heading>strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mahjong-score-heading>em{color:var(--muted);font-variant-numeric:tabular-nums;font-style:normal}.mahjong-score-formula{border:1px solid var(--border);background:var(--input);font-variant-numeric:tabular-nums;border-radius:4px;grid-template-columns:1fr auto auto;align-items:center;gap:5px;padding:6px;display:grid}.mahjong-score-formula span{color:var(--muted)}.mahjong-score-formula strong{color:var(--link);font-size:17px}.mahjong-score-equation{font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:center;align-items:center;gap:5px;display:flex}.mahjong-score-equation b{color:var(--link)}.mahjong-score-cards details{border-top:1px solid var(--border);padding-top:6px}.mahjong-score-cards summary{cursor:pointer;color:var(--muted);font-size:11px}.mahjong-score-items{gap:2px;margin-top:5px;display:grid}.mahjong-score-items span{justify-content:space-between;gap:6px;font-size:10px;display:flex}.mahjong-score-items i{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-style:normal;overflow:hidden}.mahjong-score-items span.double b{color:var(--link)}.mahjong-score-items small{color:var(--muted)}.mahjong-rules h3{margin:4px 8px 6px;font-size:12px}.mahjong-bonus-reference{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:0 8px 8px;display:grid}.mahjong-bonus-reference span{border:1px solid var(--border);background:var(--input);border-radius:4px;gap:1px;padding:5px;font-size:10px;display:grid}.mahjong-bonus-reference i{color:var(--muted);font-style:normal}.mahjong-rules-note{color:var(--muted);padding:0 8px 8px;font-size:10px;line-height:1.4;display:block}@keyframes mahjong-timer-pulse{to{transform:scale(1.04)}}@keyframes mahjong-result-drop{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}@keyframes mahjong-result-burst{0%{opacity:0;transform:scale(.3)rotate(-20deg)}to{opacity:1;transform:none}}@keyframes mahjong-score-card{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@media (width<=1200px){.mahjong-score-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.mahjong-skip-timer.urgent,.mahjong-hand-result>header,.mahjong-result-burst,.mahjong-score-cards article{opacity:1;animation:none}}
