/* THE STORE ROOM — storeroom.kaditay.com
   Two themes, one system. Light is a design, not an inversion. */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}

:root{
  color-scheme:light;
  --bg:#F7F4EC; --bg2:#FFFDF7; --surface:#FFFFFF; --sunk:#EEE8DA;
  --fg:#16140F; --fg2:#474334; --fg3:#635D4D;
  --rule:rgba(22,20,15,.14); --rule2:rgba(22,20,15,.26);
  --oxide:#AF3410; --oxide-ink:#FFFFFF; --amber:#7C5406; --slate:#2F6285; --moss:#1F6B4A;
  --gold:#9A7212; --silver:#6B6E74; --bronze:#8A5327;
  --gold-fill:#D9AE3A; --silver-fill:#A9ADB4; --bronze-fill:#B5763F;
  --glow:rgba(175,52,16,.07); --glow2:rgba(47,98,133,.06);
  --display:'Archivo',Impact,'Haettenschweiler',sans-serif;
  --body:'Hanken Grotesk',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --gut:clamp(20px,5vw,64px); --wrap:1240px;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --bg:#0A0A0C; --bg2:#101014; --surface:#15151A; --sunk:#08080A;
    --fg:#F3EFE6; --fg2:#BDB8AD; --fg3:#9B968D;
    --rule:rgba(243,239,230,.13); --rule2:rgba(243,239,230,.26);
    --oxide:#FF5B2E; --oxide-ink:#0A0A0C; --amber:#E8B14C; --slate:#7FA8C4; --moss:#5FBF93;
    --gold:#E8B14C; --silver:#B9BCC2; --bronze:#C98A56;
    --gold-fill:#E8B14C; --silver-fill:#B9BCC2; --bronze-fill:#C98A56;
    --glow:rgba(255,91,46,.09); --glow2:rgba(127,168,196,.07);
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0A0A0C; --bg2:#101014; --surface:#15151A; --sunk:#08080A;
  --fg:#F3EFE6; --fg2:#BDB8AD; --fg3:#9B968D;
  --rule:rgba(243,239,230,.13); --rule2:rgba(243,239,230,.26);
  --oxide:#FF5B2E; --oxide-ink:#0A0A0C; --amber:#E8B14C; --slate:#7FA8C4; --moss:#5FBF93;
  --gold:#E8B14C; --silver:#B9BCC2; --bronze:#C98A56;
  --gold-fill:#E8B14C; --silver-fill:#B9BCC2; --bronze-fill:#C98A56;
  --glow:rgba(255,91,46,.09); --glow2:rgba(127,168,196,.07);
}

html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
body{background:var(--bg);color:var(--fg);font-family:var(--body);font-size:16.5px;line-height:1.55;
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(120% 80% at 82% -10%,var(--glow),transparent 58%),
             radial-gradient(90% 60% at 5% 105%,var(--glow2),transparent 60%)}
main,header.site,footer.site{position:relative;z-index:1}
a{color:inherit;text-decoration:none}
::selection{background:var(--oxide);color:var(--oxide-ink)}
:focus-visible{outline:2px solid var(--oxide);outline-offset:3px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.measure{max-width:64ch}

/* ---------------------------------------------------------------- type */
.d{font-family:var(--display);font-weight:800;text-transform:uppercase;line-height:.87;letter-spacing:-.028em}
h1.d{font-size:clamp(2.35rem,6.1vw,5.1rem)}
h2.d{font-size:clamp(1.9rem,4.6vw,3.5rem)}
h3{font-family:var(--body);font-size:1.08rem;font-weight:600;letter-spacing:-.006em;line-height:1.25}
.accent{color:var(--oxide)}
.lede{font-size:clamp(1rem,1.5vw,1.14rem);color:var(--fg2);line-height:1.62;max-width:52ch}
p{max-width:66ch}
.meta{font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--fg3)}
.mark{font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--fg3);white-space:nowrap}
.mark s{text-decoration:none;color:var(--oxide)}

/* ---------------------------------------------------------------- chrome */
header.site{border-bottom:1px solid var(--rule);background:color-mix(in srgb,var(--bg) 88%,transparent);
  backdrop-filter:blur(10px) saturate(1.3);position:sticky;top:0;z-index:60}
header.site .wrap{display:flex;align-items:center;gap:clamp(10px,2vw,26px);min-height:60px}
.brand{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:14.5px;letter-spacing:.02em;
  display:flex;align-items:center;gap:9px;white-space:nowrap}
.brand::before{content:"";width:8px;height:8px;background:var(--oxide);flex:none}
header.site nav{margin-left:auto;display:flex;gap:clamp(10px,1.8vw,22px);align-items:center}
header.site nav a{font-family:var(--mono);font-size:10.5px;letter-spacing:.17em;text-transform:uppercase;
  color:var(--fg3);padding:3px 0;border-bottom:1px solid transparent;transition:color .18s,border-color .18s}
header.site nav a:hover,header.site nav a[aria-current]{color:var(--fg);border-bottom-color:var(--oxide)}
.tools{display:flex;gap:8px;align-items:center;margin-left:6px}
.iconbtn{width:34px;height:30px;display:grid;place-items:center;border:1px solid var(--rule2);background:transparent;
  color:var(--fg2);cursor:pointer;font-family:var(--mono);font-size:11px;transition:border-color .18s,color .18s}
