:root {
  --ink:#15171a; --ground:#f1f1ee; --surface:#fff; --line:#cfd0cb;
  --line-soft:#d9dad5; --line-faint:#e2e2dd; --fill-muted:#e7e7e2;
  --muted:#55595e; --text-soft:#3a3d41; --tartan:#b9442c;
  --tartan-tint:#b9442c1f; --tartan-chip:#b9442c24; --alert-text:#9e3a25;
  --infield:#2f6b45; --infield-stripe:#33724b; --dark-2:#262a2e;
  --dark-3:#24272b; --dark-line:#2a2e33; --on-dark-muted:#a9acb0; --on-dark-soft:#c9cbce;
}
* { box-sizing:border-box; }
html { background:var(--ground); scrollbar-gutter:stable; }
body { margin:0; color:var(--ink); background:var(--ground); font-family:Barlow,system-ui,sans-serif; font-size:16px; line-height:1.5; -webkit-font-smoothing:antialiased; }
button,input,select,textarea { font:inherit; }
button,a,input,select,summary { -webkit-tap-highlight-color:transparent; }
button,a,summary { touch-action:manipulation; }
button { cursor:pointer; }
button:disabled { cursor:default; opacity:.4; }
button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,[tabindex]:focus-visible { outline:3px solid var(--ink); outline-offset:2px; }
button,a,summary { min-height:44px; }
[hidden] { display:none!important; }
.shell { width:100%; max-width:480px; margin:0 auto; min-height:100svh; }
#header { background:var(--ink); color:#fff; padding:16px 16px 0; }
.topline { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.brand { display:flex; align-items:center; gap:10px; color:#fff; text-decoration:none; min-width:0; flex-shrink:1; }
.brand>svg { flex-shrink:0; }
.brand>span { display:flex; flex-direction:column; font-family:'Barlow Condensed','Arial Narrow',sans-serif; font-size:21px; font-weight:800; letter-spacing:.12em; line-height:1; }
.brand small { color:var(--on-dark-muted); font-size:10px; font-weight:600; letter-spacing:.22em; margin-top:3px; }
.track-choice { display:flex; gap:4px; padding:4px; background:var(--dark-2); border-radius:10px; flex-shrink:0; }
.track-choice button { display:flex; align-items:flex-start; justify-content:center; flex-direction:column; gap:2px; background:transparent; color:#fff; min-height:44px; min-width:44px; padding:4px 10px; border:0; border-radius:7px; line-height:1; }
.track-choice strong { font-family:'Barlow Condensed','Arial Narrow',sans-serif; font-size:15px; letter-spacing:.06em; text-transform:uppercase; }
.track-choice span { font-size:11px; font-weight:500; color:var(--on-dark-muted); }
.track-choice [aria-pressed=true] { color:var(--ink); background:#fff; }
.track-choice [aria-pressed=true] span { color:var(--muted); }
.tabs { display:flex; gap:20px; margin-top:10px; }
.tabs a,.back-link { display:flex; align-items:center; color:var(--on-dark-muted); text-decoration:none; padding:13px 0 10px; border-bottom:3px solid transparent; font-family:Barlow,system-ui,sans-serif; font-size:14px; font-weight:600; letter-spacing:0; line-height:1.3; white-space:nowrap; }
.tabs a[aria-current=page] { color:#fff; border-bottom-color:var(--tartan); }
.back-link { color:#fff; gap:8px; margin-top:10px; padding-bottom:14px; }
#header :focus-visible { outline-color:#fff; }
main { outline:none; }
.skip-link { position:fixed; top:-100px; left:16px; z-index:1000; background:white; padding:12px; color:var(--ink); }
.skip-link:focus { top:12px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.group-dot[data-group=A] { background:#5b9a4a; }.group-dot[data-group=B] { background:#e2b23a; }
.group-dot[data-group=C] { background:#4c7cc4; }.group-dot[data-group=D] { background:#de8a3e; }
.group-dot[data-group="D/E"] { background:#8a2a1c; }.group-dot[data-group=E] { background:#a65c82; }
.group-dot[data-group=F] { background:#457582; }.group-dot[data-group=G] { background:#c23a2b; }
.group-dot[data-group=H] { background:#1a1a1a; }
@media(max-width:359px) {
  #header { padding-left:12px; padding-right:12px; }
  .topline { gap:8px; }.brand { gap:6px; }.brand>svg { width:28px; }.brand>span { font-size:18px; }.brand small { font-size:8px; }
  .track-choice button { padding-left:7px; padding-right:7px; }.track-choice span { font-size:10px; }
  .tabs { gap:16px; }.tabs a { font-size:14px; letter-spacing:.04em; }
}
@media(prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; transition:none!important; } }
@media print { #header .tabs,#header .track-choice,button,summary { display:none; }.shell { max-width:none; } }
