:root{--ink:#424242;--muted:#587089;--paper:#ffffff;--wash:#f5f5f5;--card:#ffffff;--brand:#0057b8;--brand-dark:#004b9f;--navy:#002d54;--light:#dde3eb;--line:#dde3eb;--warm:#cecac8;--first-down:#e4c200;--display:'Barlow Condensed','Arial Narrow',Impact,sans-serif}
*{box-sizing:border-box}
[hidden]{display:none !important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 Inter,Arial,sans-serif}
a{color:inherit;text-underline-offset:3px}
a:hover{color:var(--brand)}
a:focus-visible,summary:focus-visible{outline:3px solid var(--brand);outline-offset:3px}
.masthead,main,.site-footer{max-width:1180px;margin:0 auto;padding-left:48px;padding-right:48px}
.masthead{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:6px 24px;padding-top:24px;padding-bottom:14px;border-bottom:4px solid var(--brand)}
.brand{grid-column:1;grid-row:1;display:block;color:var(--navy);text-decoration:none;line-height:0}
.brand:hover{color:var(--brand)}
.brand svg{height:48px;width:auto;max-width:100%}
.masthead nav{grid-column:2;grid-row:1;justify-self:end;display:flex;gap:20px;font-size:14px;font-weight:600}
.masthead nav a{text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}
.masthead nav a:hover{border-color:var(--brand)}
.independent{grid-column:1/-1;grid-row:2;margin:0;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted)}
.eyebrow{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--brand);margin:0}
.edition-line{margin:28px 0 8px;color:var(--muted)}
.hero{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:40px;align-items:start;padding:12px 0 36px;border-bottom:1px solid var(--line)}
.hero h1{font:800 clamp(44px,6vw,84px)/.95 var(--display);letter-spacing:-1px;margin:8px 0 18px;overflow-wrap:anywhere;color:var(--navy)}
.dek{font-size:19px;margin:0 0 12px}
.lead{color:var(--muted);margin:0;max-width:640px}
.cta{display:inline-block;margin-top:20px;background:var(--brand);color:#fff;padding:12px 18px;font-weight:700;font-size:14px;text-decoration:none}
.cta:hover{background:var(--brand-dark);color:#fff}
.featured{background:var(--bar,var(--brand));color:var(--bar-ink,#fff);box-shadow:inset 0 0 0 2px var(--bar-edge,transparent);padding:20px 24px;display:grid;gap:6px;align-content:start}
.scorebug{justify-self:start;margin:0;border:1px solid currentColor;font-weight:700;font-size:13px;padding:4px 10px}
.monogram{font:800 120px/1 var(--display);color:var(--navy);text-align:center;align-self:center}
.featured .monogram{color:inherit;text-align:left;font-size:104px;margin:8px 0 0}
.featured-name{margin:0;font-size:15px}
.featured-line{margin:0;font-size:14px;opacity:.9}
.player-head .team-bar{margin:16px 0 0}
.player-head .who{display:flex;align-items:center;gap:18px;margin:16px 0 12px}
.player-head h1{font:800 clamp(40px,5vw,64px)/1 var(--display);color:var(--navy);margin:0}
.player-mark{flex:none;width:112px;background:var(--wash);border:1px solid var(--line);padding:10px 0}.player-mark .monogram{font-size:56px}
.section{padding:36px 0;border-bottom:1px solid var(--line)}
.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:18px}
.section>h2,.section-head h2,.method h2{font:800 34px/1.05 var(--display);margin:0;color:var(--navy)}
.section-head p{margin:0;font-size:13px;color:var(--muted);text-align:right}
.as-of{margin:-4px 0 12px;font-size:12px;color:var(--muted)}
.section-note{margin:-8px 0 18px;font-size:13px;color:var(--muted)}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.card{background:var(--card);border:1px solid var(--line);padding:20px;display:flex;flex-direction:column;gap:8px;min-width:0}
.team-bar{margin:0;padding:7px 12px;background:var(--bar,var(--brand));color:var(--bar-ink,#fff);box-shadow:inset 0 0 0 2px var(--bar-edge,transparent);font-size:13px;font-weight:700}
.card .team-bar{margin:-20px -20px 4px;padding:8px 20px}
.nowrap{white-space:nowrap}
.card h3{font:700 30px/1.05 var(--display);margin:0;color:var(--navy)}
.score{margin:0;font-size:13px;font-weight:600}
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:6px 0}
.metrics strong{display:block;font:800 34px/1 var(--display);color:var(--navy)}
.metrics span{display:block;font-size:11px;color:var(--muted);line-height:1.3}
.evidence,.caption{font-size:12px;color:var(--muted);margin:0}
.withheld,.availability-note{margin:0;padding:10px 12px;background:var(--wash);border-left:3px solid var(--warm);font-size:12px}
.ngs{margin:0;padding:10px 12px 10px 28px;background:var(--wash);font-size:12px}
.stat-box{background:var(--wash)}.stat-box .ngs{padding-bottom:4px}
.by-numbers{margin-top:18px;border-top:1px solid var(--line);padding-top:12px}
.by-numbers summary{font-size:14px}
.numbers{width:100%;border-collapse:collapse;margin-top:10px;font-size:14px}
.numbers th,.numbers td{text-align:left;vertical-align:top;padding:8px 10px 8px 0;border-bottom:1px solid var(--line)}
.numbers thead th{font-size:11px;letter-spacing:.3px;text-transform:uppercase;color:var(--muted)}
.numbers tbody th{font-weight:700;color:var(--navy)}
.numbers .definition{display:block;margin-top:2px;font-weight:400;font-size:12px;line-height:1.4;color:var(--muted)}
.numbers .value{font:800 18px var(--display);color:var(--navy);white-space:nowrap}
.numbers td:last-child{white-space:nowrap;color:var(--ink)}
.numbers-note{margin:8px 0 0;font-size:12px;color:var(--muted)}
@media (max-width:640px){.numbers td:last-child{white-space:normal}}
.stat-sources{margin:0;padding:0 12px 8px;font-size:11px;color:var(--muted)}
details summary{cursor:pointer;font-weight:700;font-size:13px;color:var(--navy)}
.plays{padding-left:20px;font-size:12px}
.plays li{margin:10px 0}
.play-meta{display:block;font-size:10px;font-weight:700;letter-spacing:.3px;color:var(--brand)}
.play-outcome{display:block;margin-top:2px;font-size:11px;font-weight:600;color:var(--ink)}
.card-play{display:grid;grid-template-columns:1fr auto;gap:2px 10px;text-decoration:none;margin:4px 0;color:inherit}
.card-play .play-meta{grid-column:1;grid-row:1}
.card-play .play-line{font-size:14px}.card-play .play-spot{font-size:12px}
.card-play .field,.card-play .play-outcome{grid-column:1/-1}
.card-play:hover .field{opacity:.85}
.card-play:focus-visible{outline:3px solid var(--brand);outline-offset:3px}
.see-plays{margin:0;font-size:12px}
.see-plays a{font-weight:600;color:var(--brand)}
.card footer{margin-top:auto;padding-top:10px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}
.table-wrap{overflow-x:auto}
.log{width:100%;border-collapse:collapse;font-size:14px}
.log th,.log td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.log thead th{font-size:12px;font-weight:600;color:var(--muted);background:var(--wash)}
.log td:first-child{white-space:nowrap}
.section>h2{margin-bottom:16px}
.season{display:grid;grid-template-columns:minmax(110px,180px) 1fr;gap:10px 20px;margin:0}
.season dt{font-size:13px;font-weight:600;color:var(--muted)}
.season dd{margin:0}
.box{width:100%;border-collapse:collapse;font-size:14px}
.box th,.box td{text-align:left;padding:12px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.box thead th{font-size:12px;font-weight:600;color:var(--muted);background:var(--wash)}
.box tbody th{font-weight:600;color:var(--navy)}
.box td:last-child,.box th:last-child{text-align:right;white-space:nowrap}
.availability{margin:0;display:grid;gap:12px}
.availability>div{background:var(--wash);border:1px solid var(--line);padding:14px 16px;display:grid;grid-template-columns:200px 1fr;gap:4px 16px}
.availability dt{font-weight:700;font-size:14px;color:var(--navy)}
.availability dd{margin:0;display:flex;flex-wrap:wrap;gap:4px 14px;font-size:14px}
.availability dd.note{grid-column:2;font-size:12px;color:var(--muted)}
.up-next{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px}
.matchup{background:var(--card);border:1px solid var(--line);border-left:6px solid var(--team,var(--brand));padding:18px}
.matchup h3{font:700 26px/1.1 var(--display);margin:6px 0;color:var(--navy)}
.matchup p{margin:4px 0;font-size:14px}
.matchup .venue,.matchup .who{color:var(--muted);font-size:13px}
.method{margin:36px 0 0;padding:32px;background:var(--navy);color:#fff}
.method h2{color:#fff;margin-bottom:12px}
.method a:hover{color:var(--light)}
.method ul{font-size:14px;padding-left:20px}
.method .warnings li{color:#fff;font-weight:600}
.method table{border-collapse:collapse;width:100%;font-size:12px;margin:18px 0}
.method th,.method td{text-align:left;padding:8px;border-bottom:1px solid var(--brand-dark);overflow-wrap:anywhere}
.method th{color:var(--light)}
.method .caption{color:var(--light)}
.prose{max-width:760px;padding:24px 0 48px}
.prose h1{font:800 clamp(40px,5vw,64px)/1 var(--display);margin:24px 0;color:var(--navy)}
.prose h2{font:700 28px/1.1 var(--display);margin:32px 0 8px;color:var(--navy)}
.archive-list{list-style:none;padding:0;margin:24px 0}
.archive-list li{padding:16px 0;border-bottom:1px solid var(--line)}
.archive-list a{font:700 28px/1.1 var(--display);text-decoration:none;color:var(--navy)}
.archive-list a:hover{color:var(--brand)}
.site-footer{padding-top:24px;padding-bottom:40px;font-size:12px;color:var(--muted)}
@media (max-width:900px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{grid-template-columns:1fr}}
@media (max-width:640px){.masthead,main,.site-footer{padding-left:16px;padding-right:16px}.masthead{grid-template-columns:1fr}.masthead nav{grid-column:1;grid-row:2;justify-self:start;gap:16px}.independent{grid-row:3}.brand svg{height:40px}.cards{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.section-head{flex-direction:column}.section-head p{text-align:left}.availability>div{grid-template-columns:1fr}.availability dd.note{grid-column:1}.method{padding:20px}.monogram{font-size:96px}.featured{grid-template-columns:auto 1fr;align-items:center;column-gap:16px}.featured .scorebug{grid-column:1/-1}.featured .monogram{font-size:56px;margin:0;grid-row:span 2}.season{grid-template-columns:1fr;gap:2px}.season dd{margin-bottom:10px}.player-mark{width:84px}.player-mark .monogram{font-size:44px}.player-head h1{font-size:34px}}
@media print{details{display:block}.card{break-inside:avoid}}
.field{display:block;width:100%;height:auto;margin:6px 0}
.field .turf{fill:var(--light)}.field .endzone{fill:var(--warm)}
.field .endzone-label{font:800 16px var(--display);fill:var(--navy);letter-spacing:1px}
.field .yard-minor{stroke:var(--navy);stroke-opacity:.2;stroke-width:1}.field .yard-major{stroke:var(--navy);stroke-opacity:.4;stroke-width:1.5}
.field .hash{stroke:var(--navy);stroke-opacity:.35;stroke-width:1.5}
.field .yard-number{font:700 15px var(--display);fill:var(--navy);fill-opacity:.45}
.field .los{stroke:var(--navy);stroke-width:2.5}.field .marker{stroke:var(--first-down);stroke-width:2.5}
.field .path{color:var(--navy)}.field .path-hurt{color:var(--muted)}
.field .run{stroke:currentColor;stroke-width:4;stroke-linecap:round}.field .air{fill:none;stroke:currentColor;stroke-width:2.5;stroke-dasharray:6 5}
.field .arrow,.field .ball{fill:currentColor}.field .target,.field .catch{fill:#fff;stroke:currentColor;stroke-width:2.5}.field .pick{fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round}
.field .yardage{font:800 17px var(--display);fill:var(--navy);paint-order:stroke;stroke:var(--light);stroke-width:4px;stroke-linejoin:round}
.field-card .yard-number{font-size:13px}.field-card .endzone-label{font-size:14px}.field-card .yardage{font-size:16px}
.field-large .yard-number{font-size:20px}.field-large .yardage{font-size:26px}.field-large .endzone-label{font-size:22px}
.field-large .run{stroke-width:6}.field-large .los,.field-large .marker{stroke-width:3.5}

.move,.desk-move{margin:4px 0 0;padding-left:10px;border-left:3px solid var(--move,var(--brand));font-size:14px;color:var(--ink)}
.game-summary{margin:0 0 10px;font-size:18px;font-weight:600;color:var(--navy)}
.explorer-filters{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 18px}
.explorer-filters button{font:600 14px Inter,Arial,sans-serif;padding:7px 14px;border:1px solid var(--line);background:var(--card);color:var(--navy);cursor:pointer}
.explorer-filters button[aria-pressed="true"]{background:var(--bar,var(--brand));color:var(--bar-ink,#fff);border-color:var(--bar,var(--brand))}
.explorer-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.explorer-list .play{background:var(--card);border:1px solid var(--line);border-left:4px solid transparent;padding:12px 14px;margin:0}
.explorer-list .play[aria-current="true"]{border-left-color:var(--bar,var(--brand))}
.play-pick{all:unset;cursor:pointer;display:grid;grid-template-columns:1fr auto;gap:2px 12px;width:100%}
.play-pick:focus-visible{outline:3px solid var(--brand);outline-offset:3px}
.play-pick .play-meta{grid-column:1;grid-row:1}
.tag{grid-column:2;grid-row:1;justify-self:end;align-self:start;font-size:12px;font-weight:700;padding:2px 8px;border:1.5px solid var(--line);color:var(--navy);white-space:nowrap}
.tag-big{background:var(--bar,var(--brand));border-color:var(--bar,var(--brand));color:var(--bar-ink,#fff)}
.tag-helped{border-color:var(--team,var(--brand))}
.tag-hurt{border-color:var(--muted);color:var(--muted)}
.play-line{grid-column:1/-1;font-size:16px;font-weight:600;line-height:1.4;color:var(--navy)}
.play-spot{grid-column:1/-1;font-size:13px;color:var(--muted)}
.play-more{margin-top:6px;font-size:13px}.play-more summary{font-weight:600;color:var(--brand)}.play-more p{margin:4px 0}
.about-drawings{margin:18px 0 0;font-size:12px;color:var(--muted)}
.play-stage .field{margin:0}
@media (min-width:900px){.js-explorer .explorer-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:24px;align-items:start}.js-explorer .play-stage{position:sticky;top:16px}.js-explorer .explorer-list .field{display:none}}
@media (max-width:899px){.play-stage{display:none !important}}
