/* Tactics Explained · styles. Team colours are appended by tools/build.js from data/teams.js. */
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
section.block{scroll-margin-top:60px}
:root{
  --ground:#f2f4f1; --surface:#ffffff; --surface2:#e8ece7; --ink:#111714; --muted:#56625a; --rule:#d4dad3;
  --ars:#d0021b; --opp:#2f6aa3; --gold:#d89b12; --ars-soft:#fbe5e7; --opp-soft:#e3edf7;
  --pitch:#2d6a44; --pitch2:#31734a; --pline:rgba(255,255,255,.58); --oppdot:#f1f4f8;
  --display:"Big Shoulders Display","Arial Narrow",Impact,sans-serif;
  --body:"Barlow","Segoe UI",system-ui,sans-serif;
  --serif:"Newsreader",Georgia,"Times New Roman",serif;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ground:#0d1310; --surface:#151d18; --surface2:#1c2620; --ink:#e7ede8; --muted:#9aa89f; --rule:#2a362e;
    --ars:#f23a4c; --opp:#4f93dc; --gold:#f0b429; --ars-soft:#3a1519; --opp-soft:#152636;
    --pitch:#1f4d31; --pitch2:#225536; --pline:rgba(255,255,255,.45); --oppdot:#dfe7f1;
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --ground:#0d1310; --surface:#151d18; --surface2:#1c2620; --ink:#e7ede8; --muted:#9aa89f; --rule:#2a362e;
  --ars:#f23a4c; --opp:#4f93dc; --gold:#f0b429; --ars-soft:#3a1519; --opp-soft:#152636;
  --pitch:#1f4d31; --pitch2:#225536; --pline:rgba(255,255,255,.45); --oppdot:#dfe7f1;
  color-scheme:dark;
}
*{box-sizing:border-box}
body{background:var(--ground);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.55;padding-inline:16px;padding-block:0 64px}
.wrap{max-width:1080px;margin:0 auto}
a{color:inherit;text-decoration-color:var(--ars);text-underline-offset:3px}
a:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:4px}
h1,h2,h3{font-family:var(--display);text-wrap:balance;line-height:1;margin:0}
.eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--muted)}
.num{font-variant-numeric:tabular-nums}

/* masthead */
header.mast{padding-block:36px 20px;display:grid;gap:14px}
.mast h1{font-size:clamp(52px,11vw,112px);font-weight:900;letter-spacing:-.01em;text-transform:uppercase}
.mast h1 span{color:var(--ars)}
.mast p.dek{max-width:62ch;margin:0;font-size:18px;color:var(--muted)}
.form{display:flex;flex-wrap:nowrap;gap:6px;margin-top:6px;overflow-x:auto;padding:4px 2px 8px;scrollbar-width:thin}
.fm{flex:none}
.fm{display:grid;gap:2px;justify-items:center;padding:6px 8px;border-radius:6px;background:var(--surface);border:1px solid var(--rule);min-width:64px;font-size:12px;line-height:1.2}
.fm b{font-family:var(--display);font-size:20px;font-weight:800}
.fm .r{font-weight:700;font-size:11px;padding:1px 6px;border-radius:3px;color:#fff}
.fm .r.W{background:#2e7d4f}.fm .r.L{background:#b3261e}
.fm.pick{border:2px solid var(--ink);text-decoration:none;color:inherit;cursor:pointer;transition:transform .15s,box-shadow .15s}
.fm.pick:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.12)}
.fm.off{opacity:.45;cursor:default}
.fm em{font-style:normal;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-top:2px}
.fm.pick em{color:var(--ars)}
.fm.off em{color:var(--muted)}
.fm small{color:var(--muted)}

/* nav */
nav.jump{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--ground);border-bottom:1px solid var(--rule);display:flex;gap:4px;overflow-x:auto;padding-block:8px;margin-bottom:28px}
nav.jump a{white-space:nowrap;text-decoration:none;font-weight:600;font-size:14px;padding:6px 12px;border-radius:999px;border:1px solid var(--rule);background:var(--surface)}
nav.jump a:hover{border-color:var(--ink)}

section.block{margin-block:0 56px}
.sechead{display:grid;gap:6px;margin-bottom:18px}
.sechead h2{font-size:clamp(34px,6vw,52px);font-weight:800;text-transform:uppercase}

/* legend */
.legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px 22px;background:var(--surface);border:1px solid var(--rule);border-radius:10px;padding:16px 18px}
.lg{display:flex;align-items:center;gap:10px;font-size:14px}
.lg svg{flex:none;width:54px;height:22px;background:var(--pitch);border-radius:4px}
.note{font-size:14px;color:var(--muted);max-width:70ch}

/* overview chart */
.overview{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:28px;align-items:start}
@media (max-width:760px){.overview{grid-template-columns:1fr}}
.chartbox{background:var(--surface);border:1px solid var(--rule);border-radius:10px;padding:16px;position:relative}
.chartbox svg{width:100%;height:auto;display:block}
.keyrow{display:flex;flex-wrap:wrap;gap:14px;font-size:13px;color:var(--muted);margin-bottom:8px}
.keyrow i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:-1px}
.tip{position:absolute;pointer-events:none;background:var(--ink);color:var(--ground);font-size:13px;padding:6px 9px;border-radius:6px;white-space:nowrap;transform:translate(-50%,-110%)}
details.tbl{margin-top:10px;font-size:14px}
details.tbl summary{cursor:pointer;color:var(--muted)}
table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums;font-size:14px}
th,td{text-align:left;padding:5px 8px;border-bottom:1px solid var(--rule)}
th{font-weight:600;color:var(--muted)}
.tblwrap{overflow-x:auto}

