/* ==========================================================================
   Previously LIVE GAME hero + centered game modal — sportsbook LED wall
   Steelers at Browns, TNF 2026-10-01. James directive: the hero IS the game.
   Aesthetic: matches the Odds Board — dark LED, amber LED type, gold banners.
   HONESTY CONTRACT: nothing here ever fabricates plays, scores, or LIVE
   state. The LIVE treatment renders only when the ESPN feed says the game
   is in progress. Pre-game shows the honest pre-game panel. Fail closed.
   ========================================================================== */
.lg-hero{
  background:var(--desert-card);
  border-top:1px solid var(--desert-ink);border-bottom:1px solid var(--desert-ink);
  font-family:ui-monospace,'SF Mono','Cascadia Mono',Menlo,Consolas,'Liberation Mono',monospace;
  color:var(--color-warn);
}.lg-hero__inner{max-width:1180px;margin:0 auto;padding:26px 20px 30px}.lg-banner{
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  background:linear-gradient(180deg,var(--color-warn),var(--color-warn));
  color:var(--desert-bg);font-weight:700;letter-spacing:.28em;font-size:12px;
  padding:10px 18px;margin:0 0 18px;
  box-shadow:0 0 26px rgba(var(--color-warn-rgb), .35);
}.lg-live-dot{display:inline-flex;align-items:center;gap:8px}.lg-live-dot i{width:9px;height:9px;border-radius:50%;background:var(--desert-ink)}.lg-hero.is-live .lg-live-dot i{background:var(--brand-red);box-shadow:0 0 10px var(--brand-red);animation:lgpulse 1.4s infinite}@keyframes lgpulse{50%{opacity:.35}}.lg-updated{font-size:10px;letter-spacing:.18em;color:var(--desert-bg);opacity:.65}.lg-score{display:flex;align-items:stretch;justify-content:center;gap:8px;margin-bottom:18px}.lg-team{flex:1;max-width:300px;text-align:center;padding:14px 10px;background:rgba(var(--color-warn-rgb), .03)}.lg-team .abbr{font-size:30px;font-weight:700;color:var(--color-warn);letter-spacing:.1em;text-shadow:0 0 12px rgba(var(--color-warn-rgb), .5)}.lg-team .rec{font-size:11px;color:var(--color-warn);letter-spacing:.2em;margin-top:4px}.lg-team .pts{font-size:64px;font-weight:700;color:var(--color-warn);text-shadow:0 0 14px rgba(var(--color-warn-rgb), .8);font-variant-numeric:tabular-nums;line-height:1.1}.lg-mid{min-width:170px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:10px 14px}.lg-clock{font-size:26px;font-weight:700;color:var(--color-warn);text-shadow:0 0 10px rgba(var(--color-warn-rgb), .9);font-variant-numeric:tabular-nums}.lg-period{font-size:11px;letter-spacing:.3em;color:var(--color-warn)}.lg-down{font-size:12px;color:var(--color-warn);letter-spacing:.06em}.lg-pregame{text-align:center;padding:8px 0 2px}.lg-pregame .lg-kick{font-size:22px;color:var(--color-warn);letter-spacing:.08em;text-shadow:0 0 10px rgba(var(--color-warn-rgb), .7)}.lg-pregame .lg-venue{font-size:12px;color:var(--color-warn);letter-spacing:.14em;margin-top:8px}/* ---- field visualization ---- */
.lg-field{margin:4px auto 20px;max-width:900px}.lg-field__label{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.24em;color:var(--color-warn);margin-bottom:6px}.lg-field__turf{
  position:relative;height:64px;border-radius:6px;overflow:hidden;
  background:
    repeating-linear-gradient(90deg,transparent 0 calc(10% - 1px),rgba(var(--color-warn-rgb), .25) calc(10% - 1px) 10%),
    linear-gradient(180deg,var(--desert-card),var(--desert-bg));
  border:1px solid var(--desert-pressed);
}.lg-field__numbers{position:absolute;inset:0;pointer-events:none}.lg-field__numbers span{position:absolute;top:50%;transform:translate(-50%,-50%);font-size:10px;color:rgba(var(--color-warn-rgb), .4);letter-spacing:.1em}.lg-ball{
  position:absolute;top:6px;bottom:6px;width:3px;background:var(--color-warn);
  box-shadow:0 0 12px rgba(var(--color-warn-rgb), .9);transition:left .6s ease;
}.lg-ball::after{
  content:"";position:absolute;top:-2px;left:50%;transform:translateX(-50%);
  width:12px;height:12px;border-radius:50%;
  background:radial-gradient(circle at 35% 35%,var(--color-warn),var(--desert-ink));
  border:1px solid var(--color-warn);
}.lg-field__poss{font-size:11px;color:var(--color-warn);letter-spacing:.1em;margin-top:8px;text-align:center}.lg-field__poss b{color:var(--color-warn)}/* ---- columns: plays + stats ---- */
.lg-cols{display:grid;grid-template-columns:1.25fr 1fr;gap:18px}@media (max-width:860px){.lg-cols{grid-template-columns:1fr}}.lg-panel{background:rgba(var(--color-warn-rgb), .025);padding:16px 18px}.lg-panel h3{font-size:11px;letter-spacing:.32em;color:var(--color-warn);margin:0 0 12px;font-weight:700}.lg-plays{list-style:none;margin:0;padding:0;max-height:340px;overflow:auto}.lg-plays li{padding:9px 2px;border-bottom:1px solid rgba(var(--color-warn-rgb), .08);font-size:12.5px;line-height:1.55;color:var(--color-warn)}.lg-plays li .lg-pmeta{display:block;font-size:10px;color:var(--color-warn);letter-spacing:.14em;margin-bottom:3px}.lg-plays li.lg-score-play{color:var(--color-warn)}.lg-plays li.lg-score-play::before{content:"★ ";color:var(--color-warn)}.lg-plays li:first-child{background:rgba(var(--color-warn-rgb), .06);margin:0 -6px;padding:9px 8px}.lg-stats{width:100%;border-collapse:collapse;font-size:12.5px}.lg-stats th,.lg-stats td{padding:8px 6px;text-align:right;font-variant-numeric:tabular-nums}.lg-stats th{color:var(--color-warn);font-weight:400;letter-spacing:.08em;font-size:10.5px}.lg-stats td:first-child,.lg-stats th:first-child{text-align:left;color:var(--color-warn)}.lg-stats td{color:var(--color-warn)}.lg-stats tr td:nth-child(2),.lg-stats tr td:nth-child(3){color:var(--color-warn);text-shadow:0 0 8px rgba(var(--color-warn-rgb), .35)}.lg-wp{margin-top:14px}.lg-wp__bar{height:10px;border-radius:5px;overflow:hidden;display:flex;background:var(--desert-pressed)}.lg-wp__bar i{display:block;height:100%}.lg-wp__lbl{display:flex;justify-content:space-between;font-size:10.5px;color:var(--color-warn);letter-spacing:.12em;margin-top:6px}.lg-note{font-size:11px;color:var(--desert-ink);letter-spacing:.06em;margin-top:14px;line-height:1.7}.lg-error{font-size:12px;color:var(--color-warn);letter-spacing:.06em;padding:10px 0}/* ---- teaser mode (sports home): compact scoreboard + CTA to matchup page ---- */
.lg-hero__inner.lg-teaser{padding-bottom:22px}.lg-teaser__row{display:flex;align-items:stretch;justify-content:center;gap:8px;margin-bottom:14px}.lg-teaser__row .lg-team{flex:0 1 220px;padding:8px 10px}.lg-teaser__row .lg-team .abbr{font-size:24px}.lg-teaser__row .lg-team .pts{font-size:48px}.lg-teaser__row .lg-mid{min-width:150px}.lg-teaser__kick{font-size:18px;color:var(--color-warn);letter-spacing:.08em;text-shadow:0 0 10px rgba(var(--color-warn-rgb), .7)}.lg-teaser-cta{
  display:block;text-align:center;max-width:560px;margin:0 auto;
  background:linear-gradient(180deg,var(--color-warn),var(--color-warn));color:var(--desert-bg);
  font-weight:700;font-size:13px;letter-spacing:.22em;
  padding:14px 20px;border-radius:4px;text-decoration:none;
  box-shadow:0 0 26px rgba(var(--color-warn-rgb), .35);
}.lg-teaser-cta:hover{filter:brightness(1.08)}/* ==========================================================================
   CENTERED GAME MODAL — James: matchup detail pops center-screen, never a
   bottom sheet. Sportsbook LED-wall vibes throughout. Reuses the existing
   #scrim overlay hooks so openSheet/closeSheet keep working.
   ========================================================================== */
