/* LOADOUT8 UI v3 — tokens and components (DESIGN.md is the spec).
   Rules: pressable controls are pills, information is square; Accent is a signal only;
   Archivo UI sets numbers and Latin labels, Japanese stays in the system sans.
   Every rule is a .ui-* class so this layer never restyles legacy markup. */
@font-face{font-family:"Archivo UI";src:url("fonts/archivo-ui.woff2") format("woff2");font-weight:500 900;font-stretch:100% 125%;font-style:normal;font-display:swap}

:root{
  --ui-canvas:#080C0B;--ui-surface:#141A1B;--ui-surface-2:#1B2223;--ui-media:#101617;
  --ui-accent:#E7FF00;--ui-on-accent:#090B0A;
  --ui-text:#F5F7F4;--ui-text-soft:#DCE0DE;--ui-muted:#A6ADAB;
  --ui-line:#2B3334;--ui-line-strong:#465051;--ui-paper:#F5F7F4;--ui-scrim:rgba(7,9,9,.91);
  --ui-font:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic UI","Yu Gothic",Meiryo,sans-serif;
  --ui-font-num:"Archivo UI",-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic UI",Meiryo,sans-serif;
  --ui-fs-display:clamp(40px,6.4vw,72px);--ui-fs-h1:clamp(30px,4vw,44px);--ui-fs-h2:clamp(22px,2.4vw,28px);--ui-fs-h3:18px;
  --ui-fs-body:16px;--ui-fs-small:14px;--ui-fs-meta:12px;
  --ui-s1:4px;--ui-s2:8px;--ui-s3:12px;--ui-s4:16px;--ui-s5:24px;--ui-s6:32px;--ui-s7:48px;--ui-s8:64px;
  --ui-pill:999px;--ui-h:44px;--ui-h-l:52px;--ui-max:1200px;--ui-measure:720px;--ui-gutter:16px;--ui-profile-media-max:480px;
  --ui-dur:140ms;--ui-ease:cubic-bezier(.2,.7,.2,1);--ui-dur-slow:720ms;--ui-ease-out:cubic-bezier(.16,1,.3,1)
}
@media(min-width:768px){:root{--ui-gutter:24px}}
@media(min-width:1024px){:root{--ui-gutter:32px}}

/* Base */
.ui{margin:0;background:var(--ui-canvas);color:var(--ui-text);font:400 var(--ui-fs-body)/1.75 var(--ui-font);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%}
.ui *,.ui *::before,.ui *::after{box-sizing:border-box}
:where(.ui,.ui-shell) [hidden]{display:none!important}
@media(max-width:1023.98px){.ui-shell{padding-bottom:calc(58px + env(safe-area-inset-bottom,0px))}}
/* Keep scrolled-to targets clear of the sticky header and the fixed tab bar. */
html:has(body.ui-shell){scroll-padding-top:72px}
@media(max-width:1023.98px){html:has(body.ui-shell){scroll-padding-bottom:calc(66px + env(safe-area-inset-bottom,0px))}}
:where(.ui) a{color:inherit}
.ui :focus-visible{outline:2px solid var(--ui-accent);outline-offset:3px}
.ui img{max-width:100%;display:block}
.ui-container{width:100%;max-width:calc(var(--ui-max) + 2 * var(--ui-gutter));margin-inline:auto;padding-inline:var(--ui-gutter)}
.ui-measure{max-width:var(--ui-measure)}
.ui-stack{display:grid;gap:var(--ui-s4);align-content:start}
.ui-plain{margin:0;padding:0;list-style:none}
/* Stacked layouts space their children with gap; default paragraph margins would double it. */
:where(.ui-stack,.ui-gearitem,.ui-loadout__figure,.ui-pagehead,.ui-callout)>*{margin-block:0}
.ui-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Type */
.ui-display,.ui-h1,.ui-h2,.ui-h3{margin:0;font-family:var(--ui-font);font-weight:800;color:var(--ui-text);text-wrap:balance}
.ui-display{font-size:var(--ui-fs-display);line-height:1.08;letter-spacing:-.02em}
.ui-h1{font-size:var(--ui-fs-h1);line-height:1.18;letter-spacing:-.015em}
.ui-h2{font-size:var(--ui-fs-h2);line-height:1.3;letter-spacing:-.01em}
.ui-h3{font-size:var(--ui-fs-h3);line-height:1.45}
.ui-lead{margin:0;max-width:40em;font-size:var(--ui-fs-body);line-height:1.75;color:var(--ui-text-soft)}
.ui-body{margin:0;max-width:40em;line-height:1.85}
.ui-small{font-size:var(--ui-fs-small);line-height:1.7;color:var(--ui-text-soft)}
.ui-label{display:block;font:700 var(--ui-fs-meta)/1.4 var(--ui-font);color:var(--ui-muted);letter-spacing:.02em}
.ui-num{font-family:var(--ui-font-num);font-stretch:112.5%;font-variant-numeric:tabular-nums lining-nums}
.ui-eyebrow{display:block;font:700 var(--ui-fs-meta)/1.4 var(--ui-font-num);font-stretch:125%;letter-spacing:.08em;text-transform:uppercase;color:var(--ui-muted)}

/* Buttons: pills. One primary per view. */
.ui-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--ui-s2);min-height:var(--ui-h);padding:0 20px;border:1.5px solid transparent;border-radius:var(--ui-pill);background:none;color:var(--ui-text);font:700 15px/1.2 var(--ui-font);text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color var(--ui-dur) var(--ui-ease),border-color var(--ui-dur) var(--ui-ease),color var(--ui-dur) var(--ui-ease),transform var(--ui-dur) var(--ui-ease)}
.ui-btn:active{transform:scale(.98)}
.ui-btn--l{min-height:var(--ui-h-l);padding:0 28px;font-size:16px}
.ui-btn--block{display:flex;width:100%;padding-inline:12px;white-space:normal;text-align:center}
.ui-btn--primary{background:var(--ui-accent) repeating-linear-gradient(-45deg,transparent 0 9px,color-mix(in srgb,var(--ui-on-accent) 12%,transparent) 9px 18px) 120% 0/250% 100% no-repeat;border-color:var(--ui-accent);color:var(--ui-on-accent);transition:background-position var(--ui-dur-slow) var(--ui-ease-out),transform var(--ui-dur) var(--ui-ease)}
.ui-btn--primary:hover{background-position:-20% 0}
.ui-btn--secondary{border-color:var(--ui-line-strong)}
.ui-btn--secondary:hover{border-color:var(--ui-text)}
.ui-btn--ghost{padding:0 14px}
.ui-btn--ghost:hover{background:var(--ui-surface)}
.ui-btn:is(:disabled,[aria-disabled="true"]){opacity:.4;pointer-events:none}
.ui-btn__icon{font-weight:400;transition:transform var(--ui-dur) var(--ui-ease)}
.ui-btn:hover .ui-btn__icon{transform:translateX(2px)}
.ui-iconbtn{display:inline-grid;place-items:center;width:var(--ui-h);height:var(--ui-h);padding:0;border:0;border-radius:var(--ui-pill);background:none;color:var(--ui-text);cursor:pointer;transition:background-color var(--ui-dur) var(--ui-ease)}
.ui-iconbtn:hover{background:var(--ui-surface)}
.ui-iconbtn svg,.ui-tabbar svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* Links: text color + Accent underline; arrows say where they go (→ in site, ↗ external). */
.ui-link{color:var(--ui-text);text-decoration:underline;text-decoration-color:var(--ui-accent);text-decoration-thickness:2px;text-underline-offset:4px}
.ui-link:hover{text-decoration-color:var(--ui-text)}
.ui-more,.ui-back{display:inline-flex;align-items:center;gap:6px;min-height:var(--ui-h);color:var(--ui-text);font-weight:700;font-size:15px;text-decoration:none}
.ui-more::after{content:"→";content:"→" / "";font-weight:400;transition:transform var(--ui-dur) var(--ui-ease)}
.ui-more--external::after{content:"↗";content:"↗" / ""}
.ui-more:hover::after{transform:translateX(3px)}
.ui-more--external:hover::after{transform:translate(2px,-2px)}
.ui-back{font-size:var(--ui-fs-small);color:var(--ui-text-soft)}
.ui-back::before{content:"←";content:"←" / "";font-weight:400}

