/* Editorial NBA front page with a high-contrast dark simulation workbench.
   Presentation changes live here: the historical possession engine is intact. */
:root{color-scheme:light;--page:#f8f7f3;--ink:#12171c;--editorial-line:#d9dcd9;--primary-orange:#e95320}
[hidden]{display:none!important}
html{scroll-padding-top:20px}
body{background:var(--page);color:var(--ink)}
.app-shell{width:min(1560px,100%);padding:0 clamp(18px,3.15vw,54px)}
.topbar{height:88px;border-bottom:2px solid #161b1e}
.brand{color:#101518;font-size:29px;letter-spacing:.018em;gap:12px}
.brand{text-decoration:none}
.brand:hover{color:#101518}
.brand:focus-visible{outline:3px solid var(--primary-orange);outline-offset:5px;border-radius:2px}
.brand-mark{background:#fa6231;width:37px;height:37px;transform:none}
.brand-mark svg{stroke:#101518}
.brand-orange{color:#ed592b}
.nav-pills{gap:25px;font:800 10px/1.2 var(--body);letter-spacing:.095em;color:#262d32}
.nav-pills a{text-decoration:none;transition:color .2s}
.nav-pills a:hover{color:var(--primary-orange)}
.nav-pills a[aria-current="page"]:not(.nav-doc){color:#e24e1e}
.nav-pills .nav-doc[aria-current="page"]{background:#ea5525;border-color:#ea5525}
.nav-pills .nav-doc{background:#191e21;color:#fff;border:1px solid #191e21;border-radius:3px;padding:13px 16px}
.nav-pills .nav-doc:hover{color:#fff;background:#d94c1b}
.section-kicker,.eyebrow{color:#dd4b1b;letter-spacing:.12em}
.homepage-grid{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(310px,.85fr);gap:24px;margin:28px 0 29px}
.homepage-feature{min-width:0}
.masthead{padding:9px 2px 30px;align-items:center}
.masthead h1{font-size:clamp(50px,5vw,82px);margin:13px 0 13px;letter-spacing:-.025em;color:#121820}
.masthead h1 em{color:#e44d1d}
.masthead p{font-size:13px;line-height:1.68;color:#667078;max-width:600px}
.masthead-index{color:#eaebea;flex-shrink:0;align-items:center}
.masthead-index>span{font-size:clamp(88px,11vw,150px);color:#e9e9e4}
.masthead-index small{color:#7f8587;font-size:9px;max-width:73px;white-space:normal}
.featured-matchup{--feature-away:#ed5b28;--feature-home:#e3a518;position:relative;isolation:isolate;min-height:349px;overflow:hidden;color:white;background:linear-gradient(106deg,var(--feature-away) 0%,var(--feature-away) 48%,var(--feature-home) 48.2%,var(--feature-home) 100%);box-shadow:0 20px 32px #18202315}
.featured-matchup::after{content:'';position:absolute;inset:44% 0 0;background:linear-gradient(0deg,#050505b9,transparent);z-index:-1}
.feature-empty{padding:36px 38px;min-height:349px;background:linear-gradient(115deg,#f05a21 0%,#f05a21 54%,#ffbc1c 54%,#ffbc1c 100%);color:#fff}
.feature-empty span,.feature-header,.feature-bottom{font:800 10px var(--body);letter-spacing:.13em}
.feature-empty h2{font:900 clamp(54px,6vw,92px)/.89 var(--display);margin:34px 0 15px;text-shadow:0 3px 16px #13131333}
.feature-empty p{font-size:13px;max-width:320px;color:#fff;margin:0}
.feature-header{display:flex;justify-content:space-between;gap:12px;padding:21px 29px 0;text-shadow:0 2px 10px #0005}
.feature-teams{display:grid;grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr);align-items:center;gap:3px;padding:8px 23px 4px;min-height:239px}
.feature-team{display:flex;align-items:flex-start;flex-direction:column;min-width:0}
.feature-team-home{align-items:flex-end;text-align:right}
.feature-team small{font:800 10px var(--body);letter-spacing:.13em;text-shadow:0 1px 8px #0008}
.feature-team img{width:clamp(90px,11.8vw,170px);height:clamp(90px,11.8vw,170px);object-fit:contain;filter:drop-shadow(0 13px 19px #0008);align-self:center;margin:-7px 0 -12px}
.feature-team h2{margin:0;font:900 clamp(43px,5.2vw,74px)/.94 var(--display);letter-spacing:.01em;text-shadow:0 2px 10px #0007}
.feature-team>div{font:800 9px var(--body);letter-spacing:.07em;text-shadow:0 2px 7px #0008}
.feature-team>div strong{font-size:18px;letter-spacing:0;margin-right:5px}
.feature-versus{font:900 33px var(--display);color:#ffffffd6;text-align:center;text-shadow:0 2px 9px #0005}
.feature-bottom{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:11px 28px;background:#090b0b99}
.feature-bottom>span{color:#e8e8e3;font-size:9px;line-height:1.4}
.feature-bottom button{background:#fff;color:#171b1d;border:0;font:900 10px var(--body);padding:12px 16px;letter-spacing:.02em;white-space:nowrap}
.feature-bottom button:hover{background:#ffe9dc}
.feature-bottom button span{margin-left:6px}
.daily-desk{min-width:0;background:#fff;border:1px solid #dedfdb;padding:23px 22px 17px;display:flex;flex-direction:column;gap:13px}
.daily-desk-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;border-bottom:2px solid #191e22;padding-bottom:17px}
.daily-desk-heading h2{font:900 34px/.93 var(--display);margin:6px 0 0;color:#171b1f}
.daily-desk-heading>span{font:800 10px var(--body);color:#64707a;white-space:nowrap}
.today-games{overflow-y:auto;min-height:140px;max-height:480px;scrollbar-color:#cfd2d1 #fff;scrollbar-width:thin}
.today-empty{padding:30px 18px;color:#6a7377;font-size:12px;line-height:1.6}
.today-rest{padding:24px 4px 14px;color:#64717a}
.today-rest-label{display:inline-block;font:900 9px var(--body);letter-spacing:.14em;color:#e25025}
.today-rest h3{font:900 34px/.98 var(--display);color:#19252a;margin:10px 0 12px}
.today-rest p{font:600 12px/1.6 var(--body);margin:0 0 17px;max-width:340px}
.next-slate-heading{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:14px 0 10px;border-top:2px solid #19252a}
.next-slate-heading strong{font:900 9px var(--body);letter-spacing:.1em;color:#e25025}
.next-slate-heading span{font:800 11px var(--body);color:#26373b}
.next-slate-list{display:flex;flex-direction:column}
.next-slate-game{display:flex;align-items:center;justify-content:space-between;gap:8px;background:transparent;border:0;border-bottom:1px solid #e2e6e3;padding:12px 2px;color:#1d2b2f;text-align:left;cursor:pointer}
.next-slate-game:hover,.next-slate-game:focus-visible{background:#f0f3f0;outline-offset:2px}
.next-slate-game b{font:900 21px var(--display);white-space:nowrap}
.next-slate-game b span{font:800 9px var(--body);color:#a5afb0}
.next-slate-game small{font:800 10px var(--body);white-space:nowrap;color:#68797d}
.next-slate-count{display:block;color:#76848a;font:700 10px var(--body);margin:10px 0}
.today-rest .next-slate-unavailable{margin-top:13px}
.today-history-link{display:inline-block;color:#d64f20;font:900 10px var(--body);letter-spacing:.06em;text-decoration:none;margin-top:20px}
.today-history-link:hover{text-decoration:underline}
.today-game{padding:12px 3px 15px;border-bottom:1px solid #e4e4e1}
.today-game:last-child{border:0}
.today-game-top{display:flex;justify-content:space-between;gap:7px;color:#7c8588;font:800 9px var(--body);letter-spacing:.08em;margin-bottom:11px}
.today-game.is-live .today-game-top span:first-child{color:#dd5025}
.today-game-top .today-status-live{color:#da4e23;font-weight:900}
.today-team-row{display:flex;justify-content:space-between;align-items:center;margin:8px 0;gap:9px;font:900 18px var(--display)}
.today-team-row>span{display:flex;align-items:center;gap:10px}
.today-team-row img{width:30px;height:30px;object-fit:contain}
.today-team-row strong{font:900 23px var(--display);font-variant-numeric:tabular-nums}
.today-team-row .today-actual-score{font:900 30px/1 var(--display);color:#18232a;font-variant-numeric:tabular-nums}
.today-home-marker{font:800 8px var(--body);letter-spacing:.05em;background:#e6eeeb;color:#497061;padding:3px 4px}
.today-venue{margin:9px 0 8px;padding-left:2px;display:flex;flex-direction:column;color:#6c777c;gap:2px;font-size:10px;line-height:1.45}
.today-venue span:first-child{font-weight:800;color:#36444b}
.today-projected-score{display:flex;justify-content:space-between;align-items:center;gap:8px;font:800 9px var(--body);letter-spacing:.05em;color:#59676b;margin:9px 0 11px}
.today-projected-score strong{font:900 16px var(--display);letter-spacing:0;color:#20292b}
.today-projected-score.pending{font-weight:600;letter-spacing:0;color:#7d898a}
.today-forecast-card{background:#f2f5f3;border-left:3px solid #db5a2e;padding:10px 11px;margin:12px 0 13px;min-width:0}
.today-forecast-card-head{display:flex;align-items:center;justify-content:space-between;gap:7px;flex-wrap:wrap;font:900 9px/1.35 var(--body);letter-spacing:.045em;color:#b84826}
.today-forecast-card-head small{font:800 8px/1.35 var(--body);color:#7e8b8e;letter-spacing:.02em}
.today-forecast-card-body{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:7px}
.today-forecast-scores{display:flex;align-items:baseline;gap:6px;white-space:nowrap;font:800 10px var(--body);color:#647479}
.today-forecast-scores span{display:flex;align-items:baseline;gap:5px}
.today-forecast-scores strong{font:900 22px/1 var(--display);color:#202d32;font-variant-numeric:tabular-nums}
.today-forecast-scores i{font-style:normal;font-weight:900;color:#a5b0ae}
.today-forecast-chance{font:800 9px var(--body);color:#667479;white-space:nowrap}
.today-forecast-chance strong{font-weight:900;color:#bd4f2d}
.today-forecast-missing{padding:10px 0 12px;font:600 10px/1.4 var(--body);color:#7e8b8e}
.today-game-bar{height:5px;background:#171d20;margin:13px 0 10px;overflow:hidden}
.today-game-bar i{height:100%;display:block;background:#ee5c2c}
.today-full-button{padding:2px 0;border:0;background:none;color:#d64f20;font:900 9px var(--body);letter-spacing:.08em;width:100%;display:flex;justify-content:space-between;align-items:center}
.today-full-button:hover{text-decoration:underline}
.today-full-button span{font-size:16px}
.today-updated{font:800 9px/1.55 var(--body);color:#899193;letter-spacing:.055em;border-top:1px solid #e4e5e2;padding-top:12px;margin:0}
.secondary-view{min-height:66vh;padding:24px 0 45px}
.secondary-hero{padding:34px 3px 29px;border-bottom:2px solid #1e2424;margin-bottom:24px}
.secondary-hero h1{font:900 clamp(57px,8vw,111px)/.87 var(--display);letter-spacing:-.015em;margin:15px 0 17px;color:#172127}
.secondary-hero h1 em{font-style:normal;color:#e95620}
.secondary-hero p{color:#697678;font:500 14px/1.6 var(--body);max-width:685px;margin:0}
.matchup-builder{background:#fff;border:1px solid #d8dcd8;border-radius:0;box-shadow:0 6px 21px #24292808;padding:25px 29px 22px;margin-bottom:25px}
.builder-heading{display:flex;gap:18px;align-items:baseline;margin-bottom:19px}
.builder-heading h2{font:900 33px var(--display);color:#161b1f}
.builder-heading p{font-size:11px;color:#7e878c;margin:0 0 0 auto}
.builder-fields{display:grid!important;grid-template-columns:minmax(0,1fr) 36px minmax(0,1fr) minmax(165px,.55fr)!important;align-items:end;gap:17px}
.builder-fields .field{color:#555e62;letter-spacing:.09em}
.field select{height:52px;background:#f7f8f6;color:#172025;border:1px solid #cdd3d0;border-radius:0;font-weight:700;font-size:13px;padding:0 15px}
.field select:focus{border-color:#ed5626;box-shadow:0 0 0 2px #f9af903b}
.field select option:disabled{color:#808887}
.versus-mark{height:52px;color:#aaada8}
.btn-primary{background:#ef5927;border-color:#ef5927;color:#fff}
.btn-primary:hover{background:#c83f14;color:#fff}
.setup-button{height:52px;border-radius:0;font:900 12px var(--body);letter-spacing:.04em}
.pregame-guidance{color:#919994;font-size:11px;margin:12px 0 0}
.model-notes-view .validation-panel{background:#fff;border:1px solid #d8dedc;color:#17222a;border-radius:0;box-shadow:0 6px 21px #2429280c;margin:20px 0;padding:28px 30px}
.model-notes-view .validation-head h2{color:#172129;font-size:42px;letter-spacing:0}
.model-notes-view .validation-head p{color:#56666e;font-size:12px;line-height:1.7;max-width:810px}
.model-notes-view .validation-badge{background:#fff2e9;border:1px solid #f6cfba;color:#c34c1d}
.model-notes-view .validation-metrics>div{background:#f4f7f6;border:1px solid #dce3df}
.model-notes-view .validation-metrics small{color:#727e84}
.model-notes-view .validation-metrics strong{color:#1c2c32}
.model-notes-view .validation-table-wrap{border-color:#dce3df}
.model-notes-view .validation-table th{background:#eaf0ed;color:#4a626e}
.model-notes-view .validation-table td{color:#42525d;border-color:#edf0ee}
.model-notes-view .validation-table td:first-child{color:#1b2d35}
.model-notes-view .validation-table .good{color:#148568}
.model-notes-view .validation-table .bad{color:#c45431}
.model-notes-view .validation-caveat{color:#67777d}
.model-notes-view .validation-caveat strong{color:#20303a}
.model-notes-view .hybrid-evaluation{background:#e9f4ee;border-color:#c3dfcf;color:#2f6051}
.model-notes-view .hybrid-evaluation strong{color:#16775c}
.model-notes-view .rotation-evaluation{background:#edf3f6;border-color:#cbdce3;color:#425e6b}
.model-notes-view .rotation-evaluation strong{color:#255a84}
.model-notes-view .rotation-evaluation th,.model-notes-view .rotation-evaluation td{border-color:#cbdbe2}
.model-notes-view .rotation-evaluation td:last-child{color:#138264}
.model-notes-view .rotation-evaluation small{color:#637781}
.model-notes-view .methodology{padding:32px;border:1px solid #d6ddda;background:#fff;margin-top:25px}
.model-notes-view .methodology h2{color:#18242a}
.availability{margin-top:0;margin-bottom:22px;background:#fff;color:#1e2427;border:1px solid #d8dcd8;box-shadow:0 6px 21px #24292808;border-radius:0}
.availability-head{padding:24px 29px}
.availability-head h2{color:#171d20;font:900 34px/1 var(--display)}
.availability-head p{font-size:11px;color:#616d70;margin-top:7px}
.availability-head .live-injury-banner{color:#7a888a;background:transparent;padding:0;border-left:0;display:inline-block;font:700 10px var(--body);letter-spacing:0}
.availability-head .btn-outline{background:#161c20;color:#fff;border-color:#161c20;border-radius:0}
.availability-head .btn-outline:hover:not(:disabled){background:#e95522;border-color:#e95522}
.availability-content{background:#f9faf8;border-top:1px solid #daddd9}
.availability-note{background:#eaf4ef;border-color:#c4ddd1}
.availability-note p{color:#4c6562}
.availability-note strong{color:#1b2e2a}
.availability-note .small-btn{background:#fff;color:#21312b;border-color:#c9d8d2}
.injury-feed-row{background:#fff;border-color:#d5dad5}
.feed-switch strong{color:#151c20}
.feed-switch small{color:#63706e}
.injury-feed-row>a{color:#df4c1b}
.availability-team{background:#fff;border-color:#d5dad6}
.availability-team h3{color:#222b2e;border-color:#e3e5e2}
.availability-roster{scrollbar-color:#ccd6d0 #fff}
.availability-player{border-color:#e8eae5}
.player-name b{color:#1a2325}
.player-name small{color:#7c8689}
.availability-player.is-out{background:#fff0eb}
.availability-status{color:#169570}
.is-out .availability-status{color:#b64524}
.minutes-select,.starter-select{background:#fff!important;color:#273033!important;border:1px solid #d8dcd7!important;border-radius:2px!important}
.availability .btn-outline:disabled,.setup-button:disabled{opacity:.46}
.forecast-panel{--away-accent:#de6583;--home-accent:#55a9a5;margin:0 0 21px;background:linear-gradient(148deg,#14232a 0%,#101820 63%,#122029 100%);border:0;border-radius:0;box-shadow:0 16px 30px #17252b15;color:#f4f7f6}
.forecast-topline h2{font-size:45px}
.forecast-idle{margin:22px 0 2px;padding:36px 24px;background:#101b22;border:1px dashed #36505d;display:flex;align-items:center;flex-direction:column;text-align:center}
.forecast-idle-icon{width:53px;height:53px;border:1px solid #576f76;display:grid;place-items:center;border-radius:50%;color:#ff915b;font-size:31px}
.forecast-idle h3{font:900 32px var(--display);text-transform:uppercase;margin:14px 0 4px}
.forecast-idle p{font-size:12px;color:#9cb4b9;max-width:395px;line-height:1.7;margin:0}
.forecast-score-main strong{letter-spacing:-.025em}
.forecast-panel .forecast-away .forecast-score-main strong,.forecast-panel .forecast-away .forecast-team-name{color:color-mix(in srgb,var(--away-accent) 52%,#fff 48%);text-shadow:0 3px 14px #0005}
.forecast-panel .forecast-home .forecast-score-main strong,.forecast-panel .forecast-home .forecast-team-name{color:color-mix(in srgb,var(--home-accent) 52%,#fff 48%);text-shadow:0 3px 14px #0005}
.forecast-score-range{display:none!important}
.forecast-insights{grid-template-columns:repeat(3,1fr)}
.insight-help{display:inline-grid;place-items:center;border:1px solid #70909a;width:17px;height:17px;margin-left:5px;border-radius:50%;cursor:help;color:#c7e4ea;font-size:10px;text-decoration:none;vertical-align:middle}
.insight-help:hover,.insight-help:focus{border-color:#ffbd87;color:#ffbd87;outline:none}
.sample-intro{margin-top:36px}
.sample-intro h2{color:#162027}
.sample-intro p{color:#6c7c84}
.scoreboard{--away-accent:#de6583;--home-accent:#55a9a5;border-radius:0;color:#f2f6f5;background:linear-gradient(150deg,#131d29,#0c1620)}
.scoreboard .left-team .score-digits,.scoreboard .left-team .team-ident h2{color:color-mix(in srgb,var(--away-accent) 52%,#fff 48%);text-shadow:0 3px 18px #0007}
.scoreboard .right-team .score-digits,.scoreboard .right-team .team-ident h2{color:color-mix(in srgb,var(--home-accent) 52%,#fff 48%);text-shadow:0 3px 18px #0007}
.scoreboard .game-clock{color:#f2f6f5;text-shadow:0 3px 18px #0007}
.scoreboard .clock-overline,.scoreboard .team-label{color:#a6bcc8}
.scoreboard .team-ident p{color:#acbfc9}
.score-grid img:not([src]){display:none}
.metrics-grid .card,.middle-grid .card,.stats-panel{background:#121b25;border-color:#2b3542;color:#f1f2ed}
.methodology{border-top:2px solid #24292d;border-bottom:1px solid #d5d9d3;color:#1b2428;margin-top:40px}
.methodology h2{color:#1b2428}
.method-copy p{color:#667275;font-size:12px}
.method-copy strong{color:#1c2a30}
.source-links a{color:#d65021}
footer{border-top:1px solid #d9dcd5;color:#838b8b;padding:24px 0 35px}
footer span:first-child{color:#1a2023}
@media(max-width:1100px){
  .homepage-grid{grid-template-columns:minmax(0,1.5fr) minmax(290px,.9fr);gap:16px}
  .masthead h1{font-size:clamp(51px,5.2vw,72px)}
  .masthead-index{display:none}
  .today-games{max-height:400px}
  .feature-team img{width:120px;height:120px}
  .feature-teams{min-height:240px}
}
@media(max-width:850px){
  .homepage-grid{grid-template-columns:1fr;gap:20px;margin-top:12px}
  .masthead{padding:28px 0 30px}
  .masthead h1{font-size:clamp(62px,9vw,88px)}
  .daily-desk{padding:21px}
  .today-games{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px;max-height:430px}
  .featured-matchup{min-height:340px}
  .builder-fields{grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr)!important}
  .setup-button{grid-column:1/-1}
  .builder-heading{flex-wrap:wrap}
  .builder-heading p{margin-left:0}
}
@media(max-width:550px){
  .app-shell{padding:0 14px}
  .topbar{height:69px}
  .brand{font-size:23px}
  .brand-mark{width:29px;height:29px}
  .nav-pills>a:not(.nav-doc){display:none}
  .nav-pills .nav-doc{font-size:8px;padding:10px}
  .secondary-hero h1{font-size:57px}
  .model-notes-view .validation-panel{padding:19px 14px}
  .model-notes-view .validation-head h2{font-size:35px}
  .model-notes-view .methodology{padding:22px 17px}
  .today-home-marker{font-size:7px}
  .masthead h1{font-size:58px;line-height:.93}
  .masthead p{font-size:12px}
  .feature-header{padding:15px 14px 0;font-size:8px}
  .feature-teams{padding:12px 9px 16px;grid-template-columns:minmax(0,1fr) 33px minmax(0,1fr);min-height:219px}
  .feature-team img{width:95px;height:95px}
  .feature-team h2{font-size:53px}
  .feature-team>div{font-size:7px}
  .feature-team>div strong{font-size:16px}
  .feature-bottom{padding:12px;align-items:stretch;flex-direction:column}
  .feature-bottom button{padding:10px}
  .featured-matchup{min-height:310px}
  .daily-desk-heading h2{font-size:32px}
  .today-games{grid-template-columns:1fr;max-height:445px}
  .matchup-builder{padding:21px 17px}
  .builder-heading{display:block}
  .builder-heading h2{margin-top:6px}
  .builder-heading p{margin-top:6px}
  .builder-fields{gap:9px}
  .field select{font-size:11px;padding:0 7px;height:45px}
  .versus-mark{height:45px}
  .setup-button{height:48px}
  .availability-head{padding:18px}
  .availability-head h2{font-size:28px}
  .forecast-topline h2{font-size:36px}
  .forecast-idle{padding:24px 13px}
  .forecast-insights{gap:8px}
  .insight-help{width:16px;height:16px}
  footer span:last-child{display:none}
}