/* match */
.match{border-top:6px solid var(--ink);padding-top:22px}
.score{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:14px;margin-bottom:6px}
.score .team{font-family:var(--display);font-weight:800;font-size:clamp(26px,5vw,44px);text-transform:uppercase;line-height:1}
.score .team.home{text-align:right}
.score .sc{font-family:var(--display);font-weight:900;font-size:clamp(52px,10vw,92px);line-height:.9;display:flex;gap:10px;align-items:center}
.score .sc .dash{color:var(--muted);font-weight:600}
.is-ars{color:var(--ars)}
.meta{display:flex;flex-wrap:wrap;gap:6px 16px;justify-content:center;color:var(--muted);font-size:14px;margin-bottom:16px}
.headline{font-family:var(--serif);font-size:clamp(20px,3vw,26px);line-height:1.3;text-align:center;max-width:44ch;margin:0 auto 26px}
.scorers{display:grid;grid-template-columns:1fr 1fr;gap:10px;font-size:14px;margin:-12px auto 22px;max-width:640px}
.scorers div:first-child{text-align:right}

.grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px}
@media (max-width:820px){.grid2{grid-template-columns:1fr}}
.panel{background:var(--surface);border:1px solid var(--rule);border-radius:10px;padding:16px}
.panel h3{font-size:22px;font-weight:800;text-transform:uppercase;margin-bottom:10px}
.stats{display:grid;gap:12px}
.st{display:grid;grid-template-columns:52px 1fr 52px;gap:8px;align-items:center}
.st .lab{grid-column:1/-1;text-align:center;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:-6px}
.st .v{font-weight:700;font-variant-numeric:tabular-nums}
.st .v.o{text-align:right}
.bar{display:flex;gap:2px;height:10px}
.bar i{display:block;height:100%}
.bar i.a{background:var(--ars);border-radius:4px 0 0 4px}
.bar i.o{background:var(--opp);border-radius:0 4px 4px 0}
.teamkey{display:flex;justify-content:space-between;font-size:13px;font-weight:600;margin-bottom:10px}
.teamkey span::before{content:"";display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}
.teamkey .ka::before{background:var(--ars)} .teamkey .ko::before{background:var(--opp)}

.pitchfig{margin:0}
.pitchfig svg{width:100%;height:auto;display:block;border-radius:6px}
.pitchfig figcaption{font-size:13px;color:var(--muted);margin-top:8px}
.lineups .xi{font-size:13px;color:var(--muted);margin-top:8px;display:grid;gap:4px}
.lineups .xi b{color:var(--ink)}