/* Chips and filters: one scrollable row on phones, wraps from tablet up. */
.ui-filters{display:grid;gap:var(--ui-s4);padding-block:var(--ui-s4);border-top:1px solid var(--ui-line)}
.ui-filters__note{margin:0}
.ui-filters__status{display:flex;align-items:center;gap:var(--ui-s3);min-height:var(--ui-h);margin:0}
.ui-filters__count{font:800 24px/1 var(--ui-font-num);font-stretch:112.5%;font-variant-numeric:tabular-nums}
.ui-filter{display:grid;gap:var(--ui-s2);min-width:0;margin:0;padding:0;border:0}
.ui-filter>legend{margin-bottom:var(--ui-s2);padding:0}
.ui-chips{display:flex;gap:var(--ui-s2);margin-inline:calc(-1 * var(--ui-gutter));padding:2px var(--ui-gutter);overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain}
.ui-chips::-webkit-scrollbar{display:none}
@media(min-width:768px){.ui-chips{flex-wrap:wrap;margin-inline:0;padding-inline:0}}
.ui-chip{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:var(--ui-h);padding:0 16px;border:1.5px solid var(--ui-line-strong);border-radius:var(--ui-pill);background:none;color:var(--ui-text);font:600 14px/1.2 var(--ui-font);text-decoration:none;cursor:pointer;transition:background-color var(--ui-dur) var(--ui-ease),border-color var(--ui-dur) var(--ui-ease)}
.ui-chip:hover{border-color:var(--ui-text)}
.ui-chip__n{font:600 12px/1 var(--ui-font-num);font-variant-numeric:tabular-nums;color:var(--ui-muted)}
.ui-chip:is([aria-pressed="true"],[aria-current]){background:var(--ui-accent);border-color:var(--ui-accent);color:var(--ui-on-accent)}
.ui-chip:is([aria-pressed="true"],[aria-current]) .ui-chip__n{color:var(--ui-on-accent);opacity:.72}

/* Segmented control: a choice between 2–4 equal options, built on radios. */
.ui-seg{display:flex;gap:4px;padding:4px;border:1px solid var(--ui-line);border-radius:var(--ui-pill);background:var(--ui-surface)}
.ui-seg label{position:relative;flex:1 1 0;min-width:0}
.ui-seg input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.ui-seg span{display:flex;align-items:center;justify-content:center;min-height:var(--ui-h);padding:0 12px;border-radius:var(--ui-pill);color:var(--ui-text-soft);font:700 15px/1.2 var(--ui-font-num);font-stretch:100%;white-space:nowrap;transition:background-color var(--ui-dur) var(--ui-ease),color var(--ui-dur) var(--ui-ease)}
.ui-seg input:checked+span{background:var(--ui-accent);color:var(--ui-on-accent)}
.ui-seg input:focus-visible+span{outline:2px solid var(--ui-accent);outline-offset:2px}

/* Tabs: switch between sections or categories of one page. */
.ui-tabs{display:flex;gap:var(--ui-s5);margin-inline:calc(-1 * var(--ui-gutter));padding-inline:var(--ui-gutter);border-bottom:1px solid var(--ui-line);overflow-x:auto;scrollbar-width:none}
.ui-tabs::-webkit-scrollbar{display:none}
@media(min-width:768px){.ui-tabs{margin-inline:0;padding-inline:0}}
.ui-tabs :is(a,button){flex:none;display:flex;align-items:center;min-height:48px;margin:0 0 -1px;padding:0;border:0;border-bottom:3px solid transparent;background:none;color:var(--ui-muted);font:700 15px/1.2 var(--ui-font);text-decoration:none;cursor:pointer}
.ui-tabs :is(a,button):hover{color:var(--ui-text)}
.ui-tabs :is(a[aria-current],button[aria-selected="true"]){color:var(--ui-text);border-bottom-color:var(--ui-accent)}