.sheet-scrim{align-items:center !important;padding:20px}.sheet{
  width:min(880px,100%);max-height:90vh;
  border-radius:14px !important;border:1px solid var(--desert-ink) !important;
  background:var(--desert-card) !important;
  box-shadow:0 0 60px rgba(var(--color-warn-rgb), .18),0 24px 80px rgba(var(--desert-shadow-rgb), .8) !important;
  animation:lgmodalin .26s ease !important;
  font-family:ui-monospace,'SF Mono','Cascadia Mono',Menlo,Consolas,'Liberation Mono',monospace;
}@keyframes lgmodalin{from{transform:scale(.96) translateY(10px);opacity:0}to{transform:none;opacity:1}}.sheet .sk{color:var(--color-warn) !important}.sheet h3{color:var(--color-warn) !important;font-family:inherit !important;letter-spacing:.06em !important}.sheet .row{border-bottom:1px solid rgba(var(--color-warn-rgb), .1) !important}.sheet .row span:first-child{color:var(--color-warn) !important}.sheet .row span:last-child{color:var(--color-warn) !important}.sheet .close{border-color:var(--desert-ink) !important;color:var(--color-warn) !important}.lg-modal-plays{list-style:none;margin:14px 0 0;padding:0;max-height:300px;overflow:auto}.lg-modal-plays li{padding:8px 2px;border-bottom:1px solid rgba(var(--color-warn-rgb), .08);font-size:12.5px;line-height:1.55;color:var(--color-warn)}.lg-modal-plays li .lg-pmeta{display:block;font-size:10px;color:var(--color-warn);letter-spacing:.14em;margin-bottom:2px}.lg-modal-plays li.lg-score-play{color:var(--color-warn)}.lg-modal-field{margin:14px 0 4px}@media (max-width:640px){.lg-score{gap:4px}.lg-team .pts{font-size:44px}.lg-team .abbr{font-size:22px}.lg-mid{min-width:120px}.lg-clock{font-size:20px}.sheet{padding:20px 18px 34px !important}
}/* Modal note box — gold, not red, to match the sportsbook wall */
.sheet .note{
  background:rgba(var(--color-warn-rgb), .06) !important;border:1px solid rgba(var(--color-warn-rgb), .28) !important;
}.sheet .note b{color:var(--color-warn) !important}/* ==========================================================================
   LAPTOP COMPACT MODE — James 2026-10-01 game night: on laptop viewports
   with limited vertical room, "zoom out" the hero so the whole panel
   (score/clock, field, plays, stats, win probability) fits at a glance
   with no scrolling. Pure sizing change: same layout, same content.
   Phone (<=860px) and tall desktop keep the full-size treatment.
   ========================================================================== */