.iconbtn:hover{border-color:var(--oxide);color:var(--oxide);background:transparent;transform:none}
.iconbtn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
[data-theme="dark"] .sun,:root:not([data-theme="light"]) .sun{display:none}
[data-theme="dark"] .moon,:root:not([data-theme="light"]) .moon{display:block}
.moon{display:none}
@media (prefers-color-scheme:light){:root:not([data-theme="dark"]) .sun{display:block}:root:not([data-theme="dark"]) .moon{display:none}}
[data-theme="light"] .sun{display:block}[data-theme="light"] .moon{display:none}


.crumbs{font-family:var(--mono);font-size:10.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--fg3);
  padding:22px 0 0;display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.crumbs a:hover{color:var(--oxide)}
.crumbs span[aria-hidden]{color:var(--rule2)}

footer.site{border-top:1px solid var(--rule);margin-top:96px;background:var(--sunk)}
footer.site .wrap{padding-top:40px;padding-bottom:56px}
.unofficial{border:1px solid var(--rule2);border-left:2px solid var(--oxide);padding:15px 18px;
  font-size:13.5px;color:var(--fg2);max-width:66ch;margin-bottom:34px}
.unofficial b{color:var(--fg);font-weight:600}
.fcols{display:grid;gap:26px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));font-size:13.5px;color:var(--fg3)}
.fcols a{color:var(--fg2);border-bottom:1px solid var(--rule2);transition:color .18s,border-color .18s}
.fcols a:hover{color:var(--oxide);border-bottom-color:var(--oxide)}
.fcols p{margin-top:9px;line-height:1.6}

/* ------------------------------------------------- RECORD / RECEIPTS / GAPS */
.lens{display:flex;border:1px solid var(--rule2);overflow:hidden}
.lens button{font-family:var(--mono);font-size:10.5px;letter-spacing:.15em;text-transform:uppercase;
  background:transparent;color:var(--fg3);border:0;border-right:1px solid var(--rule2);padding:8px 11px;
  cursor:pointer;transition:background .18s,color .18s}
.lens button:last-child{border-right:0}
.lens button:hover{color:var(--fg);background:transparent;transform:none}
.lens button[aria-pressed="true"]{background:var(--oxide);color:var(--oxide-ink)}
@media (max-width:1080px){.lens{display:none}}
.lensbar{display:none;border-bottom:1px solid var(--rule);background:var(--bg2)}
.lensbar .wrap{display:flex;align-items:center;gap:12px;padding-top:10px;padding-bottom:10px;flex-wrap:wrap}
.lensbar .meta{flex:1;min-width:180px}
@media (max-width:1080px){.lensbar{display:block}.lensbar .lens{display:flex}}

/* receipt markers — only visible in receipts lens */
.cite{display:none;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;color:var(--oxide);
  border:1px solid var(--oxide);padding:0 4px;margin-left:6px;cursor:pointer;vertical-align:2px;
  background:transparent;line-height:1.5}
.cite:hover{background:var(--oxide);color:var(--oxide-ink)}
[data-lens="receipts"] .cite{display:inline-block}
[data-lens="receipts"] [data-sourced]{background:color-mix(in srgb,var(--oxide) 9%,transparent);
  box-shadow:0 0 0 2px color-mix(in srgb,var(--oxide) 9%,transparent)}

/* gap highlighting — only in gaps lens */
[data-lens="gaps"] [data-missing]{background:color-mix(in srgb,var(--amber) 8%,transparent);
  outline:1px dashed var(--amber);outline-offset:1px}
[data-lens="gaps"] [data-disputed]{background:color-mix(in srgb,var(--oxide) 8%,transparent);
  outline:1px dashed var(--oxide);outline-offset:1px}
[data-lens="gaps"] .dimmable{opacity:.42;transition:opacity .25s}
.gapflag{display:none;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--bg);background:var(--amber);border:0;padding:3px 7px;margin-left:8px;white-space:nowrap}
[data-lens="gaps"] .gapflag{display:inline-block}

/* drawer */
.drawer{position:fixed;top:0;right:0;height:100dvh;width:min(430px,92vw);background:var(--bg2);
  border-left:1px solid var(--rule2);z-index:200;transform:translateX(101%);transition:transform .34s cubic-bezier(.22,1,.36,1);
  display:flex;flex-direction:column;box-shadow:-20px 0 60px rgba(0,0,0,.22)}
.drawer[data-open]{transform:none}
.drawer header{display:flex;align-items:center;gap:12px;padding:18px 22px;border-bottom:1px solid var(--rule)}
.drawer header .meta{flex:1}
.drawer .body{padding:22px;overflow:auto;flex:1}
.drawer h3{margin-bottom:6px}
.scrim{position:fixed;inset:0;background:rgba(0,0,0,.42);z-index:199;opacity:0;pointer-events:none;transition:opacity .3s}
.scrim[data-open]{opacity:1;pointer-events:auto}