/* Fields */
.ui-field{display:grid;gap:6px}
.ui-input,.ui-select{width:100%;min-height:48px;padding:0 20px;border:1.5px solid var(--ui-line-strong);border-radius:var(--ui-pill);background:var(--ui-surface);color:var(--ui-text);font:400 16px/1.2 var(--ui-font);transition:border-color var(--ui-dur) var(--ui-ease)}
.ui-input::placeholder{color:var(--ui-muted)}
.ui-input:hover,.ui-select:hover{border-color:var(--ui-muted)}
.ui-input:focus,.ui-select:focus{border-color:var(--ui-text)}
.ui-select{appearance:none;padding-right:48px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A6ADAB' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 18px center;background-size:18px}
.ui-search{position:relative}
.ui-search svg{position:absolute;left:18px;top:50%;width:20px;height:20px;transform:translateY(-50%);fill:none;stroke:var(--ui-muted);stroke-width:2;stroke-linecap:round;pointer-events:none}
.ui-search .ui-input{padding-left:48px}
.ui-searchbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--ui-s2)}
.ui-check,.ui-switch{display:flex;align-items:center;gap:var(--ui-s3);min-height:var(--ui-h);cursor:pointer;font-size:15px}
.ui-check input{appearance:none;flex:none;width:22px;height:22px;margin:0;border:1.5px solid var(--ui-line-strong);border-radius:4px;background:var(--ui-surface);cursor:pointer}
.ui-check input:checked{border-color:var(--ui-accent);background:var(--ui-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23090B0A' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5 9-10'/%3E%3C/svg%3E") center/16px no-repeat}
.ui-switch input{appearance:none;flex:none;width:48px;height:28px;margin:0;border-radius:var(--ui-pill);background:var(--ui-line-strong) radial-gradient(circle at 14px 50%,var(--ui-text) 9px,transparent 9.5px);cursor:pointer;transition:background-color var(--ui-dur) var(--ui-ease)}
.ui-switch input:checked{background:var(--ui-accent) radial-gradient(circle at calc(100% - 14px) 50%,var(--ui-on-accent) 9px,transparent 9.5px)}

/* Tags: status that cannot be pressed — no border, a square dot instead. */
.ui-tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px}
.ui-tag{display:inline-flex;align-items:center;gap:6px;font:700 var(--ui-fs-meta)/1.4 var(--ui-font);color:var(--ui-text-soft)}
.ui-tag::before{content:"";flex:none;width:8px;height:8px;background:var(--ui-muted)}
.ui-tag--ok::before{background:var(--ui-accent)}
.ui-tag--pending::before{background:none;box-shadow:inset 0 0 0 1.5px var(--ui-muted)}
.ui-tag--ad{padding:1px 6px;border:1px solid var(--ui-muted);color:var(--ui-text)}
.ui-tag--ad::before{content:none}

/* Bib: the race number plate. Square, white, pinned at four corners. */
.ui-bib{display:inline-grid;place-items:center;min-width:40px;height:30px;padding:0 6px;background:var(--ui-text);color:var(--ui-canvas);font:800 17px/1 var(--ui-font-num);font-stretch:112.5%;font-variant-numeric:tabular-nums}
.ui-bib--l{min-width:76px;height:52px;padding:0 12px;font-size:30px;background:radial-gradient(circle at 7px 7px,var(--ui-canvas) 2px,transparent 2.5px),radial-gradient(circle at calc(100% - 7px) 7px,var(--ui-canvas) 2px,transparent 2.5px),radial-gradient(circle at 7px calc(100% - 7px),var(--ui-canvas) 2px,transparent 2.5px),radial-gradient(circle at calc(100% - 7px) calc(100% - 7px),var(--ui-canvas) 2px,transparent 2.5px),var(--ui-text)}
.ui-bib--current{background-color:var(--ui-accent);color:var(--ui-on-accent)}
.ui-bib--l.ui-bib--current{background:radial-gradient(circle at 7px 7px,var(--ui-canvas) 2px,transparent 2.5px),radial-gradient(circle at calc(100% - 7px) 7px,var(--ui-canvas) 2px,transparent 2.5px),radial-gradient(circle at 7px calc(100% - 7px),var(--ui-canvas) 2px,transparent 2.5px),radial-gradient(circle at calc(100% - 7px) calc(100% - 7px),var(--ui-canvas) 2px,transparent 2.5px),var(--ui-accent)}

/* Race strip: the race in 16 segments (8 runs, 8 stations). */
.ui-strip{display:grid;gap:6px}
.ui-strip__track{display:grid;grid-template-columns:repeat(16,minmax(0,1fr));align-items:center;gap:3px}
.ui-strip__track i{height:4px;background:var(--ui-line-strong)}
.ui-strip__track i:nth-child(even){height:16px;background:var(--ui-muted)}
.ui-strip__track i:nth-child(odd)[data-current]{height:8px}
.ui-strip__track i{transition:background-color var(--ui-dur) var(--ui-ease)}
.ui-strip__track i[data-done]{background:var(--ui-text-soft)}
.ui-strip__track i[data-current]{background:var(--ui-accent)}
.ui-strip[data-playing] .ui-strip__track i[data-current]{animation:ui-pulse 420ms var(--ui-ease-out)}
.ui-strip__now{color:var(--ui-text)}
.ui-strip__play{justify-self:start}
.ui-strip__legend{display:flex;justify-content:space-between;font:600 var(--ui-fs-meta)/1.3 var(--ui-font-num);font-stretch:112.5%;color:var(--ui-muted)}

/* Metrics: numbers first, unit beside, label above. */
.ui-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));border-top:1px solid var(--ui-line)}
.ui-metric{display:grid;gap:6px;align-content:start;padding:var(--ui-s4) var(--ui-s3) var(--ui-s4) 0}
.ui-metrics .ui-metric+.ui-metric{padding-left:var(--ui-s3);border-left:1px solid var(--ui-line)}
.ui-metric__value{font:800 clamp(28px,5vw,48px)/1 var(--ui-font-num);font-stretch:112.5%;font-variant-numeric:tabular-nums;letter-spacing:-.01em;color:var(--ui-text)}
.ui-metric__value--s{font-size:clamp(22px,3.4vw,32px)}
.ui-metric__unit{margin-left:.12em;font-size:.5em;font-weight:700;color:var(--ui-text-soft)}

/* Data rows: number | name | main value | detail, scannable in one pass. */
.ui-datalist{margin:0;padding:0;list-style:none;border-top:1px solid var(--ui-line-strong)}
.ui-datarow{display:grid;grid-template-columns:40px minmax(0,1fr) auto;grid-template-areas:"no name value" "no note note";column-gap:var(--ui-s3);row-gap:2px;align-items:center;padding:var(--ui-s3) 0;border-bottom:1px solid var(--ui-line)}
@media(min-width:768px){.ui-datarow{grid-template-columns:52px minmax(0,1fr) 150px minmax(200px,auto);grid-template-areas:"no name value note";column-gap:var(--ui-s5)}}
.ui-datarow>.ui-bib{grid-area:no;justify-self:start}
.ui-datarow__name{grid-area:name;display:inline-flex;align-items:center;gap:6px;min-height:var(--ui-h);color:var(--ui-text);font:700 17px/1.3 var(--ui-font-num);font-stretch:100%;text-decoration:none}
a.ui-datarow__name::after{content:"→";content:"→" / "";color:var(--ui-muted);font-weight:400}
a.ui-datarow__name:hover{text-decoration:underline;text-decoration-color:var(--ui-accent);text-decoration-thickness:2px;text-underline-offset:4px}
.ui-datarow__value{grid-area:value;justify-self:end;font:800 26px/1 var(--ui-font-num);font-stretch:112.5%;font-variant-numeric:tabular-nums;color:var(--ui-text);white-space:nowrap}
.ui-datarow__note{grid-area:note;font-size:var(--ui-fs-small);line-height:1.5;color:var(--ui-text-soft)}
@media(min-width:768px){.ui-datarow__note{justify-self:end;text-align:right}}
.ui-datarow__note .ui-num{margin-left:2px;font-size:20px;font-weight:800;color:var(--ui-text)}

