:root {
  --red: #ba0c2f;
  --red-dark: #8f0824;
  --navy: #071b32;
  --blue: #0d3156;
  --paper: #f4f1e9;
  --white: #fffefa;
  --ink: #101820;
  --muted: #66717c;
  --gold: #f3c64e;
  --line: #d6d5d0;
  --shadow: 0 18px 48px rgba(7, 27, 50, .12);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: Arial, Helvetica, sans-serif; }
button, input, select { font: inherit; }
button, a, input, select { outline-offset: 3px; }
.masthead { min-height: 82px; padding: 14px clamp(20px, 4vw, 68px); display: flex; align-items: center; justify-content: space-between; color: white; background: var(--navy); border-bottom: 5px solid var(--red); }
.brand { color: inherit; display: flex; gap: 13px; align-items: center; text-decoration: none; }
.brand-mark { width: 56px; height: 48px; display: block; flex: none; }
.brand strong, .brand small { display: block; }
.brand strong { font-family: Georgia, serif; font-size: 1.16rem; }
.halo-a { display: inline-block; position: relative; isolation: isolate; }
.halo-a::before { content: ""; position: absolute; z-index: -1; width: .72em; height: .2em; left: 50%; top: -.13em; transform: translateX(-50%) rotate(-7deg); border: 1.5px solid var(--gold); border-radius: 50%; box-shadow: 0 0 4px rgba(243, 198, 78, .25); }
.brand small { color: #b9c6d4; margin-top: 2px; font-size: .72rem; letter-spacing: .03em; }
nav { display: flex; gap: 24px; }
nav a { color: #d9e2ea; text-decoration: none; font-size: .92rem; font-weight: 700; }
nav a[aria-current="page"] { color: white; border-bottom: 2px solid var(--red); padding-bottom: 5px; }
main { max-width: 1500px; margin: auto; }
.intro { min-height: 330px; padding: 54px clamp(20px, 5vw, 78px) 42px; color: white; background: linear-gradient(118deg, var(--red) 0 57%, var(--red-dark) 57% 100%); display: grid; grid-template-columns: 1.3fr 1fr; align-items: end; gap: 60px; position: relative; overflow: hidden; }
.intro::before { content: ""; position: absolute; width: 460px; height: 460px; border: 2px solid rgba(255,255,255,.12); border-radius: 50%; right: -70px; top: -180px; box-shadow: 0 0 0 34px rgba(255,255,255,.035), 0 0 0 82px rgba(255,255,255,.025); }
.eyebrow { margin: 0 0 12px; text-transform: uppercase; letter-spacing: .16em; font-size: .76rem; font-weight: 800; }
h1 { margin: 0; font: 700 clamp(3rem, 7vw, 6.4rem)/.89 Georgia, serif; letter-spacing: -.055em; }
h1 em { color: transparent; -webkit-text-stroke: 1.5px white; font-style: italic; }
.lede { max-width: 650px; margin: 22px 0 0; font-size: 1.08rem; line-height: 1.55; color: #ffe8ed; }
.archive-stats { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; position: relative; z-index: 1; }
.archive-stats div { padding: 18px 16px; border-left: 1px solid rgba(255,255,255,.28); }
.archive-stats dt { font: 700 clamp(2rem, 4vw, 3.5rem)/1 Georgia, serif; }
.archive-stats dd { margin: 7px 0 0; text-transform: uppercase; letter-spacing: .1em; font-size: .68rem; font-weight: 700; color: #ffd8e1; }
.explorer { display: grid; grid-template-columns: minmax(370px, .78fr) minmax(520px, 1.22fr); gap: 22px; padding: 28px clamp(20px, 4vw, 60px) 60px; align-items: start; }
.search-panel, .player-card { background: var(--white); border: 1px solid var(--line); box-shadow: var(--shadow); }
.search-panel { padding: 24px; }
.search-label { display: block; font: 700 1.45rem Georgia, serif; margin-bottom: 10px; }
.search-wrap { min-height: 55px; display: grid; grid-template-columns: 28px 1fr auto; align-items: center; gap: 8px; padding: 0 15px; border: 2px solid var(--navy); background: white; }
.search-wrap span { font-size: 1.7rem; color: var(--red); transform: rotate(-20deg); }
.search-wrap input { width: 100%; border: 0; outline: 0; font-size: 1.03rem; background: transparent; }
kbd { color: var(--muted); border: 1px solid var(--line); border-bottom-width: 2px; padding: 3px 7px; border-radius: 4px; font-size: .75rem; }
.filters { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 14px; }
.filters label { color: var(--muted); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.filters select { width: 100%; margin-top: 5px; padding: 9px 8px; border: 1px solid var(--line); color: var(--ink); background: white; font-size: .84rem; text-transform: none; letter-spacing: 0; }
.result-summary { margin: 20px 0 8px; color: var(--muted); font-size: .84rem; }
.player-list { max-height: 580px; overflow: auto; border-top: 1px solid var(--line); }
.player-row { width: 100%; display: grid; grid-template-columns: 39px minmax(0,1fr) auto 20px; align-items: center; gap: 11px; min-height: 66px; padding: 9px 7px; border: 0; border-bottom: 1px solid #e8e7e2; background: transparent; text-align: left; cursor: pointer; }
.player-row:hover, .player-row[aria-selected="true"] { background: #f7e9ec; }
.player-row[aria-selected="true"] { box-shadow: inset 4px 0 var(--red); }
.monogram { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: var(--navy); color: white; font: 700 .8rem Georgia, serif; }
.player-row-main { min-width: 0; }
.player-row-main strong, .player-row-main small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.player-row-main strong { font-family: Georgia, serif; }
.player-row-main small, .player-years { color: var(--muted); font-size: .75rem; margin-top: 3px; }
.player-years { text-align: right; }
.arrow { color: var(--red); font-weight: 900; }
.load-more { width: 100%; margin-top: 12px; padding: 12px; color: var(--navy); background: white; border: 1px solid var(--navy); font-weight: 800; cursor: pointer; }
.player-card { min-height: 700px; position: sticky; top: 16px; overflow: hidden; }
.empty-state { min-height: 700px; display: grid; place-content: center; text-align: center; color: var(--muted); position: relative; }
.halo { width: 130px; height: 130px; margin: 0 auto 20px; border: 12px solid #e2e5e7; border-radius: 50%; transform: rotate(-12deg); }
.detail-head { padding: 32px 34px 26px; color: white; background: var(--navy); position: relative; overflow: hidden; }
.detail-head::after { content:""; position:absolute; width:240px; height:240px; border:26px solid rgba(255,255,255,.05); border-radius:50%; right:-80px; top:-100px; }
.detail-head .eyebrow { color: #ff9caf; }
.detail-head h2 { margin: 0; font: 700 clamp(2.3rem, 4vw, 4rem)/.95 Georgia, serif; letter-spacing: -.035em; }
.detail-head-copy { position:relative; z-index:2; min-width:0; }
.identity-line { margin: 13px 0 0; color: #bfd0df; }
.profile-link { margin-top: 19px; padding: 9px 13px; color: white; background: transparent; border: 1px solid #7890a6; font-size: .78rem; font-weight: 800; cursor: pointer; position: relative; z-index: 1; }
.profile-link:hover { border-color: white; background: rgba(255,255,255,.07); }
.detail-body { padding: 24px 30px 32px; }
.stat-strip { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--line); }
.stat-strip div { padding: 14px; border-right: 1px solid var(--line); }
.stat-strip div:last-child { border: 0; }
.stat-strip strong, .stat-strip span { display: block; }
.stat-strip strong { font: 700 1.35rem Georgia, serif; }
.stat-strip span { margin-top: 4px; color: var(--muted); font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; }
.career-summary { display: grid; grid-template-columns: 1.5fr .7fr; gap: 24px; align-items: center; margin-top: 22px; padding: 20px 22px; background: #f0ede5; border-left: 5px solid var(--red); }
.section-kicker { margin: 0 0 6px; color: var(--red-dark); text-transform: uppercase; letter-spacing: .12em; font-size: .68rem; font-weight: 900; }
.career-summary h3 { margin: 0; font: 700 1.3rem Georgia, serif; }
.career-summary p:last-child { margin: 7px 0 0; color: var(--muted); line-height: 1.45; font-size: .86rem; }
.peak-season { padding-left: 20px; border-left: 1px solid var(--line); }
.peak-season span, .peak-season strong, .peak-season small { display: block; }
.peak-season span { color: var(--muted); text-transform: uppercase; letter-spacing: .08em; font-size: .64rem; font-weight: 800; }
.peak-season strong { margin-top: 3px; color: var(--red); font: 700 2rem Georgia, serif; }
.peak-season small { margin-top: 3px; color: var(--muted); font-size: .75rem; }
.timeline-title { display: flex; justify-content: space-between; align-items: baseline; margin-top: 26px; }
.timeline-title h3, .season-table h3 { margin: 0; font: 700 1.2rem Georgia, serif; }
.timeline-title span { color: var(--muted); font-size: .75rem; }
.timeline { height: 126px; display: flex; gap: 4px; align-items: end; padding: 14px 0 8px; border-bottom: 1px solid var(--line); overflow-x: auto; }
.timeline-item { flex: 1; min-width: 15px; max-width: 34px; height: 104px; display: flex; flex-direction: column; justify-content: end; align-items: stretch; text-align: center; }
.timeline-item small { margin-top: 4px; color: var(--muted); font-size: .58rem; }
.timeline-bar { width: 100%; height: var(--height); background: linear-gradient(to top, var(--red-dark), var(--red)); position: relative; }
.timeline-bar:hover::after { content: attr(data-label); position: absolute; bottom: calc(100% + 7px); left: 50%; transform: translateX(-50%); background: var(--navy); color: white; padding: 5px 7px; white-space: nowrap; font-size: .68rem; z-index: 2; }
.tabs { display: flex; gap: 4px; margin: 24px 0 12px; border-bottom: 2px solid var(--navy); }
.tab { border: 0; padding: 10px 15px; background: transparent; color: var(--muted); font-weight: 800; cursor: pointer; }
.tab[aria-selected="true"] { background: var(--navy); color: white; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: .82rem; }
th { color: var(--muted); font-size: .66rem; letter-spacing: .07em; text-transform: uppercase; text-align: right; border-bottom: 1px solid var(--line); padding: 9px 8px; }
th:first-child, td:first-child { text-align: left; }
td { padding: 10px 8px; text-align: right; border-bottom: 1px solid #ecebe7; font-variant-numeric: tabular-nums; }
tbody tr:hover { background: #f7f5f0; }
.injury-panel { margin-top: 30px; border: 1px solid var(--line); }
.injury-panel > header { display: flex; justify-content: space-between; align-items: center; gap: 18px; padding: 18px 20px; color: white; background: var(--blue); }
.injury-panel h3 { margin: 0; font: 700 1.3rem Georgia, serif; }
.injury-panel .section-kicker { color: #ffb2c1; }
.verification-badge { flex: none; padding: 6px 9px; color: #dce9f3; border: 1px solid #7890a6; text-transform: uppercase; letter-spacing: .08em; font-size: .63rem; font-weight: 900; }
.injury-empty { display: grid; grid-template-columns: 48px 1fr; gap: 15px; align-items: start; padding: 21px 20px; background: #f7f5f0; }
.medical-mark { width: 42px; height: 42px; display: grid; place-items: center; color: white; background: var(--red); font: 700 1.8rem/1 Georgia, serif; border-radius: 50%; }
.injury-empty strong { font-family: Georgia, serif; font-size: 1rem; }
.injury-empty p { margin: 5px 0 0; color: var(--muted); line-height: 1.45; font-size: .84rem; }
.injury-list { margin: 0; padding: 0; list-style: none; }
.injury-list li { display: grid; grid-template-columns: 90px minmax(0,1fr) auto; gap: 16px; align-items: center; padding: 17px 20px; border-bottom: 1px solid var(--line); }
.injury-date strong, .injury-date span, .injury-copy strong { display: block; }
.injury-date strong { color: var(--red); font: 700 1.15rem Georgia, serif; }
.injury-date span, .injury-copy p { color: var(--muted); font-size: .76rem; }
.injury-copy p { margin: 4px 0 0; }
.injury-copy .procedure { color: var(--ink); }
.injury-copy .record-note { max-width: 62ch; margin-top: 7px; line-height: 1.45; }
.injury-list a { color: var(--red-dark); font-size: .76rem; font-weight: 800; }
.injury-panel details { padding: 14px 20px; border-top: 1px solid var(--line); }
.injury-panel summary { color: var(--navy); cursor: pointer; font-size: .78rem; font-weight: 800; }
.injury-panel details p { margin: 10px 0 2px; color: var(--muted); line-height: 1.5; font-size: .8rem; }
.contract-panel { margin-top:30px; border:1px solid var(--line); background:var(--white); container-type:inline-size; }
.contract-head,.contract-panel > header { display:flex; justify-content:space-between; align-items:center; gap:22px; padding:20px 22px; color:white; background:linear-gradient(115deg,var(--navy),var(--blue)); }
.contract-panel h3 { margin:0; font:700 1.45rem Georgia,serif; }
.contract-head p:last-child { max-width:62ch; margin:7px 0 0; color:#d8e4ee; font-size:.82rem; line-height:1.45; }
.contract-panel .section-kicker { color:#f7ce66; }
.contract-status { flex:none; max-width:190px; padding:8px 11px; color:#14283b; background:#f4c64f; text-align:center; text-transform:uppercase; letter-spacing:.07em; font-size:.64rem; font-weight:900; }
.contract-status.pending { color:#d8e4ee; background:transparent; border:1px solid #7890a6; }
.contract-summary { display:grid; grid-template-columns:repeat(3,1fr); border-bottom:1px solid var(--line); background:#f4f1e9; }
.contract-summary div { padding:18px 20px; border-right:1px solid var(--line); }
.contract-summary strong,.contract-summary span { display:block; }
.contract-summary strong { color:var(--red-dark); font:700 1.55rem Georgia,serif; }
.contract-summary span { margin-top:4px; color:var(--muted); font-size:.65rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.contract-summary > p { grid-column:1/-1; margin:0; padding:12px 20px; color:var(--muted); font-size:.76rem; line-height:1.45; border-top:1px solid var(--line); }
.contract-flow { position:relative; margin:0; padding:26px 24px 8px 72px; list-style:none; }
.contract-flow::before { content:""; position:absolute; left:43px; top:30px; bottom:34px; width:2px; background:#d8d2c4; }
.contract-stage { position:relative; padding:0 0 22px; }
.contract-node { position:absolute; left:-51px; top:3px; width:38px; height:38px; display:grid; place-items:center; color:white; background:var(--team-primary,var(--navy)); border:4px solid white; outline:2px solid var(--team-secondary,#d8d2c4); border-radius:50%; font:700 .85rem Georgia,serif; z-index:1; }
.contract-stage.current .contract-node { color:white; background:var(--team-primary,var(--red)); outline-color:#f4c64f; }
.contract-stage-body { padding:0 20px 18px; border:1px solid var(--line); border-top:5px solid var(--team-primary,var(--navy)); border-left:5px solid var(--team-primary,var(--navy)); background:linear-gradient(180deg,var(--team-tint,#fff) 0 112px,#fff 210px); box-shadow:0 5px 15px rgba(7,29,49,.05); }
.contract-stage-body,.contract-stage-top,.contract-stage-top > div { min-width:0; }
.contract-stage.current .contract-stage-body { border-top-color:var(--team-primary,var(--red)); box-shadow:0 7px 20px rgba(7,29,49,.11),inset 0 3px #f4c64f; }
.team-ribbon { display:flex; align-items:center; min-height:34px; margin:0 -20px 15px; padding:0 14px; color:white; background:var(--team-primary); box-shadow:inset 0 -5px var(--team-secondary); }
.team-ribbon span { font-size:.68rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.contract-stage-top { display:flex; justify-content:space-between; gap:18px; align-items:start; }
.contract-years,.contract-phase { display:block; }
.contract-years { color:var(--team-primary,var(--red)); font:700 1.15rem Georgia,serif; }
.contract-phase { margin-top:2px; color:var(--muted); font-size:.65rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.contract-value { max-width:52%; color:var(--team-secondary,var(--navy)); font:700 .94rem/1.18 Georgia,serif; text-align:right; overflow-wrap:anywhere; }
.contract-stage h4 { margin:13px 0 6px; font:700 1.18rem Georgia,serif; }
.contract-stage-body > p { margin:0; color:var(--muted); font-size:.82rem; line-height:1.5; }
.salary-row { display:flex; gap:7px; margin-top:13px; }
.salary-row span { padding:8px 11px; background:#f4f1e9; font-size:.75rem; }
.salary-row b { display:block; color:var(--red-dark); margin-bottom:2px; }
.contract-terms { display:flex; flex-wrap:wrap; gap:7px; margin:13px 0 0; padding:0; list-style:none; }
.contract-terms li { padding:6px 9px; color:var(--navy); background:#edf2f6; font-size:.7rem; font-weight:800; }
.contract-stage-body .superseded-note { margin-top:13px; padding:10px 12px; color:#685519; background:#fff7d8; border-left:3px solid #e3bb42; }
.contract-links { display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; margin-top:15px; padding-top:12px; border-top:1px solid var(--line); }
.contract-links a,.contract-empty-copy a { color:var(--red-dark); font-size:.74rem; font-weight:900; }
.contract-links a { max-width:100%; overflow-wrap:anywhere; }
.contract-links a:last-child { color:var(--muted); font-weight:700; }
.contract-panel details { margin:0 24px 22px 72px; padding:13px 15px; background:#f4f1e9; }
.contract-panel summary { cursor:pointer; color:var(--navy); font-size:.78rem; font-weight:900; }
.contract-panel details p { margin:9px 0 0; color:var(--muted); font-size:.78rem; line-height:1.5; }
.contract-empty-copy { padding:22px; }
.contract-empty-copy strong { font-family:Georgia,serif; }
.contract-empty-copy p { margin:6px 0 12px; color:var(--muted); font-size:.82rem; }
.contract-empty-graphic { display:grid; grid-template-columns:1fr 1.25fr; align-items:center; min-height:138px; color:white; background:linear-gradient(120deg,#071d31 0 45%,#0c3151 45%); border-bottom:4px solid var(--red); }
.contract-empty-player { display:flex; align-items:center; gap:15px; padding:24px; }
.contract-empty-player > span { width:54px; height:54px; flex:none; display:grid; place-items:center; color:white; border:2px solid #f4c64f; border-radius:50%; font:700 1rem Georgia,serif; }
.contract-empty-player small,.contract-empty-player strong,.contract-empty-player p { display:block; }
.contract-empty-player small { color:#f4c64f; font-size:.65rem; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }
.contract-empty-player strong { margin-top:3px; font:700 1.2rem Georgia,serif; }
.contract-empty-player p { margin:4px 0 0; color:#bdccda; font-size:.72rem; }
.research-route { display:grid; grid-template-columns:auto 1fr auto 1fr auto; align-items:center; gap:9px; padding:24px; }
.research-route > span { min-width:72px; text-align:center; }
.research-route b { width:34px; height:34px; display:grid; place-items:center; margin:auto; color:var(--navy); background:#f4c64f; border-radius:50%; }
.research-route small { display:block; margin-top:6px; color:#d6e2ec; font-size:.65rem; }
.research-route i { height:2px; background:linear-gradient(90deg,#f4c64f,var(--red)); }
.contract-empty-copy > div { display:flex; justify-content:space-between; gap:18px; align-items:center; padding-top:10px; border-top:1px solid var(--line); }
.contract-empty-copy > div span { color:var(--muted); font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
.transaction-panel { overflow:hidden; }
.transaction-status { white-space:nowrap; }
.transaction-hero { display:grid; grid-template-columns:1.5fr repeat(3,1fr); gap:1px; background:var(--line); border-bottom:1px solid var(--line); }
.transaction-hero > div { min-width:0; padding:16px 18px; background:#f8f7f2; display:flex; flex-direction:column; gap:3px; }
.transaction-hero small,.transaction-hero span { color:var(--muted); font-size:.68rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.transaction-hero strong { color:var(--navy); font-family:Georgia,serif; font-size:1.2rem; overflow-wrap:anywhere; }
.transaction-list { list-style:none; margin:0; padding:7px 22px 10px 32px; background:#fff; }
.transaction-row { position:relative; display:grid; grid-template-columns:116px minmax(0,1fr) auto; gap:14px; padding:16px 0 16px 20px; border-left:3px solid var(--team-primary); border-bottom:1px solid #e4e1d8; }
.transaction-row:last-child { border-bottom:0; }
.transaction-dot { position:absolute; left:-8px; top:19px; width:13px; height:13px; border:3px solid #fff; border-radius:50%; background:var(--team-secondary); box-shadow:0 0 0 2px var(--team-primary); }
.transaction-row time { color:var(--team-primary); font-weight:900; font-size:.76rem; }
.transaction-row div { min-width:0; }
.transaction-team { display:inline-block; margin:0 0 4px; padding:3px 7px; color:var(--team-primary); background:var(--team-tint); font-size:.65rem; font-weight:900; letter-spacing:.05em; text-transform:uppercase; }
.transaction-row strong { display:block; color:var(--navy); font-family:Georgia,serif; font-size:1rem; }
.transaction-row p { margin:4px 0 0; color:var(--muted); font-size:.82rem; line-height:1.45; }
.transaction-row a,.transaction-learn { color:var(--red-dark); font-size:.74rem; font-weight:900; }
.transaction-complete { margin:8px 22px 16px; border:1px solid var(--line); }
.transaction-complete summary { cursor:pointer; padding:14px 16px; color:var(--navy); font-weight:900; }
.transaction-learn { display:inline-block; margin:0 22px 22px; }
@container (max-width: 740px) {
  .transaction-status { white-space:normal; text-align:right; }
  .transaction-hero { grid-template-columns:1fr 1fr; }
  .transaction-list { padding:7px 14px 10px 24px; }
  .transaction-row { grid-template-columns:92px minmax(0,1fr); grid-template-areas:"date body" ". source"; gap:6px 12px; padding:16px 0 16px 16px; }
  .transaction-row time { grid-area:date; }
  .transaction-row div { grid-area:body; }
  .transaction-row > a { grid-area:source; justify-self:start; margin-top:5px; }
  .transaction-team { max-width:100%; white-space:normal; overflow-wrap:anywhere; }
  .transaction-complete { margin:8px 12px 16px; }
}
@container (max-width: 470px) {
  .transaction-hero { grid-template-columns:1fr; }
  .transaction-row { grid-template-columns:1fr; grid-template-areas:"date" "body" "source"; padding-left:15px; }
  .transaction-complete summary { padding:12px; font-size:.86rem; }
}
.contract-school { max-width:1320px; margin:auto; padding-bottom:70px; }
.school-hero { padding:70px clamp(24px,6vw,86px); color:white; background:linear-gradient(120deg,var(--navy) 0 66%,var(--red-dark) 66%); }
.school-hero h1 { max-width:850px; margin:8px 0 14px; font:700 clamp(2.6rem,6vw,5.2rem)/.98 Georgia,serif; }
.school-hero > p:last-child { max-width:720px; color:#d8e4ee; line-height:1.6; }
.lesson-index { display:flex; flex-wrap:wrap; gap:8px; padding:22px clamp(20px,4vw,55px); background:white; border:1px solid var(--line); }
.lesson-index a { padding:8px 11px; color:var(--navy); background:#f2efe7; text-decoration:none; font-size:.73rem; font-weight:900; }
.lesson-flow { display:flex; align-items:center; gap:10px; margin:34px clamp(20px,4vw,55px); overflow-x:auto; }
.lesson-flow div { min-width:160px; flex:1; padding:16px; background:var(--navy); color:white; }
.lesson-flow b,.lesson-flow strong,.lesson-flow span { display:block; }
.lesson-flow b { color:#f4c64f; }
.lesson-flow strong { margin:6px 0; font-family:Georgia,serif; }
.lesson-flow span { color:#bdccda; font-size:.72rem; }
.lesson-flow i { color:var(--red); font-style:normal; font-size:1.4rem; }
.lesson-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin:0 clamp(20px,4vw,55px); }
.lesson-grid article { padding:24px; scroll-margin-top:20px; background:white; border:1px solid var(--line); border-top:4px solid var(--red); }
.lesson-grid article > span { color:var(--red); font-size:.7rem; font-weight:900; }
.lesson-grid h2 { margin:7px 0 9px; font:700 1.35rem Georgia,serif; }
.lesson-grid p,.contract-caution p { margin:0; color:var(--muted); line-height:1.6; }
.lesson-example { position:relative; margin-top:18px; padding:15px 16px 15px 19px; background:#f7f4eb; border-left:4px solid #e5b73b; }
.lesson-example::before { content:""; position:absolute; top:0; right:0; width:34px; height:4px; background:var(--red); }
.lesson-example b { display:inline-block; margin-bottom:5px; color:var(--navy); font-size:.7rem; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.lesson-example p { color:#465665; font-size:.86rem; line-height:1.55; }
.contract-caution { margin:22px clamp(20px,4vw,55px) 0; padding:22px 24px; color:white; background:var(--blue); }
.contract-caution strong { display:block; margin-bottom:7px; color:#f4c64f; font:700 1.15rem Georgia,serif; }
.contract-caution p { color:#d8e4ee; }

/* Contracts & roster rules academy */
.academy-hero{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:40px;align-items:end;border-bottom:5px solid var(--red)}
.academy-hero aside{padding:20px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.22)}
.academy-hero aside span,.academy-hero aside small,.academy-hero aside strong{display:block}.academy-hero aside span{color:#f4c64f;font-size:.68rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.academy-hero aside strong{margin:7px 0;font:700 1.45rem Georgia,serif}.academy-hero aside small{color:#bdccda}
.academy-index a{display:flex;gap:7px;align-items:center}.academy-index a b{color:var(--red)}
.academy-intro{display:grid;grid-template-columns:.8fr 1.2fr;margin:34px clamp(20px,4vw,55px);background:var(--navy);color:white;border-left:7px solid var(--red)}
.academy-intro>div{padding:30px;border-right:1px solid rgba(255,255,255,.12)}.academy-intro>div span,.academy-module>header>span,.academy-sources span{color:#f4c64f;font-size:.68rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.academy-intro h2,.academy-module h2,.academy-sources h2{margin:7px 0 10px;font:700 clamp(1.65rem,3vw,2.5rem)/1.05 Georgia,serif}.academy-intro p{color:#c8d5df;line-height:1.6}
.academy-intro ol{display:grid;grid-template-columns:repeat(3,1fr);margin:0;padding:0;list-style:none}.academy-intro li{padding:28px 22px;border-right:1px solid rgba(255,255,255,.12)}.academy-intro li:last-child{border:0}.academy-intro li b,.academy-intro li span{display:block}.academy-intro li b{margin-bottom:8px;color:white;font:700 1rem Georgia,serif}.academy-intro li span{color:#b8c8d5;font-size:.8rem;line-height:1.5}
.academy-module{margin:22px clamp(20px,4vw,55px);padding:28px;scroll-margin-top:18px;background:white;border:1px solid var(--line);box-shadow:0 10px 28px rgba(8,30,49,.06)}.academy-module>header{display:grid;grid-template-columns:110px 1fr;align-items:start;padding-bottom:20px;border-bottom:1px solid var(--line)}.academy-module>header h2{color:var(--navy)}.academy-module>header p{margin:0;color:var(--muted)}
.control-track{display:grid;grid-template-columns:repeat(3,1fr);margin-top:24px}.control-track div{padding:24px;background:#f7f4eb;border-top:5px solid var(--navy)}.control-track div:nth-child(2){background:#fff1f3;border-color:var(--red)}.control-track div:nth-child(3){background:#eef4f8;border-color:var(--blue)}.control-track b,.control-track strong{display:block}.control-track b{color:var(--red);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase}.control-track strong{margin:7px 0;color:var(--navy);font:700 1.2rem Georgia,serif}
.control-track p,.rule-cards p,.contract-blueprint p,.entry-grid p,.payroll-board p{margin:0;color:var(--muted);font-size:.84rem;line-height:1.55}.rule-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:16px}.rule-cards article{padding:20px;color:white;background:linear-gradient(145deg,var(--navy),#123653)}.rule-cards strong{color:#f4c64f;font:700 1.8rem Georgia,serif}.rule-cards h3{margin:5px 0 8px;font:700 1rem Georgia,serif}.rule-cards p{color:#cbd7e0}
.professor-note{display:flex;gap:16px;margin-top:16px;padding:17px 20px;background:#fff6d6;border-left:4px solid #e5b73b}.professor-note b{color:var(--navy);white-space:nowrap}.professor-note p{margin:0;color:#5d5437;line-height:1.5}
.contract-blueprint{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:14px;margin-top:24px}.contract-blueprint article{padding:21px;background:#f7f4eb;border-top:4px solid var(--red)}.contract-blueprint .blueprint-main{grid-row:span 2;color:white;background:var(--navy);border-color:#f4c64f}.contract-blueprint article>span,.entry-grid b,.payroll-board span{color:var(--red);font-size:.65rem;font-weight:900;letter-spacing:.1em}.contract-blueprint .blueprint-main>span{color:#f4c64f}.contract-blueprint h3,.entry-grid h3{margin:7px 0 9px;color:var(--navy);font:700 1.1rem Georgia,serif}.contract-blueprint .blueprint-main h3{color:white;font-size:1.45rem}.contract-blueprint .blueprint-main p{color:#cbd7e0}.contract-blueprint dl{margin:18px 0 0}.contract-blueprint dl div{padding:10px 0;border-top:1px solid rgba(255,255,255,.14)}.contract-blueprint dt{color:#f4c64f;font-weight:800}.contract-blueprint dd{margin:3px 0 0;color:#cbd7e0;font-size:.78rem}
.roster-map{display:grid;grid-template-columns:.8fr 1.2fr;gap:30px;align-items:center;margin-top:24px}.roster-ring{width:290px;aspect-ratio:1;display:grid;place-items:center;align-content:center;justify-self:center;text-align:center;color:white;background:var(--red);border:48px solid var(--navy);outline:1px solid #8ba0b1;border-radius:50%}.roster-ring span,.roster-ring strong,.roster-ring b{display:block}.roster-ring span{margin-top:-125px;color:var(--navy);font-size:.65rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.roster-ring strong{margin-top:82px;font:700 1rem Georgia,serif}.roster-ring b{margin-top:8px;font-size:.72rem}.roster-explain h3{margin:0 0 8px;color:var(--navy);font:700 1.25rem Georgia,serif}.roster-explain p,.roster-explain li,.fine-print{color:var(--muted);line-height:1.55}.roster-explain ul{padding-left:19px}.roster-explain li{margin:7px 0}
.comparison-table{margin-top:24px;overflow:auto;border:1px solid var(--line)}.comparison-table table{width:100%;min-width:720px;border-collapse:collapse}.comparison-table th,.comparison-table td{padding:15px;text-align:left;border-bottom:1px solid var(--line)}.comparison-table thead th{color:white;background:var(--navy);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase}.comparison-table tbody th{color:var(--red);font-family:Georgia,serif}.academy-module details{margin-top:10px;border:1px solid var(--line)}.academy-module details summary{padding:14px 16px;color:var(--navy);font-weight:850;cursor:pointer}.academy-module details p{margin:0;padding:0 16px 16px;color:var(--muted);line-height:1.6}
.payroll-board{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:24px}.payroll-board article{padding:20px;background:#f7f4eb;border-bottom:4px solid var(--red)}.payroll-board strong{display:block;margin:7px 0;color:var(--navy);font:700 1.05rem Georgia,serif}.cbt-meter{display:grid;grid-template-columns:220px 1fr;margin-top:18px;color:white;background:var(--navy)}.cbt-meter>div{display:grid;place-content:center;padding:24px;text-align:center;background:var(--red)}.cbt-meter>div span,.cbt-meter>div strong{display:block}.cbt-meter>div span{font-size:.65rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.cbt-meter>div strong{margin-top:5px;font:700 2.8rem Georgia,serif}.cbt-meter ol{display:grid;grid-template-columns:repeat(4,1fr);margin:0;padding:0;list-style:none}.cbt-meter li{padding:18px 15px;border-right:1px solid rgba(255,255,255,.14)}.cbt-meter li b,.cbt-meter li span{display:block}.cbt-meter li b{color:#f4c64f;font-size:.75rem}.cbt-meter li span{margin-top:5px;color:#c7d3dd;font-size:.72rem;line-height:1.45}
.entry-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:24px}.entry-grid article{padding:22px;background:#f7f4eb;border-left:5px solid var(--red)}
.scenario-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:24px}.scenario-grid details{margin:0;background:var(--navy);border:0;border-top:4px solid var(--red)}.scenario-grid details summary{min-height:110px;color:white}.scenario-grid summary span,.scenario-grid summary b{display:block}.scenario-grid summary span{color:#f4c64f;font-size:.65rem;letter-spacing:.1em;text-transform:uppercase}.scenario-grid summary b{margin-top:8px;font:700 1.2rem Georgia,serif}.scenario-grid details p{color:#cfdae3}
.glossary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin:24px 0 0;background:var(--line);border:1px solid var(--line)}.glossary-grid div{padding:18px;background:#fff}.glossary-grid dt{color:var(--red);font:700 1rem Georgia,serif}.glossary-grid dd{margin:6px 0 0;color:var(--muted);font-size:.78rem;line-height:1.5}
.glossary-tools{display:grid;grid-template-columns:auto minmax(220px,1fr) auto;gap:12px;align-items:center;margin-top:24px;padding:15px;background:var(--navy)}.glossary-tools label{color:#f4c64f;font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.glossary-tools input{width:100%;padding:12px 14px;color:var(--navy);background:white;border:2px solid transparent;border-radius:0;font:inherit}.glossary-tools input:focus{outline:3px solid #f4c64f;outline-offset:2px}.glossary-tools span{color:white;font-size:.75rem;font-weight:800}.glossary-grid div[hidden]{display:none}.glossary-empty{margin:14px 0 0;padding:18px;color:var(--navy);background:#fff6d6;border-left:4px solid #e5b73b;font-weight:800}
.academy-sources{display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center;margin:22px clamp(20px,4vw,55px) 0;padding:30px;color:white;background:linear-gradient(120deg,var(--red-dark),var(--red))}.academy-sources h2{max-width:670px;color:white}.academy-sources p{max-width:760px;margin:0;color:#ffe9ec;line-height:1.55}.academy-sources nav{display:grid;gap:8px}.academy-sources a{padding:11px 13px;color:var(--navy);background:white;text-decoration:none;font-size:.78rem;font-weight:900}
@media(max-width:900px){.academy-hero,.academy-intro,.roster-map,.academy-sources{grid-template-columns:1fr}.academy-intro ol,.control-track,.rule-cards,.payroll-board,.scenario-grid{grid-template-columns:1fr}.contract-blueprint,.entry-grid{grid-template-columns:1fr 1fr}.contract-blueprint .blueprint-main{grid-column:1/-1;grid-row:auto}.glossary-grid{grid-template-columns:repeat(2,1fr)}.cbt-meter{grid-template-columns:1fr}.cbt-meter ol{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.academy-hero{padding:42px 22px}.academy-module{padding:20px}.academy-module>header{grid-template-columns:1fr;gap:5px}.contract-blueprint,.entry-grid,.glossary-grid{grid-template-columns:1fr}.glossary-tools{grid-template-columns:1fr}.professor-note{display:block}.professor-note p{margin-top:6px}.roster-ring{width:230px;border-width:38px}.cbt-meter ol{grid-template-columns:1fr}}

/* Contract infographic */
.contract-hero { display:grid; grid-template-columns:1.05fr 1.25fr .9fr; align-items:center; min-height:178px; color:white; background:radial-gradient(circle at 17% 35%,rgba(244,198,79,.17),transparent 28%),linear-gradient(118deg,#06192b 0 64%,#102f4c 64%); border-bottom:4px solid var(--red); }
.contract-hero-number { padding:28px 26px; }
.contract-hero-number span,.contract-hero-number small { display:block; color:#becddd; text-transform:uppercase; letter-spacing:.1em; font-size:.68rem; font-weight:800; }
.contract-hero-number strong { display:block; margin:3px 0; color:#f4c64f; font:700 clamp(2.5rem,5vw,4rem)/1 Georgia,serif; }
.contract-hero-path { display:grid; grid-template-columns:auto 1fr auto 1fr auto; gap:9px; align-items:center; padding:22px; }
.contract-hero-path span { width:48px; height:48px; display:grid; place-items:center; border:2px solid #f4c64f; border-radius:50%; font:700 .78rem Georgia,serif; }
.contract-hero-path i { height:2px; background:linear-gradient(90deg,#f4c64f,#d6002a); }
.contract-hero-path b { padding:7px 8px; color:white; border:1px solid #66809a; text-align:center; text-transform:uppercase; letter-spacing:.07em; font-size:.64rem; }
.contract-hero-facts { display:grid; grid-template-columns:1fr; align-self:stretch; background:rgba(255,255,255,.05); }
.contract-hero-facts div { display:flex; align-items:baseline; justify-content:space-between; gap:10px; padding:12px 18px; border-bottom:1px solid rgba(255,255,255,.12); }
.contract-hero-facts div:last-child { border:0; }
.contract-hero-facts strong { color:white; font:700 1.25rem Georgia,serif; }
.contract-hero-facts span { color:#b9c9d7; text-align:right; font-size:.67rem; text-transform:uppercase; letter-spacing:.07em; }
.contract-reading-note { margin:0; padding:14px 22px; color:#5e512b; background:#fff6d6; border-bottom:1px solid #ead899; font-size:.78rem; line-height:1.5; }
.journey-label { display:flex; justify-content:space-between; align-items:baseline; gap:15px; padding:25px 24px 3px; }
.journey-label span { color:var(--navy); font:700 1.15rem Georgia,serif; }
.journey-label small { color:var(--muted); font-size:.7rem; text-transform:uppercase; letter-spacing:.07em; }
@container (min-width: 620px) and (max-width: 1049px) {
  .contract-flow { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:52px 18px; padding:60px 22px 20px; }
  .contract-flow::before { display:none; }
  .contract-stage { display:flex; padding:0; }
  .contract-node { left:50%; top:-44px; transform:translateX(-50%); }
  .contract-stage-body { width:100%; display:flex; flex-direction:column; }
  .contract-stage-body > p { flex:1; }
  .contract-links { align-items:flex-start; }
}
@container (min-width: 1050px) {
  .contract-flow { display:grid; grid-template-columns:repeat(var(--stage-count),minmax(0,1fr)); gap:14px; padding:60px 22px 18px; }
  .contract-flow::before { left:9%; right:9%; top:37px; bottom:auto; width:auto; height:3px; background:linear-gradient(90deg,#d6002a 0 68%,#f4c64f 68%); }
  .contract-stage { display:flex; padding:0; }
  .contract-node { left:50%; top:-44px; transform:translateX(-50%); }
  .contract-stage-body { width:100%; display:flex; flex-direction:column; padding:16px; }
  .contract-stage-top { min-height:48px; }
  .contract-stage-body > p { flex:1; }
  .contract-links { flex-direction:column; align-items:flex-start; }
  .contract-panel details { margin-left:22px; }
}
.methodology { margin: 0 clamp(20px, 4vw, 60px) 60px; padding: 42px clamp(24px, 4vw, 55px); color: white; background: var(--blue); }
.methodology h2 { margin: 0; font: 700 clamp(2rem, 4vw, 3.4rem) Georgia, serif; }
.method-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 35px; margin-top: 28px; }
.method-grid p { margin: 0; color: #d6e2ec; line-height: 1.6; }
.method-grid strong { display: block; color: white; font-family: Georgia, serif; font-size: 1.08rem; margin-bottom: 5px; }
.error { padding: 30px; color: var(--red-dark); }
.injury-archive { max-width: 1500px; }
.archive-hero { min-height: 300px; padding: 45px clamp(20px,5vw,78px); display: grid; grid-template-columns: 1.25fr .75fr; align-items: end; gap: 50px; color: white; background: linear-gradient(118deg,var(--navy) 0 63%,var(--blue) 63%); }
.archive-hero h1 { font-size: clamp(3rem,6vw,5.8rem); }
.archive-hero h1 em { -webkit-text-stroke-color: #ff879e; }
.pilot-notice { padding: 22px; border: 1px solid #6f8498; background: rgba(255,255,255,.05); }
.pilot-notice strong { color: #ff9caf; font: 700 1.15rem Georgia,serif; }
.pilot-notice p { margin: 8px 0 0; color: #d6e2ec; line-height: 1.5; }
.archive-controls { margin: -20px clamp(20px,4vw,60px) 0; padding: 24px; position: relative; z-index: 1; background: var(--white); border: 1px solid var(--line); box-shadow: var(--shadow); }
.injury-dashboard { padding: 24px clamp(20px,4vw,60px); display: grid; grid-template-columns: .58fr 1fr 1fr; gap: 18px; align-items: stretch; }
.summary-rail,.chart-card { background: var(--white); border: 1px solid var(--line); }
.summary-rail { display: grid; grid-template-rows: repeat(3,1fr); }
.summary-rail div { padding: 19px; border-bottom: 1px solid var(--line); }
.summary-rail div:last-child { border: 0; }
.summary-rail strong,.summary-rail span { display:block; }
.summary-rail strong { color:var(--red); font:700 2rem Georgia,serif; }
.summary-rail span { margin-top:4px; color:var(--muted); font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; }
.chart-card { padding: 20px; }
.chart-card header { display:flex; justify-content:space-between; align-items:baseline; gap:10px; margin-bottom:16px; }
.chart-card h2 { margin:0; font:700 1.15rem Georgia,serif; }
.chart-card header span { color:var(--muted); font-size:.7rem; }
.area-chart,.season-chart { display:grid; gap:9px; }
.season-chart { max-height:230px; overflow:auto; }
.chart-row { display:grid; grid-template-columns: 100px 1fr 22px; gap:8px; align-items:center; font-size:.72rem; }
.chart-row > span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--muted); }
.chart-row i { height:8px; background:#e6e2da; }
.chart-row b { display:block; width:var(--value); height:100%; background:linear-gradient(90deg,var(--red-dark),var(--red)); }
.chart-row > strong { text-align:right; }
.archive-results { margin: 0 clamp(20px,4vw,60px) 34px; background:var(--white); border:1px solid var(--line); }
.results-head { padding:24px; display:flex; justify-content:space-between; align-items:end; border-bottom:3px solid var(--navy); }
.results-head h2 { margin:0; font:700 2rem Georgia,serif; }
.results-head > p { margin:0; color:var(--muted); }
.archive-record { display:grid; grid-template-columns:70px minmax(0,1fr) auto; gap:20px; padding:22px 24px; border-bottom:1px solid var(--line); }
.record-year { color:var(--red); font:700 1.3rem Georgia,serif; }
.record-player { color:var(--red-dark); font-size:.75rem; font-weight:900; text-transform:uppercase; letter-spacing:.06em; text-decoration:none; }
.archive-record h3 { margin:4px 0 7px; font:700 1.15rem Georgia,serif; }
.archive-record p { margin:4px 0; color:var(--muted); line-height:1.45; font-size:.8rem; }
.archive-record p b { color:var(--ink); }
.source-chip { align-self:start; padding:7px 9px; color:var(--navy); border:1px solid var(--line); text-decoration:none; font-size:.7rem; font-weight:800; }
.no-results { padding:50px; text-align:center; color:var(--muted); }
.no-results strong { color:var(--ink); font:700 1.3rem Georgia,serif; }
.archive-method { margin-top:0; }
@media (max-width: 900px) {
  .intro { grid-template-columns: 1fr; gap: 35px; }
  .explorer { grid-template-columns: 1fr; }
  .player-card { position: static; min-height: 0; }
  .method-grid { grid-template-columns: 1fr; gap: 18px; }
  .archive-hero { grid-template-columns:1fr; }
  .injury-dashboard { grid-template-columns:1fr 1fr; }
  .summary-rail { grid-column:1/-1; grid-template-columns:repeat(3,1fr); grid-template-rows:none; }
  .summary-rail div { border-bottom:0; border-right:1px solid var(--line); }
  .lesson-flow { align-items:stretch; }
  .contract-hero { grid-template-columns:1fr 1fr; }
  .contract-empty-graphic { grid-template-columns:1fr; }
  .contract-hero-facts { grid-column:1/-1; grid-template-columns:repeat(3,1fr); }
  .contract-hero-facts div { display:block; text-align:center; border-bottom:0; border-right:1px solid rgba(255,255,255,.12); }
  .contract-hero-facts span { display:block; text-align:center; margin-top:3px; }
}
@media (max-width: 620px) {
  .masthead nav { display: none; }
  .brand small { display: none; }
  .intro { padding-top: 40px; }
  .archive-stats { grid-template-columns: 1fr 1fr 1fr; }
  .archive-stats div { padding: 12px 8px; }
  .filters { grid-template-columns: 1fr; }
  .explorer { padding-inline: 12px; }
  .search-panel { padding: 17px; }
  .player-years { display: none; }
  .player-row { grid-template-columns: 39px minmax(0,1fr) 20px; }
  .detail-head, .detail-body { padding-left: 20px; padding-right: 20px; }
  .stat-strip { grid-template-columns: 1fr 1fr; }
  .stat-strip div:nth-child(2) { border-right: 0; }
  .stat-strip div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .career-summary { grid-template-columns: 1fr; }
  .peak-season { padding: 14px 0 0; border-left: 0; border-top: 1px solid var(--line); }
  .injury-list li { grid-template-columns: 70px 1fr; }
  .injury-list a { grid-column: 2; }
  .injury-dashboard { grid-template-columns:1fr; padding-inline:12px; }
  .summary-rail,.chart-card { grid-column:auto; }
  .summary-rail { grid-template-columns:1fr; }
  .summary-rail div { border-right:0; border-bottom:1px solid var(--line); }
  .archive-controls,.archive-results { margin-left:12px; margin-right:12px; }
  .archive-record { grid-template-columns:55px 1fr; gap:12px; padding:18px 16px; }
  .source-chip { grid-column:2; justify-self:start; }
  .contract-head,.contract-panel > header { align-items:flex-start; flex-direction:column; }
  .contract-summary { grid-template-columns:1fr; }
  .contract-summary div { border-right:0; border-bottom:1px solid var(--line); }
  .contract-flow { padding-left:58px; padding-right:14px; }
  .contract-flow::before { left:34px; }
  .contract-node { left:-43px; }
  .contract-stage-top { flex-direction:column; gap:8px; }
  .contract-value { text-align:left; }
  .contract-panel details { margin-left:14px; margin-right:14px; }
  .lesson-grid { grid-template-columns:1fr; }
  .contract-hero { grid-template-columns:1fr; }
  .contract-hero-path { padding-top:0; }
  .contract-hero-facts { grid-column:auto; grid-template-columns:1fr; }
  .contract-hero-facts div { display:flex; text-align:left; border-right:0; border-bottom:1px solid rgba(255,255,255,.12); }
  .contract-hero-facts span { display:block; text-align:right; }
  .journey-label { align-items:flex-start; flex-direction:column; gap:4px; }
  .research-route { padding-top:4px; }
  .contract-empty-copy > div { align-items:flex-start; flex-direction:column; }
  .transaction-hero { grid-template-columns:1fr 1fr; }
  .transaction-row { grid-template-columns:1fr; gap:5px; }
  .transaction-row > a { justify-self:start; }
}