/* ---------------------------------------------------------------- hero */
.hero{padding:clamp(46px,8vw,104px) 0 clamp(28px,4vw,48px);border-bottom:1px solid var(--rule)}
.hero h1.d{margin:18px 0 0;max-width:19ch}
.hero-grid{display:grid;gap:clamp(22px,4vw,60px);grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);
  align-items:end;margin-top:clamp(26px,4vw,52px)}
@media (max-width:860px){.hero-grid{grid-template-columns:1fr;align-items:start}}
.hero .lede{margin-bottom:20px}

.band{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));border-top:1px solid var(--rule);margin-top:clamp(34px,6vw,68px)}
.band>div{padding:20px 22px 4px;border-right:1px solid var(--rule)}
.band>div:last-child{border-right:0}.band>div:first-child{padding-left:0}
.band b{display:block;font-family:var(--display);font-weight:800;font-size:clamp(1.9rem,3.6vw,2.9rem);
  line-height:.95;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.band .meta{display:block;margin-top:9px;line-height:1.4;max-width:21ch}
.band .hot b{color:var(--oxide)}
@media (max-width:640px){.band>div{padding-left:0;border-right:0;border-bottom:1px solid var(--rule)}}

/* ---------------------------------------------------------------- sections */
section{padding:clamp(46px,7vw,92px) 0}
section+section{border-top:1px solid var(--rule)}
.shead{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(14px,3vw,40px);align-items:start;margin-bottom:clamp(26px,4vw,44px)}
.shead .mark{padding-top:.55em}
.shead p{margin-top:14px;color:var(--fg2);font-size:15px}
@media (max-width:640px){.shead{grid-template-columns:1fr;gap:10px}.shead .mark{padding-top:0}}

/* ---------------------------------------------------------------- medals */
.medal{display:inline-grid;place-items:center;width:1.5em;height:1.5em;border-radius:50%;font-family:var(--mono);
  font-size:.68em;font-weight:500;color:#1a1408;flex:none;line-height:1}
.medal.g{background:var(--gold-fill)}
.medal.s{background:var(--silver-fill)}
.medal.b{background:var(--bronze-fill)}
[data-theme="dark"] .medal,:root:not([data-theme="light"]) .medal{color:#0A0A0C}
.medalrow{display:flex;gap:6px;align-items:center}
.tallybar{display:flex;gap:3px;flex-wrap:wrap;align-items:center}
.tallybar i{width:13px;height:13px;border-radius:50%;background:var(--gold-fill);display:block}
.tallybar i.dim{background:var(--rule2)}

/* school colour marks */
.sc{display:inline-flex;gap:0;height:.85em;width:1.7em;vertical-align:-.05em;margin-right:.5em;flex:none;
  border:1px solid var(--rule2);overflow:hidden;border-radius:1px}
.sc i{display:block;flex:1}
.sc.none{background:repeating-linear-gradient(45deg,var(--rule),var(--rule) 2px,transparent 2px,transparent 5px)}
.scbar{height:3px;display:flex;width:100%}
.scbar i{flex:1;display:block}

/* ---------------------------------------------------------- shelf & refs */
.shelf{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(20px,4vw,56px);
  border-top:1px solid var(--rule2);padding-top:26px}
@media (max-width:860px){.shelf{grid-template-columns:1fr}}
.shelf .ref{font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:var(--oxide)}
.shelf h2{margin:10px 0 6px}
.shelf .sub{font-family:var(--mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--fg3)}
.shelf p{color:var(--fg2);margin-top:18px;font-size:15.5px}
.shelf .figs{display:flex;gap:30px;flex-wrap:wrap;margin-top:26px}
.shelf .figs b{font-family:var(--display);font-weight:800;font-size:1.6rem;letter-spacing:-.02em;display:block;font-variant-numeric:tabular-nums}
.shelf .figs span{display:block;margin-top:4px}

.refs{border-top:1px solid var(--rule2)}
.refrow{display:grid;grid-template-columns:76px minmax(0,1.15fr) minmax(0,1fr) auto;gap:clamp(12px,2.4vw,28px);
  align-items:baseline;padding:22px 0;border-bottom:1px solid var(--rule);transition:background .2s}
.refrow:hover{background:color-mix(in srgb,var(--fg) 3%,transparent)}
.refrow .ref{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--fg3);padding-top:5px}
.refrow:hover .ref{color:var(--oxide)}
.refrow h3{font-size:1.22rem;font-weight:600}
.refrow .sub{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg3);margin-top:6px;display:block}
.refrow p{font-size:14px;color:var(--fg2);margin:0}
.refrow .n{font-family:var(--mono);font-size:12px;color:var(--fg2);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.refrow .n s{display:block;text-decoration:none;color:var(--fg3);font-size:10px;letter-spacing:.13em;text-transform:uppercase;margin-top:5px}
.refrow .n::after{content:"↗";display:inline-block;margin-left:8px;color:var(--fg3);transition:color .2s,transform .2s}
.refrow:hover .n::after{color:var(--oxide);transform:translate(2px,-2px)}
@media (max-width:860px){.refrow{grid-template-columns:64px minmax(0,1fr);row-gap:8px}
  .refrow p,.refrow .n{grid-column:2}.refrow .n{text-align:left}}

.boxes{border-top:1px solid var(--rule2)}
.boxrow{display:grid;grid-template-columns:84px minmax(0,1fr) auto;gap:clamp(12px,2.4vw,28px);align-items:baseline;
  padding:18px 0;border-bottom:1px solid var(--rule)}
.boxrow .ref{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--fg3)}
.boxrow h3{font-size:1rem;font-weight:500;color:var(--fg2)}
.boxrow .c{font-size:13.5px;color:var(--fg3);margin-top:5px}
.boxrow .st{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg3);
  border:1px solid var(--rule2);padding:4px 9px;white-space:nowrap}