/* Table: comparisons only. Scrolls inside its own frame. */
.ui-table-wrap{overflow-x:auto;margin-inline:calc(-1 * var(--ui-gutter));padding-inline:var(--ui-gutter)}
@media(min-width:768px){.ui-table-wrap{margin-inline:0;padding-inline:0}}
.ui-table{width:100%;min-width:560px;border-collapse:collapse;font-size:var(--ui-fs-small)}
.ui-table th{padding:10px 12px;border-bottom:1px solid var(--ui-line-strong);color:var(--ui-muted);font:700 var(--ui-fs-meta)/1.4 var(--ui-font);text-align:left;white-space:nowrap}
.ui-table tbody th{padding:12px;border-bottom:1px solid var(--ui-line);color:var(--ui-text);font:700 var(--ui-fs-small)/1.5 var(--ui-font);white-space:nowrap}
.ui-table td{padding:12px;border-bottom:1px solid var(--ui-line);vertical-align:middle}
.ui-table :is(th,td):first-child{position:sticky;left:0;padding-left:0;background:var(--ui-canvas);white-space:nowrap}
.ui-table td:first-child a{display:inline-flex;align-items:center;min-height:var(--ui-h)}
.ui-table :is(td,th).ui-num{text-align:right;white-space:nowrap}
.ui-table td.ui-num{font-size:16px;font-weight:700}
.ui-table tr[aria-current] td{background:var(--ui-surface)}
.ui-table tr[aria-current] td:first-child{box-shadow:inset 3px 0 var(--ui-accent);padding-left:12px}

/* Lists and cards */
/* List rows read like a race start list: lane number, athlete, event tag, a split number,
   and a yellow finish line that runs under the row you point at. */
.ui-list{margin:0;padding:0;list-style:none;border-top:1px solid var(--ui-line-strong)}
.ui-list__head{display:flex;align-items:center;gap:var(--ui-s3);padding:var(--ui-s2) 0;border-bottom:1px solid var(--ui-line);font:700 12px/1.2 var(--ui-font-num);font-stretch:125%;letter-spacing:.1em;text-transform:uppercase;color:var(--ui-muted)}
.ui-list__head span:first-child{width:2.4em}
.ui-list__head span:last-child{margin-left:auto}
.ui-row{position:relative;display:flex;align-items:center;gap:var(--ui-s3);min-height:var(--ui-h);padding:var(--ui-s3) 0;border-bottom:1px solid var(--ui-line);color:var(--ui-text);text-decoration:none}
@media(min-width:768px){.ui-row{gap:var(--ui-s4)}}
.ui-row::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(-45deg,transparent 0 10px,color-mix(in srgb,var(--ui-text) 4%,transparent) 10px 20px);opacity:0;transition:opacity var(--ui-dur-slow) var(--ui-ease-out);pointer-events:none}
.ui-row:is(:hover,:focus-visible)::before{opacity:1}
.ui-row::after,.ui-article::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--ui-accent);transform:scaleX(0);transform-origin:left center;transition:transform var(--ui-dur-slow) var(--ui-ease-out)}
.ui-row:is(:hover,:focus-visible)::after,.ui-article:is(:hover,:focus-visible)::after{transform:scaleX(1)}
.ui-row__no{flex:none;width:2.4em;font:700 15px/1 var(--ui-font-num);font-stretch:112.5%;font-variant-numeric:tabular-nums;color:var(--ui-muted);transition:color var(--ui-dur) var(--ui-ease)}
.ui-row:is(:hover,:focus-visible) .ui-row__no{color:var(--ui-text)}
.ui-row__media{flex:none;width:64px;height:64px;object-fit:cover;display:grid;place-items:center;overflow:hidden;font:800 20px/1 var(--ui-font-num);color:var(--ui-muted);background:var(--ui-media);clip-path:polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%)}
.ui-row__media img{width:100%;height:100%;object-fit:cover}
@media(min-width:768px){.ui-row__media{width:80px;height:80px;clip-path:polygon(12px 0,100% 0,calc(100% - 12px) 100%,0 100%)}}
.ui-row__body{flex:1;min-width:0}
.ui-row__title{display:block;font-weight:800;font-size:16px;line-height:1.4}
.ui-row__meta{display:block;margin-top:2px;font-size:13px;line-height:1.5;color:var(--ui-muted)}
.ui-row__tags{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:6px}
.ui-row__tag{font:700 12px/1.3 var(--ui-font-num);font-stretch:112.5%;letter-spacing:.06em;text-transform:uppercase;color:var(--ui-text-soft)}
.ui-row__tag::before{content:"/ ";content:"/ " / "";color:var(--ui-line-strong)}
.ui-row__stat{flex:none;display:grid;justify-items:end;gap:2px;min-width:3.2em}
.ui-row__stat b{font:800 26px/1 var(--ui-font-num);font-stretch:112.5%;font-variant-numeric:tabular-nums}
.ui-row__stat small{font-size:12px;font-weight:700;color:var(--ui-muted)}
.ui-row__go{flex:none;color:var(--ui-muted);transition:transform var(--ui-dur) var(--ui-ease),color var(--ui-dur) var(--ui-ease)}
.ui-row:is(:hover,:focus-visible) .ui-row__go{transform:translateX(4px);color:var(--ui-text)}
.ui-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ui-s5) var(--ui-s4)}
@media(min-width:768px){.ui-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:1024px){.ui-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.ui-person{min-width:0;display:grid;grid-template-columns:minmax(0,1fr);gap:10px;align-content:start;color:var(--ui-text);text-decoration:none}
.ui-person__media{display:block;overflow:hidden;background:var(--ui-media)}
.ui-person__photo{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;transition:transform var(--ui-dur-slow) var(--ui-ease-out)}
.ui-person:hover .ui-person__photo{transform:scale(1.04)}
.ui-person__video{display:grid;place-items:center;background:var(--ui-media);color:var(--ui-muted);font-size:32px}
.ui-person__name{font-weight:800;font-size:16px;line-height:1.4}
.ui-person:hover .ui-person__name{text-decoration:underline;text-decoration-color:var(--ui-accent);text-decoration-thickness:2px;text-underline-offset:4px}
.ui-person__meta{display:block;font-size:13px;line-height:1.5;color:var(--ui-muted)}
.ui-product{position:relative;min-width:0;display:grid;grid-template-columns:minmax(0,1fr);gap:10px;align-content:start}
.ui-product__media{display:grid;place-items:center;aspect-ratio:1;padding:var(--ui-s3);background:var(--ui-paper)}
.ui-product__media img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.ui-product__brand{font:700 var(--ui-fs-meta)/1.3 var(--ui-font-num);font-stretch:125%;letter-spacing:.06em;text-transform:uppercase;color:var(--ui-muted)}
.ui-product__name{display:block;min-height:var(--ui-h);color:var(--ui-text);font-weight:700;font-size:15px;line-height:1.5;text-decoration:none}
.ui-product__name::after{content:"";position:absolute;inset:0}
.ui-product:hover .ui-product__name{text-decoration:underline;text-decoration-color:var(--ui-accent);text-decoration-thickness:2px;text-underline-offset:4px}
.ui-product__actions{position:relative;z-index:1;display:grid;gap:6px;margin-top:2px}
.ui-product__actions .ui-tag{justify-self:start}
.ui-article{position:relative;display:grid;grid-template-columns:112px minmax(0,1fr);gap:var(--ui-s4);align-items:start;padding:var(--ui-s4) 0;border-bottom:1px solid var(--ui-line);color:var(--ui-text);text-decoration:none}
.ui-article__media{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--ui-media)}
.ui-article__title{display:block;margin-top:4px;font-weight:700;font-size:16px;line-height:1.5}
.ui-article:hover .ui-article__title{text-decoration:underline;text-decoration-color:var(--ui-accent);text-decoration-thickness:2px;text-underline-offset:4px}