.subhead{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:34px 0 14px;flex-wrap:wrap}
.subhead h3,.subhead h2{font-size:28px;font-weight:800;text-transform:uppercase}
.goals{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:18px}
.goal{background:var(--surface);border:1px solid var(--rule);border-radius:10px;padding:14px;display:grid;gap:10px;align-content:start}
.goal .gh{display:flex;align-items:center;justify-content:space-between;gap:10px}
.goal .gh strong{font-family:var(--display);font-size:24px;font-weight:800;text-transform:uppercase;line-height:1}
.goal .min{font-family:var(--display);font-weight:800;font-size:18px;padding:2px 8px;border-radius:4px;color:#fff}
.goal .min.a{background:var(--ars)} .goal .min.o{background:var(--opp)}
.goal .sub{font-size:13px;color:var(--muted);margin-top:-6px}
.goal svg{width:100%;height:auto;display:block;border-radius:6px}
ol.steps{margin:0;padding-left:0;list-style:none;display:grid;gap:8px;font-size:14px;counter-reset:s}
ol.steps li{display:grid;grid-template-columns:22px 1fr;gap:8px;align-items:start}
ol.steps li::before{counter-increment:s;content:counter(s);width:20px;height:20px;border-radius:50%;background:var(--ink);color:var(--ground);font-size:12px;font-weight:700;display:grid;place-items:center;margin-top:1px}
button.replay{font:600 13px var(--body);border:1px solid var(--rule);background:var(--surface2);color:var(--ink);padding:5px 12px;border-radius:999px;cursor:pointer}
button.replay:hover{border-color:var(--ink)}
.dim{opacity:.1;transition:opacity .35s}
.shown{opacity:1;transition:opacity .35s}

.tactic{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:22px;align-items:start}
@media (max-width:820px){.tactic{grid-template-columns:1fr}}
.tactic ul{margin:0;padding-left:18px;display:grid;gap:10px;font-size:15px}

.said{display:grid;gap:12px}
.said blockquote{margin:0;padding:10px 14px;border-left:3px solid var(--rule);background:var(--surface);border-radius:0 8px 8px 0;font-size:15px}
.said details.orig{margin-top:6px;font-size:13px;color:var(--muted)}
.said details.orig summary{cursor:pointer;font-size:12px}
.said cite{display:block;font-style:normal;font-size:13px;color:var(--muted);margin-top:4px}
.vids{display:grid;gap:6px;font-size:14px;margin-top:6px}
.vids a{display:block;position:relative;padding-left:16px}
.vids a::before{content:"▶";font-size:10px;color:var(--ars);position:absolute;left:0;top:4px}
.vids span{color:var(--muted)}

.column{background:var(--ink);color:var(--ground);border-radius:12px;padding:26px clamp(18px,4vw,40px);margin-top:26px;display:grid;gap:14px}
.column .eyebrow{color:var(--gold)}
.column h3{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(26px,4vw,36px);line-height:1.15;text-transform:none}
.column p{font-family:var(--serif);font-size:18px;line-height:1.6;margin:0;max-width:66ch}
.column .flag{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;font-size:15px;background:rgba(127,127,127,.14);border-radius:8px;padding:10px 12px;font-family:var(--body);max-width:66ch}
.column .flag b{color:var(--gold);font-size:12px;letter-spacing:.1em;text-transform:uppercase;padding-top:2px}
.byline{font-size:13px;opacity:.75;font-family:var(--body)}

.watch{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:8px}
.watch div{background:var(--surface);border:1px solid var(--rule);border-radius:10px;padding:14px;font-size:15px}
.watch b{display:block;font-family:var(--display);font-size:20px;text-transform:uppercase;margin-bottom:4px}
.risk{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:2px 7px;border-radius:3px;margin-left:6px;vertical-align:2px}
.risk.hi{background:var(--ars);color:#fff}.risk.md{background:var(--gold);color:#111}.risk.lo{background:var(--surface2);color:var(--ink)}
.srcs{columns:2 320px;column-gap:28px;font-size:14px}
.srcs h4{margin:14px 0 4px;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);break-after:avoid}
.srcs a{display:block;margin-bottom:3px;word-break:break-word}
footer{color:var(--muted);font-size:13px;border-top:1px solid var(--rule);padding-top:16px}

/* svg classes */
.pl{fill:var(--pline);}
.ln{fill:none;stroke:var(--pline);stroke-width:.3}
.full .ptxt{font-size:2px}
.ptxt{font:600 2.3px var(--body);fill:#fff;stroke:rgba(0,0,0,.6);stroke-width:.45;paint-order:stroke;text-anchor:middle}
.ntxt{font:italic 500 2.2px var(--body);fill:#fff;stroke:rgba(0,0,0,.55);stroke-width:.45;paint-order:stroke}
.dot-a{fill:var(--ars);stroke:#fff;stroke-width:.35}
.dot-o{fill:var(--oppdot);stroke:var(--opp);stroke-width:.6}
.hl{fill:none;stroke:var(--gold);stroke-width:.5}
.ar{fill:none;stroke-linecap:round;stroke-linejoin:round}
.k-pass{stroke:#fff;stroke-width:.5}
.k-cross{stroke:#fff;stroke-width:.5}
.k-run{stroke:#fff;stroke-width:.45;stroke-dasharray:1.5 1.1}
.k-carry{stroke:#fff;stroke-width:.65;stroke-dasharray:.1 1;}
.k-shot{stroke:var(--gold);stroke-width:.85}
.k-press{stroke:#9fd0ff;stroke-width:.55}
.k-pressa{stroke:#ff8a95;stroke-width:.55}
.k-ghost{stroke:#fff;stroke-width:.45;stroke-dasharray:1.2 1.2;opacity:.55}
.k-mark{stroke:#cfe3f7;stroke-width:.3;stroke-dasharray:.6 .5}
.zone{fill:rgba(240,180,41,.18);stroke:var(--gold);stroke-width:.3;stroke-dasharray:1 .7}
.zone-r{fill:rgba(255,80,90,.16);stroke:#ff8a95;stroke-width:.3;stroke-dasharray:1 .7}
.badge circle{fill:#111;stroke:var(--gold);stroke-width:.3}
.badge text{font:700 1.8px var(--body);fill:#fff;text-anchor:middle;dominant-baseline:central}
.ball{fill:#fff;stroke:#111;stroke-width:.25}
.tr-p{stroke:#fff;stroke-width:.45;opacity:.9}
.tr-c{stroke:#fff;stroke-width:.7;stroke-dasharray:.1 1;opacity:.95}
.tr-s{stroke:var(--gold);stroke-width:.85}
.ptr-a{stroke:#ffb3ba;stroke-width:.35;stroke-dasharray:1.2 .9;opacity:.85}
.ptr-o{stroke:#cfe3f7;stroke-width:.35;stroke-dasharray:1.2 .9;opacity:.85}
.lk-mark{stroke:#cfe3f7;stroke-width:.3;stroke-dasharray:.6 .5}
.netflash{fill:var(--gold);stroke:#fff;stroke-width:.3}
.ring{fill:none;stroke:var(--gold);stroke-width:.5}
.goaltxt{font:800 3.2px var(--display);fill:var(--gold);stroke:rgba(0,0,0,.6);stroke-width:.5;paint-order:stroke;letter-spacing:.1px}
.lk-press{stroke:#9fd0ff;stroke-width:.55}
.lg svg .tr-p,.lg svg .tr-c,.lg svg .ptr-a{opacity:1}
.ctl{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px}
.prog{flex:1;height:3px;background:var(--surface2);border-radius:2px;overflow:hidden}
.prog i{display:block;height:100%;width:0;background:var(--ars)}
.nsn{display:contents}
.wm{font:500 1.6px var(--body);fill:#fff;opacity:.3;text-anchor:end;letter-spacing:.04px;pointer-events:none;user-select:none}
.pitchfig .nsn > .prog{margin-top:6px}
.phase{font-weight:600;font-size:15px;min-height:1.6em;flex:1}
ol.steps.anim li{transition:opacity .25s}
ol.steps.anim li:not(.on){opacity:.55}
ol.steps li.on::before{background:var(--ars);color:#fff}
@media (prefers-reduced-motion: reduce){ol.steps.anim li:not(.on){opacity:1}}

.fm.cur{background:var(--ink);color:var(--ground)}
.fm.cur small{color:inherit;opacity:.75}
.fm.cur em{color:var(--gold)}
.fm.next{border:2px dashed var(--ars);text-decoration:none;color:inherit}
.fm.next em{color:var(--ars)}
.fm.up{opacity:.45;border-style:dashed}
.fm .r.U{background:var(--surface2);color:var(--muted)}
.fm .r.D{background:#8a8f8c}
.fm b.vs{color:var(--muted)}
.sc.vs{font-family:var(--display);font-weight:800;font-size:clamp(34px,6vw,56px);color:var(--muted)}
.pvhead .headline{margin-bottom:20px}
.wdl{display:flex;gap:2px;height:34px;border-radius:6px;overflow:hidden;margin:6px 0 4px}
.wdl i{display:flex;align-items:center;justify-content:center;min-width:34px;color:#fff;font-style:normal}
.wdl i b{font-size:14px;font-variant-numeric:tabular-nums}
.wdl i.w{background:#2e7d4f}.wdl i.d{background:#8a8f8c}.wdl i.l{background:var(--opp)}
.wdlkey{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-bottom:12px}
.xgpair{display:flex;gap:28px;align-items:end;margin:8px 0 12px}
.xgpair div{display:grid}
.xgpair b{font-family:var(--display);font-size:40px;line-height:1}
.xgpair small{color:var(--muted);font-size:13px}
.cmp{font-size:14px;background:var(--surface2);border-radius:8px;padding:8px 10px;margin-bottom:10px}
ol.scores{list-style:none;padding:0;margin:0;display:grid;gap:6px}
ol.scores li{display:flex;justify-content:space-between;border-bottom:1px solid var(--rule);padding-bottom:4px}
ol.scores b{font-family:var(--display);font-size:22px}
ul.h2h,ul.plain{margin:0;padding-left:18px;display:grid;gap:6px;font-size:15px}
ul.h2h{list-style:none;padding:0}
ul.h2h li{display:flex;justify-content:space-between;gap:10px;font-size:14px}
ul.h2h span{color:var(--muted)}
details.how{margin-top:22px}
details.how summary{cursor:pointer}
details.how table{margin:12px 0}
.fromxg{margin-top:18px;border-top:1px solid var(--rule);padding-top:12px}
.fromxg .note{margin:0}
.chartgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}
@media (max-width:820px){.chartgrid{grid-template-columns:1fr}}
.chartbox h3{font-size:20px;font-weight:800;text-transform:uppercase;margin-bottom:6px}
.chartbox .sub{font-size:13px;color:var(--muted);margin:0 0 8px}
.grid{stroke:var(--rule);stroke-width:1}
.base{stroke:var(--muted);stroke-width:1}
.axl{fill:var(--muted);font:500 12px var(--body)}
.axs{fill:var(--muted);font:500 11px var(--body);text-anchor:middle}
.bA{fill:var(--ars)}.bO{fill:var(--opp)}
.gA{fill:var(--surface);stroke:var(--ars);stroke-width:2.5}.gO{fill:var(--surface);stroke:var(--opp);stroke-width:2.5}
.hit{fill:transparent}
.ln2{fill:none;stroke-width:2.2}
.ln2.sA{stroke:var(--ars)}.ln2.sO{stroke:var(--opp)}
.ln2.dash{stroke-dasharray:6 5;stroke-width:2}
.pt{stroke:var(--surface);stroke-width:2}.pt.sA{fill:var(--ars)}.pt.sO{fill:var(--opp)}
.pt.dash{fill:var(--surface)}.pt.sA.dash{stroke:var(--ars)}.pt.sO.dash{stroke:var(--opp)}
.endl{font:600 12px var(--body);fill:var(--ink)}
.pill{font-size:12px;font-weight:700;padding:2px 8px;border-radius:999px;white-space:nowrap}
.pill.ok{background:#d9efe2;color:#1d5e3a}.pill.warn{background:#fbecc8;color:#6b4a00}.pill.bad{background:var(--ars-soft);color:var(--ars)}
tr.me td{font-weight:700;color:var(--ars)}
#tip{position:absolute;z-index:20;pointer-events:none;background:var(--ink);color:var(--ground);font-size:13px;padding:6px 9px;border-radius:6px;white-space:nowrap;transform:translate(-50%,-130%)}
.mnav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px;flex-wrap:wrap}
.navb{font-weight:600;font-size:14px;text-decoration:none;padding:6px 12px;border-radius:999px;border:1px solid var(--rule);background:var(--surface)}
a.navb:hover{border-color:var(--ink)}
.navb.dis{opacity:.4}
.mcount{font-size:13px;color:var(--muted)}
.msrc{display:grid;gap:4px;font-size:14px}
.seasontop{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:18px;margin-bottom:18px;align-items:start}
@media (max-width:820px){.seasontop{grid-template-columns:1fr}}
.seasontop p{font-size:17px;margin:0}
.srcs a{display:block}
.score .team{min-width:0;overflow-wrap:break-word;hyphens:auto}
/* long official club names ("Brighton & Hove Albion") get a smaller size so words are not split */
.score .team.long{font-size:clamp(20px,3.6vw,34px)}
.wdlkey{gap:8px}.wdlkey span:last-child{text-align:right}
@media (max-width:480px){.score .team{font-size:22px}.score .team.long{font-size:18px}.score .sc{font-size:48px}}

@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .pill.ok{background:#16382a;color:#8fdab0}:root:not([data-theme="light"]) .pill.warn{background:#3a2e10;color:#f0c865}}
:root[data-theme="dark"] .pill.ok{background:#16382a;color:#8fdab0}:root[data-theme="dark"] .pill.warn{background:#3a2e10;color:#f0c865}

.totop{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom, 0px));z-index:30;display:flex;align-items:center;gap:8px;font:700 14px var(--body);color:var(--ground);background:var(--ink);border:0;border-radius:999px;padding:11px 16px 11px 12px;box-shadow:0 6px 20px rgba(0,0,0,.22);cursor:pointer;opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .2s,transform .2s}
.totop.show{opacity:1;transform:none;pointer-events:auto}
.totop:hover{background:var(--ars)}
.totop svg{width:18px;height:18px;flex:none}
.totop .now{font-weight:500;opacity:.7;max-width:34vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.backrow{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:22px}
.backrow a{font-weight:700;font-size:14px;text-decoration:none;padding:9px 16px;border-radius:999px;border:1px solid var(--rule);background:var(--surface)}
.backrow a:hover{border-color:var(--ink)}
@media (prefers-reduced-motion: reduce){.totop{transition:none}}
@media (max-width:480px){.mcount{display:none}}

/* ---------- site chrome (multi-team) ---------- */
:root{--brand:#1f6b43}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--brand:#4cc083}}
:root[data-theme="dark"]{--brand:#4cc083}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:10px 20px;padding:14px 0 12px;border-bottom:1px solid var(--rule);flex-wrap:wrap}
.brand{font-family:var(--display);font-weight:900;font-size:24px;letter-spacing:.02em;text-transform:uppercase;text-decoration:none;line-height:1;white-space:nowrap}
.brand span{color:var(--brand)}
.teamnav{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;max-width:100%}
.teamnav a{display:flex;align-items:center;gap:6px;white-space:nowrap;text-decoration:none;font-weight:600;font-size:13px;padding:5px 10px;border-radius:999px;border:1px solid var(--rule);background:var(--surface)}
.teamnav a::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--c,var(--ars))}
.teamnav a:hover,.teamnav a[aria-current]{border-color:var(--ink)}
.teamnav a.home::before{content:none}
.teamnav a.home svg{flex:none;color:var(--ink)}
.crumbs{font-size:13px;color:var(--muted);margin:14px 0 0;display:flex;gap:6px;flex-wrap:wrap}
.crumbs a{text-decoration:none}.crumbs a:hover{text-decoration:underline}
.mast .brandline{color:var(--brand)}
.home .mast h1 span{color:var(--brand)}
.btn{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:15px;text-decoration:none;padding:10px 16px;border-radius:999px;background:var(--ink);color:var(--ground)}
.btn:hover{background:var(--ars)}

/* home */
.heroband{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:28px;align-items:center;margin:8px 0 56px}
@media (max-width:820px){.heroband{grid-template-columns:1fr}}
.heroband h2{font-size:clamp(30px,5vw,46px);font-weight:800;text-transform:uppercase;margin:6px 0 10px}
.heroband p{font-family:var(--serif);font-size:20px;line-height:1.35;margin:0 0 18px;max-width:40ch}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.tcard{display:grid;gap:10px;align-content:start;text-decoration:none;color:inherit;background:var(--surface);border:1px solid var(--rule);border-top:6px solid var(--c,var(--ars));border-radius:10px;padding:16px;transition:transform .15s,box-shadow .15s}
.tcard:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(0,0,0,.10)}
.tcard h3{font-size:34px;font-weight:900;text-transform:uppercase}
.tc-top{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--muted);font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.tc-dek{margin:0;color:var(--muted);font-size:15px}
.tc-row{display:flex;justify-content:space-between;gap:10px;font-size:14px;border-top:1px solid var(--rule);padding-top:8px}
.tc-row span:first-child{color:var(--muted)}
.chips{display:flex;gap:3px}
.chip{width:20px;height:20px;border-radius:4px;display:grid;place-items:center;font-size:11px;font-weight:700;color:#fff}
.chip.W{background:#2e7d4f}.chip.D{background:#8a8f8c}.chip.L{background:#b3261e}
.mini{display:flex;height:8px;border-radius:4px;overflow:hidden;gap:2px;margin-top:6px}
.mini i{display:block}.mini .w{background:#2e7d4f}.mini .d{background:#8a8f8c}.mini .l{background:var(--opp)}
.tc-go{font-weight:700;font-size:14px;color:var(--c,var(--ars))}
.feed{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.acard{display:grid;gap:8px;align-content:start;text-decoration:none;color:inherit;background:var(--surface);border:1px solid var(--rule);border-left:5px solid var(--c,var(--ars));border-radius:10px;padding:14px 16px;transition:transform .15s}
.acard:hover{transform:translateY(-2px)}
.acard .eyebrow{font-size:11px}
.acard b.sl{font-family:var(--display);font-size:24px;font-weight:800;text-transform:uppercase;line-height:1.05}
.acard p{margin:0;font-family:var(--serif);font-size:17px;line-height:1.35}
.acard .more{font-size:13px;color:var(--muted)}
.calls td,.calls th{padding:8px}
.calls .mini{width:120px;margin:0}
.calls td.p{white-space:nowrap}
.how3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.how3 div{background:var(--surface);border:1px solid var(--rule);border-radius:10px;padding:16px}
.how3 b{display:block;font-family:var(--display);font-size:22px;text-transform:uppercase;margin-bottom:6px}
.prose{max-width:70ch;font-size:17px}
.prose h2{font-size:30px;text-transform:uppercase;margin:28px 0 8px}
.static-note{font-size:14px;color:var(--muted)}
footer nav{display:flex;gap:14px;flex-wrap:wrap;margin-top:6px}

/* what-if lab */
.lab{margin-top:8px}
.labgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:16px}
@media (max-width:760px){.labgrid{grid-template-columns:1fr}}
.lever{margin-bottom:14px}
.lever .eyebrow{display:block;margin-bottom:6px}
.seg,.chips{display:flex;flex-wrap:wrap;gap:6px}
.seg button,.chips button,.labbtns button{font:inherit;font-size:14px;border:1px solid var(--rule);background:var(--surface2);color:var(--ink);border-radius:8px;padding:7px 11px;cursor:pointer;min-height:36px;text-align:left}
.seg button small{display:block;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.seg button[aria-pressed="true"],.chips button[aria-pressed="true"]{background:var(--ink);color:var(--ground);border-color:var(--ink)}
.seg button[aria-pressed="true"] small{color:inherit;opacity:.75}
.chips button{font-size:13px}
.seg button:focus-visible,.chips button:focus-visible,.labbtns button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.labbtns{display:flex;flex-wrap:wrap;gap:8px;border-top:1px solid var(--rule);padding-top:12px}
.labbtns button{background:transparent}
.labbtns button.pick{border-color:var(--gold);font-weight:700}
.labcmp{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:420px){.labcmp{grid-template-columns:1fr}}
.xgp{font-size:22px;margin:2px 0}.xgp b.o{color:var(--opp)}.xgp small{font-size:12px;color:var(--muted)}
.labcmp .wdlkey{font-size:11px}
.labdelta{margin:4px 0 10px}
.chg{font-weight:700;padding:1px 6px;border-radius:5px;background:var(--surface2)}
.chg.up{color:#1f7a46}.chg.dn{color:var(--opp)}
.labwhy{list-style:none;padding:0;margin:0}
.labwhy li{border-top:1px solid var(--rule);padding:8px 0;font-size:14px}
.labwhy li b{margin-right:6px}.labwhy li .num{color:var(--muted);font-size:12px}
.labwhy li span:last-child{display:block;margin-top:2px}
.pickwhy{font-size:14px;background:var(--surface2);border-left:3px solid var(--gold);padding:8px 10px;margin:8px 0 0;border-radius:4px}
.changer{margin-top:8px}
.gc h3{margin:4px 0 2px}.gcmeta{font-size:13px;color:var(--muted);margin-bottom:8px}.gc p{margin:0}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .chg.up{color:#5fd08f}}
:root[data-theme="dark"] .chg.up{color:#5fd08f}
/* language switcher + credit */
.langpick{display:flex;gap:2px;margin-left:auto;align-items:center}
.langpick a{font-size:12px;padding:4px 8px;border-radius:999px;text-decoration:none;color:var(--muted);border:1px solid transparent;white-space:nowrap}
.langpick a:hover{border-color:var(--rule);color:var(--ink)}
.langpick a[aria-current="true"]{background:var(--surface2);color:var(--ink);font-weight:600}
.foot-by{margin-top:6px;font-size:12.5px;color:var(--muted)}
@media (max-width:620px){.langpick a{padding:4px 6px}}
/* Korean / Japanese: Latin text keeps the house fonts, CJK falls through to Noto */
:root:lang(ja){--display:"Big Shoulders Display","Noto Sans JP",sans-serif;--body:"Barlow","Noto Sans JP",system-ui,sans-serif;--serif:"Newsreader","Noto Serif JP",serif}
:lang(ja) h1,:lang(ja) h2,:lang(ja) h3{line-height:1.25}
:lang(ja) .eyebrow{letter-spacing:.06em}
/* Korean typography
   - Wanted Sans for text and UI, Hahmlet for serif roles (both carry their own Latin, so mixed Korean/English lines match).
   - Line breaks follow meaning: break between words (keep-all), strict punctuation rules, balanced headings, no one-word last lines.
   - Leading is moderate (Korean glyphs fill the em box, so ~1.6 reads as one block); the space between items is always larger
     than the space between lines of one item, so each point reads as a unit.
   - Hangul has no true italic: italic styles are turned off. Weights stay at 400 / 600-700, no faux bold. */
:root:lang(ko){--display:"Big Shoulders Display","Wanted Sans Variable","Apple SD Gothic Neo","Malgun Gothic",sans-serif;--body:"Wanted Sans Variable",-apple-system,"Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;--serif:"Hahmlet","Apple SD Gothic Neo","Malgun Gothic",serif}
:lang(ko) body{word-break:keep-all;overflow-wrap:break-word;line-break:strict;line-height:1.6;letter-spacing:-.01em}
:lang(ko) p,:lang(ko) li,:lang(ko) blockquote{text-wrap:pretty}
:lang(ko) h1,:lang(ko) h2,:lang(ko) h3{line-height:1.2;letter-spacing:-.02em}
:lang(ko) .sechead h2,:lang(ko) .subhead h2,:lang(ko) .subhead h3,:lang(ko) .panel h3,:lang(ko) .heroband h2{font-weight:700}
:lang(ko) .sechead h2{font-size:clamp(30px,5vw,44px)}
:lang(ko) .subhead h2,:lang(ko) .subhead h3{font-size:25px}
:lang(ko) .panel h3{font-size:20px}
:lang(ko) .eyebrow{letter-spacing:.04em}
:lang(ko) .num,:lang(ko) table,:lang(ko) .fm,:lang(ko) .score,:lang(ko) .spv{letter-spacing:0}
/* one-line match summary: smaller, balanced lines */
:lang(ko) .headline{font-weight:500;font-size:clamp(18px,2.4vw,21px);line-height:1.5;letter-spacing:-.02em;max-width:36em;text-wrap:balance}
:lang(ko) .heroband p{font-size:18px;line-height:1.5;letter-spacing:-.02em;text-wrap:balance}
:lang(ko) .acard p{font-size:15.5px;line-height:1.5;letter-spacing:-.015em}
:lang(ko) .mast p.dek{font-size:17px;line-height:1.6}
/* reading text */
:lang(ko) .tactic ul{font-size:15px;line-height:1.6;gap:12px}
:lang(ko) .said blockquote{line-height:1.6}
:lang(ko) .column h3{font-style:normal;font-weight:600;font-size:clamp(22px,3.4vw,30px);line-height:1.3}
:lang(ko) .column p{font-size:17px;line-height:1.7;letter-spacing:-.015em}
:lang(ko) .column .flag,:lang(ko) .pickwhy,:lang(ko) .gc p{line-height:1.6}
:lang(ko) .labwhy li{line-height:1.55;padding:10px 0}
:lang(ko) .note,:lang(ko) .gcmeta,:lang(ko) .meta,:lang(ko) figcaption{line-height:1.55;letter-spacing:0}
/* numbered goal steps: fixed line box so the number sits on the first line; items further apart than lines */
:lang(ko) ol.steps{font-size:14px;line-height:22px;gap:9px}
:lang(ko) ol.steps li::before{margin-top:1px}
/* no slanted Hangul */
:lang(ko) em,:lang(ko) i,:lang(ko) .ntxt{font-style:normal}
:lang(ko) .ntxt{font-weight:600}
/* animation: speed control, note leader lines, zoom */
.speed{display:flex;gap:2px;flex:none;align-items:center}
.speed button{font:700 15px/1 var(--body);border:1px solid var(--rule);background:transparent;color:var(--ink);width:30px;height:30px;border-radius:999px;cursor:pointer}
.speed button:disabled{opacity:.35;cursor:default}
.spv{font:600 12px var(--body);color:var(--muted);min-width:34px;text-align:center;font-variant-numeric:tabular-nums}
.speed button[aria-pressed="true"]{background:var(--ink);color:var(--ground);border-color:var(--ink)}
.speed button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.nlead{stroke:rgba(255,255,255,.85);stroke-width:.25;stroke-dasharray:.6 .45}
.ndot{fill:#fff;stroke:rgba(0,0,0,.5);stroke-width:.2}
svg.zoomed{outline:2px solid rgba(255,255,255,.0)}
.nbg{fill:rgba(8,20,12,.82)}
/* phones: the caption gets its own full-width line above the playback controls so it is not squeezed into a narrow column */
@media (max-width:560px){.ctl{flex-wrap:wrap;row-gap:6px}.ctl .phase{flex:1 1 100%;min-height:3.2em}}
/* strip: official club names can be long; let them wrap inside the chip */
.fm > small:last-of-type{max-width:13ch;text-align:center;overflow-wrap:anywhere}
/* FM26 tactic card */
.fm26{margin-top:8px}
.fm26 > h2.subhead{display:block}
.fm26card{display:grid;gap:14px}
.fm26top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:10px 18px}
.fm26top h3{margin:4px 0 0}
.fm26forms{display:flex;gap:8px}
.fm26forms span{display:grid;gap:2px;background:var(--surface2);border:1px solid var(--rule);border-radius:8px;padding:6px 12px;min-width:0}
.fm26forms small{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}
.fm26forms b{font-family:var(--display);font-size:24px;font-weight:800;line-height:1}
.fm26roles{font-size:14px}
/* phones: each row becomes position + player on one line, the two roles side by side underneath */
@media (max-width:480px){.fm26roles{font-size:13.5px}.fm26roles tr{display:grid;grid-template-columns:2.8em minmax(0,1fr) minmax(0,1fr);column-gap:8px;border-bottom:1px solid var(--rule);padding:6px 0}
.fm26roles tr:last-child{border-bottom:0}.fm26roles th,.fm26roles td{border:0;padding:1px 0}.fm26roles .pos{grid-row:span 2}.fm26roles th:nth-child(2),.fm26roles td.pl{grid-column:2/4}}
.fm26roles .pos{font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums;width:3.5em}
.fm26roles td.pl{font-weight:600}
.fm26roles tr:last-child td{border-bottom:0}
.fm26h{margin:4px 0 -4px;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.fm26tis{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
@media (max-width:620px){.fm26tis{grid-template-columns:1fr}}
.fm26ti h4{margin:0 0 6px;font-size:14px;font-weight:700}
.fm26ti ul{list-style:none;margin:0;padding:0;display:grid;gap:0}
.fm26ti li{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-top:1px solid var(--rule);font-size:14px}
.fm26ti li span{color:var(--muted)}
.fm26ti li b{text-align:right}
.fm26idea,.fm26cav{margin:0;max-width:72ch}
.fm26cav{font-size:14px;background:var(--surface2);border-left:3px solid var(--gold);padding:8px 10px;border-radius:4px}
.fm26note{margin:0;font-size:13px}
:lang(ko) .fm26idea,:lang(ko) .fm26cav{line-height:1.6}

/* competition tag on match cards */
.ct{display:inline-block;font:700 10px/1 var(--body);font-style:normal;letter-spacing:.06em;text-transform:uppercase;padding:3px 6px 2px;border-radius:3px;white-space:nowrap}
.ct-lg{background:var(--ink);color:var(--ground)}
.ct-eu{background:#2c4f8f;color:#fff}
.ct-cup{box-shadow:inset 0 0 0 1.5px currentColor;color:var(--ink)}
.ct-sup{background:#d6b24a;color:#1d1a12}
.fm .ct{margin-bottom:2px}
.fm.cur .ct-lg{background:var(--ground);color:var(--ink)}
.fm.cur .ct-cup{color:var(--ground)}
.acard .ct{justify-self:start}
.acard .nw{white-space:nowrap}

/* team colours (generated from data/teams.js) */
[data-team="arsenal"]{--ars:#d0021b;--opp:#2f6aa3;--ars-soft:#f8dcdf;--opp-soft:#e2eaf2;--c:#d0021b}
[data-team="man-city"]{--ars:#1a74b8;--opp:#c2410c;--ars-soft:#dfecf5;--opp-soft:#f6e4dd;--c:#1a74b8}
[data-team="man-united"]{--ars:#c8102e;--opp:#2f6aa3;--ars-soft:#f7dee2;--opp-soft:#e2eaf2;--c:#c8102e}
[data-team="real-madrid"]{--ars:#5b3f9e;--opp:#c2410c;--ars-soft:#e8e4f1;--opp-soft:#f6e4dd;--c:#5b3f9e}
[data-team="barcelona"]{--ars:#a50044;--opp:#2f6aa3;--ars-soft:#f2dbe5;--opp-soft:#e2eaf2;--c:#a50044}
[data-team="bayern"]{--ars:#dc052d;--opp:#2f6aa3;--ars-soft:#fadce2;--opp-soft:#e2eaf2;--c:#dc052d}
@media (prefers-color-scheme: dark){
:root:not([data-theme="light"])[data-team="arsenal"],:root:not([data-theme="light"]) [data-team="arsenal"]{--ars:#f23a4c;--opp:#4f93dc;--ars-soft:#441015;--opp-soft:#16293e;--c:#f23a4c}
:root:not([data-theme="light"])[data-team="man-city"],:root:not([data-theme="light"]) [data-team="man-city"]{--ars:#5aa9e6;--opp:#f07a3c;--ars-soft:#192f40;--opp-soft:#432211;--c:#5aa9e6}
:root:not([data-theme="light"])[data-team="man-united"],:root:not([data-theme="light"]) [data-team="man-united"]{--ars:#f0485c;--opp:#4f93dc;--ars-soft:#43141a;--opp-soft:#16293e;--c:#f0485c}
:root:not([data-theme="light"])[data-team="real-madrid"],:root:not([data-theme="light"]) [data-team="real-madrid"]{--ars:#a48be6;--opp:#f07a3c;--ars-soft:#2e2740;--opp-soft:#432211;--c:#a48be6}
:root:not([data-theme="light"])[data-team="barcelona"],:root:not([data-theme="light"]) [data-team="barcelona"]{--ars:#e0457e;--opp:#4f93dc;--ars-soft:#3f1323;--opp-soft:#16293e;--c:#e0457e}
:root:not([data-theme="light"])[data-team="bayern"],:root:not([data-theme="light"]) [data-team="bayern"]{--ars:#f23a4c;--opp:#4f93dc;--ars-soft:#441015;--opp-soft:#16293e;--c:#f23a4c}
}
:root[data-theme="dark"][data-team="arsenal"],:root[data-theme="dark"] [data-team="arsenal"]{--ars:#f23a4c;--opp:#4f93dc;--ars-soft:#441015;--opp-soft:#16293e;--c:#f23a4c}
:root[data-theme="dark"][data-team="man-city"],:root[data-theme="dark"] [data-team="man-city"]{--ars:#5aa9e6;--opp:#f07a3c;--ars-soft:#192f40;--opp-soft:#432211;--c:#5aa9e6}
:root[data-theme="dark"][data-team="man-united"],:root[data-theme="dark"] [data-team="man-united"]{--ars:#f0485c;--opp:#4f93dc;--ars-soft:#43141a;--opp-soft:#16293e;--c:#f0485c}
:root[data-theme="dark"][data-team="real-madrid"],:root[data-theme="dark"] [data-team="real-madrid"]{--ars:#a48be6;--opp:#f07a3c;--ars-soft:#2e2740;--opp-soft:#432211;--c:#a48be6}
:root[data-theme="dark"][data-team="barcelona"],:root[data-theme="dark"] [data-team="barcelona"]{--ars:#e0457e;--opp:#4f93dc;--ars-soft:#3f1323;--opp-soft:#16293e;--c:#e0457e}
:root[data-theme="dark"][data-team="bayern"],:root[data-theme="dark"] [data-team="bayern"]{--ars:#f23a4c;--opp:#4f93dc;--ars-soft:#441015;--opp-soft:#16293e;--c:#f23a4c}
