/* SFL shared theme — matches the Season 51 rulebook page (index.html) */
@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800&family=Source+Sans+3:wght@400;500;600;700&display=swap');
:root{color-scheme:light dark;--paper:#f8f5ea;--ink:#152a1e;--muted:#5f7168;--jungle:#0e3a2a;--jungle2:#1c6b4a;--gold:#9c6a2f;--gold2:#d9a05e;--ember:#e0654f;--negative:#b23a2a;--positive:#14805e;--surface:#fffdf7;--surface2:#eae6d3;--line:#c2bd9f;--team1:#9c6a2f;--team2:#e0654f;--team3:#14805e;--team4:#1c6b4a;--team5:#7a5a86;--shadow:0 22px 65px rgba(34,29,18,.14);--r:14px}
@media(prefers-color-scheme:dark){:root{--paper:#0c1a13;--ink:#f0eddd;--muted:#a9b5aa;--jungle:#14402f;--jungle2:#237a55;--gold:#bd8a4a;--gold2:#e2ab60;--ember:#f0785c;--negative:#f0785e;--positive:#5fc993;--surface:#122419;--surface2:#182d21;--line:#3d5245;--team1:#e2ab60;--team2:#f0785c;--team3:#5fc993;--team4:#62b98a;--team5:#c9a3d4;--shadow:0 24px 70px rgba(0,0,0,.34)}}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-width:320px;background:linear-gradient(90deg,transparent 0 49%,color-mix(in srgb,var(--jungle) 5%,transparent) 49% 51%,transparent 51%) 0 0/42px 42px,var(--paper);color:var(--ink);font-family:"Source Sans 3",sans-serif;font-size:17px;line-height:1.55}
a{color:inherit}
.beta-banner{padding:13px 20px;background:#c0452f;color:#fffdf3;text-align:center;font-weight:800;letter-spacing:.02em;border-bottom:4px solid #d9a05e}
.beta-banner strong{font-family:"Barlow Condensed",sans-serif;font-size:1.18rem;letter-spacing:.08em}
.beta-banner span{font-weight:600}
/* Slim hero for sub-pages */
.hero-slim{position:relative;isolation:isolate;background:#0d2b20;color:#fff8e7;overflow:hidden}
.hero-slim:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(8,30,22,.96),rgba(10,38,28,.82) 45%,rgba(11,38,28,.30) 78%),linear-gradient(0deg,rgba(9,34,25,.88),transparent 55%),radial-gradient(1200px 500px at 80% -10%,rgba(217,160,94,.18),transparent 60%)}
.hero-slim:after{content:"";position:absolute;inset:auto 0 0;height:11px;background:linear-gradient(90deg,#0e3a2a 0%,#1c6b4a 30%,#35a06c 55%,#d9a05e 78%,#e0654f 100%)}
.hero-inner{width:min(1180px,calc(100% - 40px));margin:auto;padding:56px 0 52px}
.presenter{margin:0 0 10px;color:#d9a05e;font-family:"Barlow Condensed",sans-serif;font-size:clamp(1rem,2vw,1.2rem);font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.hero-slim h1{margin:0;font-family:"Barlow Condensed",sans-serif;font-size:clamp(2.4rem,5vw,4rem);line-height:.95;text-transform:uppercase;letter-spacing:.01em}
.hero-rule{width:min(680px,100%);height:2px;margin:18px 0;border:0;background:linear-gradient(90deg,#d9a05e,rgba(217,160,94,0))}
.hero-meta{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;font-weight:650}
.hero-meta span{white-space:nowrap}
.hero-meta span+span:before{content:"•";margin-right:18px;color:#d9a05e}
/* Top cross-page nav */
.topnav{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--jungle) 96%,transparent);color:#fff8e8;box-shadow:0 5px 18px rgba(0,0,0,.16)}
.topnav-inner{width:min(1180px,calc(100% - 32px));margin:auto;display:flex;flex-wrap:wrap;justify-content:center;gap:4px 2px;padding:8px 0}
.topnav a{padding:8px 12px;border-radius:8px;font-family:"Barlow Condensed",sans-serif;font-weight:700;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;font-size:.95rem;color:#fff8e8}
.topnav a:hover,.topnav a:focus-visible{background:rgba(239,197,104,.18);outline:none}
.topnav a[aria-current="page"]{background:var(--gold);color:#19150c}
/* Page body */
.wrap{width:min(1180px,calc(100% - 40px));margin:auto;padding:40px 0 64px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:28px 30px;margin-bottom:28px}
.card h2{margin:0 0 14px;color:var(--jungle2);font-family:"Barlow Condensed",sans-serif;font-size:clamp(1.6rem,3vw,2.2rem);text-transform:uppercase;letter-spacing:.02em}
.card h2 .kicker{display:block;margin-bottom:4px;color:var(--ember);font-size:.95rem;letter-spacing:.12em}
.card p.lede{margin:0 0 14px;color:var(--muted)}
table.data{width:100%;border-collapse:collapse;margin:6px 0 4px}
table.data th{padding:10px 12px;text-align:left;font-family:"Barlow Condensed",sans-serif;font-size:.95rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom:2px solid var(--line)}
table.data td{padding:11px 12px;border-bottom:1px solid var(--line)}
table.data tr:last-child td{border-bottom:0}
table.data td.num,table.data th.num{text-align:right;font-variant-numeric:tabular-nums}
.pos{color:var(--positive);font-weight:700}
.neg{color:var(--negative);font-weight:700}
.total-row td{font-weight:800;border-top:2px solid var(--gold)}
.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:28px}
.stat{background:var(--surface);border:1px solid var(--line);border-top:5px solid var(--gold);border-radius:var(--r);box-shadow:var(--shadow);padding:20px 16px;text-align:center}
.stat .label{font-family:"Barlow Condensed",sans-serif;font-size:.9rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.stat strong{display:block;margin-top:6px;font-family:"Barlow Condensed",sans-serif;font-size:clamp(2rem,4vw,2.8rem);line-height:1;color:var(--ink)}
.stat .sub{font-size:.9rem;color:var(--muted)}
.rank-chip{display:inline-block;padding:6px 14px;border-radius:999px;background:var(--jungle);color:#fff8e7;font-family:"Barlow Condensed",sans-serif;font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:.95rem}
.team-accent{border-top:5px solid var(--accent,var(--gold))}
.note{margin:14px 0 0;padding:12px 16px;background:var(--surface2);border-left:4px solid var(--gold);border-radius:0 8px 8px 0;color:var(--ink)}
.note strong{font-family:"Barlow Condensed",sans-serif;letter-spacing:.05em;text-transform:uppercase}
.report-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.report-list a{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--surface2);border:1px solid var(--line);border-radius:10px;text-decoration:none;font-weight:600}
.report-list a:hover,.report-list a:focus-visible{border-color:var(--gold);outline:none}
.report-list .file-tag{flex:none;padding:4px 10px;background:var(--jungle);color:#fff8e7;border-radius:6px;font-family:"Barlow Condensed",sans-serif;font-size:.85rem;font-weight:800;letter-spacing:.08em}
.link-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.btn{display:inline-block;padding:11px 18px;border-radius:8px;background:var(--jungle);color:#fff8e7;font-family:"Barlow Condensed",sans-serif;font-weight:800;letter-spacing:.05em;text-transform:uppercase;text-decoration:none;border:2px solid var(--jungle)}
.btn:hover,.btn:focus-visible{background:var(--jungle2);outline:none}
.btn.gold{background:var(--gold);border-color:var(--gold);color:#19150c}
.btn.gold:hover,.btn.gold:focus-visible{background:var(--gold2)}
.btn.ghost{background:transparent;color:var(--ink)}
/* Episode hub cards */
.ep-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.ep-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:26px;display:flex;flex-direction:column;gap:10px}
.ep-card .ep-num{font-family:"Barlow Condensed",sans-serif;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ember);font-size:.95rem}
.ep-card h3{margin:0;font-family:"Barlow Condensed",sans-serif;font-size:1.9rem;text-transform:uppercase;line-height:1}
.ep-card .ep-date{color:var(--muted);font-weight:600}
.ep-card .btn{margin-top:auto;align-self:flex-start}
.spoiler-note{display:flex;gap:10px;align-items:flex-start;margin:0 0 20px;padding:14px 16px;background:var(--surface);border:2px dashed var(--gold);border-radius:10px;color:var(--muted)}
/* Spoiler gate overlay */
.spoiler-gate{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(9,17,12,.97)}
.spoiler-gate[hidden]{display:none}
.spoiler-card{width:min(560px,100%);background:var(--surface);border:1px solid var(--line);border-top:6px solid var(--ember);border-radius:var(--r);box-shadow:var(--shadow);padding:36px 32px;text-align:center}
.spoiler-card h2{margin:0 0 10px;color:var(--ember);font-family:"Barlow Condensed",sans-serif;font-size:2rem;text-transform:uppercase}
.spoiler-card p{color:var(--muted);margin:0 0 22px}
.spoiler-card .btn-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
/* Moments list */
.moments{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.moments li{padding:16px 18px;background:var(--surface2);border:1px solid var(--line);border-radius:10px}
.moments strong.moment-title{display:block;font-family:"Barlow Condensed",sans-serif;font-size:1.25rem;text-transform:uppercase;letter-spacing:.03em;color:var(--jungle2)}
.moments .delta{float:right;font-family:"Barlow Condensed",sans-serif;font-size:1.4rem;font-weight:800}.reaction-pending{display:block;margin-top:8px;color:var(--muted);font-style:italic}.sideline{margin:10px 0 0}.booth-q{margin:10px 0 0}.booth-a{margin:8px 0 0}
/* Footer */
.site-footer{width:min(1180px,calc(100% - 40px));margin:0 auto;padding:8px 0 52px;text-align:center}
.dedication{color:var(--muted);font-size:.95rem}
.closing-mark{margin-top:10px;font-family:"Barlow Condensed",sans-serif;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.closing-mark .flame{color:var(--ember)}
@media(max-width:720px){.stat-grid{grid-template-columns:1fr 1fr}}
@media(max-width:540px){
  body{font-size:16px}
  .beta-banner{padding:11px 12px}.beta-banner strong{display:block}
  .hero-inner{width:calc(100% - 28px);padding:44px 0 40px}
  .wrap{width:calc(100% - 24px);padding:28px 0 48px}
  .card{padding:22px 18px}
  .stat-grid{grid-template-columns:1fr 1fr;gap:10px}
  table.data th,table.data td{padding:9px 8px}
  .topnav-inner{padding:6px 0}
  .topnav a{padding:7px 9px;font-size:.85rem}
  .spoiler-card{padding:28px 20px}
}

/* Floating MVC vote tab */
#mvc-fab{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:40;background:var(--ember);color:#fff8e7;border:2px solid var(--gold2);border-right:0;border-radius:10px 0 0 10px;padding:14px 10px;font-family:"Barlow Condensed",sans-serif;font-weight:800;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;writing-mode:vertical-rl;font-size:.95rem;box-shadow:-4px 4px 18px rgba(0,0,0,.25);animation:mvc-pulse 2.6s ease-in-out infinite}
#mvc-fab[hidden]{display:none}
#mvc-fab:hover{background:var(--gold);color:#19150c}
@keyframes mvc-pulse{0%,100%{box-shadow:-4px 4px 18px rgba(0,0,0,.25)}50%{box-shadow:-4px 4px 26px rgba(224,101,79,.65)}}
@media(max-width:640px){#mvc-fab{top:auto;bottom:18px;right:14px;transform:none;writing-mode:horizontal-tb;border:2px solid var(--gold2);border-radius:999px;padding:12px 18px;font-size:.9rem}}
.sfl-form{margin-top:4px}
.sfl-form label{display:block;font-weight:700;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:16px 0 6px}
.sfl-form input[type=text],.sfl-form input[type=email],.sfl-form select,.sfl-form textarea{width:100%;box-sizing:border-box;padding:12px 14px;font-size:1rem;font-family:inherit;color:var(--ink);background:var(--paper);border:2px solid var(--line);border-radius:10px}
.sfl-form textarea{min-height:150px;resize:vertical}
.sfl-form input:focus,.sfl-form select:focus,.sfl-form textarea:focus{outline:none;border-color:var(--gold)}
.sfl-form .btn{margin-top:20px}
.form-note{min-height:1.5em;margin-top:12px;font-weight:600}
.form-note.ok{color:var(--positive)}
.form-note.err{color:var(--negative)}
.support-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:20px}
.support-count{color:#fff8e7;font-size:.95rem}
.support-count strong{font-family:"Barlow Condensed",sans-serif;font-size:1.5rem;color:#d9a05e;margin-right:6px}
.support-btn:disabled{opacity:.6;cursor:default}
.journal-tagline{margin:16px 0 0;text-align:center;font-size:1.18rem;font-style:italic;color:var(--gold)}
.copyright{margin:14px 0 0;color:var(--muted);font-size:.88rem;letter-spacing:.05em}
.app-footer{width:min(680px,calc(100% - 40px));margin:0 auto;padding:0 0 40px;text-align:center}