.ui-cols{display:grid;gap:var(--ui-s5)}
@media(min-width:768px){.ui-cols{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Buy card: the product, its exact variant, and where the link goes. Square; the action reads as a pill. */
.ui-buy{display:grid;grid-template-columns:88px minmax(0,1fr);gap:var(--ui-s3);align-items:center;padding:var(--ui-s3);background:var(--ui-surface);color:var(--ui-text);text-decoration:none;box-shadow:0 2px 0 var(--ui-canvas);transition:background-color var(--ui-dur) var(--ui-ease)}
.ui-buy:hover{background:var(--ui-surface-2)}
.ui-buy--text{grid-template-columns:minmax(0,1fr)}
.ui-buy__media{display:grid;place-items:center;aspect-ratio:1;padding:6px;background:var(--ui-paper)}
.ui-buy__media img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.ui-buy__body{min-width:0}
.ui-buy__name{display:block;margin:0;font-size:15px;font-weight:700;line-height:1.5;overflow-wrap:anywhere}
.ui-buy__variant{display:block;margin-top:2px;font-size:12px;line-height:1.5;color:var(--ui-muted)}
.ui-buy__action{display:inline-flex;align-items:center;gap:6px;margin-top:var(--ui-s2);min-height:36px;padding:0 14px;border:1.5px solid var(--ui-line-strong);border-radius:var(--ui-pill);font-size:13px;font-weight:700;transition:border-color var(--ui-dur) var(--ui-ease)}
.ui-buy:hover .ui-buy__action{border-color:var(--ui-text)}
.ui-embed{margin:0;display:grid;gap:var(--ui-s2)}
.ui-embed iframe{display:block;width:100%;aspect-ratio:16/9;border:0;background:var(--ui-media)}
.ui-embed--tall iframe{max-width:360px;aspect-ratio:9/16}
/* Loadout: the race photo with numbered bibs, and the breakdown beside it. */
.ui-loadout{display:grid;gap:var(--ui-s6);align-items:start}
@media(min-width:1024px){.ui-loadout{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:var(--ui-s7)}.ui-loadout__figure--follow{position:sticky;top:84px}}
.ui-loadout__figure{display:grid;gap:var(--ui-s2);width:100%;max-width:560px;margin:0;min-width:0}
.ui-loadout__figure>.ui-switch{justify-self:end}
.ui-loadout__figure iframe{display:block;width:100%;aspect-ratio:16/9;border:0;background:var(--ui-media)}
.ui-loadout__figure figcaption{font-size:var(--ui-fs-meta);line-height:1.7;color:var(--ui-muted)}
.ui-loadout__photo{position:relative;background:var(--ui-media)}
.ui-loadout__photo>img{width:100%;height:auto}
.ui-loadout__photo>picture{display:block}
.ui-loadout__photo>picture>img{width:100%;height:auto}
.ui-loadout__figure>.ui-acc img{height:auto}
/* Let tall photos and their auxiliary-photo controls scroll together. */
@media(min-width:1024px){.ui-loadout__figure:has(>.ui-acc){position:static}}
.ui-loadout__lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.ui-loadout__lines line{stroke:var(--ui-paper);stroke-width:2;vector-effect:non-scaling-stroke}
.ui-loadout__marker{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);display:grid;place-items:center;width:40px;height:40px;background:var(--ui-paper);color:var(--ui-on-accent);font:800 18px/1 var(--ui-font-num);font-stretch:112.5%;font-variant-numeric:tabular-nums;text-decoration:none;box-shadow:0 2px 0 var(--ui-canvas);transition:background-color var(--ui-dur) var(--ui-ease)}
.ui-loadout__marker:is(:hover,:focus-visible,:target){background:var(--ui-accent)}
.ui-loadout__marker span{display:none}
.ui-loadout__photo--wide .ui-loadout__markers{display:flex;flex-wrap:wrap;gap:var(--ui-s2);padding-top:var(--ui-s3)}
.ui-loadout__photo--wide .ui-loadout__marker{position:static;transform:none;display:flex;gap:var(--ui-s2);width:auto;min-width:44px;height:auto;min-height:44px;padding:0 12px}
.ui-loadout__photo--wide .ui-loadout__marker span{display:inline;font:700 12px/1.2 var(--ui-font)}
.ui-loadout__figure:has(.ui-switch input:not(:checked)) :is(.ui-loadout__markers,.ui-loadout__lines){visibility:hidden}
.ui-gearitem{display:grid;gap:var(--ui-s3);padding:var(--ui-s5) 0;border-top:1px solid var(--ui-line-strong);scroll-margin-top:84px}
.ui-gearitem:first-child{padding-top:0;border-top:0}
.ui-gearitem:target{outline:2px solid var(--ui-accent);outline-offset:8px}
.ui-gearitem__head{display:flex;align-items:center;gap:var(--ui-s3)}
.ui-gearitem__name{margin:0;font-size:20px;font-weight:800;line-height:1.45;overflow-wrap:anywhere}
.ui-gearitem__candidate{display:grid;gap:var(--ui-s2);padding-top:var(--ui-s3);border-top:1px solid var(--ui-line)}
.ui-linkrow{display:flex;flex-wrap:wrap;gap:0 var(--ui-s4)}
.ui-linkrow .ui-more{font-size:13px}
/* Page structure */
.ui-hero{display:grid;gap:var(--ui-s6);padding-top:var(--ui-s6);overflow:hidden}
@media(min-width:1024px){.ui-hero{padding-top:var(--ui-s8)}}
.ui-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ui-s3)}
/* Read the home introduction, photo and explanation before the decorative ticker.
   Keep the established ticker position on tablets and desktops. */
