/* A continuous broadcast lineup. Portraits are supplied by the configured
   host or room provider; an unconfirmed source state never receives live glow. */
.home-event-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:26px}
.home-event-heading h1{font-size:clamp(23px,1.7vw,30px);letter-spacing:.015em}
.home-event-heading .home-event-record{display:flex;gap:20px;align-items:center;color:var(--muted);font-size:14px;white-space:nowrap}
.home-event-record b{font-size:17px;font-variant-numeric:tabular-nums;color:var(--text);margin-right:4px}
.live-hub{--live-ink:#edf3f8;--live-dim:#b6c1cb;--live-glow:#58dfd2;--live-backdrop:#131f29;margin-bottom:26px}
.live-hub-heading{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 18px;margin-bottom:16px;min-height:36px}
.live-hub-heading>div:first-child{display:flex;align-items:center;gap:18px;min-width:0}
.live-hub-heading h2{font-size:21px;white-space:nowrap}
.live-hub-count{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--win);white-space:nowrap}
.live-hub-count[hidden]{display:none}
.live-hub-count b{font-weight:400}
.live-hub-count i{width:6px;height:6px;background:currentColor;border-radius:50%}
.live-hub-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px;white-space:nowrap;min-width:0;max-width:100%}
.live-hub-actions .text-link{font-size:14px}
.live-ribbon-controls{display:flex;align-items:center;gap:10px;flex:none}
.live-ribbon-controls[hidden]{display:none}
.live-ribbon-controls button{width:40px;height:36px;display:grid;place-items:center;color:var(--text);border:1px solid var(--line);background:var(--surface);border-radius:3px}
.live-ribbon-controls button svg{width:20px;height:20px}
.live-ribbon-controls button:hover:not(:disabled){border-color:var(--accent);background:var(--surface-2)}
.live-ribbon-controls button:disabled{opacity:.3;cursor:default}
.live-ribbon-controls button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.live-ribbon-position{display:flex;flex-direction:column;gap:6px;min-width:82px;text-align:center}
.live-ribbon-range{font-size:14px;line-height:1.3;font-variant-numeric:tabular-nums;color:var(--muted)}
.live-ribbon-range b{font-weight:600;color:var(--text)}
.live-ribbon-progress{height:2px;display:block;overflow:hidden;background:var(--line)}
.live-ribbon-progress i{display:block;height:100%;background:var(--accent)}
.live-ribbon-controls.is-static button{display:none}
.live-stage-lineup{display:grid;grid-template-columns:clamp(250px,19vw,330px) minmax(0,1fr);min-width:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--live-backdrop)}
.live-stage-lineup.without-main-stage{grid-template-columns:minmax(0,1fr)}
.live-stage-lineup.only-main-stage{display:block}
.only-main-stage .live-strip--main{height:250px;min-height:0;border-right:0}
.only-main-stage .live-strip--main .live-strip-art img{width:40%;height:100%;margin-left:auto;object-fit:cover;object-position:center 25%}
.only-main-stage .live-strip--main:after{background:linear-gradient(90deg,#0b1219 25%,#0b1219c5 55%,#0b121925),linear-gradient(0deg,#0b1219c5,transparent)}
.only-main-stage .live-strip--main .live-strip-top{justify-content:flex-start;gap:20px}
.only-main-stage .live-strip--main .live-strip-info{right:42%}
.only-main-stage .live-room-title{-webkit-line-clamp:1}
.live-ribbon{display:flex;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:#778a9666 #17232d;min-width:0}
.live-ribbon:focus-visible{outline-offset:4px}
.live-strip{--strip-accent:#91a3b1;position:relative;display:block;isolation:isolate;flex:0 0 clamp(157px,10.4vw,190px);height:clamp(300px,21vw,366px);min-width:0;overflow:hidden;background:radial-gradient(ellipse at 50% 30%,#374957,#18232d 64%);color:var(--live-ink)!important;border-right:1px solid #b6c7d526;scroll-snap-align:start}
.live-strip:after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(180deg,#0b1219b5 0%,#0b121908 26%,#0b121908 43%,#0b1219d9 75%,#0b1219 100%)}
.live-strip-art{position:absolute;inset:0;z-index:-1;overflow:hidden;background:repeating-linear-gradient(125deg,transparent 0 40px,#b6c7d506 40px 42px)}
.live-strip-art:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0b121920,transparent 35%,#0b121920);pointer-events:none}
.live-strip-art img{width:100%;height:100%;max-width:none;object-fit:cover;object-position:center 23%;filter:brightness(1);transform:scale(1.005);transition:filter .4s,transform .55s}
.live-strip--main{--strip-accent:#c8ac71;border-right:2px solid #c8ac7166;flex:none;background:radial-gradient(ellipse at 65% 27%,#586773,#15232f 68%)}
.live-strip--main:after{background:linear-gradient(180deg,#0b1219b0,transparent 30%,#0b1219a8 65%,#0b1219 100%)}
.live-strip--main .live-strip-art img{object-position:center 25%}
.live-strip--main .live-strip-top{padding:20px 22px}
.live-strip--main .live-strip-info{padding:23px 23px 24px}
.live-strip--main .live-strip-info strong{font-size:clamp(25px,2vw,34px)}
.live-strip--main .live-room-enter{opacity:1;transform:none;margin-top:16px;font-size:14px;color:#dec58f}
.live-strip-top{position:absolute;inset:0 0 auto;z-index:1;display:flex;align-items:center;gap:8px;justify-content:space-between;padding:15px 13px;font-size:12px}
.live-platform{color:#d7dde1;letter-spacing:.02em}
.live-main-label{border-left:2px solid #c8ac71;padding-left:9px;color:#e4cfaa;font-size:15px;letter-spacing:.07em;font-weight:600}
.live-state{display:inline-flex;align-items:center;gap:5px;color:#c4cbd1;white-space:nowrap;font-size:12px;background:#0c14197a;padding:3px 6px;border:1px solid #b6c7d529;line-height:1.5}
.live-state i{width:6px;height:6px;flex:none;display:inline-block;border-radius:50%;background:currentColor;opacity:.9}
/* State belongs to the badge and edge, never to the portrait's colour. */
.is-offline .live-state i{width:7px;height:8px;border-radius:0;background:linear-gradient(90deg,currentColor 0 2px,transparent 2px 5px,currentColor 5px 7px)}
.is-unknown .live-state i{width:7px;height:7px;border:1px dashed currentColor;background:transparent}
.live-strip-info{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:20px 16px 22px;min-width:0}
.live-team-name{display:block;font-size:13px;color:var(--live-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:3px}
.live-strip-info strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(18px,1.24vw,22px);font-weight:600;letter-spacing:.015em;line-height:1.5}
.live-room-title{font-size:14px;line-height:1.6;color:#c5ced6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:8px;max-width:100%}
.live-room-enter{display:flex;align-items:center;gap:7px;font-size:12px;line-height:1.6;color:#e5edf3;opacity:.72;transition:opacity .2s,color .2s;white-space:nowrap;margin-top:8px}
.live-room-enter svg{width:15px;height:15px;stroke-width:1.5;flex:none}
.live-reference-badge{display:inline-block;width:max-content;max-width:100%;padding:1px 5px;border:1px solid #baa77966;background:#171b20b8;color:#dfcda9;font-size:12px;line-height:1.5;white-space:nowrap;margin-top:4px;vertical-align:middle}
.team-host-room .live-reference-badge{margin:0;color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,var(--line));background:var(--surface)}
.live-strip-line{height:3px;position:absolute;left:0;right:0;bottom:0;z-index:2;background:var(--strip-accent);opacity:.3}
.live-strip.is-live{--strip-accent:var(--live-glow);background:radial-gradient(ellipse at 50% 25%,#34635f,#11272d 70%)}
.live-strip.is-live .live-strip-art img{filter:brightness(1.02)}
.live-strip.is-live .live-state{color:#a0f0e3;background:#0d2a28d9;border-color:#66dacf65}
.live-strip.is-live .live-state i{opacity:1;box-shadow:0 0 8px #77f3e9}
.live-strip.is-live .live-strip-line{opacity:1;box-shadow:0 -2px 24px #50cfcf88}
.live-strip.is-live .live-strip-line:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,#e3fffc 50%,transparent);transform:translateX(-100%);animation:live-edge-pass 5s ease-in-out infinite}
.live-strip.is-offline .live-state{color:#dce5ed;background:#142230e6;border-color:#9fb6cb55}
.live-strip.is-unknown .live-state{color:#eddbb4;background:#2b261ce6;border-color:#c8ac7159}
.live-strip:hover .live-strip-art img,.live-strip:focus-visible .live-strip-art img{transform:scale(1.045);filter:brightness(1.03)}
.live-strip.is-live:hover .live-strip-art img,.live-strip.is-live:focus-visible .live-strip-art img{filter:brightness(1.08)}
.live-strip:hover .live-room-enter,.live-strip:focus-visible .live-room-enter{opacity:1;color:var(--strip-accent)}
.live-strip:focus-visible{outline:3px solid #d9c38d;outline-offset:-4px;z-index:3}
.live-portrait-fallback{width:100%;height:100%;fill:none;stroke:none;opacity:.7;transform:scale(.92)}
.live-fallback-shoulders{fill:#6a8598}
.live-fallback-head{fill:#92a6b3}
.live-fallback-line{stroke:#c4d2db;stroke-width:1;fill:none;opacity:.45}
.has-broken-portrait .live-strip-art img{display:none}
.has-broken-portrait .live-strip-art:before{content:"";position:absolute;inset:24% 14% -24%;background:radial-gradient(ellipse at 50% 26%,#8ca6b0 0 18%,transparent 18.4%),radial-gradient(ellipse at 50% 90%,#546c7c 0 45%,transparent 45.4%);opacity:.65}
.live-hub--full .live-stage-lineup{grid-template-columns:clamp(250px,19vw,330px) minmax(0,1fr)}
.live-hub--full .live-stage-lineup.without-main-stage{grid-template-columns:minmax(0,1fr)}
.live-hub--full .live-ribbon{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,155px),1fr));align-content:start;overflow:visible;scroll-snap-type:none}
.live-hub--full .live-ribbon .live-strip{height:clamp(240px,17.7vw,290px);border-bottom:1px solid #b6c7d526}
.live-hub--full .live-strip--main{height:clamp(360px,24vw,440px);min-height:0;align-self:start}
.live-hub--full .live-strip--main .live-strip-art img{height:75%;object-position:center 12%}
.live-hub--full .live-ribbon .live-strip-top{padding:12px 9px;gap:4px;flex-wrap:wrap}
.live-hub--full .live-ribbon .live-strip-info{padding:14px 10px 18px}
.live-hub--full .live-ribbon .live-strip-info strong{font-size:18px}
.live-hub--full .live-ribbon .live-team-name{font-size:12px}
.live-page-heading{margin-bottom:30px}
.live-empty>svg{height:42px;width:52px;color:var(--accent);margin:0 auto 18px}
.team-host-room{display:inline-flex;align-items:center;gap:9px;max-width:100%;margin-top:13px;padding:7px 10px;color:var(--text);border:1px solid var(--line);background:var(--surface-2);font-size:14px;line-height:1.5}
.team-host-room>svg{width:18px;height:18px;flex:none;color:var(--accent)}
.team-host-room>.team-host-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.team-host-room .team-host-state{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--muted);white-space:nowrap}
.team-host-room .team-host-state i{height:5px;width:5px;border-radius:50%;background:currentColor}
.team-host-room.is-live{border-color:color-mix(in srgb,var(--win) 55%,var(--line))}
.team-host-room.is-live .team-host-state{color:var(--win)}
.team-host-room:hover{border-color:var(--accent);color:var(--text)}
.team-host-room:focus-visible{outline-offset:4px}
.team-detail .lineup-empty{width:100%;min-width:0;aspect-ratio:auto}
.team-live{margin:0 0 24px;padding:15px 18px 17px;border-block:1px solid var(--line);background:linear-gradient(90deg,var(--surface-2),var(--surface));min-width:0}
.team-live-heading{display:flex;align-items:center;gap:16px;margin-bottom:12px;min-width:0}
.team-live-heading h2{font-size:17px;font-weight:600;line-height:1.4}
.team-live-heading .live-hub-count{font-size:12px}
.team-live-roster{display:flex;flex-wrap:wrap;gap:10px 20px;min-width:0}
.team-live-room{display:flex;align-items:center;gap:10px;flex:0 1 250px;max-width:100%;min-width:0;padding:5px 10px 5px 0;border-right:1px solid var(--line);color:var(--text);transition:color .2s}
.team-live-avatar{position:relative;display:block;flex:none;width:46px;height:50px;overflow:hidden;border-bottom:2px solid var(--muted);background:linear-gradient(145deg,var(--surface-2),var(--line));isolation:isolate}
.team-live-avatar img{width:100%;height:100%;object-fit:cover;object-position:center 25%;transition:transform .25s}
.team-live-avatar svg{width:100%;height:100%;fill:var(--muted);opacity:.65}
.team-live-info{display:flex;flex-direction:column;justify-content:center;gap:5px;min-width:0;flex:1}
.team-live-info strong{font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3}
.team-live-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;line-height:1.4}
.team-live-info .live-state{align-self:flex-start;background:transparent;border:0;padding:0;color:var(--muted);font-size:12px}
.team-live-room .live-reference-badge{margin:0;font-size:11px;padding:1px 4px;color:var(--accent);border-color:var(--line);background:transparent;flex:none}
.team-live-arrow{width:14px;height:14px;color:var(--muted);flex:none;stroke-width:1.5}
.team-live-room.is-live .team-live-avatar{border-color:var(--win);box-shadow:0 2px 8px color-mix(in srgb,var(--win) 12%,transparent)}
.team-live-room.is-live .live-state{color:var(--win)}
.team-live-room.is-live .live-state i{box-shadow:0 0 7px currentColor}
.team-live-room:hover,.team-live-room:focus-visible{color:var(--accent)}
.team-live-room:hover .team-live-avatar img,.team-live-room:focus-visible .team-live-avatar img{transform:scale(1.06)}
.team-live-room:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.team-live-room.has-broken-portrait .team-live-avatar img{display:none}
.team-live-room.has-broken-portrait .team-live-avatar:before{content:"";position:absolute;inset:10% 10% -15%;background:radial-gradient(ellipse at 50% 25%,var(--muted) 0 22%,transparent 23%),radial-gradient(ellipse at 50% 95%,var(--muted) 0 45%,transparent 46%);opacity:.6}
@media(max-width:600px){.team-live{padding:13px 12px 14px;margin-bottom:18px}.team-live-roster{gap:8px 12px}.team-live-room{flex-basis:100%;border-right:0;padding-right:0}.team-live-avatar{width:42px;height:46px}.team-live-info strong{font-size:15px}.team-live-room .live-reference-badge{font-size:11px}.team-live-arrow{margin-left:3px}}
@media(min-width:2200px){.team-live-room{flex-basis:315px}.team-live-avatar{width:52px;height:56px}.team-live-info strong{font-size:17px}.team-live-info .live-state{font-size:13px}}
@media(prefers-reduced-motion:reduce){.team-live-room,.team-live-avatar img{transition:none}}
.live-hub--full .only-main-stage .live-strip--main{height:250px;min-height:0}
@keyframes live-edge-pass{0%,25%{transform:translateX(-110%)}65%,100%{transform:translateX(110%)}}
@media(min-width:2200px){.live-hub--full .live-ribbon .live-strip{height:310px}.live-hub--full .live-ribbon .live-strip-info strong{font-size:21px}}
@media(max-width:1400px){.live-hub--full .live-stage-lineup{display:block}.live-hub--full .live-strip--main{height:270px;min-height:0;border-bottom:2px solid #c8ac7166;border-right:0}.live-hub--full .live-strip--main .live-strip-art img{height:100%;width:45%;margin-left:auto;object-fit:cover;object-position:50% 25%}.live-hub--full .live-strip--main:after{background:linear-gradient(90deg,#0b1219 25%,#0b1219b0 58%,#0b121926),linear-gradient(0deg,#0b1219b5,transparent)}.live-hub--full .live-strip--main .live-strip-info{right:42%}.live-hub--full .live-strip--main .live-strip-top{justify-content:flex-start;gap:18px}.live-hub--full .live-ribbon .live-strip{height:275px}.live-hub--full .live-ribbon .live-strip-info strong{font-size:20px}}
@media(max-width:900px){.live-stage-lineup{grid-template-columns:230px minmax(0,1fr)}.live-strip{height:310px;flex-basis:169px}.live-hub--full .live-stage-lineup{display:block}.live-hub--full .live-strip--main{height:300px;min-height:0;border-bottom:2px solid #c8ac7166;border-right:0}.live-hub--full .live-strip--main .live-strip-art img{height:100%;width:55%;margin-left:auto;object-fit:cover;object-position:50% 25%}.live-hub--full .live-strip--main:after{background:linear-gradient(90deg,#0b1219 15%,#0b1219a0 53%,#0b121926),linear-gradient(0deg,#0b1219b5,transparent)}.live-hub--full .live-strip--main .live-strip-info{right:42%;padding-bottom:26px}.live-hub--full .live-strip--main .live-strip-top{justify-content:flex-start;gap:18px}.live-hub--full .live-ribbon .live-strip{height:280px}.home-event-heading .home-event-record{gap:12px;font-size:13px}}
@media(max-width:600px){.home-event-heading{align-items:flex-start;flex-direction:column;gap:10px;margin-bottom:23px}.home-event-heading h1{font-size:24px}.home-event-heading .home-event-record{gap:17px;font-size:13px}.home-event-record b{font-size:16px}.live-hub{margin-bottom:24px}.live-hub-heading{margin-bottom:12px;gap:10px}.live-hub-heading h2{font-size:20px}.live-hub-heading>div:first-child{gap:10px}.live-hub-count{font-size:12px;gap:5px}.live-hub-actions{gap:10px;width:100%;justify-content:space-between}.live-hub-actions .text-link{font-size:13px}.live-ribbon-controls{gap:8px}.live-ribbon-controls button{height:40px}.live-ribbon-position{min-width:76px}.live-stage-lineup{display:block}.live-strip--main{height:225px;border-bottom:2px solid #c8ac7166;border-right:0}.live-strip--main .live-strip-art img{width:65%;margin-left:auto;object-position:50% 24%}.live-strip--main:after{background:linear-gradient(90deg,#0b1219f5 10%,#0b1219c0 43%,#0b12193d),linear-gradient(0deg,#0b1219b5,transparent)}.live-strip--main .live-strip-top{padding:17px 18px;justify-content:flex-start;gap:17px}.live-strip--main .live-strip-info{right:34%;padding:16px 18px 18px}.live-strip--main .live-strip-info strong{font-size:28px}.live-strip--main .live-room-title{font-size:13px;-webkit-line-clamp:1;margin-top:4px}.live-strip--main .live-room-enter{margin-top:9px;font-size:13px}.live-ribbon{scroll-snap-type:x mandatory;scrollbar-width:thin}.live-ribbon .live-strip{height:280px;flex-basis:47%}.live-strip-info{padding:18px 13px}.live-strip-info strong{font-size:20px}.live-strip-top{padding:13px 10px;gap:4px}.live-state{font-size:11px;padding:2px 4px}.live-platform{font-size:11px}.live-team-name{font-size:12px}.live-room-enter{font-size:12px;opacity:.9}.live-hub--full .live-ribbon{grid-template-columns:repeat(2,minmax(0,1fr))}.live-hub--full .live-ribbon .live-strip{height:275px}.live-hub--full .live-strip--main{height:240px}.live-hub--full .live-strip--main .live-strip-art img{width:65%}.live-hub--full .live-strip--main .live-strip-info{right:34%;padding-bottom:20px}.live-hub--full .live-ribbon .live-strip-top{padding:13px 12px}.live-hub--full .live-ribbon .live-strip-info{padding:18px 13px}.live-hub--full .live-ribbon .live-strip-info strong{font-size:21px}.team-host-room{font-size:13px;gap:7px;flex-wrap:wrap}.team-host-room .team-host-state{font-size:12px}.team-identity .team-host-room .team-host-state{font-size:12px}.live-page-heading{margin-bottom:20px}}
@media(prefers-reduced-motion:reduce){.live-strip-art img,.live-room-enter{transition:none}.live-strip.is-live .live-strip-line:after{animation:none}.live-ribbon{scroll-behavior:auto}}
/* Each observed state has a distinct badge. Freshness controls glow separately. */
.live-hub [data-live-channel-id] .live-state[data-live-state="live"]{color:#a4efbd;background:#123d2be8;border-color:#6bc58b99}
.live-hub [data-live-channel-id] .live-state[data-live-state="loop"]{color:#ffdc8c;background:#4a3515ed;border-color:#e3ad51aa}
.live-hub [data-live-channel-id] .live-state[data-live-state="offline"]{color:#d0d9e6;background:#293342ed;border-color:#8d9aaf99}
.live-hub [data-live-channel-id] .live-state[data-live-state="unknown"]{color:#cbd7e2;background:#263342e8;border-color:#8497ab77}
.live-hub [data-live-channel-id] .live-state[data-live-stale="true"] i{box-shadow:none}
.live-hub [data-live-channel-id] .live-state[data-live-state="loop"] i{width:7px;height:7px;border:1px solid currentColor;border-radius:50%;background:transparent}
.live-hub [data-live-channel-id] .live-state[data-live-state="offline"] i{width:7px;height:3px;border:0;border-radius:1px;background:currentColor}
.live-hub [data-live-refresh]:disabled{opacity:.6;cursor:wait}
