.board-body{background:var(--ink-950);overflow:hidden}.board-body.hide-cursor{cursor:none}.board{background:radial-gradient(900px 500px at 50% 115%, #ef24332e, transparent 60%), radial-gradient(900px 400px at 50% -15%, #f7b53817, transparent 60%), var(--ink-950);grid-template-rows:auto auto 1fr;display:grid;position:fixed;inset:0}.board-loading{flex-direction:column;grid-row:1/-1;justify-content:center;align-items:center;gap:2vmin;display:flex}.board-top{letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);border-bottom:1px solid #ffffff12;justify-content:space-between;align-items:center;gap:3vmin;padding:1.4vmin 3vmin;font-size:2.1vmin;font-weight:700;display:flex}.board-top .brand{font-size:3.2vmin}.board-top .meta{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.board .status-pill{background:var(--ink-700);white-space:nowrap;border-radius:999px;align-items:center;gap:.6em;padding:.35em 1em;font-size:1.9vmin;display:inline-flex}.board .status-pill .live-dot{background:#fff;width:1.3vmin;height:1.3vmin}.board .status-pill.live{background:var(--crimson);color:#fff}.board .status-pill.final,.board .status-pill.halftime{background:var(--gold);color:#1a1200}.board-main{grid-template-columns:1fr auto 1fr;align-items:center;gap:2vmin;min-height:0;padding:2vmin 4vmin;display:grid}.board .team{text-align:center;flex-direction:column;align-items:center;gap:1vmin;min-width:0;display:flex;position:relative}.team-logo{justify-content:center;align-items:center;width:22vmin;height:22vmin;display:flex}.team-logo img{object-fit:contain;filter:drop-shadow(0 6px 18px #0009);width:100%;height:100%}.team-logo .initials{background:var(--team);width:100%;height:100%;font-family:var(--font-display);color:#fff;text-shadow:0 2px 6px #0006;border-radius:50%;justify-content:center;align-items:center;font-size:9vmin;display:flex;box-shadow:inset 0 -3vmin 6vmin #00000040}.team-id{flex-direction:column;align-items:center;gap:.3vmin;max-width:100%;display:flex}.board .team-name{font-family:var(--font-display);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;font-size:6.5vmin;line-height:1}.team-sub{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:2vmin;overflow:hidden}.board .team-score{font-family:var(--font-display);letter-spacing:.02em;font-variant-numeric:tabular-nums;text-shadow:0 8px 40px #0000008c;text-align:center;min-width:0;margin:1vmin 0;font-size:27vmin;line-height:.9}.board .team-score.bump{animation:.5s ease-out bump}.board .winner .team-score{color:var(--gold)}.team-foot{letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:2.5vmin;min-height:4vmin;font-size:2.3vmin;font-weight:800;display:flex}.poss{color:var(--gold);visibility:hidden;align-items:center;gap:.8vmin;display:inline-flex}.poss:before{content:"";background:var(--gold);width:1.6vmin;height:1.6vmin;box-shadow:0 0 1.5vmin var(--gold);border-radius:50%}.has-ball .poss{visibility:visible}.timeouts{gap:.8vmin;display:inline-flex}.timeouts i{background:var(--ink-600);border-radius:.3vmin;width:2.4vmin;height:.9vmin}.timeouts i.on{background:var(--gold)}.team-stripe{background:var(--team);opacity:.95;border-radius:1vmin;width:50%;height:.8vmin;margin-top:.5vmin}.center{text-align:center;border-left:1px solid #ffffff14;border-right:1px solid #ffffff14;flex-direction:column;justify-content:center;align-items:center;gap:1.5vmin;min-width:36vmin;padding:2vmin 3vmin;display:flex}.period{letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-size:3vmin;font-weight:800}.clock{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:#fff;font-size:11.5vmin;font-weight:700;line-height:1}.clock.stopped{color:var(--text-dim)}.clock.urgent{color:var(--crimson)}.down{letter-spacing:.16em;text-transform:uppercase;color:var(--text-dim);min-height:4vmin;font-size:3vmin;font-weight:800}.center-big{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;font-size:9vmin;line-height:1}.center-big.gold{color:var(--gold)}.center-sub{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-size:2.4vmin;font-weight:700}.board-ticker{background:#ffffff06;border-bottom:1px solid #ffffff12;align-items:stretch;min-height:5.6vmin;font-size:2.2vmin;display:flex;overflow:hidden}.ticker-label{color:var(--gold);letter-spacing:.16em;text-transform:uppercase;background:#00000040;border-right:1px solid #ffffff14;flex:none;align-items:center;padding:0 3vmin;font-size:1.8vmin;font-weight:800;display:flex}.ticker-viewport{flex:1;align-items:center;min-width:0;display:flex;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 3vmin calc(100% - 3vmin),#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 3vmin calc(100% - 3vmin),#0000 100%)}.ticker-track{width:max-content;animation:ticker-scroll var(--ticker-duration,30s) linear infinite;will-change:transform;display:flex}.ticker-copy{min-width:var(--ticker-vw,100vw);white-space:nowrap;flex:none;align-items:center;padding:0 2vmin;display:flex}@keyframes ticker-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.ticker-item{color:var(--text-dim);white-space:nowrap;flex:none;align-items:center;gap:1vmin;display:inline-flex}.ticker-item b{color:#fff}.ticker-item .t{color:var(--muted);font-family:var(--font-mono);font-size:.85em}.ticker-item .sep{color:var(--ink-500)}.ticker-dot{background:var(--gold);opacity:.8;border-radius:50%;flex:none;width:.9vmin;height:.9vmin;margin:0 2.5vmin 0 2vmin}@media (prefers-reduced-motion:reduce){.ticker-track{animation:none}.ticker-copy[aria-hidden=true]{display:none}}.idle{flex-direction:column;justify-content:center;align-items:center;gap:3vmin;min-height:0;padding:3vmin 4vmin;display:flex;overflow:hidden}.idle .brand-big{font-size:11vmin}.idle-list{grid-template-columns:repeat(auto-fit,minmax(38vmin,1fr));gap:2vmin;width:min(150vmin,100%);display:grid}.idle-game{text-align:left;background:#ffffff0a;border:1px solid #ffffff17;border-radius:1.5vmin;gap:1vmin;padding:2vmin 2.5vmin;font-size:2.4vmin;text-decoration:none;display:grid}.idle-game .when{color:var(--gold);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:1vmin;font-size:1.8vmin;font-weight:800;display:flex}.idle-game .when .live-dot{width:1.4vmin;height:1.4vmin}.idle-game .row{align-items:center;gap:1.5vmin;font-weight:600;display:flex}.idle-game .row b{font-family:var(--font-display);margin-left:auto;font-size:3.4vmin;font-weight:400}.idle-game .mini{object-fit:contain;flex:none;width:4.2vmin;height:4.2vmin}.idle-game .mini.initials{background:var(--c);font-family:var(--font-display);color:#fff;border-radius:50%;justify-content:center;align-items:center;font-size:1.6vmin;display:inline-flex}.board-nav{border:1px solid var(--ink-600);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;z-index:10;pointer-events:none;background:#0c0c0fe6;border-radius:999px;align-items:center;gap:.15rem;padding:.3rem .4rem;font-size:.85rem;transition:opacity .3s;display:flex;position:fixed;bottom:1.5vmin;left:50%;transform:translate(-50%)}.board-body.show-nav .board-nav{opacity:1;pointer-events:auto}.board-nav a,.board-nav button{color:var(--text-dim);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:.35rem .7rem;font-weight:600;text-decoration:none}.board-nav a:hover,.board-nav button:hover{background:var(--ink-700);color:#fff}.board-nav .admin{color:var(--gold)}.conn{color:var(--green);padding:0 .5rem;font-size:.7rem}.conn.off{color:var(--crimson);animation:1s infinite pulse}@media (orientation:portrait){.board-top{padding:2vmin 4vmin;font-size:3vmin}.board-top .brand{font-size:4.5vmin}.board-top .meta{display:none}.board .status-pill{font-size:2.8vmin}.board-main{grid-template-rows:auto auto auto;grid-template-columns:1fr;align-content:center;gap:2vmin;padding:3vmin 4vmin}.board .team{text-align:left;grid-template-columns:18vmin 1fr auto;grid-template-areas:"logo id score""logo foot score""stripe stripe stripe";align-items:center;gap:1vmin 4vmin;display:grid}.team-logo{grid-area:logo;width:18vmin;height:18vmin}.team-logo .initials{font-size:7vmin}.team-id{grid-area:id;align-items:flex-start}.board .team-name{font-size:8vmin}.team-sub{font-size:3vmin}.board .team-score{grid-area:score;margin:0;font-size:22vmin}.team-foot{grid-area:foot;justify-content:flex-start;font-size:3vmin}.team-stripe{grid-area:stripe;width:100%;height:1vmin}.team-home{order:1}.center{border:1px solid #ffffff14;border-left:0;border-right:0;flex-direction:row;order:2;justify-content:space-between;gap:3vmin;width:100%;padding:3vmin 1vmin}.team-away{order:3}.period{font-size:3.6vmin}.clock{font-size:14vmin}.down{min-height:0;font-size:3.4vmin}.center-big{font-size:10vmin}.center-sub{font-size:3vmin}.board-ticker{min-height:7.5vmin;font-size:3vmin}.ticker-label{padding:0 3vmin;font-size:2.6vmin}.idle .brand-big{font-size:14vmin}.idle-list{grid-template-columns:1fr}.idle-game{font-size:3.6vmin}.idle-game .when{font-size:2.8vmin}.idle-game .row b{font-size:5vmin}.idle-game .mini{width:6vmin;height:6vmin}.idle-game .mini.initials{font-size:2.4vmin}}.celebrate{z-index:5;text-align:center;background:radial-gradient(70vmax 70vmax at 50% 50%, color-mix(in srgb, var(--team) 60%, transparent), #070708f0 70%);pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:1.5vmin;animation:.3s ease-out both celebrate-fade;display:flex;position:fixed;inset:0;overflow:hidden}.celebrate.leaving{animation:.45s ease-in both celebrate-out}.celebrate:before{content:"";background:conic-gradient(from 0deg, transparent 0 20deg, color-mix(in srgb, var(--team) 35%, transparent) 20deg 30deg, transparent 30deg 60deg, color-mix(in srgb, var(--team) 35%, transparent) 60deg 70deg, transparent 70deg 120deg, color-mix(in srgb, var(--team) 35%, transparent) 120deg 130deg, transparent 130deg 180deg, color-mix(in srgb, var(--team) 35%, transparent) 180deg 190deg, transparent 190deg 240deg, color-mix(in srgb, var(--team) 35%, transparent) 240deg 250deg, transparent 250deg 300deg, color-mix(in srgb, var(--team) 35%, transparent) 300deg 310deg, transparent 310deg 360deg);opacity:.5;animation:12s linear infinite celebrate-spin;position:absolute;inset:-10%}.celebrate>*{position:relative}.celebrate-logo{filter:drop-shadow(0 10px 30px #0009);width:26vmin;height:26vmin;animation:.6s cubic-bezier(.2,1.4,.4,1) both celebrate-pop}.celebrate-logo img{object-fit:contain;width:100%;height:100%}.celebrate-logo .initials{background:var(--team);width:100%;height:100%;font-family:var(--font-display);color:#fff;border-radius:50%;justify-content:center;align-items:center;font-size:11vmin;display:flex}.celebrate-title{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;color:#fff;text-shadow:0 0 6vmin color-mix(in srgb, var(--team) 85%, transparent), 0 .8vmin 0 #00000059;font-size:17vmin;line-height:.95;animation:.55s cubic-bezier(.2,1.6,.4,1) .1s both celebrate-slam}.celebrate-title.small{font-size:12vmin}.celebrate-sub{letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-size:4vmin;font-weight:800;animation:.5s ease-out .35s both celebrate-rise}.celebrate-who{letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);font-size:3.2vmin;font-weight:700;animation:.5s ease-out .5s both celebrate-rise}.celebrate-score{font-family:var(--font-display);letter-spacing:.06em;color:#fff;font-size:7vmin;animation:.5s ease-out .65s both celebrate-rise}@keyframes celebrate-fade{0%{opacity:0}to{opacity:1}}@keyframes celebrate-out{0%{opacity:1}to{opacity:0}}@keyframes celebrate-spin{to{transform:rotate(360deg)}}@keyframes celebrate-pop{0%{opacity:0;transform:scale(.2)rotate(-14deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes celebrate-slam{0%{opacity:0;transform:scale(3)}60%{opacity:1;transform:scale(.95)}to{transform:scale(1)}}@keyframes celebrate-rise{0%{opacity:0;transform:translateY(3vmin)}to{opacity:1;transform:none}}.confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti i{opacity:0;width:1.5vmin;height:2.6vmin;animation:confetti-fall var(--dur,3s) linear var(--delay,0s) both;border-radius:.3vmin;position:absolute;top:-4vmin}@keyframes confetti-fall{0%{opacity:1;transform:translateY(0)rotate(0)translate(0)}50%{transform:translateY(55vh)rotate(360deg)translate(4vmin)}to{opacity:.9;transform:translateY(112vh)rotate(720deg)translate(-4vmin)}}@media (prefers-reduced-motion:reduce){.celebrate,.celebrate *{animation-duration:10ms!important}.confetti{display:none}}