@media (max-width:640px){.boxrow{grid-template-columns:1fr;row-gap:6px}}

/* ---------------------------------------------------------------- chips */
.chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;
  text-transform:uppercase;padding:5px 10px;border:1px solid var(--rule2);color:var(--fg2);white-space:nowrap}
.chip::before{content:"";width:5px;height:5px;background:currentColor}
.chip.verified{color:var(--moss)}
.chip.partial{color:var(--amber)}
.chip.disputed{color:var(--oxide)}
.chip.missing{color:var(--fg3)}
.chip.plain{color:var(--fg3)}.chip.plain::before{display:none}
button.chip{cursor:pointer;background:transparent;transition:border-color .2s}
button.chip:hover{border-color:currentColor;transform:none}

/* -------------------------------------------------------- contest index */
.rows{border-top:1px solid var(--rule2)}
.row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 26px;align-items:center;padding:17px 0;
  border-bottom:1px solid var(--rule);transition:background .2s,padding-left .2s;position:relative}
.row:hover{background:color-mix(in srgb,var(--fg) 3%,transparent);padding-left:10px}
.row .who{font-size:16px;font-weight:600;letter-spacing:-.008em;display:flex;align-items:center;flex-wrap:wrap;gap:2px}
.row .who i{font-style:normal;color:var(--fg3);font-weight:400;padding:0 4px}
.row .m{font-family:var(--mono);font-size:10.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--fg3);margin-top:6px;
  display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.row .m .tv{color:var(--oxide)}
.row .sc-score{font-family:var(--mono);font-size:13px;color:var(--fg3);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;
  display:flex;gap:7px;align-items:center;justify-content:flex-end}
.row .sc-score b{color:var(--fg);font-weight:500}
@media (max-width:600px){.row{grid-template-columns:1fr}.row .sc-score{justify-content:flex-start}}

/* ---------------------------------------------------------- scoreboard */
.board{border:1px solid var(--rule2);background:var(--bg2)}
.bscroll{overflow-x:auto}
table{border-collapse:collapse;width:100%;min-width:640px}
th,td{padding:13px 15px;text-align:right;border-bottom:1px solid var(--rule);font-variant-numeric:tabular-nums;font-size:15px}
th{font-family:var(--mono);font-size:10.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--fg3);
  font-weight:400;vertical-align:bottom;line-height:1.5;background:var(--sunk);cursor:default}
th s{display:block;text-decoration:none;color:var(--fg3);font-size:10px;letter-spacing:.1em;margin-top:4px;opacity:.85}
th:first-child,td:first-child{text-align:left;position:sticky;left:0;background:var(--bg2);z-index:1}
th:first-child{background:var(--sunk)}
tbody tr:last-child td{border-bottom:0}
td.sch{font-weight:600;min-width:210px}
td.sch .nm{display:flex;align-items:center}
td.sch s{display:block;text-decoration:none;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--fg3);font-weight:400;margin-top:4px}
td.sch a{border-bottom:1px solid transparent;transition:border-color .2s}
td.sch a:hover{border-bottom-color:var(--oxide)}
td u{display:block;text-decoration:none;font-family:var(--mono);font-size:11px;color:var(--fg3);margin-top:3px}
td.tot{font-weight:600;font-size:17px;background:color-mix(in srgb,var(--fg) 4%,transparent)}
tr.win td{background:color-mix(in srgb,var(--oxide) 8%,transparent)}
tr.win td:first-child{background:color-mix(in srgb,var(--oxide) 8%,transparent)}
tr.win td.tot{background:color-mix(in srgb,var(--oxide) 17%,transparent);color:var(--oxide)}
td.na{color:var(--rule2)}
th.rnd{cursor:pointer;transition:background .18s,color .18s}
th.rnd:hover,th.rnd[aria-selected="true"]{background:color-mix(in srgb,var(--oxide) 14%,transparent);color:var(--fg)}
td.hl{background:color-mix(in srgb,var(--oxide) 11%,transparent)!important}

.chart{padding:24px 18px 12px;border-top:1px solid var(--rule);background:var(--sunk)}
.chart svg{width:100%;height:auto;display:block;overflow:visible}
.chart .lead{font-family:var(--mono);font-size:10.5px;letter-spacing:.05em;fill:var(--fg3)}
.key{display:flex;gap:20px;flex-wrap:wrap;margin-top:14px;font-family:var(--mono);font-size:10.5px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--fg2)}
.key i{display:inline-block;width:18px;height:2px;vertical-align:middle;margin-right:8px}
.roundnote{padding:14px 18px;border-top:1px solid var(--rule);background:var(--bg2);font-size:14px;color:var(--fg2);min-height:52px}
.roundnote b{color:var(--fg)}

