:root{
  --bg:#0a0f16;
  --panel:#111923;
  --panel-2:#0d141d;
  --panel-3:#151f2c;
  --line:#273345;
  --line-soft:rgba(148,163,184,.14);
  --text:#f8fafc;
  --muted:#91a0b4;
  --muted-2:#65748a;
  --grant:#d84049;
  --grant-soft:rgba(216,64,73,.14);
  --noah:#2f9e62;
  --noah-soft:rgba(47,158,98,.14);
  --accent:#d8e5f7;
  --gold:#e7bd62;
}

*{box-sizing:border-box}

html{
  background:var(--bg);
  scroll-behavior:smooth;
}

body{
  margin:0;
  min-height:100vh;
  color:var(--text);
  background:
    radial-gradient(circle at 0 0,rgba(216,64,73,.08),transparent 26%),
    radial-gradient(circle at 100% 0,rgba(47,158,98,.07),transparent 26%),
    linear-gradient(180deg,#090e15 0%,#0a1018 55%,#080d13 100%);
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  padding-bottom:calc(78px + env(safe-area-inset-bottom));
}

button{font:inherit}
button{-webkit-tap-highlight-color:transparent}

.app-shell{
  width:min(100%,760px);
  margin:0 auto;
  padding:calc(18px + env(safe-area-inset-top)) 15px 28px;
}

.topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:50px;
  margin-bottom:12px;
}

.topbar h1{
  margin:0;
  font-size:31px;
  line-height:1;
  letter-spacing:-.045em;
}

.refresh-btn{
  width:44px;
  height:44px;
  border:1px solid var(--line);
  border-radius:14px;
  color:var(--text);
  background:#162130;
  font-size:21px;
  font-weight:800;
  cursor:pointer;
}

.refresh-btn:active{transform:scale(.96)}