[data-home-intro]{display:grid}
[data-home-intro]>.ui-hero{padding-bottom:var(--ui-s6)}
[data-home-intro]>.ui-ticker{grid-row:2}
@media(max-width:767.98px){
  [data-home-intro]>.ui-hero{padding-block:var(--ui-s2)}
  [data-home-intro]>.ui-hero>.ui-stack{gap:var(--ui-s2)}
  [data-home-intro]>.ui-hero .ui-eyebrow{display:none}
  [data-home-intro]>.ui-hero .ui-display{font-size:var(--ui-fs-h1)}
  [data-home-intro]>.ui-hero .ui-lead{font-size:var(--ui-fs-small)}
  [data-home-intro]>.ui-hero .ui-actions{gap:var(--ui-s2)}
  [data-home-intro]>.ui-hero .ui-btn--l{min-height:var(--ui-s7);padding-inline:var(--ui-s3)}
  [data-home-intro]>.ui-section{padding-top:var(--ui-s2)}
  [data-home-intro]>.ui-ticker{grid-row:auto}
}
.ui-main{display:block;padding-bottom:var(--ui-s7)}
.ui-pagehead{display:grid;gap:var(--ui-s2);padding-block:var(--ui-s4) var(--ui-s5)}
.ui-pagehead+.ui-chips{margin-bottom:var(--ui-s5)}
.ui-pagehead .ui-back{margin-bottom:var(--ui-s1)}
.ui-pagehead>.ui-bib{justify-self:start}
/* Profile photos follow the name on phones and sit beside the text on larger screens. */
.ui-profilehead__title,.ui-profilehead__details{display:grid;gap:var(--ui-s2);min-width:0;align-content:start}
.ui-profilehead__title>*,.ui-profilehead__details>*{margin-block:0}
.ui-profilehero{display:grid;gap:var(--ui-s2);min-width:0;color:var(--ui-text);text-decoration:none}
.ui-profilehero__actions{display:grid;gap:var(--ui-s2)}
.ui-profilehero .ui-btn--primary{background:var(--ui-accent)}
.ui-profilehero__photo{width:100%;height:auto;border-radius:0;background:var(--ui-media)}
.ui-profilehero__caption{display:flex;gap:var(--ui-s2);min-width:0;font-size:var(--ui-fs-small);line-height:1.7;color:var(--ui-text-soft)}
.ui-profilehero__caption>:last-child{flex:none}
.ui-profilehero__event{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
@media(min-width:768px){
  .ui-profilehead:has(>.ui-profilehero){grid-template-columns:minmax(0,1fr) minmax(0,min(45%,var(--ui-profile-media-max)));grid-template-rows:auto auto 1fr;column-gap:var(--ui-s6);grid-template-areas:"title photo" "details photo" ". photo"}
  .ui-profilehead:has(>.ui-profilehero)>.ui-profilehead__title{grid-area:title}
  .ui-profilehead:has(>.ui-profilehero)>.ui-profilehead__details{grid-area:details}
  .ui-profilehead>.ui-profilehero{grid-area:photo;align-self:start}
}
@media(max-width:767.98px){.ui-profile-races{grid-template-columns:minmax(0,1fr)}}
@media(max-width:767.98px){
  .ui-profilehead:has(>.ui-profilehero){padding-top:var(--ui-s2)}
  .ui-profilehead:has(>.ui-profilehero)>.ui-profilehead__title{gap:var(--ui-s1)}
  .ui-profilehead:has(>.ui-profilehero) .ui-display{font-size:var(--ui-fs-h1)}
  .ui-appearancehead{padding-block:var(--ui-s2)}
  .ui-appearancehead .ui-h1{font-size:var(--ui-fs-h2)}
  .ui-section.ui-loadout-section{padding-top:var(--ui-s2)}
}
.ui-section{padding-block:var(--ui-s7);border-top:1px solid var(--ui-line)}
@media(min-width:1024px){.ui-section{padding-block:var(--ui-s8)}}
.ui-section--compact{padding-block:var(--ui-s6)}
.ui-section__head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:var(--ui-s2) var(--ui-s4);margin-bottom:var(--ui-s5)}
.ui-notice{display:grid;grid-template-columns:24px minmax(0,1fr);gap:var(--ui-s3);padding:var(--ui-s4);background:var(--ui-surface);font-size:var(--ui-fs-small);line-height:1.7;color:var(--ui-text-soft)}
.ui-notice strong{display:block;color:var(--ui-text)}
.ui-notice__icon{display:grid;place-items:center;width:24px;height:24px;border:1.5px solid var(--ui-text);border-radius:var(--ui-pill);color:var(--ui-text);font:800 14px/1 var(--ui-font-num)}
.ui-notice--caution .ui-notice__icon{border-radius:0;background:var(--ui-text);color:var(--ui-canvas)}
.ui-empty{display:grid;gap:var(--ui-s2);justify-items:start;padding:var(--ui-s6) var(--ui-s5);border:1px dashed var(--ui-line-strong)}
.ui-empty strong{font-size:16px}
.ui-empty p{margin:0;font-size:var(--ui-fs-small);color:var(--ui-muted)}
.ui-acc{border-top:1px solid var(--ui-line)}
.ui-acc details{border-bottom:1px solid var(--ui-line)}
.ui-acc summary{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-s4);min-height:56px;font-weight:700;cursor:pointer;list-style:none}
.ui-acc summary::-webkit-details-marker{display:none}
.ui-acc summary::after{content:"+";content:"+" / "";flex:none;font:500 24px/1 var(--ui-font-num);color:var(--ui-muted)}
.ui-acc details[open] summary::after{content:"−";content:"−" / ""}
.ui-acc details>div{padding-bottom:var(--ui-s4);font-size:15px;line-height:1.8;color:var(--ui-text-soft)}
.ui-source{display:grid;gap:2px;padding:2px 0 2px var(--ui-s4);border-left:2px solid var(--ui-line-strong);font-size:13px;line-height:1.6;color:var(--ui-muted)}
.ui-source .ui-more{min-height:var(--ui-h);font-size:var(--ui-fs-small)}
.ui-standalone{display:inline-flex;align-items:center;min-height:var(--ui-h)}
.ui-figure{position:relative;margin:0;background:var(--ui-media)}
.ui-figure img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.ui-figure--portrait{max-width:280px}
.ui-figure--portrait img{aspect-ratio:4/5}
.ui-figure__credit{position:absolute;left:0;bottom:0;padding:4px 8px;background:var(--ui-scrim);color:var(--ui-text-soft);font:700 12px/1.3 var(--ui-font)}
.ui-facts{display:grid;margin:0;border-top:1px solid var(--ui-line)}
.ui-facts>div{display:grid;grid-template-columns:7.5em minmax(0,1fr);gap:var(--ui-s3);padding:var(--ui-s3) 0;border-bottom:1px solid var(--ui-line)}
.ui-facts dt{color:var(--ui-muted);font-size:13px;font-weight:700;line-height:1.75}
.ui-facts dd{margin:0;color:var(--ui-text);font-size:15px;line-height:1.75;overflow-wrap:anywhere}
.ui-links{display:grid;border-top:1px solid var(--ui-line-strong)}
.ui-links>.ui-label{padding:var(--ui-s3) 0 var(--ui-s1)}
.ui-links a{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-s3);min-height:52px;padding:var(--ui-s2) 0;border-bottom:1px solid var(--ui-line);color:var(--ui-text);font-weight:700;line-height:1.5;text-decoration:none}
.ui-links a::after{content:"→";content:"→" / "";flex:none;color:var(--ui-muted);transition:transform var(--ui-dur) var(--ui-ease),color var(--ui-dur) var(--ui-ease)}
.ui-links a[target="_blank"]::after{content:"↗";content:"↗" / ""}
.ui-links a:hover::after{transform:translateX(4px);color:var(--ui-text)}
/* On-page contents: numbered like a start list. */
.ui-toc{counter-reset:ui-toc;display:grid;border-top:1px solid var(--ui-line-strong)}
@media(min-width:768px){.ui-toc{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--ui-s5)}}
.ui-toc a{counter-increment:ui-toc;display:flex;align-items:center;gap:var(--ui-s3);min-height:var(--ui-h);border-bottom:1px solid var(--ui-line);color:var(--ui-text-soft);font-size:15px;font-weight:700;line-height:1.4;text-decoration:none}
.ui-toc a::before{content:counter(ui-toc,decimal-leading-zero);content:counter(ui-toc,decimal-leading-zero) / "";flex:none;width:2.2em;font:700 13px/1 var(--ui-font-num);font-stretch:112.5%;color:var(--ui-muted)}
.ui-toc a::after{content:"↓";content:"↓" / "";margin-left:auto;color:var(--ui-muted)}
.ui-toc a:hover{color:var(--ui-text)}
/* Articles: reading column; contents sit beside it on wide screens. */
.ui-doc{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--ui-s6);max-width:var(--ui-measure)}
@media(min-width:1024px){.ui-doc{grid-template-columns:minmax(0,var(--ui-measure)) minmax(220px,280px);justify-content:space-between;column-gap:var(--ui-s8);max-width:none}.ui-doc>*{grid-column:1}.ui-doc>.ui-toc{grid-column:2;grid-row:1/span 3;position:sticky;top:84px;align-self:start;grid-template-columns:1fr}}
.ui-doc>.ui-pagehead{padding-bottom:0}
.ui-callout{padding:var(--ui-s5) var(--ui-s4);background:var(--ui-surface);border-top:2px solid var(--ui-line-strong)}
@media(min-width:768px){.ui-callout{padding:var(--ui-s5)}}
/* Long-form text (articles, site notes): plain HTML inside one wrapper. */
.ui-prose{max-width:var(--ui-measure);color:var(--ui-text-soft);font-size:16px;line-height:1.9;overflow-wrap:anywhere}
.ui-prose :where(p,ul,ol,dl,table,figure,blockquote,details,h2,h3,h4){margin:0}
.ui-prose :where(*)+:where(p,ul,ol,dl,table,figure,blockquote,details,section,aside,div,nav,h3,h4){margin-top:var(--ui-s4)}
.ui-prose :where(h2,h3,h4){color:var(--ui-text);font-weight:800;text-wrap:balance}
.ui-prose h2{margin-top:var(--ui-s7);padding-top:var(--ui-s5);border-top:1px solid var(--ui-line);font-size:var(--ui-fs-h2);line-height:1.35;letter-spacing:-.01em}
.ui-prose>h2:first-child,.ui-prose .ui-callout h2{margin-top:0;padding-top:0;border-top:0}
.ui-prose h3{margin-top:var(--ui-s5);font-size:var(--ui-fs-h3);line-height:1.5}
.ui-prose strong{color:var(--ui-text)}
.ui-prose a:where(:not([class]),[class="ui-standalone"]){color:var(--ui-text);text-decoration:underline;text-decoration-color:var(--ui-line-strong);text-decoration-thickness:1.5px;text-underline-offset:4px}
.ui-prose a:where(:not([class]),[class="ui-standalone"]):hover{text-decoration-color:var(--ui-accent)}
.ui-prose :is(ul,ol){padding-left:1.25em}
.ui-prose ul{list-style:square}
.ui-prose li::marker{color:var(--ui-muted)}
.ui-prose li+li{margin-top:var(--ui-s2)}
.ui-prose table:not([class]){display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;font-size:var(--ui-fs-small);line-height:1.6}
.ui-prose table:not([class]) caption{padding-bottom:var(--ui-s2);color:var(--ui-muted);font-size:13px;font-weight:700;text-align:left}
.ui-prose table:not([class]) th{padding:10px 12px 10px 0;border-bottom:1px solid var(--ui-line-strong);color:var(--ui-muted);font-size:var(--ui-fs-meta);text-align:left;white-space:nowrap}
.ui-prose table:not([class]) td{min-width:7em;padding:12px 12px 12px 0;border-bottom:1px solid var(--ui-line);color:var(--ui-text);vertical-align:top}
.ui-prose details{border-block:1px solid var(--ui-line)}
.ui-prose details+details{margin-top:0;border-top:0}
.ui-prose summary{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-s4);min-height:56px;color:var(--ui-text);font-weight:700;line-height:1.5;cursor:pointer;list-style:none}
.ui-prose summary::-webkit-details-marker{display:none}
.ui-prose summary::after{content:"+";content:"+" / "";flex:none;font:500 24px/1 var(--ui-font-num);color:var(--ui-muted)}
.ui-prose details[open] summary::after{content:"−";content:"−" / ""}
.ui-prose details>:not(summary){margin-bottom:var(--ui-s4)}