/* ---------------------------------------------------------------- video */
.watch{border:1px solid var(--rule2);background:var(--bg2);overflow:hidden}
.facade{position:relative;width:100%;aspect-ratio:16/9;background:var(--sunk);cursor:pointer;border:0;padding:0;display:block;
  transition:none}
.facade:hover{transform:none;background:var(--sunk)}
.facade img{width:100%;height:100%;object-fit:cover;display:block}
.facade .play{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.55))}
.facade .play span{width:66px;height:66px;border-radius:50%;background:var(--oxide);display:grid;place-items:center;
  transition:transform .22s cubic-bezier(.22,1,.36,1)}
.facade:hover .play span{transform:scale(1.09)}
.facade .play svg{width:22px;height:22px;fill:var(--oxide-ink);margin-left:3px}
.facade .cap{position:absolute;left:0;right:0;bottom:0;padding:14px 16px;text-align:left;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#F3EFE6;
  display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.watch iframe{width:100%;aspect-ratio:16/9;border:0;display:block}
.watch .wmeta{padding:13px 16px;border-top:1px solid var(--rule);font-family:var(--mono);font-size:10.5px;
  letter-spacing:.13em;text-transform:uppercase;color:var(--fg3);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.watch .wmeta a{color:var(--fg2);border-bottom:1px solid var(--rule2)}
.watch .wmeta a:hover{color:var(--oxide)}

/* ------------------------------------------------------------ river (bracket) */
.river{display:grid;gap:0;border-top:1px solid var(--rule2)}
.stage{padding:22px 0;border-bottom:1px solid var(--rule)}
.stage>.meta{margin-bottom:14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.heats{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(232px,1fr))}
.heat{border:1px solid var(--rule);background:var(--bg2);padding:12px 13px;transition:border-color .2s,transform .2s;display:block}
.heat:hover{border-color:var(--oxide);transform:translateY(-2px)}
.heat .hm{font-family:var(--mono);font-size:10.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--fg3);
  display:flex;justify-content:space-between;gap:8px;margin-bottom:9px}
.heat .hm .tv{color:var(--oxide)}
.heat ol{list-style:none;display:grid;gap:5px}
.heat li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;font-size:13.5px}
.heat li .n{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--fg3);font-size:12.5px}
.heat li.adv{font-weight:600}
.heat li.adv .n{color:var(--oxide)}
.heat li.out{color:var(--fg3)}

/* ---------------------------------------------------------------- prose */
.prose h2{font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:-.02em;
  font-size:clamp(1.3rem,2.4vw,1.8rem);line-height:1;margin:44px 0 14px}
.prose h2:first-child{margin-top:0}
.prose p{color:var(--fg2);margin-bottom:1.05em;max-width:64ch}
.prose b,.prose strong{color:var(--fg);font-weight:600}
.callout{border-left:2px solid var(--oxide);padding:4px 0 4px 20px;color:var(--fg2);font-size:15.5px;max-width:64ch}
.callout a{color:var(--fg);border-bottom:1px solid var(--oxide)}

/* --------------------------------------------------------------- sources */
ol.src{list-style:none;counter-reset:s;border-top:1px solid var(--rule2)}
ol.src li{counter-increment:s;display:grid;grid-template-columns:34px minmax(0,1fr);gap:14px;padding:16px 0;
  border-bottom:1px solid var(--rule);font-size:14.5px}
ol.src li::before{content:counter(s,decimal-leading-zero);font-family:var(--mono);font-size:10.5px;color:var(--oxide);padding-top:4px}
ol.src a{border-bottom:1px solid var(--rule2);word-break:break-word}
ol.src a:hover{border-bottom-color:var(--oxide)}
ol.src .pub{font-family:var(--mono);font-size:10.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--fg3);margin-top:6px}
ol.src .nb{font-size:13px;color:var(--fg2);margin-top:7px;max-width:70ch}

/* -------------------------------------------------------------- timeline */
.tl{border-top:1px solid var(--rule2)}
.tlr{display:grid;grid-template-columns:78px minmax(0,1fr) auto;gap:18px;align-items:center;padding:12px 0;
  border-bottom:1px solid var(--rule)}
.tlr .y{font-family:var(--mono);font-size:12.5px;color:var(--fg3);font-variant-numeric:tabular-nums}
.tlr .c{font-size:15.5px;font-weight:500;display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.tlr .c a{border-bottom:1px solid transparent;transition:border-color .2s}
.tlr .c a:hover{border-bottom-color:var(--oxide)}
.tlr .c s{text-decoration:none;color:var(--fg3);font-weight:400;font-size:13.5px}
.tlr .x{font-family:var(--mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--fg3)}
.tlr.none .c{color:var(--fg3);font-weight:400;font-style:italic}
.tlr.now .y{color:var(--oxide)}
@media (max-width:640px){.tlr{grid-template-columns:62px minmax(0,1fr)}.tlr .x{display:none}}

/* ---------------------------------------------------------------- tally */
.tally{border-top:1px solid var(--rule2)}
.tr{display:grid;grid-template-columns:minmax(150px,240px) minmax(0,1fr) auto;gap:18px;align-items:center;
  padding:13px 0;border-bottom:1px solid var(--rule);font-size:15px}
.tr a{border-bottom:1px solid transparent;transition:border-color .2s;display:flex;align-items:center}
.tr a:hover{border-bottom-color:var(--oxide)}
.tr .n{font-family:var(--mono);text-align:right;font-variant-numeric:tabular-nums;color:var(--fg2);font-size:13px;min-width:26px}
@media (max-width:700px){.tr{grid-template-columns:minmax(120px,1fr) auto;font-size:13.5px}.tr .tallybar{grid-column:1/-1}}

/* ----------------------------------------------------------------- gaps */
.gaps{border-top:1px solid var(--rule2)}
.gap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 24px;align-items:start;padding:22px 0;
  border-bottom:1px solid var(--rule)}
