.button{justify-content:center;align-items:center;gap:var(--spacing-sm);min-height:44px;padding:var(--spacing-sm) var(--spacing-base);border-radius:var(--radius-base);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background-color var(--duration-base) ease, border-color var(--duration-base) ease;border:1px solid #0000;display:inline-flex}.button:disabled{cursor:not-allowed;opacity:.5}.button.primary{background-color:var(--color-primary);color:var(--color-on-primary)}.button.primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.button.secondary{background-color:var(--color-button-secondary);border-color:var(--color-border);color:var(--color-text)}.button.secondary:hover:not(:disabled){background-color:var(--color-button-secondary-hover)}.dialog-backdrop{z-index:var(--z-index-dialog);background:var(--color-overlay);justify-content:center;align-items:flex-end;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}@media (min-width:768px){.dialog-backdrop{padding:var(--spacing-base);align-items:center}}.dialog{width:100%;max-height:90vh;padding:var(--spacing-lg) var(--spacing-base) var(--spacing-xl);border:1px solid var(--color-border);border-radius:var(--radius-md) var(--radius-md) 0 0;background:var(--color-surface);box-shadow:var(--shadow-modal);border-bottom:none;overflow-y:auto}@media (min-width:768px){.dialog{max-width:460px;padding:var(--spacing-lg);border-bottom:1px solid var(--color-border);border-radius:var(--radius-md)}}.dialog:focus{outline:none}.dialog-title{margin-bottom:var(--spacing-base);font-size:var(--font-size-2xl)}.login-modal-content{margin-bottom:var(--spacing-base);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.login-modal-input{width:100%;min-height:44px;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border-strong);border-radius:var(--radius-base);background:var(--color-input);transition:border-color var(--duration-base) ease}.login-modal-input:focus{border-color:var(--color-primary)}.login-modal-input::placeholder{color:var(--color-text-tertiary)}.login-modal-input[aria-invalid=true]{border-color:var(--color-error-text)}.login-modal-error{min-height:1.5em;margin:var(--spacing-xs) 0 var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-error-text)}.login-modal-actions{justify-content:flex-end;gap:var(--spacing-sm);display:flex}.login-modal-actions>.button{flex:1}@media (min-width:768px){.login-modal-actions>.button{flex:none}}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:400;src:url(./geist-cyrillic-ext-400-normal-9PYOMWMR.woff2)format("woff2"),url(./geist-cyrillic-ext-400-normal-ChfpGzr5.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:400;src:url(./geist-cyrillic-400-normal-DXusLSnH.woff2)format("woff2"),url(./geist-cyrillic-400-normal-DkrqoNl2.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:400;src:url(./geist-vietnamese-400-normal-C4gMWAkH.woff2)format("woff2"),url(./geist-vietnamese-400-normal-C8xY9-dI.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:400;src:url(./geist-latin-ext-400-normal-CND6cjiG.woff2)format("woff2"),url(./geist-latin-ext-400-normal-Bz1pQMyt.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:400;src:url(./geist-latin-400-normal-B40WzpMT.woff2)format("woff2"),url(./geist-latin-400-normal-akEymXtG.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:600;src:url(./geist-cyrillic-ext-600-normal-Cr7e20Aw.woff2)format("woff2"),url(./geist-cyrillic-ext-600-normal-PR76dHFV.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:600;src:url(./geist-cyrillic-600-normal-BeW5VFD_.woff2)format("woff2"),url(./geist-cyrillic-600-normal-CnEeIcMC.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:600;src:url(./geist-vietnamese-600-normal-BFUgqsz8.woff2)format("woff2"),url(./geist-vietnamese-600-normal-B5MZcNo4.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:600;src:url(./geist-latin-ext-600-normal-CVFbg5dS.woff2)format("woff2"),url(./geist-latin-ext-600-normal-TmIUreF9.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:600;src:url(./geist-latin-600-normal-CSETrqM2.woff2)format("woff2"),url(./geist-latin-600-normal-DsPlZH-9.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Vend Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./vend-sans-latin-ext-600-normal-q5rVwcFO.woff2)format("woff2"),url(./vend-sans-latin-ext-600-normal-SDHG6MHt.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Vend Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./vend-sans-latin-600-normal-CFyJ11_B.woff2)format("woff2"),url(./vend-sans-latin-600-normal-7DXVZfsV.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./jetbrains-mono-cyrillic-ext-500-normal-C9ShMxGR.woff2)format("woff2"),url(./jetbrains-mono-cyrillic-ext-500-normal-CEVyPk4Y.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2)format("woff2"),url(./jetbrains-mono-cyrillic-500-normal-DJqRU3vO.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./jetbrains-mono-greek-500-normal-JpySY46c.woff2)format("woff2"),url(./jetbrains-mono-greek-500-normal-D7SFKleX.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./jetbrains-mono-vietnamese-500-normal-BvH7FW2L.woff2)format("woff2"),url(./jetbrains-mono-vietnamese-500-normal-DNRqzVM1.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2)format("woff2"),url(./jetbrains-mono-latin-ext-500-normal-ckzbgY84.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./jetbrains-mono-latin-500-normal-BWZEU5yA.woff2)format("woff2"),url(./jetbrains-mono-latin-500-normal-CJOVTJB7.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-background:#151517;--color-surface:#1b1b1c;--color-surface-raised:#252626;--color-surface-glass:#1b1b1ce0;--color-input:#242424;--color-border:#333;--color-border-strong:#4c4c4c;--color-overlay:#000000bf;--color-video:#000;--color-primary:#f47a20;--color-primary-hover:#f79c5a;--color-on-primary:#151517;--color-text:#fafafa;--color-text-secondary:#fafafab8;--color-text-tertiary:#fafafa80;--color-button-secondary:#fafafa1a;--color-button-secondary-hover:#fafafa29;--color-badge:#fafafae6;--color-on-badge:#242424;--color-live:#b91c1c;--color-on-live:#fafafa;--color-error-text:#ff8a8a;--color-warning:#f28b0a;--color-spinner-track:#fafafa26;--color-name-1:#b91c1c;--color-name-2:#b45309;--color-name-3:#047857;--color-name-4:#1d4ed8;--color-name-5:#c2410c;--color-name-6:#7e22ce;--color-name-7:#be123c;--color-name-8:#0f766e;--color-name-9:#6d28d9;--color-name-10:#0369a1;--color-name-11:#a21caf;--color-name-12:#a16207;--color-name-13:#0e7490;--color-name-14:#be185d;--color-name-15:#15803d;--color-name-16:#4338ca;--font-family-base:"Geist", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--font-family-heading:"Vend Sans", "Geist", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--font-family-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Monaco, monospace;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-size-2xs:10px;--font-size-xs:12px;--font-size-sm:13px;--font-size-base:14px;--font-size-md:15px;--font-size-lg:16px;--font-size-xl:18px;--font-size-2xl:20px;--font-size-3xl:24px;--font-size-4xl:32px;--line-height-tight:1.2;--line-height-normal:1.5;--letter-spacing-tight:-.02em;--letter-spacing-wide:.05em;--letter-spacing-wider:.08em;--spacing-2xs:2px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:12px;--spacing-base:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-2xl:40px;--spacing-3xl:48px;--radius-sm:4px;--radius-base:8px;--radius-md:12px;--radius-full:9999px;--shadow-modal:0 16px 48px #0009;--shadow-badge:0 1px 2px #0006;--duration-fast:.15s;--duration-base:.2s;--size-header-height:56px;--size-header-height-desktop:72px;--size-logo-height:24px;--size-logo-height-desktop:32px;--size-content-max-width:1200px;--size-focus-ring:2px;--size-avatar:32px;--size-chat-height:480px;--size-chat-height-desktop:640px;--z-index-header:100;--z-index-player-overlay:2;--z-index-qoe-overlay:3;--z-index-dialog:500;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body{min-height:100%;margin:0;padding:0}body{background-color:var(--color-background);color:var(--color-text);font-family:var(--font-family-base);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}h1,h2,h3{font-family:var(--font-family-heading);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);margin:0}p{margin:0}button,input{font:inherit;color:inherit}a{color:inherit}:focus-visible{outline:var(--size-focus-ring) solid var(--color-primary);outline-offset:2px}input{font-size:max(16px,1em)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.config-problem{gap:var(--spacing-lg);max-width:640px;padding:var(--spacing-lg) var(--spacing-base);flex-direction:column;margin:0 auto;display:flex}@media (min-width:768px){.config-problem{padding-top:var(--spacing-3xl)}}.config-problem-logo{height:var(--size-logo-height-desktop);align-self:flex-start}.config-problem-panel{gap:var(--spacing-md);padding:var(--spacing-lg);border:1px solid var(--color-border);border-left:3px solid var(--color-primary);border-radius:var(--radius-md);background:var(--color-surface);overflow-wrap:anywhere;flex-direction:column;display:flex}.config-problem-title{font-size:var(--font-size-2xl)}@media (min-width:768px){.config-problem-title{font-size:var(--font-size-3xl)}}.config-problem-detail{font-family:var(--font-family-mono);font-size:var(--font-size-sm)}.config-problem-hint{color:var(--color-text-secondary)}.login-button-container{position:relative}.login-button{white-space:nowrap;min-width:0}.login-button-name{text-overflow:ellipsis;max-width:96px;overflow:hidden}@media (min-width:768px){.login-button-name{max-width:200px}}.login-button-chevron{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.login-dropdown{top:calc(100% + var(--spacing-xs));z-index:var(--z-index-header);min-width:160px;padding:var(--spacing-xs);border:1px solid var(--color-border);border-radius:var(--radius-base);background:var(--color-surface-raised);box-shadow:var(--shadow-modal);position:absolute;right:0}.login-dropdown-item{width:100%;min-height:44px;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);text-align:left;cursor:pointer;background:0 0;border:none;display:block}.login-dropdown-item:hover{background:var(--color-button-secondary-hover)}.gateway-button{align-items:flex-start;gap:var(--spacing-2xs);min-width:0;min-height:44px;padding:var(--spacing-xs) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-base);background:var(--color-button-secondary);text-align:left;cursor:pointer;transition:background-color var(--duration-base) ease, border-color var(--duration-base) ease;flex-direction:column;display:flex}.gateway-button:hover{border-color:var(--color-border-strong);background:var(--color-button-secondary-hover)}.gateway-button-label{font-family:var(--font-family-mono);font-size:var(--font-size-2xs);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wider);text-transform:uppercase;color:var(--color-text-secondary)}.gateway-button-current{max-width:160px;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@media (min-width:768px){.gateway-button-current{max-width:260px}}.gateway-choice{align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-base) 0;flex-direction:column;display:flex}.gateway-choice+.gateway-choice{border-top:1px solid var(--color-border)}.gateway-choice:last-child{padding-bottom:0}.gateway-choice-title{font-size:var(--font-size-lg)}.gateway-choice-description{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.gateway-input-label{margin-top:var(--spacing-xs);font-family:var(--font-family-mono);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;color:var(--color-text-secondary)}.gateway-input{width:100%;min-height:44px;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border-strong);border-radius:var(--radius-base);background:var(--color-input);font-family:var(--font-family-mono);transition:border-color var(--duration-base) ease}.gateway-input:focus{border-color:var(--color-primary)}.gateway-input::placeholder{color:var(--color-text-tertiary)}.gateway-input[aria-invalid=true]{border-color:var(--color-error-text)}.gateway-status{min-height:1.5em;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.gateway-status.error{color:var(--color-error-text)}.gateway-actions{justify-content:flex-end;gap:var(--spacing-sm);width:100%;display:flex}.gateway-actions>.button{flex:1}@media (min-width:768px){.gateway-actions>.button{flex:none}}.main-layout{min-height:100vh;flex-direction:column;min-height:100dvh;display:flex}.main-layout-header{z-index:var(--z-index-header);justify-content:space-between;align-items:center;gap:var(--spacing-base);height:var(--size-header-height);padding:0 var(--spacing-base);border-bottom:1px solid var(--color-border);background:var(--color-surface-glass);-webkit-backdrop-filter:blur(10px);display:flex;position:sticky;top:0}@media (min-width:768px){.main-layout-header{height:var(--size-header-height-desktop);padding:0 var(--spacing-lg)}}.main-layout-logo-link{border-radius:var(--radius-sm);flex-shrink:0;display:inline-flex}.main-layout-logo{width:auto;height:var(--size-logo-height);display:block}@media (min-width:768px){.main-layout-logo{height:var(--size-logo-height-desktop)}}.main-layout-actions{align-items:center;gap:var(--spacing-sm);min-width:0;display:flex}.main-layout-content{width:100%;max-width:var(--size-content-max-width);padding:var(--spacing-base) var(--spacing-base) var(--spacing-2xl);flex:1;margin:0 auto}@media (min-width:768px){.main-layout-content{padding:var(--spacing-lg) var(--spacing-lg) var(--spacing-3xl)}}.spinner{border:3px solid var(--color-spinner-track);border-top-color:var(--color-primary);border-radius:var(--radius-full);width:32px;height:32px;animation:1s linear infinite spinner-turn;display:inline-block}@keyframes spinner-turn{to{transform:rotate(360deg)}}.stream-card{gap:var(--spacing-sm);border-radius:var(--radius-md);color:var(--color-text);flex-direction:column;text-decoration:none;display:flex}.stream-card:hover .stream-card-media{border-color:var(--color-primary)}.stream-card:focus-visible .stream-card-media{border-color:var(--color-primary)}.stream-card:hover .stream-card-play{opacity:1}.stream-card:focus-visible .stream-card-play{opacity:1}.stream-card:hover .stream-card-title{color:var(--color-primary)}.stream-card:focus-visible .stream-card-title{color:var(--color-primary)}.stream-card:focus-visible{outline-offset:4px}.stream-card-media{aspect-ratio:16/9;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);transition:border-color var(--duration-fast) ease;position:relative;overflow:hidden}.stream-card-picture{object-fit:cover;width:100%;height:100%;display:block}.stream-card-placeholder,.stream-card-loading{justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.stream-card-placeholder{background:linear-gradient(135deg, var(--color-surface-raised) 0%, var(--color-surface) 100%);color:var(--color-border-strong)}.stream-card-loading{background:var(--color-surface)}.stream-card-badge,.stream-card-duration{z-index:var(--z-index-player-overlay);padding:var(--spacing-2xs) var(--spacing-sm);border-radius:var(--radius-sm);font-family:var(--font-family-mono);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);line-height:var(--line-height-normal);box-shadow:var(--shadow-badge);position:absolute}.stream-card-badge{top:var(--spacing-sm);left:var(--spacing-sm);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase}.stream-card-badge.live{background:var(--color-live);color:var(--color-on-live)}.stream-card-badge.upcoming{background:var(--color-badge);color:var(--color-on-badge)}.stream-card-duration{right:var(--spacing-sm);bottom:var(--spacing-sm);background:var(--color-overlay);color:var(--color-text);font-variant-numeric:tabular-nums}.stream-card-play{border-radius:var(--radius-full);background:var(--color-primary);width:48px;height:48px;color:var(--color-on-primary);opacity:0;transition:opacity var(--duration-fast) ease;justify-content:center;align-items:center;margin:-24px 0 0 -24px;display:flex;position:absolute;top:50%;left:50%}@media (hover:none){.stream-card-play{opacity:.9}}.stream-card-body{gap:var(--spacing-xs);flex-direction:column;display:flex}.stream-card-title{font-family:var(--font-family-base);font-size:var(--font-size-md);letter-spacing:normal;-webkit-line-clamp:2;transition:color var(--duration-fast) ease;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.stream-card-meta{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.stream-list{gap:var(--spacing-xl);flex-direction:column;display:flex}@media (min-width:768px){.stream-list{gap:var(--spacing-2xl)}}.stream-section-title{align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-base);font-family:var(--font-family-mono);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wider);text-transform:uppercase;color:var(--color-text-secondary);display:flex}.stream-section-live .stream-section-title{color:var(--color-primary)}.stream-section-live .stream-section-title:before{content:"";border-radius:var(--radius-full);background:var(--color-primary);width:8px;height:8px;animation:1.6s ease-in-out infinite stream-live-pulse}@keyframes stream-live-pulse{50%{opacity:.35}}.stream-section-grid{gap:var(--spacing-lg) var(--spacing-base);grid-template-columns:minmax(0,1fr);margin:0;padding:0;list-style:none;display:grid}@media (min-width:560px){.stream-section-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.stream-section-grid{gap:var(--spacing-xl) var(--spacing-lg);grid-template-columns:repeat(3,minmax(0,1fr))}}.stream-browser{gap:var(--spacing-lg);flex-direction:column;display:flex}@media (min-width:768px){.stream-browser{gap:var(--spacing-xl)}}.stream-browser-hero{gap:var(--spacing-sm);padding-top:var(--spacing-sm);flex-direction:column;display:flex}@media (min-width:768px){.stream-browser-hero{padding-top:var(--spacing-lg)}}.stream-browser-title{font-size:var(--font-size-3xl)}@media (min-width:768px){.stream-browser-title{font-size:var(--font-size-4xl)}}.stream-browser-subtitle{max-width:560px;font-size:var(--font-size-md);color:var(--color-text-secondary)}.stream-browser-notice{justify-content:center;align-items:center;gap:var(--spacing-base);min-height:200px;padding:var(--spacing-lg);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);text-align:center;color:var(--color-text-secondary);flex-direction:column;display:flex}.stream-browser-notice.unreachable{color:var(--color-error-text)}.swarm-hls-feed-state{top:var(--spacing-sm);left:var(--spacing-sm);z-index:var(--z-index-player-overlay);align-items:center;gap:var(--spacing-sm);max-width:calc(100% - 2 * var(--spacing-sm));padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-sm);background:var(--color-overlay);color:var(--color-text);font-size:var(--font-size-sm);line-height:var(--line-height-tight);pointer-events:none;display:flex;position:absolute}.swarm-hls-feed-state__dot{border-radius:var(--radius-full);background:var(--color-warning);flex-shrink:0;width:8px;height:8px;animation:1.4s ease-in-out infinite swarm-hls-feed-state-pulse}@keyframes swarm-hls-feed-state-pulse{0%,to{opacity:1}50%{opacity:.25}}@media (prefers-reduced-motion:reduce){.swarm-hls-feed-state__dot{animation:none}}.qoe-overlay{z-index:var(--z-index-qoe-overlay);pointer-events:none;-webkit-user-select:none;user-select:none;width:32px;height:32px;position:absolute;top:8px;right:8px}.qoe-btn{pointer-events:all;color:#ffffffb3;cursor:grab;background:#0000008c;border:1px solid #ffffff2e;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;transition:background .15s,box-shadow .15s,border-color .15s,transform .15s,color .15s;display:flex;position:relative}.qoe-btn:focus{outline:none}.qoe-btn:focus-visible{outline:var(--size-focus-ring) solid var(--color-primary);outline-offset:2px}.qoe-btn:hover{color:#fff;background:#000000c7}.qoe-btn:hover .qoe-btn__chart{opacity:.2;transform:scale(.8)}.qoe-btn:hover .qoe-btn__move{opacity:.85;transform:scale(1)}.qoe-btn--active{color:#fff;background:#1e64e69e;border-color:#78aaff73}.qoe-btn--dragging{cursor:grabbing;background:#000000e6;border-color:#fff6;transform:scale(1.1);box-shadow:0 8px 24px #0009,0 2px 6px #00000059}.qoe-btn--dragging .qoe-btn__chart{opacity:0;transform:scale(.65)}.qoe-btn--dragging .qoe-btn__move{opacity:1;color:#fff;transform:scale(1.05)}.qoe-btn__chart,.qoe-btn__move{justify-content:center;align-items:center;line-height:0;transition:opacity .18s,transform .18s;display:flex;position:absolute}.qoe-btn__chart{opacity:1;transform:scale(1)}.qoe-btn__move{opacity:0;transform:scale(.8)}.qoe-btn__live{pointer-events:none;background:#4ade80;border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite qoe-pulse;position:absolute;top:3px;right:3px;box-shadow:0 0 5px #4ade80}.qoe-overlay__panel{pointer-events:all;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);min-width:220px;max-height:70vh;color:var(--color-text);font-family:var(--font-family-mono);font-size:var(--font-size-xs);background:#000000d1;border:1px solid #ffffff26;border-radius:6px;padding:8px 10px;line-height:1.4;position:absolute;top:calc(100% + 4px);right:0;overflow-y:auto}.qoe-overlay__header{color:#fff;letter-spacing:.05em;text-transform:uppercase;border-bottom:1px solid #fff3;margin-bottom:6px;padding-bottom:4px;font-size:12px;font-weight:700}.qoe-overlay__section{margin-bottom:6px}.qoe-overlay__section-title{color:#aaa;text-transform:uppercase;letter-spacing:.08em;margin-top:4px;margin-bottom:2px;font-size:10px}.qoe-overlay__row{justify-content:space-between;gap:8px;padding:1px 0;display:flex}.qoe-overlay__row--bad .qoe-overlay__value{color:#ff6b6b}.qoe-overlay__label{color:#bbb;white-space:nowrap}.qoe-overlay__value{color:#fff;text-align:right;white-space:nowrap}.qoe-overlay__footer{color:#aaa;text-align:right;border-top:1px solid #ffffff26;margin-top:4px;padding-top:4px;font-size:10px}@keyframes qoe-pulse{0%,to{opacity:1}50%{opacity:.3}}.swarm-hls-player-wrapper{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-video);width:100%;position:relative;overflow:hidden}.swarm-hls-player-wrapper video{aspect-ratio:16/9;object-fit:contain;width:100%;max-height:80vh;display:block}.swarm-hls-player-audio{width:100%;display:block}.watch-chat-placeholder{gap:var(--spacing-base);height:var(--size-chat-height);padding:var(--spacing-sm) var(--spacing-base);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);flex-direction:column;display:flex}@media (min-width:1024px){.watch-chat-placeholder{height:var(--size-chat-height-desktop)}}.watch-chat-placeholder-title{font-family:var(--font-family-heading);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.watch-chat-placeholder-detail{align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-text-secondary);display:flex}.watch-layout{gap:var(--spacing-base);grid-template-columns:minmax(0,1fr);grid-template-areas:"back""stage""info""side";display:grid}@media (min-width:1024px){.watch-layout.with-side{column-gap:var(--spacing-lg);grid-template:"back back""stage side""info side"1fr/minmax(0,1fr) 360px}}.watch-layout-back{grid-area:back}.watch-layout-stage{grid-area:stage;min-width:0}.watch-layout-info{grid-area:info}.watch-layout-side{grid-area:side;min-width:0}.watch-back{align-items:center;gap:var(--spacing-xs);min-height:44px;padding:0 var(--spacing-xs);margin-left:calc(-1 * var(--spacing-xs));border-radius:var(--radius-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);transition:color var(--duration-fast) ease;text-decoration:none;display:inline-flex}.watch-back:hover{color:var(--color-text)}.watch-notice{justify-content:center;align-items:center;gap:var(--spacing-sm);aspect-ratio:16/9;padding:var(--spacing-lg);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);text-align:center;color:var(--color-text-secondary);flex-direction:column;display:flex}.watch-notice-title{font-family:var(--font-family-heading);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text)}.watch-notice-detail{font-family:var(--font-family-mono);font-size:var(--font-size-sm)}.watch-info{align-items:flex-start;gap:var(--spacing-sm);flex-direction:column;display:flex}.watch-info-title{font-size:var(--font-size-2xl)}@media (min-width:768px){.watch-info-title{font-size:var(--font-size-3xl)}}.watch-info-state{padding:var(--spacing-2xs) var(--spacing-sm);border-radius:var(--radius-sm);font-family:var(--font-family-mono);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase}.watch-info-state.live{background:var(--color-live);color:var(--color-on-live)}.watch-info-state.upcoming{background:var(--color-badge);color:var(--color-on-badge)}