/* Dialog: a sheet from the bottom on phones, centred from tablet up. */
.ui-dialog{width:100%;max-width:640px;max-height:88vh;margin:auto auto 0;padding:var(--ui-s5) var(--ui-gutter) calc(var(--ui-s5) + env(safe-area-inset-bottom,0px));overflow:auto;border:0;border-top:1px solid var(--ui-line-strong);background:var(--ui-canvas);color:var(--ui-text);font:400 var(--ui-fs-body)/1.75 var(--ui-font);overscroll-behavior:contain}
.ui-dialog::backdrop{background:var(--ui-scrim)}
@media(min-width:768px){.ui-dialog{margin:auto;border:1px solid var(--ui-line-strong)}}
html:has(.ui-dialog[open]){overflow:hidden}
.ui-dialog__head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--ui-s3);align-items:center}
.ui-dialog__head .ui-iconbtn{align-self:start}
/* Navigation */
.ui-logo{display:inline-flex;align-items:center;min-height:var(--ui-h);color:var(--ui-text);font:900 22px/1 var(--ui-font-num);font-stretch:125%;letter-spacing:.01em;text-decoration:none;transform:skewX(-10deg);transform-origin:left center}
.ui-logo b{color:var(--ui-accent)}
.ui-header{position:sticky;top:0;z-index:20;background:var(--ui-canvas);border-bottom:1px solid var(--ui-line)}
.ui-header .ui-container{display:flex;align-items:center;gap:var(--ui-s4);min-height:60px}
.ui-header__nav{display:none;margin-left:auto;gap:var(--ui-s5)}
.ui-header__nav a{display:flex;align-items:center;min-height:var(--ui-h);border-bottom:2px solid transparent;color:var(--ui-text-soft);font-weight:700;font-size:14px;text-decoration:none}
.ui-header__nav a:hover{color:var(--ui-text)}
.ui-header__nav a[aria-current]{color:var(--ui-text);border-bottom-color:var(--ui-accent)}
.ui-header__actions{display:flex;margin-left:auto;margin-right:-10px}
@media(min-width:1024px){.ui-header__nav{display:flex}.ui-header__actions{margin-left:var(--ui-s2)}.ui-header__menu{display:none}}
@media(max-width:1023.98px){.ui-header[data-open] .ui-header__nav{position:absolute;top:100%;left:0;right:0;display:grid;margin:0;padding:0 var(--ui-gutter) var(--ui-s4);background:var(--ui-canvas);border-bottom:1px solid var(--ui-line)}.ui-header[data-open] .ui-header__nav a{min-height:52px;border-bottom:1px solid var(--ui-line);font-size:16px}}
.ui-tabbar{position:fixed;inset:auto 0 0;z-index:20;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--ui-canvas);border-top:1px solid var(--ui-line)}
@media(min-width:1024px){.ui-tabbar{display:none}}
.ui-tabbar a{position:relative;display:grid;justify-items:center;align-content:center;gap:3px;min-height:58px;color:var(--ui-muted);font:700 11px/1.2 var(--ui-font);text-decoration:none}
.ui-tabbar a[aria-current]{color:var(--ui-text)}
.ui-tabbar a[aria-current]::before{content:"";position:absolute;top:-1px;left:30%;right:30%;height:2px;background:var(--ui-accent)}
.ui-tabbar a[aria-current] svg{stroke:var(--ui-accent)}
.ui-footer{padding-block:var(--ui-s7);border-top:1px solid var(--ui-line)}
.ui-footer__links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--ui-s5);margin:var(--ui-s4) 0 var(--ui-s5);padding:0;list-style:none}
@media(min-width:768px){.ui-footer__links{grid-template-columns:repeat(4,minmax(0,1fr))}}
.ui-footer__links a{display:flex;align-items:center;min-height:var(--ui-h);border-bottom:1px solid var(--ui-line);color:var(--ui-text-soft);font-size:var(--ui-fs-small);font-weight:700;text-decoration:none}
.ui-footer__links a:hover{color:var(--ui-text)}