.gap h3{font-size:1.06rem;font-weight:600}
.gap p{font-size:14.5px;color:var(--fg2);margin-top:8px;max-width:72ch}
.gap .act{margin-top:12px}

/* --------------------------------------------------------------- search */
.searchwrap{position:fixed;inset:0;z-index:210;display:none;padding:12vh 20px 20px;background:rgba(0,0,0,.5);
  backdrop-filter:blur(3px)}
.searchwrap[data-open]{display:block}
.searchbox{max-width:660px;margin:0 auto;background:var(--bg2);border:1px solid var(--rule2);box-shadow:0 30px 80px rgba(0,0,0,.38)}
.searchbox input{border:0;border-bottom:1px solid var(--rule);font-size:19px;padding:19px 20px;background:transparent}
.searchbox input:focus{outline:none;border-color:var(--rule)}
.results{max-height:52vh;overflow:auto}
.results a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:13px 20px;border-bottom:1px solid var(--rule);align-items:center}
.results a:hover,.results a[data-on]{background:color-mix(in srgb,var(--oxide) 12%,transparent)}
.results .t{font-weight:600;font-size:15px;display:flex;align-items:center}
.results .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--fg3);margin-top:4px}
.results .r{font-family:var(--mono);font-size:11.5px;color:var(--fg3);white-space:nowrap;font-variant-numeric:tabular-nums}
.searchfoot{padding:11px 20px;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg3);
  display:flex;gap:16px;flex-wrap:wrap;border-top:1px solid var(--rule)}
.empty{padding:26px 20px;color:var(--fg3);font-size:14.5px}

/* ----------------------------------------------------------------- form */
form.cf{display:grid;gap:20px;max-width:660px}
label{display:grid;gap:8px}
label>span{font-family:var(--mono);font-size:10px;letter-spacing:.17em;text-transform:uppercase;color:var(--fg3)}
input,textarea,select{font:inherit;font-size:15.5px;color:var(--fg);background:var(--bg2);border:1px solid var(--rule2);
  padding:13px 14px;width:100%;border-radius:0;transition:border-color .18s}
input:hover,textarea:hover,select:hover{border-color:var(--fg3)}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--oxide)}
textarea{min-height:150px;resize:vertical;line-height:1.55}
select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--fg3) 50%),linear-gradient(135deg,var(--fg3) 50%,transparent 50%);
  background-position:calc(100% - 19px) 21px,calc(100% - 13px) 21px;background-size:6px 6px;background-repeat:no-repeat}
button{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;background:var(--oxide);
  color:var(--oxide-ink);border:0;padding:16px 30px;cursor:pointer;transition:background .18s,transform .18s}
form.cf button{justify-self:start}
button:hover{background:var(--fg);color:var(--bg);transform:translateY(-1px)}
button[disabled]{opacity:.45;cursor:default;transform:none}
#fm{font-size:14.5px;padding:14px 16px;border:1px solid var(--rule2);color:var(--fg2)}
#fm.ok{border-color:var(--moss);color:var(--moss)}
#fm.err{border-color:var(--oxide);color:var(--oxide)}
.fine{font-size:13px;color:var(--fg3);max-width:62ch;line-height:1.6}
.fine a{color:var(--fg2);border-bottom:1px solid var(--rule2)}
.fine a:hover{color:var(--oxide);border-bottom-color:var(--oxide)}

/* ----------------------------------------------------------------- bits */
.btn{display:inline-block;font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;
  border:1px solid var(--rule2);padding:14px 24px;color:var(--fg);background:transparent;cursor:pointer;
  transition:border-color .2s,color .2s,background .2s}
.btn:hover{border-color:var(--oxide);color:var(--oxide);background:transparent;transform:none}
.btn.hot{background:var(--oxide);border-color:var(--oxide);color:var(--oxide-ink)}
.btn.hot:hover{background:var(--fg);border-color:var(--fg);color:var(--bg)}
.btn.sm{padding:9px 15px;font-size:10px}
.acts{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.tags{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}
.tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--rule2);
  padding:6px 12px;color:var(--fg2);display:inline-flex;align-items:center;gap:7px;transition:border-color .2s,color .2s}
a.tag:hover{border-color:var(--oxide);color:var(--oxide)}
.mt{margin-top:30px}.mt-s{margin-top:16px}
.center-note{color:var(--fg3);font-size:13.5px;margin-top:14px}
.center-note a{color:var(--fg2);border-bottom:1px solid var(--rule2)}
.center-note a:hover{color:var(--oxide)}

