:root{--bg:#0d0f14;--panel:#161922;--panel2:#1d2130;--line:#2a2f40;--text:#e9ebf1;--muted:#8e95a8;--gold:#d4af37;--gold2:#f1d77a;--win:#4cc38a;--loss:#e5636b;--radius:14px}
*{box-sizing:border-box}
body{margin:0;background:radial-gradient(1200px 600px at 50% -200px,#1f2433 0,var(--bg) 60%) fixed,var(--bg);color:var(--text);font:15px/1.5 Inter,system-ui,sans-serif}
a{color:var(--gold2);text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3,.brand,.num{font-family:Oswald,Impact,sans-serif;letter-spacing:.02em;text-transform:uppercase}
h1{font-size:40px;margin:.2em 0}h2{font-size:24px;margin:1.6em 0 .6em}h3{font-size:17px;margin:.2em 0 .6em;color:var(--gold2)}
main{max-width:1180px;margin:0 auto;padding:24px 16px 60px}
.muted{color:var(--muted)}.right{margin-left:auto}.inline{display:inline}
nav.top{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:20px;padding:calc(12px + env(safe-area-inset-top)) calc(20px + env(safe-area-inset-right)) 12px calc(20px + env(safe-area-inset-left));background:rgba(13,15,20,.88);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.brand{font-size:22px;color:var(--text);display:flex;align-items:center;gap:10px}.brand:hover{text-decoration:none}
.brand .logo{height:48px;margin:-4px 0;width:auto;display:block;filter:drop-shadow(0 2px 6px #0008)}
.links{display:flex;align-items:center;gap:18px;margin-left:auto}.links a{color:var(--text);font-weight:500}.links a:hover{color:var(--gold2);text-decoration:none}
#navtoggle,.burger{display:none}
@media(max-width:860px){.burger{display:block;margin-left:auto;font-size:24px;cursor:pointer}.links{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:flex-start;padding:16px 20px;background:var(--bg);border-bottom:1px solid var(--line)}#navtoggle:checked~.links{display:flex}}
.btn,button{font:inherit;cursor:pointer;border:0;border-radius:10px;padding:9px 16px;background:var(--gold);color:#14161c;font-weight:600}
.btn:hover,button:hover{background:var(--gold2);text-decoration:none}.btn.small{padding:6px 12px}.btn.ghost,button.ghost{background:transparent;border:1px solid var(--line);color:var(--text)}
button.link{background:none;color:var(--muted);padding:0;font-weight:500}button.link:hover{color:var(--text)}.danger{color:var(--loss)!important}
.chip{background:var(--panel2);color:var(--text);padding:4px 12px;border-radius:999px;border:1px solid var(--line);font-weight:500}.chip.on{border-color:var(--gold);color:var(--gold2)}
.flash{background:#2a2410;border:1px solid #6b5a1c;color:var(--gold2);padding:10px 14px;border-radius:10px;margin-bottom:16px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.grid{display:grid;gap:16px}.g2{grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr))}.g3{grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr))}.g4{grid-template-columns:repeat(auto-fill,minmax(min(210px,100%),1fr))}
.badge{border-radius:50%;object-fit:cover;flex:none;background:#0003}.mono{display:inline-grid;place-items:center;font-family:Oswald,sans-serif;font-weight:700;border:2px solid #fff2}
.tlink{display:inline-flex;align-items:center;gap:8px;color:var(--text);font-weight:600}.tlink:hover span{color:var(--gold2)}
table{width:100%;border-collapse:collapse}th,td{padding:9px 10px;text-align:left;border-bottom:1px solid var(--line)}th{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}tr:last-child td{border-bottom:0}
.table-wrap{overflow-x:auto}
.hero{position:relative;border-radius:20px;overflow:hidden;padding:48px 32px;margin-bottom:24px;background:linear-gradient(120deg,#1a1d28,#252a3a);border:1px solid var(--line)}
.hero .kicker{color:var(--gold);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:13px}
.trophy{display:flex;align-items:center;gap:20px}
.stat{text-align:center}.stat .num{font-size:30px;color:var(--gold2);line-height:1.1}.stat .lbl{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.statrow{display:flex;gap:28px;flex-wrap:wrap}
.w{color:var(--win)}.l{color:var(--loss)}
.score{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.score:last-child{border:0}.score .num{font-size:18px}.score .lose{opacity:.55}
/* team page */
.team-hero{padding:0;min-height:320px;display:flex;align-items:flex-end;background:var(--tp)}
.team-hero .bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.45}
.team-hero .fade{position:absolute;inset:0;background:linear-gradient(0deg,var(--bg) 0,transparent 70%),linear-gradient(90deg,var(--tp) 0,transparent 70%)}
.team-hero .inner{position:relative;display:flex;align-items:flex-end;gap:24px;padding:32px;width:100%;flex-wrap:wrap}
.team-hero h1{font-size:52px;line-height:1}
.stripe{height:6px;background:linear-gradient(90deg,var(--tp) 0 50%,var(--ts) 50%)}
.jerseys{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
.jersey{text-align:center}.jersey .frame{aspect-ratio:1;border-radius:12px;background:var(--panel2);display:grid;place-items:center;overflow:hidden;border:1px solid var(--line)}
.jersey img{max-width:100%;max-height:100%;object-fit:contain}.jersey .empty{color:var(--muted);font-size:13px;padding:20px}
.stadium img{width:100%;border-radius:12px;aspect-ratio:16/7;object-fit:cover}
.mascot{display:flex;gap:20px;align-items:center;flex-wrap:wrap}.mascot .frame{width:min(260px,100%);aspect-ratio:1;border-radius:12px;background:var(--panel2);display:grid;place-items:center;overflow:hidden;border:1px solid var(--line);flex:none}
.mascot .frame img{max-width:100%;max-height:100%;object-fit:contain}.mascot .empty{color:var(--muted);font-size:13px;padding:20px;text-align:center}
.slot{font-family:Oswald;color:var(--muted);width:56px}
.tag{font-size:11px;padding:2px 7px;border-radius:6px;background:#3a1d20;color:#ff9aa0;font-weight:600}
/* feed */
.post header{display:flex;align-items:center;gap:12px;margin-bottom:8px}.post .meta{color:var(--muted);font-size:13px;margin-left:auto}
.post .body{white-space:pre-wrap;margin:6px 0 10px}.post-img{max-width:100%;border-radius:10px;margin-bottom:10px}
.post footer{display:flex;align-items:center;gap:12px}.comment{padding:8px 0 0;font-size:14px;border-top:1px solid var(--line);margin-top:8px}
.comment-form{display:flex;gap:8px;margin-top:10px}
input,textarea,select{font:inherit;color:var(--text);background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:9px 12px;width:100%}
textarea{min-height:90px;resize:vertical}input[type=color]{padding:2px;height:40px;width:70px}input[type=checkbox]{width:auto}
label{display:block;font-size:13px;color:var(--muted);margin:10px 0 4px}
.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.stack>*+*{margin-top:16px}
/* records / hof */
.record h3{display:flex;justify-content:space-between}.record ol{margin:0;padding:0;list-style:none}
.record li{display:grid;grid-template-columns:70px 1fr;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line)}.record li:last-child{border:0}
.record .num{font-size:19px;color:var(--gold2);text-align:right}.record li:first-child .num{font-size:24px}
.record .sub{font-size:12px;color:var(--muted)}
.plaque{background:linear-gradient(160deg,#2b2512,#16130a);border:1px solid #6b5a1c;border-radius:16px;padding:22px;text-align:center}
.plaque .badge{margin:0 auto 10px;display:block}
.plaque-team{display:flex;justify-content:center;align-items:center;gap:6px;text-align:center;line-height:1.3;margin:2px 0}
.plaque .plaque-team .badge{margin:0;display:inline-block;flex:none}
.plaque .badge.mono{display:grid;place-items:center}.plaque .plaque-team .badge.mono{display:inline-grid}.plaque h3{color:var(--gold2);font-size:20px}.plaque .cite{font-style:italic;color:#d9cfa8;font-size:14px}
.bar{height:8px;background:var(--panel2);border-radius:99px;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--gold2))}
.rules li{margin:6px 0}
footer.site{text-align:center;color:var(--muted);font-size:13px;padding:30px 16px calc(30px + env(safe-area-inset-bottom));border-top:1px solid var(--line)}
/* players */
.pos-QB{background:#1f5f3a;color:#c9f7da}.pos-RB{background:#7a2530;color:#ffd6dc}.pos-WR{background:#1f4a78;color:#d4e7ff}.pos-TE{background:#6e5a12;color:#fff2bf}.pos-K{background:#3a3f52;color:#d9dce6}.pos-DEF{background:#4a2c78;color:#e6d9ff}.pos-FLEX{background:#7a4316;color:#ffe2c7}
/* position text, colored the same way everywhere: QB green, RB red, WR blue, TE yellow, FLEX orange, DEF purple, K grey */
.pos-txt{font-weight:600}.pos-t-QB{color:#4fd08a!important}.pos-t-RB{color:#ff6b72!important}.pos-t-WR{color:#5fb0ff!important}.pos-t-TE{color:#f2cf4a!important}
.pos-t-FLEX{color:#ff9f45!important}.pos-t-DEF{color:#b993ff!important}.pos-t-K{color:#a9afbf!important}
.tier{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:6px;white-space:nowrap;background:var(--panel2);color:var(--muted)}
.tier-hall-of-famer{background:linear-gradient(135deg,var(--gold),#8a6d12);color:#14161c}.tier-lock{background:#3d3210;color:var(--gold2)}.tier-strong-case{background:#173828;color:#8ff0bf}.tier-on-the-bubble{background:#1d2a44;color:#a9c6ff}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 18px}.filters a{padding:6px 12px;border-radius:999px;border:1px solid var(--line);color:var(--text);font-size:14px}.filters a.on{border-color:var(--gold);color:var(--gold2);background:#2a2410}.filters a:hover{text-decoration:none;border-color:var(--gold)}
.plink{display:inline-flex;align-items:center;gap:10px;color:var(--text);font-weight:600}.plink:hover span{color:var(--gold2)}
.pl-cell .pl-text{display:flex;flex-direction:column;gap:2px;min-width:0}.pl-cell .pl-name{white-space:nowrap;line-height:1.2}
/* a position (or "RB · KC") right after a player's name: center it on the name and headshot, not the text baseline */
.plink,.pos-side{vertical-align:middle}.pos-side{display:inline-block;line-height:1.2;font-size:12px;letter-spacing:.03em}
.pbio{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:14px;margin:2px 0 6px}
.pl-pos{display:flex;align-items:center;gap:4px;font-size:11px;font-weight:600;letter-spacing:.04em;line-height:1.2;white-space:nowrap;color:var(--muted)}.pl-pos .muted{font-weight:400;letter-spacing:0}
.pl-elig{background:#173828;color:#8ff0bf;font-size:10px;padding:1px 6px;margin-left:2px}
.score-big{font:700 64px/1 Oswald,sans-serif;color:var(--gold2)}
/* hall of fame sections */
.hof-tabs{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:18px}.hof-tabs a{padding:8px 16px;border-radius:999px;border:1px solid #6b5a1c;color:var(--gold2);font-weight:600;background:#0d0f1488}.hof-tabs a:hover{text-decoration:none;background:#2a2410}
section[id]{scroll-margin-top:80px}.section-title{border-bottom:2px solid var(--gold);padding-bottom:8px;margin-top:40px}
.hof-entry{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.hof-entry img{width:100%;max-height:340px;object-fit:cover;display:block}.hof-entry .body{padding:16px 18px}.hof-entry h3{font-size:20px}
.hof-entry.moment{border-left:4px solid var(--gold)}
.hof-entry.meme{background:linear-gradient(160deg,#241a33,#16131f);border-color:#4b3a66}.hof-entry.meme h3{color:#e3b8ff}.hof-entry.meme .kicker{color:#c08bff}.hof-entry.meme img{object-fit:contain;background:#0d0f14}
/* sortable tables */
table.sortable th:not(:first-child){cursor:pointer;user-select:none;white-space:nowrap}table.sortable th:not(:first-child):hover{color:var(--gold2)}
table.sortable th.asc::after{content:" ▲";color:var(--gold2)}table.sortable th.desc::after{content:" ▼";color:var(--gold2)}
/* player cards */
.pmodal{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-start;justify-content:center;padding:4vh 12px}.pmodal[hidden]{display:none}
.pmodal-backdrop{position:absolute;inset:0;background:rgba(5,6,10,.72);backdrop-filter:blur(3px)}
.pmodal-box{position:relative;width:min(980px,100%);max-height:92vh;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:0 30px 80px #000a}
.pmodal-nav{position:fixed;top:50%;z-index:2;width:48px;height:48px;margin-top:-24px;border-radius:50%;padding:0 0 4px;font-size:32px;line-height:1;background:var(--panel2);color:var(--text);border:1px solid var(--line);box-shadow:0 8px 24px #000a}
.pmodal-nav.prev{left:max(10px,calc(50% - 490px - 64px))}.pmodal-nav.next{right:max(10px,calc(50% - 490px - 64px))}
.pmodal-nav:hover:not(:disabled){border-color:var(--gold);color:var(--gold2)}.pmodal-nav:disabled{opacity:.3;cursor:default}
.pmodal-count{position:fixed;left:50%;bottom:calc(14px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:2;padding:4px 12px;border-radius:999px;background:var(--panel2);border:1px solid var(--line);color:var(--muted);font-size:12px;pointer-events:none;box-shadow:0 4px 14px #000a}
.pmodal-box.stepping .pmodal-body{opacity:.4;transition:opacity .15s}
.pmodal-box.slide-l{animation:pslide-l .22s ease-out}.pmodal-box.slide-r{animation:pslide-r .22s ease-out}
@keyframes pslide-l{from{transform:translateX(40px);opacity:.3}}@keyframes pslide-r{from{transform:translateX(-40px);opacity:.3}}
@media(prefers-reduced-motion:reduce){.pmodal-box.slide-l,.pmodal-box.slide-r{animation:none}.pswipe-settle .pmodal-box>.pmodal-body,.pswipe-settle .pmodal-peek{transition:none!important}}
.pmodal-x{position:sticky;top:0;float:right;margin:-8px -8px 0 0;width:36px;height:36px;border-radius:50%;padding:0;font-size:22px;line-height:1;background:var(--panel2);color:var(--text);border:1px solid var(--line)}
.pcard-head{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.pcard-head .stat .num{font-size:34px}
.pcard-tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:12px}
.pcard-tabs button{background:none;color:var(--muted);border-radius:0;padding:8px 14px;border-bottom:2px solid transparent;font-weight:600}.pcard-tabs button.on{color:var(--gold2);border-bottom-color:var(--gold)}.pcard-tabs button:hover{background:none;color:var(--text)}
.season-row{cursor:pointer}.season-row:hover td{background:var(--panel2)}.season-row .chev{display:inline-block;transition:transform .15s;color:var(--muted)}.season-row.open .chev{transform:rotate(90deg)}
.gamelog>td{background:#11141c;padding:6px 8px 12px}.glog th,.glog td{padding:5px 8px;font-size:13px}.glog tr.bench td{opacity:.6}
.tx{display:flex;gap:14px;padding:10px 0;border-bottom:1px solid var(--line);align-items:center}.tx-when{width:110px;flex:none;color:var(--muted);font-size:13px}.tx-icon{display:inline-block;width:20px;text-align:center;font-weight:700}
/* player photos */
img.headshot{object-fit:cover;object-position:top;background:radial-gradient(circle at 50% 35%,#2a3042,#151821)}
.pcard-photo{position:relative;flex:none;text-align:center}.pcard-photo .badge{box-shadow:0 0 0 3px var(--gold),0 8px 24px #0008}
.photo-edit{margin-top:8px;font-size:13px;max-width:200px;text-align:left}.photo-edit summary{cursor:pointer}
.rank-sub{font-size:12px;color:var(--muted);margin-top:3px}.rank-sub.top{color:var(--gold2);font-weight:600}
/* trade grader */
.trade{margin-bottom:16px}.trade-head{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.trade-body{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.trade-side{background:var(--panel2);border-radius:12px;padding:12px 14px}
.asset{display:flex;align-items:center;gap:6px;padding:5px 0;border-top:1px solid var(--line);font-size:14px}
.grade{display:inline-grid;place-items:center;min-width:44px;height:44px;border-radius:10px;font:700 20px Oswald,sans-serif;background:#2a2f40;color:var(--muted)}
.grade-ap,.grade-a{background:#173828;color:#8ff0bf}.grade-b{background:#1b3324;color:#b8e8c9}.grade-c{background:#2a2f40;color:#e9ebf1}.grade-d{background:#3a2a1a;color:#ffc89a}.grade-f{background:#3a1d20;color:#ff9aa0}
.grade.lean{opacity:.7;outline:2px dashed #ffffff33;outline-offset:2px}
.trade-chart{margin-top:12px}.trade-chart svg{width:100%;height:60px;background:#11141c;border-radius:8px}
#alltime th,#alltime td{padding:8px 7px}#alltime td{font-size:14px}
.hof-entry.proposal{border-style:dashed}.vote-bar{display:flex;gap:4px}.vote-bar i{flex:1;height:8px;border-radius:4px;background:var(--panel2)}.vote-bar i.on{background:linear-gradient(90deg,var(--gold),var(--gold2))}
/* draft analytics */
.grade.sm{min-width:32px;height:32px;font-size:16px;border-radius:8px}
.draft-grid th,.draft-grid td{text-align:center;padding:6px 4px}.draft-grid th:first-child{text-align:left;width:60px}
.draft-grid td.heat{min-width:62px;border:2px solid var(--panel);border-radius:8px;cursor:default}.draft-grid td.heat b{display:block;font:700 18px Oswald,sans-serif}
.draft-grid td.heat small{font-size:11px;color:#e9ebf1cc}.draft-grid td.empty{background:transparent}
@media(max-width:900px){#board-grid{grid-template-columns:1fr!important}}
/* notifications */
label.toggle{display:flex;gap:12px;align-items:flex-start;color:var(--text);font-size:15px;margin:0;padding:12px 0;border-bottom:1px solid var(--line);cursor:pointer}
label.toggle input{flex:none;margin-top:4px;width:18px;height:18px;accent-color:var(--gold)}
/* organizations */
.org-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,480px),1fr))}
.org table td,.org table th{padding:6px 6px;font-size:14px}.org select{padding:5px 8px;font-size:13px;min-width:150px}
.org tr.moved td{background:#2a2410}
.save-bar{position:sticky;bottom:0;display:flex;align-items:center;justify-content:flex-end;gap:14px;margin-top:16px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:rgba(13,15,20,.92);backdrop-filter:blur(8px);border-top:1px solid var(--line)}
/* ---------- phones ---------- */
/* tables that scroll sideways keep their name column in view (pin-N = the Nth column) */
table.pin-1 tr>:nth-child(1),table.pin-2 tr>:nth-child(2),table.pin-3 tr>:nth-child(3){position:sticky;left:0;z-index:1;background:var(--panel)}
.matchup{display:grid;gap:2px;padding:8px 0;border-bottom:1px solid var(--line)}.matchup:last-child{border:0}
.matchup .side{display:flex;align-items:center;justify-content:space-between;gap:10px}.matchup .side .num{font-size:18px}.matchup .side.lose{opacity:.55}
.menu-label{display:none}
@media(max-width:860px){.links .menu-label{display:inline}.links a.me{display:flex;align-items:center;gap:10px}}
@media(max-width:640px){
  body{font-size:15px}
  /* tables that fill a card run edge to edge, so a pinned column has nothing peeking out beside it */
  .card.table-wrap{padding:4px 0}.card.table-wrap tr>:first-child{padding-left:14px}.card.table-wrap tr>:last-child{padding-right:14px}
  #alltime tr>:first-child{display:none}#alltime tr>:nth-child(2){padding-left:14px}
  .team-hero .kicker{color:#fff;opacity:.9;text-shadow:0 1px 3px #000c}
  main{padding:16px 16px 48px}
  h1{font-size:30px;line-height:1.1}h2{font-size:20px;margin:1.4em 0 .5em}h3{font-size:16px}
  .card{padding:14px}
  .grid{gap:12px}
  .hero{padding:24px 18px;border-radius:16px;margin-bottom:16px}
  .trophy{gap:14px}.trophy .badge{width:56px!important;height:56px!important;font-size:21px!important}
  /* team page */
  .team-hero{min-height:0}.team-hero .inner{padding:20px 18px;gap:14px}
  .team-hero .inner>.badge{width:84px!important;height:84px!important;font-size:32px!important}
  .team-hero h1{font-size:32px}.team-hero .right{margin-left:0;width:100%}
  .statrow{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 8px}.stat .num{font-size:22px}.stat .lbl{font-size:11px}
  /* tables: tighter, numbers never wrap mid-record */
  th,td{padding:7px 6px}td{font-size:14px}th{font-size:11px}
  td.n,th.n{white-space:nowrap}
  .tlink{gap:6px}.tlink .badge{width:24px!important;height:24px!important;font-size:9px!important}
  .hide-sm{display:none}
  table.pin-1 tr>:nth-child(1),table.pin-2 tr>:nth-child(2),table.pin-3 tr>:nth-child(3){max-width:150px}
  /* Hall of Fame Tracker: names and tags wrap inside the pinned column instead of running into the next one */
  .pl-cell{gap:8px;max-width:100%}.pl-cell .badge{width:28px!important;height:28px!important;font-size:9px!important}
  table.pin-2 td:has(>.pl-cell){min-width:172px;max-width:190px}
  .pl-cell .pl-name{white-space:normal;line-height:1.15}
  .pl-pos{flex-wrap:wrap;white-space:normal;row-gap:3px}.pl-elig{margin-left:0}
  table.pin-1 tr>:nth-child(1)::after,table.pin-2 tr>:nth-child(2)::after,table.pin-3 tr>:nth-child(3)::after{content:"";position:absolute;top:0;right:-8px;bottom:0;width:8px;background:linear-gradient(90deg,#0006,transparent);pointer-events:none}
  /* menu: bigger tap targets, scrolls if it's taller than the screen */
  .links{gap:0;max-height:calc(100vh - 70px);overflow-y:auto;padding:6px 20px 14px}
  .links>a,.links>form{width:100%;padding:12px 0;border-bottom:1px solid var(--line);font-size:16px}
  .links>a.me{border:0;padding-top:14px}.links .btn.small{text-align:center;margin-top:10px;padding:12px}
  /* iPhone zooms into any field with text under 16px; keep forms steady */
  input,select,textarea{font-size:16px}
  /* trades */
  .asset{flex-wrap:wrap}.trade-body{grid-template-columns:1fr}.trade-side{padding:10px 12px}
  /* player cards */
  .pmodal{padding:0}
  .pmodal-box{max-height:none;height:100%;height:100dvh;border-radius:0;
    padding:calc(14px + env(safe-area-inset-top)) 14px calc(20px + env(safe-area-inset-bottom))}
  /* the close button stays put below the status bar and notch, big enough for a thumb */
  .pmodal-x{position:fixed;float:none;margin:0;top:calc(10px + env(safe-area-inset-top));right:12px;width:44px;height:44px;font-size:26px;z-index:3;box-shadow:0 4px 14px #000a}
  .pmodal .pcard-head{display:grid;grid-template-columns:76px minmax(0,1fr);gap:12px;align-items:start;padding-right:46px}
  .pmodal .pcard-photo .badge{width:76px!important;height:76px!important;font-size:24px!important}
  .pmodal .pcard-head h2{font-size:22px}
  .pmodal .pcard-head .stat{grid-column:1/-1;display:flex;align-items:center;gap:10px;text-align:left}.pmodal .pcard-head .stat .num{font-size:28px}
  .pcard-tabs{overflow-x:auto}.pcard-tabs button{white-space:nowrap}
  /* Head to Head: logos alone in the pinned column, so more of the grid fits */
  .h2h-grid th:first-child .tlink span{display:none}.h2h-grid .c{min-width:60px}
  /* page titles get room from the tabs above and the boxes below */
  .subtabs+h1{margin-top:14px}h1{margin-bottom:12px}
  .rank-note{text-align:center!important}
  /* season results: the two teams stack, with the score beside them, so long names always fit */
  .score.mu-click{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;row-gap:4px;align-items:center}
  .score.mu-click>.num{grid-column:2;grid-row:1/span 2}.score.mu-click>span:not(.num){grid-column:1;min-width:0}
  /* record book: the biggest numbers stay clear of the team logo beside them */
  .record li{grid-template-columns:78px minmax(0,1fr)}.record .num{white-space:nowrap}.record li:first-child .num{font-size:21px}
  .links a[aria-label="Notifications"] .menu-label{margin-left:8px}
  /* phones swipe between cards instead */
  .pmodal-nav{display:none}
  .pmodal-box{touch-action:pan-y;overflow-x:hidden}
  .pmodal-box>.pmodal-body{will-change:transform}
  .pmodal-peek{position:fixed;top:0;left:0;right:0;z-index:1;overflow:hidden;will-change:transform}.pmodal-peek[hidden]{display:none}
  .pswipe-settle .pmodal-box>.pmodal-body,.pswipe-settle .pmodal-peek{transition:transform .24s cubic-bezier(.2,.8,.25,1)}
  .pmodal-box:has(~.pmodal-count:not([hidden])){padding-bottom:calc(52px + env(safe-area-inset-bottom))}
  /* commissioner: member rows and organization seasons stack instead of running off the screen */
  .member-row{flex-wrap:wrap}.member-row>span:first-of-type{flex:1 1 100%}.member-row input[name=nickname]{width:100%}.member-row select{flex:1}
  .org table,.org tbody{display:block}.org tr{display:grid;grid-template-columns:52px 1fr auto;align-items:center;border-bottom:1px solid var(--line)}
  .org tr:first-child{display:none}.org td{border:0;padding:6px 4px}.org td:nth-child(4){grid-column:1/-1;padding-top:0}
  .org select{width:100%;min-width:0}
  .save-bar{margin:16px -16px -48px}
}
/* WAR */
#war tr.repl td{background:#1d2a44}
/* access */
.access-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:8px 0;border-bottom:1px solid var(--line)}.access-row:last-child{border:0}
.access-row .who{flex:1 1 180px;min-width:0}.access-move{display:flex;gap:6px;align-items:center}.access-move select{width:auto;max-width:190px;padding:6px 8px}

/* commissioner trade fixes */
.tx-fix { display: inline-block; margin-left: 6px; font-size: 12px; }
.tx-fix summary { cursor: pointer; color: var(--muted, #9aa); list-style: none; display: inline; text-decoration: underline dotted; }
.tx-fix summary::-webkit-details-marker { display: none; }
.asset:has(.tx-fix[open]) { flex-wrap: wrap; }
.tx-fix[open] { order: 10; flex-basis: 100%; margin: 4px 0 2px; }
.tx-fix select { width: 100%; font-size: 13px; margin-top: 4px; }
.tx-x { padding: 0 4px; color: var(--muted, #9aa); }

/* players page search */
.player-search { display: flex; gap: 8px; align-items: center; max-width: 460px; margin: 0 0 12px; }
.player-search input[type=search] { flex: 1; min-width: 0; }
.player-search button { flex: none; }

/* Hall of Famers: gold player cards and bust images */
.pmodal-box:has(.pcard-gold){background:linear-gradient(160deg,#3a3013 0%,#1f1a0b 38%,#14110a 100%);border-color:var(--gold);box-shadow:0 0 0 1px #d4af3755,0 30px 80px #000a,0 0 60px #d4af3722}
.hero.pcard-gold{background:linear-gradient(120deg,#3a3013,#1d180b 60%,#14110a);border-color:var(--gold);box-shadow:0 0 40px #d4af3720}
.pcard-gold h1,.pcard-gold h2{color:var(--gold2)}
.pcard-gold .pcard-photo .badge{box-shadow:0 0 0 3px var(--gold2),0 0 22px #d4af3766}
.pcard-gold .pcard-tabs{border-bottom-color:#6b5a1c}
.pcard-gold .table-wrap table,.pcard-gold .pcard-seasons{border-color:#6b5a1c}
.hof-ribbon{display:inline-block;margin:0 0 12px;padding:4px 12px;border-radius:999px;background:linear-gradient(90deg,#d4af37,#f1d77a);color:#1a1407;font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.plaque .bust{display:block;width:100%;max-width:220px;aspect-ratio:4/5;object-fit:cover;margin:0 auto 12px;border-radius:12px;border:1px solid #6b5a1c;box-shadow:0 10px 30px #000a}
label.check{display:flex;align-items:center;gap:8px;margin-top:8px;font-weight:400}label.check input{width:auto}

/* three-team trade builder */
.chip-check{display:inline-flex;cursor:pointer}.chip-check input{position:absolute;opacity:0;pointer-events:none}
.chip-check>span{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;font-size:14px}
.chip-check input:checked+span{border-color:var(--gold);background:#2a2410;color:var(--gold2)}.chip-check input:focus-visible+span{outline:2px solid var(--gold)}
.tb-cols{display:grid;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr))}.tb-cols.tb-4{grid-template-columns:repeat(4,minmax(0,1fr))}.tb-cols.tb-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.tb-team{max-height:70vh;overflow:auto;padding:14px}
.tb-asset{display:flex;align-items:center;gap:8px;padding:6px 0;border-top:1px solid var(--line);font-size:14px}
.tb-asset .tb-name{flex:1;min-width:0}.tb-asset select{width:auto;max-width:44%;padding:4px 6px;font-size:13px}
.tb-asset.moving{background:linear-gradient(90deg,#2a241000,#2a2410);}.tb-asset.moving select{border-color:var(--gold);color:var(--gold2)}
.tb-submit{position:sticky;bottom:10px;margin-top:14px;z-index:2;box-shadow:0 -10px 30px #0008}
.tb-rules ol{margin:0;padding-left:20px}.tb-rules li{margin:4px 0}
.tb-step{margin-bottom:12px}.tb-step.done{opacity:.7;border-color:#2f5b45}
.tb-num{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--gold);color:#1a1407;font-weight:800}
.tb-step.done .tb-num{background:var(--win)}
.pick-chips{display:flex;flex-wrap:wrap;gap:6px}.pick-chip{padding:3px 9px;border-radius:8px;background:var(--panel2);border:1px solid var(--line);font-size:13px;font-weight:600}
.pick-chip.acquired{border-color:#3b5b9a;color:#a9c6ff}
@media (max-width:760px){.tb-cols,.tb-cols.tb-4,.tb-cols.tb-2{grid-template-columns:1fr}.tb-team{max-height:none}}

/* schedule */
.sch-week.past{opacity:.75}.sch-week h2{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sch-game{padding:12px 14px}
.sch-team{display:flex;align-items:center;gap:8px;padding:4px 0}.sch-team .sch-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sch-team.won .sch-name{font-weight:700}.sch-team:not(.won) .sch-score{color:var(--muted)}
.sch-score{font-size:18px}.sch-proj{color:var(--muted);font-size:15px}
.sch-pct{min-width:44px;text-align:right;font-weight:700;color:var(--muted)}.sch-pct.fav{color:var(--win)}
.sch-bar{display:flex;height:5px;border-radius:3px;overflow:hidden;margin-top:8px;gap:2px}.sch-bar i{display:block}
.team-sched tr.past td{opacity:.8}.team-sched td.n,.team-sched th{white-space:nowrap}.team-sched td:nth-child(2){width:100%}

/* branding image framing */
.fr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px}
.framer{display:flex;flex-direction:column;gap:6px}.framer input[type=file]{font-size:13px}.framer .fr-status{font-size:12px;min-height:1em}
.fr-preview{display:grid;place-items:center;overflow:hidden;background:var(--panel2);border:1px solid var(--line);width:100%;max-width:200px}
.fr-preview img{width:100%;height:100%;object-fit:cover}.fr-preview .muted{font-size:12px}
.fr-preview.fr-circle{aspect-ratio:1;border-radius:50%;max-width:140px}.fr-preview.fr-square{aspect-ratio:1;border-radius:12px}
.fr-preview.fr-wide{aspect-ratio:16/7;border-radius:12px;max-width:100%}
.fr-box{width:min(560px,100%)}
.fr-stage{position:relative;overflow:hidden;width:100%;margin:0 auto;touch-action:none;cursor:grab;user-select:none;
  background:repeating-conic-gradient(#2a2f40 0 25%,#1d2130 0 50%) 0 0/20px 20px;outline:none;box-shadow:0 0 0 2px var(--gold)}
.fr-stage:active{cursor:grabbing}.fr-stage:focus-visible{box-shadow:0 0 0 3px var(--gold2)}
.fr-stage.fr-circle{border-radius:50%;max-width:380px}.fr-stage.fr-square{border-radius:12px;max-width:380px}.fr-stage.fr-wide{border-radius:12px}
.fr-img{position:absolute;left:0;top:0;max-width:none;transform-origin:0 0;pointer-events:none}
.fr-controls{display:flex;align-items:center;gap:10px;margin:14px auto 0;max-width:380px}.fr-controls input{flex:1}
.fr-buttons{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:10px}
.fr-bg-row{display:flex;align-items:center;gap:10px;justify-content:center;margin-top:10px}.fr-bg-row[hidden]{display:none}.fr-bg-row select{width:auto}
/* the official file is a 293px square with the wordmark in a strip across the middle (x 62-231, y 135-158): show
   just that strip, unchanged, at 20px tall on white so its purple keeps its official look */
.welcome{max-width:460px;margin:48px auto;text-align:center;padding:32px 24px}.welcome img{filter:drop-shadow(0 4px 12px #0008)}.welcome h1{margin:.3em 0 .2em}
/* mini games */
.game-card{display:flex;gap:18px;align-items:flex-start}.game-card>div:last-child{flex:1;min-width:0}
.game-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.game-actions .tier{padding:7px 10px}
.game-art{display:grid;grid-template-columns:repeat(3,22px);gap:4px;flex:none;margin-top:4px}.game-art i{width:22px;height:22px;border-radius:5px;background:var(--panel2);border:1px solid var(--line)}
.game-art i:nth-child(1),.game-art i:nth-child(5),.game-art i:nth-child(9){background:var(--gold)}
.xr-bar{display:flex;align-items:center;gap:24px;flex-wrap:wrap;padding:12px 18px;margin:12px 0 16px}.xr-bar .num{font-size:22px;color:var(--gold2);margin-left:4px}
.xr-grid{display:grid;grid-template-columns:minmax(80px,1fr) repeat(3,minmax(0,1.3fr));gap:8px;max-width:640px}
.xr-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px;text-align:center;font-weight:600;font-size:14px;line-height:1.2;padding-bottom:4px}
.xr-row{display:flex;align-items:center;font-weight:600;font-size:14px;line-height:1.25;padding-right:4px}
.xr-cell{aspect-ratio:1;border-radius:12px;border:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:6px;text-align:center;font-size:13px;line-height:1.2;min-width:0}
.xr-cell b{overflow-wrap:anywhere}
button.xr-cell{color:var(--muted);font-size:28px;font-weight:400}button.xr-cell:hover{background:var(--panel2);border-color:var(--gold);color:var(--gold2)}
.xr-cell.right{border-color:#2f6b4c;background:#14261d}.xr-cell.missed{border-style:dashed;opacity:.75}
.xr-best{font-size:.85em}.xr-pts{color:var(--win);font-weight:700;font-variant-numeric:tabular-nums}
.xr-cell.pop{animation:xrpop .35s ease}@keyframes xrpop{0%{transform:scale(.85)}60%{transform:scale(1.05)}100%{transform:scale(1)}}
.xr-pick{max-width:460px}.xr-pick.shake{animation:xrshake .35s}@keyframes xrshake{25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}
#xr-results{margin-top:8px;display:flex;flex-direction:column;gap:2px}
.xr-hit{display:flex;justify-content:space-between;gap:10px;text-align:left;background:transparent;color:var(--text);border-radius:8px;padding:9px 10px;font-weight:400}
.xr-hit:hover,.xr-hit:focus{background:var(--panel2)}
.xr-answers{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
@media(max-width:560px){.xr-grid{grid-template-columns:74px repeat(3,minmax(0,1fr));gap:5px}.xr-row,.xr-col{font-size:11.5px}.xr-cell{font-size:11px;padding:3px}.xr-cell .badge{width:30px!important;height:30px!important}}
@media(prefers-reduced-motion:reduce){.xr-cell.pop,.xr-pick.shake{animation:none}}
.xr-rank{display:inline-block;width:20px;text-align:right;margin-right:8px;color:var(--muted);font-variant-numeric:tabular-nums}
.xr-weeknav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.xr-board th.today,.xr-board td.today{background:#2a2410}.xr-board tr.me td{color:var(--gold2)}
.br-art{display:grid;grid-template-columns:1fr;place-items:center;width:74px;height:74px;border-radius:50%;background:var(--panel2);border:1px solid var(--line)}.br-art span{font:700 36px Oswald,sans-serif;color:var(--gold)}
.br-card{margin-bottom:16px}.br-card.solved{border-color:#2f6b4c}.br-card.missed{border-color:#6b2f35}
.br-head{display:flex;gap:16px;align-items:flex-start;margin-bottom:12px;flex-wrap:wrap}
.br-photo{flex:none}.br-mystery{display:grid;place-items:center;width:72px;height:72px;border-radius:50%;background:radial-gradient(circle at 50% 35%,#2a3042,#151821);border:1px solid var(--line);font:700 34px Oswald,sans-serif;color:var(--muted)}
.br-hidden{color:#3a3f52;letter-spacing:.02em;user-select:none}
.br-result{flex:none}
.br-hint-row td{background:#2a2410}
.br-tx{margin-top:10px}.br-tx summary{cursor:pointer;color:var(--muted);font-size:14px}
.br-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px}
b.win{color:var(--win)}b.loss{color:var(--loss)}
.br-seasons td:last-child{min-width:220px}
@media(max-width:560px){.br-head{gap:12px}.br-result{order:-1;width:100%}.br-photo .badge,.br-mystery{width:56px!important;height:56px!important}.br-mystery{font-size:26px}}
/* players sub-tabs and league leaders */
.subtabs{display:flex;gap:6px;margin:0 0 6px;flex-wrap:wrap}.subtabs a{padding:6px 14px;border-radius:999px;border:1px solid var(--line);color:var(--muted);font-weight:600;font-size:14px}
.subtabs a.on{border-color:var(--gold);color:var(--gold2);background:#2a2410}.subtabs a:hover{text-decoration:none;color:var(--text)}
table.leaders th a{color:inherit}table.leaders th a:hover{color:var(--gold2);text-decoration:none}
table.leaders th.sorted,table.leaders td.sorted{background:#1d2130}table.leaders th.sorted a{color:var(--gold2)}
table.leaders td{white-space:nowrap}
/* top 10 */
.t10-art{display:grid;grid-template-columns:1fr;place-items:center;width:74px;height:74px;border-radius:14px;background:var(--panel2);border:1px solid var(--line)}.t10-art span{font:700 32px Oswald,sans-serif;color:var(--gold)}
.t10-prompt{margin:12px 0 0;border-color:#6b5a1c}
.t10-board{list-style:none;padding:0;margin:0;display:grid;gap:6px;max-width:640px}
.t10-board li{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.t10-board li.got{border-color:#2f6b4c;background:#14261d;animation:xrpop .35s ease}.t10-board li.missed{border-style:dashed;opacity:.8}
.t10-rank{width:24px;font:700 18px Oswald,sans-serif;color:var(--gold2);text-align:right}
.t10-name{flex:1;min-width:0;font-weight:600}.t10-val{font-variant-numeric:tabular-nums;font-weight:700}
@media(prefers-reduced-motion:reduce){.t10-board li.got{animation:none}}
@media(max-width:560px){.game-card{gap:14px}.game-art{transform:scale(.85);transform-origin:top left;margin-right:-8px}}
/* everyone's answers for a day */
.ans-totals{display:flex;flex-wrap:wrap;gap:10px 18px;margin-bottom:12px;padding:12px 16px}.ans-totals>span{display:inline-flex;align-items:center;gap:6px}
.ans-grid{display:grid;grid-template-columns:minmax(80px,1fr) repeat(3,minmax(0,1.5fr));gap:8px}
.ans-cell{padding:10px;display:flex;flex-direction:column;gap:5px;min-width:0}
.ans-line{display:flex;align-items:center;gap:6px;font-size:13px;min-width:0}.ans-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ans-who{display:inline-flex;gap:3px;margin-left:8px;vertical-align:middle}
@media(max-width:560px){.ans-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.ans-grid>div:first-child{display:none}.ans-grid .xr-row{grid-column:1/-1;font-size:13px;margin-top:6px}.ans-cell{padding:7px}.ans-line{font-size:11.5px;align-items:flex-start;gap:2px 4px;flex-wrap:wrap}.ans-name{flex:1 1 calc(100% - 20px);white-space:normal;overflow-wrap:break-word;line-height:1.25}.ans-line>.muted{flex-basis:100%;padding-left:18px;font-size:11px}.ans-line .badge{width:14px!important;height:14px!important;font-size:0!important;margin-top:1px}}

.al-awards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:12px;margin-bottom:12px}.al-awards .al-mvp{margin-bottom:0}
.al-roy{border-color:#4cc38a}.al-roy .kicker{color:#7fdcae!important}
.al-mvp{display:flex;align-items:center;gap:14px;margin-bottom:12px;border-color:var(--gold2)}.al-mvp .right{margin-left:auto}.al-mvp-medal{font-size:30px;line-height:1}.al-mvp .kicker{color:var(--gold);font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:12px;margin-bottom:4px}

/* 1st and 5 */
span.win{color:var(--win)}span.loss{color:var(--loss)}
.fd-art{grid-template-columns:repeat(3,18px);gap:5px}.fd-art i{width:18px;height:26px;border-radius:4px;background:var(--panel2);border:1px solid var(--line)}.fd-art i:nth-child(1){background:var(--panel2)}.fd-art i:nth-child(2){background:var(--gold);transform:translateY(-4px)}
.fd-hand{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.fd-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 8px 12px;overflow:hidden;min-height:150px}
.fd-card .fd-strip{position:absolute;top:0;left:0;right:0;height:5px;border-radius:0;opacity:1}
.fd-card .fd-pos{font-size:12px;letter-spacing:.08em}.fd-name{font-size:14px;line-height:1.2}.fd-name .plink{display:inline;font-weight:600}.fd-from{font-size:12px}
.fd-card.empty{justify-content:center;border-style:dashed;color:var(--muted);font-size:13px;background:transparent}.fd-card.empty.next{border-color:var(--gold);color:var(--gold)}
.fd-reels{display:flex;gap:10px;flex-wrap:wrap}.fd-reel{flex:1 1 90px;display:flex;flex-direction:column;align-items:center;gap:4px;background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px 8px;min-width:0}
.fd-reel.wide{flex:2 1 160px}.fd-reel span.muted{font-size:11px;letter-spacing:.08em;text-transform:uppercase}.fd-reel b{font:700 22px Oswald,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.fd-reel.spinning b{filter:blur(.6px);opacity:.8}.fd-reel.landed{border-color:var(--gold);animation:fd-land .35s ease-out}
@keyframes fd-land{0%{transform:scale(1.06)}100%{transform:none}}
.fd-go{margin-top:12px;width:100%;font-size:17px;padding:12px}.fd-go.small{width:auto;font-size:14px;padding:7px 18px;margin-top:8px}
.fd-options{display:grid;gap:8px}.fd-option{display:flex;align-items:center;gap:12px;text-align:left;background:var(--panel2);border:1px solid var(--line);color:var(--text);padding:8px 12px;border-radius:10px;width:100%}
.fd-option:hover:not([disabled]){border-color:var(--gold)}.fd-option[disabled]{opacity:.45}.fd-option.chosen{border-color:var(--gold);background:var(--panel)}
.fd-opt-name{flex:1;min-width:0;display:flex;flex-direction:column}.fd-opt-name .muted{font-size:12px}
.fd-avg{display:flex;flex-direction:column;align-items:flex-end}.fd-avg b{font-size:18px;color:var(--gold2)}.fd-avg .muted{font-size:11px}
.fd-battle{display:grid;grid-template-columns:minmax(0,1fr) 130px minmax(0,1fr);gap:10px;align-items:center}
.fd-side-label{text-align:center;font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:12px;color:var(--muted)}
.fd-slot .fd-card{min-height:0;flex-direction:row;text-align:left;padding:12px 12px 12px 16px}.fd-slot .fd-strip{top:0;bottom:0;right:auto;width:5px;height:auto}
.fd-slot .fd-card .fd-pos{order:-1;min-width:30px}.fd-slot .fd-name{flex:1}.fd-slot .fd-from{white-space:nowrap}
.fd-slot.win .fd-card{border-color:var(--win);box-shadow:0 0 0 1px var(--win) inset}.fd-slot.lose .fd-card{opacity:.5}
.fd-mid{text-align:center}.fd-mid .fd-reels.small .fd-reel{padding:6px 4px}.fd-mid .fd-reels.small .fd-reel b{font-size:17px}.fd-mid .fd-reels.small{flex-wrap:nowrap;gap:6px}
.fd-score{font-size:18px}.fd-mid.fresh{animation:fd-land .5s ease-out}
.fd-result{text-align:center;margin-bottom:14px}.fd-result.won{border-color:var(--win)}.fd-result.won h2{color:#8ff0bf}.fd-result.lost h2{color:var(--muted)}
@media(max-width:700px){.fd-hand{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.fd-hand>*{grid-column:span 2}.fd-hand>:nth-child(4){grid-column:2/span 2}.fd-hand>:nth-child(5){grid-column:4/span 2}.fd-hand .fd-card{min-height:0;padding:14px 4px 10px}.fd-hand .fd-card.empty{min-height:72px}.fd-hand .badge{width:40px!important;height:40px!important}.fd-name{font-size:13px}
  .fd-battle{grid-template-columns:minmax(0,1fr) 92px minmax(0,1fr);gap:6px}.fd-slot .fd-card{flex-direction:column;text-align:center;padding:12px 6px 8px}
  .fd-slot .fd-strip{left:0;right:0;bottom:auto;width:auto;height:5px}.fd-slot .fd-card .fd-pos{order:0;min-width:0}.fd-slot .badge{width:36px!important;height:36px!important}.fd-name{font-size:13px}}

/* Deal or No Deal */
.dnd-art{display:grid;grid-template-columns:1fr;place-items:center;width:74px;height:74px;border-radius:12px;background:linear-gradient(160deg,#2a2210,#14161d);border:1px solid var(--gold)}.dnd-art span{font:700 36px Oswald,sans-serif;color:var(--gold)}
.dnd-offer .kicker{color:var(--gold);font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:12px}
.dnd-h{margin:0 0 8px;font-size:13px;letter-spacing:.1em;text-transform:uppercase}.dnd-h.give{color:var(--loss)}.dnd-h.get{color:var(--win)}
.dnd-sides>div{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:12px}
.dnd-asset{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-top:1px solid var(--line)}.dnd-asset:first-of-type{border-top:0;padding-top:0}
.dnd-asset-body{flex:1;min-width:0}.dnd-asset-body .plink{display:inline;font-weight:600}.dnd-ctx{font-size:12px;margin-top:2px}
.dnd-pick{background:#2a2f40;color:var(--gold);font-size:13px}
.dnd-buttons{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}
.dnd-buttons button{font:700 22px Oswald,sans-serif;letter-spacing:.06em;text-transform:uppercase;padding:16px;border-radius:12px}
.dnd-deal{background:var(--gold);color:#16130a;border:0}.dnd-nodeal{background:transparent;color:var(--text);border:2px solid var(--loss)}
.dnd-nodeal:hover{background:#3a1d20}
.dnd-result{margin-top:12px}.dnd-you{font-size:16px;margin-bottom:10px}
.dnd-bar{display:flex;height:30px;border-radius:8px;overflow:hidden;background:var(--panel2);font-size:12px;font-weight:700}
.dnd-bar span{display:flex;align-items:center;padding:0 8px;white-space:nowrap;overflow:hidden}.dnd-bar .yes{background:var(--gold);color:#16130a}.dnd-bar .no{background:#4a2328;color:#ffd6dc;justify-content:flex-end}

/* Halloween weekend */
body.halloween{--bg:#0e0a12;--panel:#18121d;--panel2:#221829;--line:#33253d;--gold:#f07a1a;--gold2:#ffb35c;--muted:#9a8fa8;
  background:radial-gradient(900px 500px at 85% -120px,#3a1a4a 0,transparent 70%) fixed,radial-gradient(1000px 520px at 10% -160px,#4a2208 0,transparent 65%) fixed,var(--bg)}
body.halloween nav.top{background:rgba(14,10,18,.9);border-bottom-color:#4a2a12}
body.halloween .hero{background:linear-gradient(120deg,#1d1222,#2e1a14);border-color:#4a2a12}
body.halloween .card{border-color:var(--line)}
body.halloween .flash{background:#2a160a;border-color:#7a3a10}
.hw-pumpkin{font-size:20px;margin-left:-2px;display:inline-block;animation:hw-bob 3s ease-in-out infinite}
.hw-banner{margin-bottom:16px;padding:10px 14px;border-radius:10px;background:linear-gradient(90deg,#2b1408,#24112e);border:1px solid #5a2e10;color:#ffc98a;font-weight:500;font-size:14px}
.hw-bats{position:fixed;inset:0;pointer-events:none;z-index:4;overflow:hidden}
.hw-bats span{position:absolute;left:-40px;font-size:18px;opacity:.55;animation:hw-fly 26s linear infinite}
.hw-bats span:nth-child(1){top:14%;animation-delay:0s}
.hw-bats span:nth-child(2){top:32%;font-size:14px;animation-delay:-7s;animation-duration:32s}
.hw-bats span:nth-child(3){top:55%;animation-delay:-15s;animation-duration:29s}
.hw-bats span:nth-child(4){top:72%;font-size:13px;animation-delay:-21s;animation-duration:36s}
.hw-bats span:nth-child(5){top:22%;font-size:12px;animation-delay:-11s;animation-duration:40s}
@keyframes hw-fly{0%{transform:translate(0,0)}25%{transform:translate(27vw,-24px)}50%{transform:translate(54vw,18px)}75%{transform:translate(81vw,-14px)}100%{transform:translate(calc(100vw + 80px),0)}}
@keyframes hw-bob{0%,100%{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-3px) rotate(6deg)}}
@media(prefers-reduced-motion:reduce){.hw-bats{display:none}.hw-pumpkin{animation:none}}

/* matchup page */
.mu-click{position:relative;cursor:pointer;border-radius:8px;transition:background .15s}.mu-click:hover{background:#ffffff08}
.mu-cover{position:absolute;inset:0;z-index:1}.mu-click .tlink{position:relative;z-index:2}
.mu-head{margin-top:10px}.mu-head .kicker{color:var(--gold);font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:12px;text-align:center}
.mu-score{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin-top:12px}
.mu-team{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}.mu-team.lose{opacity:.55}
.mu-tname{color:var(--text);font-weight:600}.mu-big{font-size:38px;color:var(--gold2);line-height:1}
.mu-odds{display:flex;align-items:center;gap:10px;margin-top:14px;font-weight:600;font-size:14px}.mu-odds .sch-bar{flex:1;margin:0}
.mu-lineups{padding:10px 14px}
.mu-row{display:grid;grid-template-columns:1fr 54px 1fr;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--line)}
.mu-row:last-child{border-bottom:0}.mu-row .r{text-align:right;justify-content:flex-end}
.mu-labels{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}.mu-labels>div{display:flex;align-items:center;gap:6px}
.mu-slot{text-align:center;font-size:12px;font-weight:600;color:var(--muted)}
.mu-player{display:flex;align-items:center;gap:8px;min-width:0}.mu-player.b{flex-direction:row-reverse;text-align:right}
.mu-player.empty{justify-content:center;font-size:13px}
.mu-pname{flex:1;min-width:0;line-height:1.2}.mu-pname .plink{display:inline;font-weight:600}.mu-pname .plink span{overflow-wrap:anywhere}
.mu-player.b .pl-pos{justify-content:flex-end}
.mu-pts{display:flex;flex-direction:column;align-items:flex-end;line-height:1.15}.mu-player.b .mu-pts{align-items:flex-start}
.mu-pts .num{font-size:17px}.mu-pts .muted{font-size:11px;white-space:nowrap}
.mu-row.a-wins .mu-player.a .mu-pts .num,.mu-row.b-wins .mu-player.b .mu-pts .num{color:var(--win)}
.mu-player.bench{opacity:.8}
.mu-total .num{font-size:22px;color:var(--gold2)}
.mu-bench summary{cursor:pointer;padding:10px 0 4px;color:var(--muted);font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.06em}
.mu-series{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px}.mu-series>div{display:flex;align-items:center;gap:10px}
.mu-series .num{font-size:32px;color:var(--gold2)}.mu-series .r{justify-content:flex-end}
@media(max-width:560px){.mu-row{grid-template-columns:minmax(0,1fr) 36px minmax(0,1fr);gap:4px}.mu-player .badge,.mu-player .headshot{display:none}.mu-pname{font-size:13px}.mu-pts .num{font-size:15px}.mu-big{font-size:30px}}
/* head to head grid */
.h2h-grid th,.h2h-grid td{padding:6px 5px}.h2h-grid th:first-child{position:sticky;left:0;background:var(--panel);z-index:1;text-align:left;white-space:nowrap}
.h2h-grid .c{text-align:center;min-width:64px}.h2h-grid td small{display:block;color:var(--muted);font-size:10.5px;white-space:nowrap}
.h2h-grid td.self{background:repeating-linear-gradient(45deg,transparent 0 6px,#ffffff08 6px 12px)}
.h2h-grid td.hot{background:#1f3a2266}.h2h-grid td.warm{background:#1f3a2230}.h2h-grid td.cold{background:#4a1d1d40}.h2h-grid td.never{background:#4a1d1d80;color:#f2a3a3}
/* a team in one past season */
.ts-head{display:flex;gap:16px;align-items:center;margin:10px 0 14px}.ts-grid{align-items:start}.ts-grid>div{min-width:0}
/* a section whose heading folds it away */
.fold{scroll-margin-top:80px;margin-top:1.6em}.fold>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none;margin-bottom:.6em}
.fold>summary::-webkit-details-marker{display:none}.fold>summary h2{margin:0;min-width:0}
.fold>summary::after{content:"Collapse ▲";flex:none;font-size:13px;font-weight:600;color:var(--muted)}.fold:not([open])>summary::after{content:"Expand ▼"}.fold>summary:hover::after{color:var(--gold2)}

/* football / baseball switch in the top bar */
.sport-switch{display:flex;gap:2px;padding:3px;border:1px solid var(--line);border-radius:999px;background:#0008;flex-shrink:0}
.sport-switch a{padding:4px 10px;border-radius:999px;color:var(--muted);font-size:13px;font-weight:600;white-space:nowrap}
.sport-switch a:hover{text-decoration:none;color:var(--text)}
.sport-switch a.on{background:var(--gold, #c9a227);color:#14161c}
@media (max-width:900px){.sport-switch .sport-name{display:none}.sport-switch a{padding:4px 9px;font-size:16px}}
/* baseball position colors: catchers, infield, outfield, hitters anywhere, starters, relievers, any pitcher */
.pos-C{background:#1f5f3a;color:#c9f7da}.pos-IF{background:#1f4a78;color:#d4e7ff}.pos-OF{background:#7a2530;color:#ffd6dc}
.pos-UT{background:#7a4316;color:#ffe2c7}.pos-SP{background:#4a2c78;color:#e6d9ff}.pos-RP{background:#6e5a12;color:#fff2bf}.pos-P{background:#3a3f52;color:#d9dce6}
.pos-t-C{color:#4fd08a!important}.pos-t-IF{color:#5fb0ff!important}.pos-t-OF{color:#ff6b72!important}.pos-t-UT{color:#ff9f45!important}
.pos-t-SP{color:#b993ff!important}.pos-t-RP{color:#f2cf4a!important}.pos-t-P{color:#a9afbf!important}

/* the league logo in the corner of the home page header */
.hero-logo{position:absolute;right:28px;top:50%;transform:translateY(-50%);width:200px;height:200px;filter:drop-shadow(0 6px 18px #000a)}
.hero>*:not(.hero-logo){position:relative;max-width:calc(100% - 230px)}
@media(max-width:640px){.hero-logo{position:static;transform:none;display:block;width:120px;height:120px;margin:0 auto 14px}.hero>*:not(.hero-logo){max-width:none}}