@media (min-width:861px) and (max-height:920px){
  .lg-hero__inner{padding:14px 20px 16px}
  .lg-banner{padding:7px 14px;margin:0 0 10px;font-size:11px;letter-spacing:.24em}
  .lg-score{gap:6px;margin-bottom:10px}
  .lg-team{padding:8px 8px}
  .lg-team .abbr{font-size:22px}
  .lg-team .rec{font-size:10px;margin-top:2px}
  .lg-team .pts{font-size:44px;line-height:1.05}
  .lg-mid{min-width:140px;padding:6px 10px;gap:3px}
  .lg-clock{font-size:20px}
  .lg-period{font-size:10px}
  .lg-down{font-size:11px}
  .lg-pregame .lg-kick{font-size:18px}
  .lg-pregame .lg-venue{font-size:11px;margin-top:5px}
  .lg-field{margin:0 auto 12px}
  .lg-field__label{margin-bottom:4px}
  .lg-field__turf{height:48px}
  .lg-field__poss{margin-top:5px;font-size:10.5px}
  .lg-cols{gap:14px}
  .lg-panel{padding:12px 14px}
  .lg-panel h3{margin:0 0 8px;font-size:10.5px}
  .lg-plays{max-height:190px}
  .lg-plays li{padding:7px 2px;font-size:11.5px;line-height:1.5}
  .lg-plays li:first-child{padding:7px 8px}
  .lg-stats{font-size:11.5px}
  .lg-stats th,.lg-stats td{padding:6px 5px}
  .lg-wp{margin-top:10px}
  .lg-note{margin-top:10px;line-height:1.6}
}