/* personal note — a different voice inside the same system */
.personal{max-width:46ch}
.personal h2{font-family:var(--display);font-weight:800;text-transform:none;letter-spacing:-.028em;
  font-size:clamp(1.6rem,3.4vw,2.5rem);line-height:1.04;margin:16px 0 26px}
.personal p{font-size:clamp(1rem,1.4vw,1.12rem);line-height:1.62;color:var(--fg2);margin-bottom:1.1em}
.personal p.last{color:var(--fg);font-weight:500}
.personal p.sig{font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--fg3);margin-top:30px;padding-top:18px;border-top:1px solid var(--rule)}

/* ============================================================ COLLECTIONS NAV */
.navdrop{position:relative}
.navdrop>button{font-family:var(--mono);font-size:10.5px;letter-spacing:.17em;text-transform:uppercase;
  color:var(--fg3);background:transparent;border:0;padding:3px 0;cursor:pointer;display:flex;align-items:center;gap:6px;
  border-bottom:1px solid transparent;transition:color .18s,border-color .18s}
.navdrop>button:hover,.navdrop[data-open]>button{color:var(--fg);border-bottom-color:var(--oxide);background:transparent;transform:none}
.navdrop>button svg{width:8px;height:8px;stroke:currentColor;stroke-width:2.4;fill:none;transition:transform .22s}
.navdrop[data-open]>button svg{transform:rotate(180deg)}
.menu{position:absolute;top:calc(100% + 14px);left:-18px;min-width:296px;background:var(--bg2);
  border:1px solid var(--rule2);box-shadow:0 24px 60px rgba(0,0,0,.28);padding:6px;opacity:0;visibility:hidden;
  transform:translateY(-6px);transition:opacity .2s,transform .2s,visibility .2s;z-index:70}
.navdrop[data-open] .menu{opacity:1;visibility:visible;transform:none}
.menu .grp{font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--fg3);
  padding:13px 14px 7px}
.menu a{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 14px;
  transition:background .16s}
.menu a:hover{background:color-mix(in srgb,var(--oxide) 12%,transparent)}
.menu a .t{font-weight:600;font-size:14.5px;display:flex;align-items:center}
.menu a .s{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--fg3);margin-top:3px}
.menu a .go{font-family:var(--mono);font-size:11px;color:var(--fg3)}
.menu a:hover .go{color:var(--oxide)}
.menu .dim{padding:10px 14px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:baseline;
  color:var(--fg3);font-size:13.5px}
.menu .dim .r{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em}
.menu hr{border:0;border-top:1px solid var(--rule);margin:6px 0}
@media (max-width:860px){
  .menu{position:fixed;left:0;right:0;top:60px;min-width:0;border-left:0;border-right:0;
    max-height:calc(100dvh - 60px);overflow:auto}
  header.site nav a:nth-of-type(n+2){display:none}
}
@media (max-width:420px){header.site .wrap{gap:8px}.navdrop>button{font-size:10px;letter-spacing:.12em}}

.subnav{border-bottom:1px solid var(--rule);background:var(--bg2)}
.subnav .wrap{display:flex;gap:clamp(14px,2.4vw,28px);align-items:center;overflow-x:auto;padding-top:12px;padding-bottom:12px}
.subnav a{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg3);
  white-space:nowrap;padding-bottom:3px;border-bottom:1px solid transparent;transition:color .18s,border-color .18s}
.subnav a:hover,.subnav a[aria-current]{color:var(--fg);border-bottom-color:var(--oxide)}
.subnav .lbl{font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--oxide);
  white-space:nowrap;padding-right:4px}

/* ========================================================= CHAMPIONSHIP HERO */
.champ{padding:clamp(38px,6vw,76px) 0 clamp(26px,4vw,44px);border-bottom:1px solid var(--rule);position:relative;overflow:hidden}
.champ .kick{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:clamp(20px,3vw,34px)}
.champ .colours{display:flex;height:4px;width:clamp(90px,18vw,190px);margin-bottom:20px}
.champ .colours i{flex:1}
.champ .winner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(14px,3vw,40px);align-items:center}
@media (max-width:720px){.champ .winner{grid-template-columns:1fr;gap:4px}}
.champ .wname{font-family:var(--display);font-weight:900;text-transform:uppercase;letter-spacing:-.035em;
  line-height:.84;font-size:clamp(2.6rem,9vw,7.2rem)}
.champ .wscore{font-family:var(--display);font-weight:900;letter-spacing:-.05em;line-height:.76;color:var(--oxide);
  font-size:clamp(5rem,17vw,13rem);font-variant-numeric:tabular-nums;text-align:right}
@media (max-width:720px){.champ .wscore{text-align:left}}
.champ .rest{margin-top:clamp(22px,3.4vw,38px);border-top:1px solid var(--rule2);max-width:640px}
.champ .rest div{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;
  padding:13px 0;border-bottom:1px solid var(--rule);font-size:clamp(1rem,1.7vw,1.22rem)}
.champ .rest .n{font-family:var(--display);font-weight:800;font-size:clamp(1.3rem,2.6vw,1.9rem);
  letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--fg2)}
