*{box-sizing:border-box;margin:0;padding:0}.display-body{cursor:none;background:#000;width:100vw;height:100vh;overflow:hidden}.scoreboard{color:#fff;background:linear-gradient(#0a0a12 0%,#111827 50%,#0a0a12 100%);justify-content:center;align-items:center;width:100vw;height:100vh;font-family:Segoe UI,system-ui,sans-serif;display:flex;position:relative}.scoreboard__safe{justify-content:center;align-items:center;width:100%;height:100%;padding:4%;display:flex;position:relative}.scoreboard__board{grid-template-columns:1fr auto 1fr;align-items:center;gap:2vw;width:100%;max-width:100%;display:grid}.scoreboard__board--basketball{flex-direction:column;gap:1vh;display:flex}.scoreboard__teams-row{flex:1;grid-template-columns:1fr auto 1fr;align-items:center;gap:2vw;width:100%;min-width:0;display:grid}.scoreboard__main-row{align-items:stretch;gap:1.5vw;width:100%;min-width:0;display:flex}.scoreboard__main-row--with-rosters .scoreboard__teams-row{z-index:2;flex:auto;min-width:0;padding:.6rem .35rem;position:relative;overflow:visible}.scoreboard__main-row--with-rosters .scoreboard__team{min-width:0;max-width:100%;overflow:visible}.scoreboard__main-row--with-rosters .scoreboard__team-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:clamp(1rem,2.8vw,2.4rem);overflow:hidden}.scoreboard__main-row--with-rosters .scoreboard__team-score{font-size:clamp(3.25rem,11vw,11rem)}.player-roster{z-index:1;background:#00000059;border:1px solid #ffffff14;border-radius:12px;flex-direction:column;flex:0 clamp(110px,14vw,240px);min-width:0;max-width:clamp(110px,16vw,260px);max-height:62vh;display:flex;position:relative;overflow:hidden}@media (width<=1100px){.scoreboard__main-row--with-rosters .player-roster{display:none}.scoreboard__main-row--with-rosters .scoreboard__team-score{font-size:clamp(4.5rem,16vw,14rem)}.scoreboard__main-row--with-rosters .scoreboard__team-name{font-size:clamp(1.25rem,3.5vw,3rem)}}.player-roster--home{border-color:color-mix(in srgb, var(--home-color,#fbbf24) 35%, transparent)}.player-roster--away{border-color:color-mix(in srgb, var(--away-color,#94a3b8) 35%, transparent)}.player-roster__head{text-transform:uppercase;letter-spacing:.12em;color:#94a3b8;background:#00000040;padding:.5rem .75rem;font-size:clamp(.65rem,1.2vw,.85rem);font-weight:700}.player-roster__list{flex:1;margin:0;padding:.35rem 0;list-style:none;overflow-y:auto}.player-roster__row{grid-template-columns:auto 1fr auto;align-items:center;gap:.35rem .5rem;padding:.35rem .75rem;font-size:clamp(.75rem,1.4vw,1rem);transition:background .25s,transform .25s;display:grid}.player-roster__num{color:#64748b;font-variant-numeric:tabular-nums;font-weight:700}.player-roster__name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.player-roster__pts{font-variant-numeric:tabular-nums;text-align:right;min-width:1.5em;font-weight:800}.player-roster--home .player-roster__pts{color:var(--home-color,#fbbf24)}.player-roster--away .player-roster__pts{color:var(--away-color,#94a3b8)}.scoreboard__leader{text-align:center;background:#00000059;width:100%;padding:.5rem 1rem;font-size:clamp(.9rem,2.5vw,1.5rem)}.scoreboard__leader--hidden{display:none}.scoreboard__team{flex-direction:column;align-items:center;gap:.5vh;display:flex}.scoreboard__team--home,.scoreboard__team--away{text-align:center}.scoreboard__team-name{text-transform:uppercase;letter-spacing:.08em;opacity:.9;font-size:clamp(1.5rem,4vw,3rem);font-weight:700}.scoreboard__team-score{font-variant-numeric:tabular-nums;text-shadow:0 0 60px #ffffff26;font-size:clamp(5rem,18vw,14rem);font-weight:900;line-height:.9}.scoreboard__team--home .scoreboard__team-score{color:var(--home-color,#fbbf24)}.scoreboard__team--away .scoreboard__team-score{color:var(--away-color,#94a3b8)}.scoreboard__center{flex-direction:column;align-items:center;gap:.5vh;padding:0 2vw;display:flex}.scoreboard__clock{font-variant-numeric:tabular-nums;letter-spacing:.05em;font-size:clamp(2.5rem,8vw,6rem);font-weight:800}.scoreboard__period{text-transform:uppercase;letter-spacing:.2em;color:#94a3b8;font-size:clamp(1rem,2.5vw,2rem)}.scoreboard__status{color:#22c55e;letter-spacing:.1em;text-transform:uppercase;font-size:clamp(.7rem,1.2vw,1rem);position:absolute;bottom:2%;right:3%}.scoreboard__status.offline{color:#ef4444}.scoreboard__sponsor,.scoreboard__final{text-align:center;width:100%}.scoreboard__sponsor p{opacity:.3;font-size:clamp(3rem,10vw,8rem);font-weight:800}.scoreboard__final h1{letter-spacing:.3em;margin-bottom:2rem;font-size:clamp(2rem,6vw,5rem)}.scoreboard__scores{justify-content:center;gap:4rem;font-size:clamp(1.5rem,4vw,3rem);display:flex}.scoreboard__scores strong{font-size:clamp(4rem,12vw,10rem);display:block}.scoreboard__logo{object-fit:contain;max-height:clamp(48px,8vw,120px);margin-bottom:.5rem}.scoreboard__stat{color:#94a3b8;letter-spacing:.05em;font-size:clamp(.9rem,2vw,1.5rem)}.scoreboard__serve{color:#fbbf24;font-size:clamp(1rem,2.5vw,1.8rem);font-weight:700}.scoreboard--mode-hybrid .scoreboard__safe{flex-direction:column;justify-content:flex-start;gap:0;padding:0}.scoreboard--mode-hybrid .scoreboard__board--compact{flex:1;width:100%;padding:3% 4%}.scoreboard__sponsor--banner{background:#0f172a;justify-content:center;align-items:center;width:100%;max-height:22vh;padding:1rem;display:flex}.scoreboard__sponsor--full{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.scoreboard__sponsor-img{object-fit:contain;max-width:100%;max-height:100%}.scoreboard__sponsor-placeholder{opacity:.25;font-size:clamp(2rem,6vw,5rem);font-weight:800}.scoreboard__idle{text-align:center}.scoreboard__idle-logo{object-fit:contain;max-height:clamp(64px,12vw,160px);margin-bottom:1rem}.scoreboard__idle-title{font-size:clamp(2rem,6vw,5rem);font-weight:800}.scoreboard__idle-sub{color:#64748b;margin-top:1rem;font-size:clamp(1rem,3vw,2rem)}.scoreboard__board--hockey,.scoreboard__board--basketball,.scoreboard__board--soccer,.scoreboard__board--rugby,.scoreboard__board--american-football,.scoreboard__board--esports,.scoreboard__board--boxing{flex-direction:column;width:100%;display:flex}.scoreboard__sets-won{color:#64748b;font-variant-numeric:tabular-nums;font-size:clamp(2rem,6vw,4rem);font-weight:800}.card{border-radius:4px;justify-content:center;align-items:center;min-width:1.5em;margin:0 .15em;padding:.1em .35em;font-weight:800;display:inline-flex}.card--yellow{color:#1c1917;background:#facc15}.card--red{color:#fff;background:#dc2626}.scoreboard__stat--downs{color:#e2e8f0;font-size:clamp(1.1rem,2.8vw,2rem);font-weight:700}.scoreboard__individual-header{text-align:center;margin-bottom:2vh}.scoreboard__event-name{text-transform:uppercase;letter-spacing:.15em;margin-bottom:1rem;font-size:clamp(1.5rem,4vw,3rem);font-weight:800;display:block}.scoreboard__clock--up{color:#22d3ee}.scoreboard__leaderboard{flex-direction:column;gap:.5rem;width:min(900px,92vw);margin:0 auto;padding:0;list-style:none;display:flex}.scoreboard__leaderboard-row{background:#00000059;border:1px solid #ffffff14;border-radius:10px;grid-template-columns:3rem 1fr auto;align-items:center;gap:1rem;padding:.75rem 1.25rem;font-size:clamp(1rem,2.5vw,1.75rem);display:grid}.scoreboard__leaderboard-row:first-child{background:#fbbf2414;border-color:#fbbf2473}.scoreboard__leaderboard-pos{color:#94a3b8;font-variant-numeric:tabular-nums;font-weight:900}.scoreboard__leaderboard-time{font-variant-numeric:tabular-nums;color:#22d3ee;font-weight:800}.scoreboard__lanes{flex-direction:column;gap:.45rem;width:min(1000px,94vw);margin:0 auto;display:flex}.scoreboard__lane-row{background:#00000059;border-left:4px solid #0ea5e9;border-radius:8px;grid-template-columns:3rem 1fr auto auto;align-items:center;gap:1rem;padding:.65rem 1rem;font-size:clamp(.95rem,2.2vw,1.5rem);display:grid}.scoreboard__lane-num{color:#0ea5e9;font-weight:900}.scoreboard__lane-time{font-variant-numeric:tabular-nums;font-weight:800}.scoreboard__lane-rank{color:#fbbf24;font-weight:700}.scoreboard__apparatus{text-align:center;letter-spacing:.2em;text-transform:uppercase;color:#c4b5fd;margin-bottom:2vh;font-size:clamp(1.2rem,3vw,2.2rem);font-weight:700}.scoreboard__final-thanks{letter-spacing:.25em;text-transform:uppercase;color:#64748b;margin-top:2rem;font-size:clamp(1rem,3vw,1.5rem);animation:1s 2.4s both finalBadge}.scoreboard__watermark{letter-spacing:.2em;opacity:.4;color:#fff;z-index:50;font-size:11px;position:fixed;bottom:12px;right:16px}.diag-overlay{z-index:10;background:#000000bf;border-radius:8px;padding:1rem;font-size:12px;position:absolute;top:1rem;left:1rem}.diag-overlay dl{grid-template-columns:auto 1fr;gap:.25rem 1rem;display:grid}.diag-page{color:#fff;background:#111;min-height:100vh;padding:2rem;font-family:system-ui,sans-serif}.diag-grid{gap:1rem;margin:1rem 0;display:flex}.emergency-banner{z-index:100;color:#fff;text-align:center;text-transform:uppercase;letter-spacing:.05em;background:#dc2626eb;justify-content:center;align-items:center;padding:2rem;font-size:clamp(2rem,6vw,5rem);font-weight:800;animation:1.5s ease-in-out infinite emergencyPulse;display:flex;position:absolute;inset:0}.emergency-banner--hidden{display:none}@keyframes emergencyPulse{0%,to{opacity:1}50%{opacity:.85}}.signage-player{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.signage-player__slide,.signage-player img,.signage-player video{object-fit:contain;max-width:100%;max-height:100%}
