:root{--paper:#e8e6e0;--paper-2:#dedbd3;--sheet:#f6f5f1;--ink:#141519;--ink-soft:#52545c;--ink-faint:#8a8c94;--rule:#c2bfb6;--rule-strong:#141519;--red:#9a1b1b;--red-tint:#f1dcdc;--gain:#1f5e3a;--gain-tint:#dde7df;--sky:#5f8fb4;--serif:"Source Serif 4", Georgia, "Times New Roman", serif;--mono:"IBM Plex Mono", "SFMono-Regular", Menlo, monospace;--ease:cubic-bezier(.2, .7, .2, 1);color:var(--ink);background:var(--paper);font:400 1rem/1.55 var(--serif);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0}button,select,input{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}a{color:var(--ink);text-underline-offset:2px;text-decoration-thickness:1px}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.file-ref,.tabs button,.period legend,.period label,.goals,.seasons button,.verdict h2 small,.league thead th,.seasons-table thead th,.swings-table thead th,.clubs-table thead th,.league .num,.swings-table .num,.clubs-table .num,.move,.fate,.squad-toggle,.key,.stats dt,.period-note,.estimate-note,.squad,footer{font-family:var(--mono)}.masthead{border-bottom:2px solid var(--rule-strong);padding:2.5rem 1.5rem 2.25rem}.masthead-inner{max-width:64rem;margin:0 auto}.file-ref{border-bottom:1px solid var(--rule);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:.25rem 1.5rem;margin:0 0 1.75rem;padding-bottom:.75rem;font-size:.75rem;display:flex}.about-pill{border:1px solid var(--ink);font:inherit;letter-spacing:inherit;text-transform:inherit;color:var(--ink);cursor:pointer;background:0 0;border-radius:999px;margin-left:auto;padding:.3rem .8rem}.about-pill:hover{background:var(--ink);color:var(--paper)}.drawer-root{z-index:50;position:fixed;inset:0}.drawer-backdrop{animation:fade .2s var(--ease) both;background:#14151973;position:absolute;inset:0}.drawer{background:var(--sheet);border-left:2px solid var(--rule-strong);width:min(34rem,100%);animation:slide-in .3s var(--ease) both;outline:none;flex-direction:column;display:flex;position:absolute;top:0;bottom:0;right:0}.drawer-head{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 1.5rem 1rem;display:flex}.drawer-head h2{font:700 1.375rem/1.2 var(--serif);margin:0}.drawer-close{border:1px solid var(--rule);width:2rem;height:2rem;font:400 1.25rem/1 var(--mono);color:var(--ink-soft);cursor:pointer;background:0 0}.drawer-close:hover{border-color:var(--ink);color:var(--ink)}.drawer-body{padding:1rem 1.5rem 2rem;font-size:.9375rem;line-height:1.6;overflow-y:auto}.drawer-body h3{font:400 .6875rem/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin:1.5rem 0 .375rem}.drawer-body p,.drawer-body ul{margin:0 0 .75rem}.drawer-body ul{padding-left:1.1rem}.drawer-body li{margin-bottom:.375rem}.drawer-body code{font-family:var(--mono);background:var(--paper-2);padding:0 .25rem;font-size:.8125rem}@keyframes slide-in{0%{transform:translate(100%)}to{transform:none}}.masthead h1{font:700 clamp(2rem, 5.5vw, 4rem) / 1.02 var(--serif);letter-spacing:-.015em;margin:0 0 1rem}.masthead h1 span{text-wrap:balance;display:block}.lede{max-width:62ch;color:var(--ink-soft);margin:0;font-size:1.125rem}.page{max-width:64rem;margin:0 auto;padding:1.5rem 1.5rem 4rem}.controls{border-bottom:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem 2rem;margin-bottom:1.25rem;padding-bottom:1rem;display:flex}.tabs{gap:1.5rem;display:flex}.tabs button{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:.25rem 0;font-size:.8125rem}.tabs button:hover{color:var(--ink)}.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--ink)}.settings{flex-wrap:wrap;align-items:flex-end;gap:.75rem 2rem;display:flex}.period{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);border:0;align-items:center;gap:1rem;margin:0;padding:0;font-size:.75rem;display:flex}.period legend{float:left;margin-right:.25rem;padding:0}.period label{cursor:pointer;align-items:center;gap:.35rem;display:inline-flex}.period input{accent-color:var(--ink);margin:0}.goals{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);align-items:center;gap:.5rem;font-size:.75rem;display:flex}.goals select{background:var(--sheet);border:1px solid var(--rule);font:400 .8125rem/1 var(--mono);color:var(--ink);border-radius:0;padding:.3rem .5rem}.seasons{scrollbar-width:thin;scrollbar-color:var(--rule) transparent;gap:.25rem;margin-bottom:1.5rem;padding-bottom:.5rem;display:flex;overflow-x:auto}.seasons button{color:var(--ink-soft);cursor:pointer;background:0 0;border:1px solid #0000;flex:none;padding:.3rem .6rem;font-size:.8125rem}.seasons button:hover{border-color:var(--rule);color:var(--ink)}.seasons button[aria-current=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.verdict{animation:fade .35s var(--ease) both;grid-template-columns:9rem 1fr;align-items:start;gap:0 2rem;margin-bottom:1.5rem;display:grid}.verdict h2{font:700 2.25rem/1 var(--serif);letter-spacing:-.02em;margin:0}.verdict h2 small{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-top:.5rem;font-size:.6875rem;display:block}.verdict .headline{font:600 clamp(1.375rem, 2.6vw, 1.875rem) / 1.2 var(--serif);max-width:34ch;margin:0 0 .5rem}.verdict .detail{color:var(--ink-soft);max-width:64ch;margin:0;font-size:1.0625rem}.card{background:var(--sheet);border:1px solid var(--rule);border-top:2px solid var(--rule-strong)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th{text-align:left;font-weight:600}.league th,.league td,.seasons-table th,.seasons-table td,.swings-table th,.swings-table td,.clubs-table th,.clubs-table td{border-bottom:1px solid var(--rule);vertical-align:top;padding:.5rem .7rem}.league thead th,.seasons-table thead th,.swings-table thead th,.clubs-table thead th{z-index:1;background:var(--sheet);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);border-bottom:1px solid var(--rule-strong);font-size:.6875rem;font-weight:500;position:sticky;top:0}.league .num,.swings-table .num,.clubs-table .num{text-align:right;font-size:.875rem}.league .team{white-space:nowrap;width:100%;font-weight:600}.league tbody tr{animation:fade .3s var(--ease) both;animation-delay:calc(var(--i,0) * 18ms)}.league tbody tr:hover td{background:var(--paper-2)}.league .pos{color:var(--ink-soft);box-shadow:inset 3px 0 0 var(--zone,transparent)}.league .pts{color:var(--ink);font-weight:600}.league .gain{color:var(--gain);white-space:nowrap}.league tr.champion{--zone:var(--ink)}.league tr.cl{--zone:var(--ink-soft)}.league tr.europe{--zone:var(--rule)}.league tr.relegated{--zone:var(--red)}.move{white-space:nowrap;min-width:2rem;font-size:.75rem;display:inline-block}.move.up{color:var(--gain)}.move.down{color:var(--red)}.move.same{color:var(--rule)}.deduct{color:var(--red);margin-left:.5rem;font-size:.75rem}.league tr.fate-better td{background:var(--gain-tint)}.league tr.fate-worse td{background:var(--red-tint)}.league tr.fate-better:hover td{background:#d0ddd3}.league tr.fate-worse:hover td{background:#e8cdcd}.fate{letter-spacing:.06em;text-transform:uppercase;vertical-align:2px;border:1px solid;margin-left:.6rem;padding:0 .4rem;font-size:.6875rem;font-weight:500;line-height:1.6;display:inline-block}.fate-better .fate{color:var(--gain)}.fate-worse .fate{color:var(--red)}.short,.mobile-only,.lbl{display:none}.team-name,.team-tags{display:inline}.league .cash{white-space:nowrap}.league .cash.up,.swings-table .up,.clubs-table .up{color:var(--gain)}.league .cash.down,.swings-table .down,.clubs-table .down{color:var(--red)}.league .ghost td{color:var(--ink-soft);background:var(--paper-2);border-top:2px solid var(--rule-strong)}.league .ghost s{background:var(--ink);color:var(--ink);padding:0 .3rem;text-decoration:none}.league .ghost s:hover{color:var(--paper)}.key{color:var(--ink-soft);border-top:1px solid var(--rule);flex-wrap:wrap;align-items:center;gap:.375rem .5rem;margin:0;padding:.75rem .875rem;font-size:.75rem;display:flex}.swatch{width:3px;height:1em;margin-left:.5rem;display:inline-block}.swatch:first-child{margin-left:0}.swatch.champion{background:var(--ink)}.swatch.cl{background:var(--ink-soft)}.swatch.europe{background:var(--rule)}.swatch.relegated{background:var(--red)}.key-note{flex-basis:100%;max-width:80ch}.squad-toggle{background:var(--ink);border:1px solid var(--ink);color:var(--paper);letter-spacing:.06em;text-transform:uppercase;vertical-align:2px;cursor:pointer;margin-left:.6rem;padding:0 .4rem;font-size:.6875rem;line-height:1.6}.squad-toggle:hover,.squad-toggle[aria-expanded=true]{background:var(--sheet);color:var(--ink)}.league .squad-row td{padding:0;animation:none;background:var(--paper-2)!important}.squad{max-width:calc(100vw - 2rem - 2px);animation:fade .25s var(--ease) both;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:.75rem 1.5rem;padding:1rem 1rem 1.125rem;font-size:.8125rem;line-height:1.5;display:grid;position:sticky;left:0}.squad-bonus{border-bottom:1px solid var(--rule);font-family:var(--serif);grid-column:1/-1;margin:0 0 .25rem;padding-bottom:.5rem;font-size:1rem}.squad-bonus strong{color:var(--red)}.squad h4{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 .25rem;font-size:.6875rem;font-weight:500}.squad ul{margin:0;padding:0;list-style:none}.squad li{border-bottom:1px dotted var(--rule);grid-template-columns:1.75rem 1fr auto auto;gap:.5rem;padding:.1rem 0;display:grid}.squad .no{color:var(--ink-faint);text-align:right}.squad .name{font-family:var(--serif);font-size:.9375rem}.squad .nat,.squad .apps{color:var(--ink-soft);font-size:.75rem}.squad-source{color:var(--ink-soft);grid-column:1/-1;margin:.5rem 0 0;font-size:.75rem}.summary{animation:fade .35s var(--ease) both}.period-note{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 1rem;font-size:.75rem}.stats{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:1rem 1.5rem;margin:0 0 .75rem;padding:0;display:grid}.stats div{border-top:2px solid var(--rule-strong);padding-top:.5rem}.stats dt{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);min-height:2.6em;font-size:.6875rem}.stats dd{font:700 2.25rem/1 var(--serif);letter-spacing:-.02em;margin:.25rem 0 0}.summary h2{font:700 1.5rem/1.1 var(--serif);margin:2.5rem 0 .75rem}.estimate-note{color:var(--ink-soft);max-width:80ch;margin:.75rem 0 0;font-size:.75rem;line-height:1.6}.seasons-table th[scope=row],.swings-table th[scope=row],.clubs-table th[scope=row]{white-space:nowrap;font-weight:600}.seasons-table tbody tr.changed td:nth-child(3){box-shadow:inset 3px 0 0 var(--ink);font-weight:600}.seasons-table tbody tr:hover td,.seasons-table tbody tr:hover th,.swings-table tbody tr:hover td,.swings-table tbody tr:hover th,.clubs-table tbody tr:hover td,.clubs-table tbody tr:hover th{background:var(--paper-2)}.fates{margin:0;padding:0;font-size:.9375rem;list-style:none}.seasons-table .up{color:var(--gain)}.seasons-table .down{color:var(--red)}.link{font:inherit;color:var(--ink);text-underline-offset:2px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.clubs{animation:fade .35s var(--ease) both}.club-group h2{font:700 1.5rem/1.1 var(--serif);margin:2rem 0 .25rem}.club-group>.estimate-note{margin:0 0 .75rem}.club{background:var(--sheet);border:1px solid var(--rule);border-top:0}.club:first-of-type{border-top:2px solid var(--rule-strong)}.club-head{text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:baseline;gap:1rem;width:100%;padding:.6rem .875rem;display:flex}.club-head:hover{background:var(--paper-2)}.club.open .club-head{background:var(--paper-2);border-bottom:1px solid var(--rule)}.club-name{font:600 1.0625rem/1.3 var(--serif)}.club-name:before{content:"+";width:1.25rem;font-family:var(--mono);color:var(--ink-faint);display:inline-block}.club.open .club-name:before{content:"−"}.club-meta{font:400 .75rem/1.3 var(--mono);color:var(--ink-soft);text-align:right;grid-template-columns:6rem 8rem 5rem 5rem;gap:1rem;display:grid}.club-meta .up,.club-figures .up,.record-table .up{color:var(--gain)}.club-meta .down,.club-figures .down,.record-table .down{color:var(--red)}.club-body{padding:1rem .875rem 1.25rem}.club-narrative{max-width:70ch;margin:0 0 1rem;font-size:1.0625rem}.club-figures{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:.75rem 1rem;margin:0 0 1.25rem;padding:.75rem 0;display:grid}.club-figures dt{font:400 .6875rem/1.3 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}.club-figures dd{font:700 1.375rem/1 var(--serif);margin:.15rem 0 0}.record-table{font-family:var(--mono);font-size:.8125rem}.record-table th,.record-table td{border-bottom:1px dotted var(--rule);vertical-align:top;padding:.3rem .6rem}.record-table thead th{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);border-bottom:1px solid var(--rule-strong);font-size:.6875rem;font-weight:500}.record-table th[scope=row]{font-weight:500}.record-table .num{text-align:right}footer{border-top:1px solid var(--rule);color:var(--ink-soft);max-width:80ch;margin-top:3rem;padding-top:1rem;font-size:.75rem;line-height:1.6}footer p{margin:0 0 .5rem}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (width<=40rem){.masthead{padding:.875rem 1rem 1rem}.file-ref{margin-bottom:.875rem;padding-bottom:.5rem}.file-ref>span{display:none}.about-pill{margin-left:0;padding:.25rem .7rem;font-size:.6875rem}.masthead h1{margin-bottom:.5rem;font-size:1.75rem}.lede{font-size:.8125rem;line-height:1.45}.page{padding:.875rem 1rem 3rem}.controls{gap:.625rem;margin-bottom:.875rem;padding-bottom:.625rem}.tabs{justify-content:space-between;gap:0;width:100%}.tabs button{white-space:nowrap;text-align:center;letter-spacing:.06em;border-bottom-width:2px;border-bottom-color:var(--rule);flex:1;padding:.5rem 0;font-size:.75rem}.period{font-size:.6875rem}.seasons{margin:0 -1rem .875rem;padding:0 1rem .5rem}.seasons button{padding:.3rem .55rem;font-size:.75rem}.verdict{grid-template-columns:1fr;gap:.375rem;margin-bottom:.875rem}.verdict h2{font-size:1.5rem}.verdict h2 small{margin-left:.5rem;display:inline}.verdict .headline{margin-bottom:.375rem;font-size:1.125rem}.verdict .detail{font-size:.875rem;line-height:1.45}.wide{display:none!important}.short,.mobile-only,.lbl{display:inline}.long,.desktop-only{display:none!important}.league th,.league td{vertical-align:top;padding:.4rem .3rem}.league thead th{font-size:.5625rem}.league .num{font-size:.8125rem}.league .pos{padding-left:.5rem}.league .team{white-space:normal;padding-left:.2rem;font-size:.875rem}.team-name{line-height:1.3;display:block}.team-tags{flex-wrap:wrap;gap:.25rem;margin-top:.2rem;display:flex}.league .ghost .team{padding-top:.5rem}.move{min-width:1.5rem;font-size:.6875rem}.fate,.squad-toggle{vertical-align:0;margin-left:0;padding:0 .3rem;font-size:.5625rem;line-height:1.7}.fate>span{display:none}.fate:after{content:attr(data-short)}.key{padding:.5rem .625rem;font-size:.6875rem}.key-note{display:none}.squad{grid-template-columns:1fr;padding:.75rem}.squad-bonus{font-size:.875rem}.period-note{margin-bottom:.75rem;font-size:.6875rem}.stats{grid-template-columns:repeat(3,1fr);gap:.75rem .5rem}.stats div:nth-child(n+4){grid-column:span 3;justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.stats dt{min-height:0;font-size:.5625rem;line-height:1.3}.stats dd{font-size:1.375rem}.stats div:nth-child(n+4) dd{margin:0;font-size:1.625rem}.estimate-note{font-size:.6875rem}.summary h2,.club-group h2{margin-top:1.5rem;font-size:1.1875rem}.stack{border-top:1px solid var(--rule-strong);margin:0;padding:0;list-style:none;display:block}.stack>li{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.5rem 0;font-size:.875rem;line-height:1.3;display:flex}.stack>li.changed{box-shadow:inset 3px 0 0 var(--ink);padding-left:.6rem}.stack-main{flex:1;min-width:0}.stack-main strong{font-weight:600;display:block}.stack-main .link{font-weight:600;text-decoration:none}.stack-main .link.stack-sub{color:var(--ink-soft);font-weight:400;display:inline}.stack-side{text-align:right;max-width:45%;font:500 .875rem/1.3 var(--mono);flex:none}.stack-side>span,.stack-sub,.stack-changes{display:block}.stack-sub{color:var(--ink-soft);font-size:.75rem}.stack-changes{font:400 .6875rem/1.4 var(--mono);color:var(--ink-soft);margin-top:.15rem}.stack .up{color:var(--gain)}.stack .down{color:var(--red)}.club-head{flex-direction:column;align-items:flex-start;gap:.15rem;padding:.55rem .625rem}.club-name{font-size:1rem}.club-name:before{width:1rem}.club-meta{text-align:left;flex-wrap:wrap;gap:.1rem .75rem;padding-left:1rem;font-size:.6875rem;display:flex}.club-body{padding:.75rem .625rem .875rem}.club-narrative{font-size:.9375rem;line-height:1.45}.club-figures{grid-template-columns:repeat(3,1fr);gap:.5rem}.club-figures dt{font-size:.5625rem}.club-figures dd{font-size:1.125rem}.record-table th,.record-table td{padding:.35rem .3rem;font-size:.8125rem}.record-table thead th{font-size:.5625rem}footer{font-size:.6875rem}.drawer{width:100%;max-width:none}.drawer-head{padding:.875rem 1rem}.drawer-body{padding:0 1rem 2rem}}