.champ .title-badge{display:inline-flex;align-items:center;gap:11px;margin-top:clamp(24px,3.4vw,38px);
  border:1px solid var(--gold);color:var(--gold);padding:11px 18px;font-family:var(--mono);font-size:11.5px;
  letter-spacing:.2em;text-transform:uppercase}
.champ .title-badge b{font-family:var(--display);font-size:1.5rem;letter-spacing:-.02em;line-height:1;font-weight:800}
.champ .facts{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}

/* ======================================================= SCORE PROGRESSION */
.prog{border:1px solid var(--rule2);background:var(--bg2)}
.prog .plot{padding:clamp(18px,3vw,30px) clamp(14px,2.4vw,26px) 6px}
.prog svg{width:100%;height:auto;display:block;overflow:visible}
.prog .axis{font-family:var(--mono);font-size:11px;fill:var(--fg3);letter-spacing:.06em}
.prog .pname{font-family:var(--mono);font-size:12px;letter-spacing:.04em;font-weight:500}
.prog .band{fill:var(--oxide);opacity:0}
.prog .band.on{opacity:.09}
.prog .hit{fill:transparent;cursor:pointer}
.prog path.trace{fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.prog circle.pt{transition:r .18s}
.prog .flag text{font-family:var(--mono);font-size:10.5px;letter-spacing:.05em;fill:var(--oxide)}
.prog .flag line{stroke:var(--oxide);stroke-dasharray:2 3;opacity:.75}
.progbar{display:flex;gap:0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.progbar button{flex:1;background:transparent;color:var(--fg3);border:0;border-right:1px solid var(--rule);
  font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;padding:13px 6px;cursor:pointer;
  transition:background .18s,color .18s}
.progbar button:last-child{border-right:0}
.progbar button:hover{background:color-mix(in srgb,var(--oxide) 10%,transparent);color:var(--fg);transform:none}
.progbar button[aria-pressed="true"]{background:var(--oxide);color:var(--oxide-ink)}
.progcap{padding:clamp(16px,2.6vw,24px);min-height:104px;font-size:15.5px;color:var(--fg2);line-height:1.6}
.progcap b{color:var(--fg)}
.progcap .rk{display:flex;gap:18px;flex-wrap:wrap;margin-top:14px}
.progcap .rk span{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12px;color:var(--fg2)}
.progcap .rk s{text-decoration:none;font-variant-numeric:tabular-nums;color:var(--fg3)}

/* ================================================================= GALLERY */
.gallery{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.gallery figure{margin:0;position:relative;overflow:hidden;background:var(--sunk);border:1px solid var(--rule)}
.gallery img{width:100%;height:100%;aspect-ratio:3/2;object-fit:cover;display:block;
  transition:opacity .3s;background:var(--sunk)}
.gallery img[data-broken]{opacity:.15}
.gallery figure:first-child{grid-column:span 2;grid-row:span 2}
@media (max-width:640px){.gallery figure:first-child{grid-column:span 1;grid-row:span 1}}
.credit{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:14px;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--fg3)}
.credit a{color:var(--fg2);border-bottom:1px solid var(--rule2)}
.credit a:hover{color:var(--oxide);border-bottom-color:var(--oxide)}

/* ========================================================== HOME: ASSEMBLE */
.assemble{position:relative;margin-top:clamp(30px,5vw,58px);min-height:clamp(220px,32vw,330px)}
.frag{position:absolute;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  border:1px solid var(--rule2);background:var(--bg2);color:var(--fg3);padding:7px 11px;white-space:nowrap;
  will-change:transform,opacity}
.frag.gap{color:var(--amber);border-color:var(--amber)}
.frag.src{color:var(--oxide);border-color:var(--oxide)}
.assembled{position:relative;z-index:2;border:1px solid var(--rule2);background:var(--bg2);max-width:560px;
  margin:clamp(56px,9vw,110px) auto 0}
.assembled .top{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 16px;
  border-bottom:1px solid var(--rule);font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--fg3)}
.assembled .top s{text-decoration:none;color:var(--moss)}
.assembled ol{list-style:none}
.assembled li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:center;
  padding:12px 16px;border-bottom:1px solid var(--rule);font-size:15px}
.assembled li:last-child{border-bottom:0}
.assembled li .n{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:15px;color:var(--fg2)}
.assembled li.w{font-weight:600}
.assembled li.w .n{color:var(--oxide)}
.assembled .foot{padding:11px 16px;border-top:1px solid var(--rule);font-family:var(--mono);font-size:10.5px;
  letter-spacing:.13em;text-transform:uppercase;color:var(--fg3);display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
@media (prefers-reduced-motion:reduce){.frag{display:none}}

/* ============================================================ RECENTLY ADDED */
.recent{border-top:1px solid var(--rule2)}
.recent .r{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:16px;align-items:baseline;
  padding:14px 0;border-bottom:1px solid var(--rule)}
.recent .d{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--fg3);text-transform:uppercase}
.recent .t{font-size:15px;font-weight:500}
.recent .t s{text-decoration:none;color:var(--fg3);font-weight:400}
@media (max-width:560px){.recent .r{grid-template-columns:1fr;row-gap:5px}}