/* Motion: the rhythm of a race — start, split, finish. Every page is complete without it:
   ui-motion.js adds .ui-motion to <html> before anything is hidden, and
   prefers-reduced-motion turns all of it off. */
@keyframes ui-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--ui-accent) 70%,transparent)}100%{box-shadow:0 0 0 8px transparent}}
@keyframes ui-ticker{to{transform:translateX(-50%)}}
@keyframes ui-stamp{0%{transform:scale(1.6) rotate(-8deg);opacity:0}60%{transform:scale(.94) rotate(1deg);opacity:1}100%{transform:none}}
.ui-motion .ui-reveal{opacity:0;transform:translateY(28px);transition:opacity var(--ui-dur-slow) var(--ui-ease-out),transform var(--ui-dur-slow) var(--ui-ease-out);transition-delay:calc(var(--ui-i,0) * 70ms)}
.ui-motion .ui-reveal[data-shown]{opacity:1;transform:none}
.ui-motion [data-shown] .ui-bib--current{animation:ui-stamp 560ms var(--ui-ease-out) both;animation-delay:calc(var(--ui-i,0) * 70ms + 200ms)}
.ui-kinetic{display:grid}
.ui-kinetic>span{display:block;overflow:hidden;padding-bottom:.08em}
.ui-kinetic>span>span{display:block}
.ui-kinetic__outline{color:transparent;-webkit-text-stroke:1.5px var(--ui-text)}
.ui-motion .ui-kinetic>span>span{transform:translateY(110%);transition:transform 900ms var(--ui-ease-out);transition-delay:calc(var(--ui-i,0) * 120ms + 80ms)}
.ui-motion .ui-kinetic[data-shown]>span>span{transform:none}
.ui-ticker{position:relative;display:flex;align-items:center;overflow:hidden;border-block:1px solid var(--ui-line)}
.ui-ticker__track{display:flex;flex:none;width:max-content}
.ui-motion .ui-ticker__track{animation:ui-ticker 48s linear infinite}
.ui-ticker[data-paused] .ui-ticker__track,.ui-ticker:hover .ui-ticker__track{animation-play-state:paused}
.ui-ticker__group{display:flex;flex:none}
.ui-ticker__item{display:inline-flex;align-items:center;gap:var(--ui-s5);padding:var(--ui-s4) var(--ui-s5) var(--ui-s4) 0;font:800 clamp(30px,5.4vw,64px)/1 var(--ui-font-num);font-stretch:125%;letter-spacing:-.01em;text-transform:uppercase;white-space:nowrap;color:var(--ui-text)}
.ui-ticker__item::after{content:"";width:.28em;height:.28em;background:var(--ui-line-strong)}
.ui-ticker__item--run{color:transparent;-webkit-text-stroke:1.5px var(--ui-muted)}
.ui-ticker__toggle{position:absolute;right:var(--ui-s2);background:var(--ui-canvas)}
.ui-ticker__toggle:hover{background:var(--ui-surface)}
.ui-progress{position:absolute;left:0;right:0;bottom:-1px;height:2px;pointer-events:none}
.ui-progress i{display:block;height:100%;background:var(--ui-accent);transform:scaleX(var(--ui-progress,0));transform-origin:left center}

@media(prefers-reduced-motion:reduce){.ui *,.ui *::before,.ui *::after{transition:none!important;animation:none!important}.ui-motion .ui-reveal,.ui-motion .ui-kinetic>span>span{opacity:1;transform:none}}
.ui-skip{position:absolute;left:var(--ui-gutter);top:8px;z-index:30;padding:10px 16px;background:var(--ui-accent);color:var(--ui-on-accent);font-weight:700;transform:translateY(-200%)}
.ui-skip:focus{transform:none}