.championship-board{
  padding:20px 18px 17px;
  margin-bottom:13px;
  border:1px solid var(--line);
  border-radius:22px;
  background:
    linear-gradient(90deg,var(--grant-soft),transparent 30%,transparent 70%,var(--noah-soft)),
    linear-gradient(180deg,#111923,#0d141d);
}

.championship-score{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  gap:14px;
  align-items:center;
}

.owner-side{
  display:flex;
  flex-direction:column;
}

.owner-grant{align-items:flex-start}
.owner-noah{align-items:flex-end;text-align:right}

.owner-name{
  color:#dbe4f0;
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.owner-side strong{
  margin:4px 0 5px;
  font-size:54px;
  line-height:.9;
  letter-spacing:-.055em;
  font-variant-numeric:tabular-nums;
}

.owner-sub{
  max-width:145px;
  color:var(--muted);
  font-size:10px;
  line-height:1.35;
}

.score-separator{
  color:var(--muted-2);
  font-size:24px;
  font-weight:500;
}

.race-label-row,
.race-values{
  display:flex;
  justify-content:space-between;
  align-items:center;
}

.race-label-row{
  margin-top:18px;
  padding-top:14px;
  border-top:1px solid var(--line-soft);
  color:#d6deea;
  font-size:10px;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.race-label-row span:last-child{
  color:var(--muted);
  letter-spacing:0;
  text-transform:none;
}

.race-track{
  display:flex;
  height:10px;
  margin:10px 0 7px;
  overflow:hidden;
  border-radius:999px;
  background:#070c12;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.025);
}

.race-track.large{
  height:14px;
  margin:18px 0 14px;
}

.race-side{
  width:0;
  height:100%;
  transition:width .3s ease;
}

.race-grant{background:linear-gradient(90deg,#b9323a,var(--grant))}
.race-noah{background:linear-gradient(90deg,var(--noah),#56bd7e)}

.race-values{
  color:var(--muted);
  font-size:11px;
}

.race-values b{color:var(--text)}

.section-block{
  margin-bottom:13px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:22px;
  background:linear-gradient(180deg,#111923,#0d141d);
}

.page-top-card{margin-top:2px}

.section-title-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}

.section-kicker{
  display:block;
  margin-bottom:5px;
  color:var(--muted);
  font-size:9px;
  font-weight:950;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.section-title-row h2,
.sheet-head h2{
  margin:0;
  font-size:20px;
  letter-spacing:-.025em;
}

.status-pill{
  padding:7px 10px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#182538;
  color:#e5edf8;
  font-size:10px;
  font-weight:900;
}

.matchup-list{
  display:grid;
  gap:11px;
  margin-top:16px;
}

.matchup-card{
  position:relative;
  padding:15px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#0b121b;
  cursor:pointer;
  overflow:hidden;
}

.matchup-card::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(90deg,var(--grant-soft),transparent 35%,transparent 65%,var(--noah-soft));
}

.matchup-top,
.matchup-score-row,
.matchup-bottom{
  position:relative;
  z-index:1;
}

.matchup-top{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:8px;
}

.matchup-team{
  font-size:12px;
  font-weight:900;
  letter-spacing:.02em;
}

.matchup-team.right{text-align:right}

.matchup-vs{
  color:var(--muted-2);
  font-size:9px;
  font-weight:900;
}

.matchup-score-row{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  gap:8px;
  align-items:center;
  margin-top:7px;
}

.matchup-score{
  font-size:28px;
  font-weight:950;
  letter-spacing:-.04em;
  font-variant-numeric:tabular-nums;
}

.matchup-score.right{text-align:right}

.matchup-score-dash{
  color:var(--muted-2);
  font-size:15px;
}

.matchup-bottom{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  gap:8px;
  align-items:center;
  margin-top:10px;
}

.cp{
  color:var(--muted);
  font-size:10px;
  font-weight:800;
}

.cp.right{text-align:right}

.detail-link{
  color:#b8c6d8;
  font-size:9px;
  font-weight:800;
}

.weekly-total-strip{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  gap:10px;
  align-items:center;
  margin-top:14px;
  padding-top:13px;
  border-top:1px solid var(--line-soft);
  font-size:11px;
}

.weekly-total-strip span:last-child{text-align:right}

.weekly-total-strip b{
  margin:0 4px;
  color:var(--text);
  font-size:20px;
  font-variant-numeric:tabular-nums;
}

.weekly-total-label{
  color:var(--muted);
  font-size:9px;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.standings-list,
.history-list{
  margin-top:14px;
}

.standing-row{
  display:grid;
  grid-template-columns:28px 1fr auto auto;
  gap:10px;
  align-items:center;
  padding:11px 0;
  border-top:1px solid var(--line-soft);
}

.standing-row:first-child{border-top:0}

.place{
  color:var(--muted);
  font-size:12px;
  font-weight:900;
}

.place.first{color:var(--gold)}

.standing-name{
  font-size:12px;
  font-weight:850;
}

.standing-score{
  font-size:12px;
  font-weight:900;
  font-variant-numeric:tabular-nums;
}

.standing-bonus{
  min-width:42px;
  padding:5px 7px;
  border-radius:999px;
  background:#172335;
  color:#dce6f3;
  text-align:center;
  font-size:9px;
  font-weight:900;
}

.history-row{
  display:grid;
  grid-template-columns:42px 1fr auto 1fr;
  gap:8px;
  align-items:center;
  padding:11px 0;
  border-top:1px solid var(--line-soft);
  color:var(--muted);
  font-size:11px;
}

.history-row:first-child{border-top:0}

.history-row .g{text-align:right}
.history-row .n{text-align:left}
.history-row b{color:var(--text)}

.race-big-score{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  gap:14px;
  align-items:end;
  margin-top:18px;
}

.race-big-score>div{
  display:flex;
  flex-direction:column;
}

.race-big-score>div:last-child{text-align:right}

.race-big-score span{
  color:var(--muted);
  font-size:11px;
  font-weight:850;
}

.race-big-score strong{
  margin-top:4px;
  font-size:48px;
  line-height:.92;
  letter-spacing:-.05em;
  font-variant-numeric:tabular-nums;
}

.race-big-dash{
  padding-bottom:7px;
  color:var(--muted-2)!important;
  font-size:21px!important;
}

.stats-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-top:16px;
}

.stat-card{
  min-height:116px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:17px;
  background:#0b121b;
}

.stat-card span,
.stat-card small{
  display:block;
  color:var(--muted);
  font-size:10px;
}

.stat-card strong{
  display:block;
  margin:9px 0 7px;
  font-size:28px;
  letter-spacing:-.035em;
}

.rules-list{
  display:grid;
  gap:8px;
  margin-top:14px;
}

.rules-list>div{
  display:grid;
  grid-template-columns:54px 1fr;
  gap:12px;
  align-items:center;
  padding:11px 12px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#0b121b;
}

.rules-list strong{
  color:var(--gold);
  font-size:19px;
}

.rules-list span{
  color:var(--muted);
  font-size:11px;
}

.view{display:none}
.active-view{display:block}

.bottom-nav{
  position:fixed;
  z-index:60;
  left:50%;
  bottom:0;
  transform:translateX(-50%);
  width:min(100%,760px);
  display:grid;
  grid-template-columns:repeat(4,1fr);
  padding:7px max(8px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));
  border-top:1px solid var(--line);
  background:rgba(7,12,18,.94);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}

.nav-btn{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  min-height:49px;
  border:0;
  border-radius:12px;
  color:var(--muted);
  background:transparent;
  font-size:9px;
  font-weight:850;
  cursor:pointer;
}

.nav-btn.active{
  color:var(--text);
  background:rgba(255,255,255,.035);
}

.nav-symbol{
  font-size:18px;
  line-height:1;
}

.error-card{
  margin-bottom:13px;
  padding:14px;
  border:1px solid rgba(248,113,113,.42);
  border-radius:16px;
  background:rgba(78,18,28,.72);
}

.error-card p{
  margin:5px 0 0;
  color:#fecaca;
  font-size:11px;
}

.detail-backdrop{
  position:fixed;
  z-index:80;
  inset:0;
  background:rgba(0,0,0,.58);
  backdrop-filter:blur(2px);
}

.detail-sheet{
  position:fixed;
  z-index:90;
  left:50%;
  bottom:0;
  transform:translateX(-50%);
  width:min(100%,760px);
  max-height:82vh;
  overflow:auto;
  padding:10px 16px calc(24px + env(safe-area-inset-bottom));
  border:1px solid var(--line);
  border-bottom:0;
  border-radius:24px 24px 0 0;
  background:#101822;
  box-shadow:0 -24px 60px rgba(0,0,0,.4);
}

.sheet-handle{
  width:44px;
  height:4px;
  margin:0 auto 14px;
  border-radius:999px;
  background:#405069;
}

.sheet-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding-bottom:13px;
  border-bottom:1px solid var(--line-soft);
}

.sheet-close{
  width:36px;
  height:36px;
  border:1px solid var(--line);
  border-radius:12px;
  color:var(--text);
  background:#172334;
  font-size:21px;
  cursor:pointer;
}

.detail-matchup-score{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  gap:12px;
  align-items:center;
  padding:18px 0;
}

.detail-team:last-child{text-align:right}

.detail-team span{
  display:block;
  color:var(--muted);
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
}

.detail-team strong{
  display:block;
  margin-top:4px;
  font-size:34px;
  letter-spacing:-.04em;
}

.detail-vs{
  color:var(--muted-2);
  font-size:10px;
  font-weight:900;
}

.breakdown-card{
  margin-top:10px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#0b121b;
}

.breakdown-title{
  display:flex;
  justify-content:space-between;
  gap:10px;
  margin-bottom:11px;
  font-size:12px;
  font-weight:900;
}

.breakdown-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:7px 0;
  border-top:1px solid var(--line-soft);
  color:var(--muted);
  font-size:11px;
}

.breakdown-row strong{color:var(--text)}

.hidden{display:none!important}

@media(max-width:520px){
  .app-shell{padding-left:12px;padding-right:12px}
  .topbar h1{font-size:29px}
  .championship-board,.section-block{border-radius:19px}
  .championship-board{padding:18px 14px 15px}
  .section-block{padding:15px}
  .owner-side strong{font-size:46px}
  .owner-sub{font-size:9px}
  .matchup-card{padding:13px 12px}
  .matchup-score{font-size:25px}
  .standing-row{grid-template-columns:24px 1fr auto auto;gap:8px}
}

@media(max-width:360px){
  .owner-sub{display:none}
  .championship-score{gap:9px}
  .owner-side strong{font-size:42px}
  .matchup-team{font-size:11px}
}


/* V3 — live outlook */
.needs-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-top:16px;
}

.needs-owner{
  padding:14px;
  border:1px solid var(--line);
  border-radius:17px;
  background:#0b121b;
}

.grant-needs{
  box-shadow:inset 3px 0 0 rgba(216,64,73,.82);
}

.noah-needs{
  box-shadow:inset -3px 0 0 rgba(47,158,98,.82);
}

.needs-owner-head{
  margin-bottom:10px;
}

.needs-owner-head span{
  display:block;
  color:var(--muted);
  font-size:9px;
  font-weight:950;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.needs-owner-head strong{
  display:block;
  margin-top:4px;
  font-size:15px;
  letter-spacing:-.02em;
}

.needs-lines{
  display:grid;
  gap:7px;
}

.need-line{
  padding-top:8px;
  border-top:1px solid var(--line-soft);
}

.need-line span{
  display:block;
  margin-bottom:3px;
  color:var(--muted);
  font-size:9px;
  font-weight:800;
}

.need-line b{
  display:block;
  color:#edf3fa;
  font-size:10px;
  line-height:1.35;
}

.projection-note{
  margin:12px 0 0;
  color:var(--muted-2);
  font-size:9px;
  line-height:1.45;
}

@media(max-width:520px){
  .needs-grid{
    grid-template-columns:1fr;
  }

  .noah-needs{
    box-shadow:inset 3px 0 0 rgba(47,158,98,.82);
  }
}


/* V4 — expanded Race page */
body.race-mode .app-shell{
  width:min(100%,1240px);
}

body.race-mode .bottom-nav{
  width:min(100%,1240px);
}

.race-hero{
  position:relative;
  display:grid;
  grid-template-columns:1fr minmax(180px,.7fr) 1fr;
  gap:18px;
  align-items:start;
  padding:16px 32px 26px;
  margin-bottom:16px;
}

.race-hero-owner{
  display:flex;
  flex-direction:column;
}

.race-hero-owner.noah-side{
  align-items:flex-end;
  text-align:right;
}

.race-owner-label{
  font-size:11px;
  font-weight:950;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.grant-side .race-owner-label,
.grant-text{
  color:var(--grant);
}

.noah-side .race-owner-label,
.noah-text{
  color:var(--noah);
}

.race-hero-owner>strong{
  margin:4px 0 5px;
  font-size:40px;
  line-height:.95;
  letter-spacing:-.05em;
}

.race-hero-owner small{
  color:var(--muted);
  font-size:10px;
}

.race-hero-center{
  text-align:center;
}

.race-hero-score{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:22px;
  margin-top:4px;
}

.race-hero-score strong{
  font-size:28px;
  letter-spacing:-.04em;
}

.race-hero-score span{
  color:var(--muted-2);
  font-size:20px;
}

.race-meter-wrap{
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:24px 1fr 24px;
  gap:11px;
  align-items:center;
  margin-top:3px;
}

.race-meter{
  position:relative;
  display:flex;
  height:7px;
  overflow:visible;
  border-radius:999px;
  background:#152131;
}

.race-meter-grant,
.race-meter-noah{
  height:100%;
  transition:width .3s ease;
}

.race-meter-grant{
  border-radius:999px 0 0 999px;
  background:linear-gradient(90deg,#f04c55,#b8a5a5);
}

.race-meter-noah{
  border-radius:0 999px 999px 0;
  background:linear-gradient(90deg,#91a886,#36a661);
}

.race-meter-mid{
  position:absolute;
  left:50%;
  top:-5px;
  width:2px;
  height:17px;
  transform:translateX(-1px);
  background:#f8fafc;
  opacity:.9;
}

.race-meter-letter{
  font-size:18px;
  font-weight:950;
}

.grant-letter{color:var(--grant)}
.noah-letter{color:var(--noah);text-align:right}

.race-hero-lead{
  grid-column:1 / -1;
  margin-top:-5px;
  color:var(--muted);
  text-align:center;
  font-size:10px;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.race-chart-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) 190px;
  overflow:hidden;
  margin-bottom:16px;
  border:1px solid var(--line);
  border-radius:20px;
  background:linear-gradient(180deg,#111923,#0d141d);
}

.race-chart-main{
  min-width:0;
  padding:18px 18px 10px;
}

.race-chart-title{
  padding:0 2px 8px;
}

.race-chart{
  width:100%;
  min-height:360px;
}

.race-svg{
  display:block;
  width:100%;
  height:auto;
  overflow:visible;
}

.chart-grid-line{
  stroke:rgba(148,163,184,.16);
  stroke-width:1;
}

.chart-week-line{
  stroke:rgba(148,163,184,.07);
  stroke-width:1;
}

.chart-axis-label{
  fill:#93a2b6;
  font-size:10px;
  font-weight:700;
}

.chart-y-title{
  fill:#c3cedd;
  font-size:10px;
  font-weight:800;
}

.chart-line{
  fill:none;
  stroke-width:3.3;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.chart-grant-line{
  stroke:var(--grant);
}

.chart-noah-line{
  stroke:var(--noah);
}

.chart-avatar circle{
  fill:#111923;
  stroke-width:3;
}

.chart-avatar text{
  fill:#fff;
  font-size:16px;
  font-weight:950;
}

.chart-grant-avatar circle{stroke:var(--grant)}
.chart-noah-avatar circle{stroke:var(--noah)}

.race-summary{
  padding:20px;
  border-left:1px solid var(--line);
  background:#0e1722;
}

.race-summary-block{
  padding:4px 0;
}

.race-summary-label{
  display:block;
  color:var(--muted);
  font-size:10px;
  font-weight:950;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.race-summary-block strong{
  display:block;
  margin:6px 0 4px;
  font-size:31px;
  letter-spacing:-.04em;
}

.race-summary-block small{
  color:var(--muted);
  font-size:10px;
}

.race-summary-divider{
  height:1px;
  margin:17px 0;
  background:var(--line-soft);
}

.race-results-card{
  padding:18px;
  border:1px solid var(--line);
  border-radius:20px;
  background:linear-gradient(180deg,#111923,#0d141d);
}

.race-table-wrap{
  margin-top:15px;
  overflow-x:auto;
  border:1px solid var(--line);
  border-radius:14px;
}

.race-table{
  width:100%;
  min-width:920px;
  border-collapse:collapse;
  font-size:10px;
}

.race-table th,
.race-table td{
  padding:12px 11px;
  border-right:1px solid var(--line-soft);
  border-bottom:1px solid var(--line-soft);
  text-align:center;
  vertical-align:middle;
}

.race-table th:last-child,
.race-table td:last-child{
  border-right:0;
}

.race-table tbody tr:last-child td{
  border-bottom:0;
}

.race-table th{
  color:#c7d2e0;
  background:#101927;
  font-size:9px;
  font-weight:950;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.race-table td{
  color:#dce6f2;
}

.table-pair{
  display:flex;
  justify-content:center;
  gap:12px;
  font-weight:900;
}

.leader-grant{
  color:var(--grant)!important;
  font-weight:950;
}

.leader-noah{
  color:var(--noah)!important;
  font-weight:950;
}

@media(max-width:800px){
  .race-hero{
    padding:12px 6px 20px;
    grid-template-columns:1fr auto 1fr;
  }

  .race-hero-center{
    min-width:110px;
  }

  .race-chart-card{
    grid-template-columns:1fr;
  }

  .race-summary{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:10px;
    border-left:0;
    border-top:1px solid var(--line);
  }

  .race-summary-divider{
    display:none;
  }

  .race-summary-block{
    min-width:0;
  }

  .race-summary-block strong{
    font-size:24px;
  }
}

@media(max-width:520px){
  body.race-mode .app-shell{
    width:100%;
  }

  .race-hero{
    gap:8px;
  }

  .race-hero-owner>strong{
    font-size:32px;
  }

  .race-hero-owner small{
    display:none;
  }

  .race-hero-score{
    gap:10px;
  }

  .race-hero-score strong{
    font-size:22px;
  }

  .race-chart-main{
    padding:15px 10px 4px;
  }

  .race-chart{
    min-height:260px;
    overflow-x:auto;
  }

  .race-svg{
    width:760px;
    max-width:none;
  }

  .race-summary{
    padding:14px;
  }

  .race-summary-block strong{
    font-size:21px;
  }

  .race-summary-block small{
    font-size:8px;
  }

  .race-results-card{
    padding:14px;
  }
}


/* V6 — NFL Network-style live ticker */
body{
  padding-bottom:calc(124px + env(safe-area-inset-bottom));
}

.network-ticker{
  position:fixed;
  z-index:58;
  left:50%;
  bottom:calc(63px + env(safe-area-inset-bottom));
  transform:translateX(-50%);
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  width:min(100%,1240px);
  height:48px;
  overflow:hidden;
  border-top:1px solid #344155;
  border-bottom:1px solid #202b3b;
  background:#09111b;
  box-shadow:0 -10px 30px rgba(0,0,0,.28);
}

.ticker-brand{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  gap:7px;
  padding:0 14px;
  border-right:1px solid #374458;
  background:linear-gradient(180deg,#152131,#0e1824);
  white-space:nowrap;
}

.ticker-brand strong{
  color:#f4f7fb;
  font-size:9px;
  font-weight:950;
  letter-spacing:.11em;
}

.ticker-live-dot{
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--grant);
  box-shadow:0 0 0 3px rgba(216,64,73,.14);
}

.ticker-window{
  min-width:0;
  overflow:hidden;
  mask-image:linear-gradient(
    90deg,
    transparent,
    #000 22px,
    #000 calc(100% - 22px),
    transparent
  );
  -webkit-mask-image:linear-gradient(
    90deg,
    transparent,
    #000 22px,
    #000 calc(100% - 22px),
    transparent
  );
}

.ticker-track{
  display:flex;
  width:max-content;
  height:100%;
  will-change:transform;
  animation:normandieTicker 42s linear infinite;
}

.ticker-track:hover{
  animation-play-state:paused;
}

.ticker-track.ticker-paused{
  animation:none;
}

.ticker-set{
  display:flex;
  flex-shrink:0;
  align-items:stretch;
}

.ticker-item{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:max-content;
  padding:0 18px;
  border-right:1px solid rgba(148,163,184,.18);
  color:#dbe4ef;
  font-size:10px;
  white-space:nowrap;
}

.ticker-item strong{
  color:#fff;
  font-size:11px;
  font-variant-numeric:tabular-nums;
}

.ticker-status,
.ticker-rank{
  padding:4px 6px;
  border-radius:5px;
  background:#1a2636;
  color:#aebed2;
  font-size:8px;
  font-weight:950;
  letter-spacing:.08em;
}

.ticker-score-item .ticker-status{
  color:#fff;
  background:#9e2730;
}

.ticker-team{
  font-weight:850;
}

.ticker-vs{
  color:#617089;
}

.ticker-player-name{
  color:#f2f6fa;
  font-weight:900;
}

.ticker-player-meta{
  color:#8291a5;
  font-size:9px;
}

@keyframes normandieTicker{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}

@media(max-width:760px){
  .network-ticker{
    width:100%;
  }

  .ticker-brand{
    padding:0 10px;
  }

  .ticker-item{
    padding:0 13px;
  }
}



/* V7 — real NFL scores from ESPN */
.ticker-score-item .ticker-status.ticker-live-status{
  color:#fff;
  background:#c52e39;
  box-shadow:0 0 0 1px rgba(255,255,255,.06);
}

.ticker-score-item .ticker-status.ticker-final-status{
  color:#d5dfeb;
  background:#273447;
}

.ticker-score-item .ticker-status.ticker-upcoming-status{
  color:#dbe4ef;
  background:#172436;
}

.ticker-score-item strong{
  min-width:14px;
  text-align:center;
}

@media(max-width:520px){
  .ticker-brand strong{
    font-size:8px;
  }
}


/* V8 — iOS / Safari ticker animation fix */
.ticker-window{
  position:relative;
  overflow:hidden;
  -webkit-transform:translateZ(0);
  transform:translateZ(0);
}

.ticker-track{
  display:-webkit-flex;
  display:flex;
  flex-wrap:nowrap;
  width:max-content;
  min-width:max-content;
  height:100%;
  -webkit-animation:normandieTickerIOS 42s linear infinite;
  animation:normandieTickerIOS 42s linear infinite;
  -webkit-transform:translate3d(0,0,0);
  transform:translate3d(0,0,0);
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
  will-change:transform;
}

.ticker-set{
  display:-webkit-flex;
  display:flex;
  flex:0 0 auto;
  -webkit-flex:0 0 auto;
  width:max-content;
  min-width:max-content;
  align-items:stretch;
}

@-webkit-keyframes normandieTickerIOS{
  0%{
    -webkit-transform:translate3d(0,0,0);
    transform:translate3d(0,0,0);
  }
  100%{
    -webkit-transform:translate3d(-50%,0,0);
    transform:translate3d(-50%,0,0);
  }
}

@keyframes normandieTickerIOS{
  0%{
    -webkit-transform:translate3d(0,0,0);
    transform:translate3d(0,0,0);
  }
  100%{
    -webkit-transform:translate3d(-50%,0,0);
    transform:translate3d(-50%,0,0);
  }
}

/*
  Intentionally keep the sports ticker moving even when iOS Reduce Motion
  is enabled. This is a user-requested live scoreboard element rather than
  decorative page motion.
*/
@media(prefers-reduced-motion:reduce){
  .ticker-track{
    -webkit-animation:normandieTickerIOS 48s linear infinite;
    animation:normandieTickerIOS 48s linear infinite;
  }
}

/* Prevent iOS long-press / text selection from interrupting ticker rendering. */
.network-ticker,
.ticker-track,
.ticker-set,
.ticker-item{
  -webkit-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
}
