:root{color-scheme:light;--yellow:#ffcc00;--ink:#151d25;--grey:#647079;--border:#e4e7e5;--green:#228447;--green-bg:#eff9ef;--red:#c92a30;--red-bg:#fff0ef;--future:#ffd539;--future-bg:#fff8dc}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--ink);font:15px/1.5 Arial,Helvetica,sans-serif}
.registration-shell{max-width:1160px;margin:0 auto;padding:28px 20px 48px}.registration-intro{margin:0 0 25px;padding:0 0 19px;border-bottom:1px solid var(--border)}
.registration-intro h1{font-size:clamp(30px,4.2vw,44px);line-height:1.1;margin:11px 0 12px;letter-spacing:-.03em;font-weight:800}.registration-intro h1 span{color:#81909a}.registration-intro p{margin:0;width:100%;max-width:none;color:#5b646c;font-size:14px}
.kicker{display:flex;align-items:center;gap:11px;text-transform:uppercase;font-size:11px;font-weight:800;letter-spacing:.10em}.yellow-rule{display:inline-block;width:32px;height:5px;background:var(--yellow)}
.jump-nav{display:flex;overflow-x:auto;gap:7px;padding:0 0 18px;margin:0 0 6px;scrollbar-width:thin}.jump-nav a{flex:none;display:inline-block;font-size:12px;font-weight:700;text-decoration:none;padding:7px 11px;border:1px solid #dadfdf;color:#354149;background:#fff;white-space:nowrap}.jump-nav a:hover,.jump-nav a:focus-visible{background:#fff5c6;border-color:#edc400;outline-offset:2px}
.events-stack{display:flex;flex-direction:column;gap:12px}.discipline{border:1px solid #dde1e3;border-left:5px solid var(--yellow);border-radius:5px;background:#fff;scroll-margin-top:12px;overflow:hidden;box-shadow:0 2px 7px rgba(13,32,35,.035)}.discipline-header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 18px 15px 22px;background:#f1f3f4;border-bottom:1px solid #dfe3e5}.discipline-main{min-width:0;flex:1}.discipline-category{font-size:10px;letter-spacing:.12em;font-weight:800;color:#697780}.discipline h2{font-size:clamp(18px,2.3vw,23px);line-height:1.2;margin:3px 0 5px;font-weight:800;letter-spacing:-.018em}.race-summary{font-size:12px;color:#59666e;margin:0;max-width:640px}.race-summary.is-warning{color:#a72e2e}
.discipline-side{display:flex;align-items:center;justify-content:flex-end;gap:18px;flex-shrink:0}.price-highlight{min-width:100px;text-align:right}.price-highlight strong{display:block;font-size:25px;line-height:1.2;font-weight:800;white-space:nowrap}.price-highlight strong.is-green{color:var(--green)}.price-highlight strong.is-red{color:var(--red)}
.signup-button{display:inline-flex;align-items:center;justify-content:center;gap:20px;background:var(--yellow);color:#171717;text-decoration:none;min-height:43px;padding:11px 16px 10px 19px;white-space:nowrap;font-weight:800;font-size:12px;letter-spacing:.025em}.signup-button span{font-size:18px;line-height:1}.signup-button:hover,.signup-button:focus-visible{background:#eebc00;outline:2px solid #222;outline-offset:2px}.signup-disabled,.signup-soldout,.signup-disabled:hover,.signup-soldout:hover{background:#e1e2e2;color:#666;cursor:not-allowed;pointer-events:none}
.stages-details{background:#fff}.stages-details>summary{display:flex;align-items:center;justify-content:space-between;padding:12px 20px 12px 22px;cursor:pointer;list-style:none;font-weight:700;color:#303a3e;font-size:12px;user-select:none}.stages-details>summary::-webkit-details-marker{display:none}.stages-details>summary:hover{background:#faf7ed}.stages-details>summary:focus-visible{outline:2px solid #323d45;outline-offset:-3px}.summary-mark{display:inline-block;width:7px;height:7px;background:var(--yellow);margin-right:10px;vertical-align:2px}.toggle-arrow{display:inline-block;width:9px;height:9px;border-right:2px solid #667078;border-bottom:2px solid #667078;transform:rotate(45deg);transition:transform .15s;margin-right:5px}.stages-details[open] .toggle-arrow{transform:rotate(225deg)}

.stages-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:3px 18px 15px 22px}.stage-card{display:flex;flex-direction:column;min-height:145px;border:1px solid #e4e6e6;border-top:4px solid #c5cacc;padding:12px 13px 11px;background:#f8f9f8;transition:background .18s}.stage-kicker{display:flex;justify-content:space-between;gap:6px;align-items:center;color:#63707b;font-weight:700;font-size:10px}.status-pill{font-size:9px;font-weight:800;text-align:center;letter-spacing:.035em;border-radius:2px;padding:3px 6px;background:#e9eced;color:#687078}.stage-range{font-size:14px;font-weight:700;margin:8px 0 2px;white-space:nowrap}.stage-price{font-size:24px;font-weight:800;letter-spacing:-.03em;line-height:1.2;margin:5px 0 6px}.stage-note{font-size:11px;color:#59666e;margin-top:auto;line-height:1.45}.stage-progress{margin:5px 0 8px}.progress-line{height:8px;border-radius:10px;background:rgba(23,111,53,.16);overflow:hidden}.progress-fill{height:100%;background:#2b9d50;width:0;border-radius:10px;transition:width .35s}
.stage-card.is-full{background:var(--red-bg);border-color:#f0d5d2;border-top-color:var(--red)}.stage-card.is-full .status-pill{background:var(--red);color:#fff}.stage-card.is-full .stage-price{color:var(--red);font-size:17px;letter-spacing:0;margin:13px 0 7px}.stage-card.is-full .stage-note{color:#8b3434}
.stage-card.is-active{background:var(--green-bg);border-color:#bde4c6;border-top-color:var(--green)}.stage-card.is-active .stage-price{color:#196f3a}.stage-card.is-active .status-pill{background:#257e3d;color:#fff}.stage-card.is-future{background:var(--future-bg);border-color:#f3e4a2;border-top-color:#f0c600}.stage-card.is-future .status-pill{background:#ffce25;color:#242424}.stage-card.is-future .stage-price{color:#353023}
.page-footer{font-size:12px;color:#5f686f;margin-top:23px;border-top:3px solid var(--yellow);padding:15px 1px;line-height:1.65}.page-footer span{display:block;margin-top:3px}.empty-state{padding:24px;background:#f7f8f7}.single-view .registration-shell{padding-top:12px}
@media(max-width:880px){.stages-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.discipline-side{gap:10px}.discipline-header{gap:10px}.price-highlight strong{font-size:22px}}
@media(max-width:550px){.registration-shell{padding:17px 10px 35px}.registration-intro{padding:0 4px 13px;margin-bottom:14px}.jump-nav{margin-bottom:0}.discipline-header{padding:14px 13px;align-items:flex-start;flex-wrap:wrap}.discipline-main{flex-basis:100%}.discipline h2{font-size:20px}.discipline-side{width:100%;justify-content:space-between;gap:8px}.price-highlight{text-align:left}.price-highlight strong{font-size:21px}.signup-button{min-height:41px}.stages-details>summary{padding:12px 13px}.stages-grid{gap:7px;padding:3px 10px 12px;grid-template-columns:repeat(2,minmax(0,1fr))}.stage-card{padding:10px 9px;min-height:140px}.stage-range{font-size:12px;white-space:normal}.stage-price{font-size:20px}.stage-card.is-full .stage-price{font-size:14px}.status-pill{font-size:8px}.stage-kicker{font-size:9px}}
@media(max-width:365px){.stages-grid{grid-template-columns:1fr}.stage-card{min-height:120px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.progress-fill,.toggle-arrow{transition:none}}

/* 1.2.4 - simplified public overview */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
/* Clear visual separation between discipline cards without increasing card height. */
.events-stack{gap:19px}
.stages-grid{gap:12px}
@media(max-width:550px){.events-stack{gap:15px}.stages-grid{gap:10px}}
.discipline-header{padding-top:12px;padding-bottom:12px}
.discipline h2{margin:0}
.stage-card{min-height:128px}
.stage-note{display:none!important}
.stage-card.is-full .status-pill{display:none}
.stage-card.is-full .stage-kicker{justify-content:flex-start}
.stage-card.is-full .stage-price{align-self:center;display:flex;align-items:center;justify-content:center;min-height:34px;max-width:100%;min-width:130px;margin:auto 0 6px;padding:7px 11px;background:var(--red);color:#fff;font-size:12px;line-height:1.2;font-weight:800;letter-spacing:.045em;text-align:center;border-radius:2px}
@media(max-width:550px){.stage-card{min-height:124px}.stage-card.is-full .stage-price{min-width:0;width:100%;padding:8px 4px;font-size:10px}.discipline-header{padding-top:12px;padding-bottom:12px}}
/* v1.2.7: the fold button sits to the left of the descriptive text. */
.stages-details>summary{justify-content:flex-start}
/* v1.2.6: explicit fold affordance, without a decorative yellow dot. */
.stages-details>summary{gap:12px;min-height:51px;padding:8px 17px 8px 22px}
.stages-title{font-weight:700;font-size:12px}
.toggle-affordance{display:inline-flex;align-items:center;justify-content:center;gap:9px;flex-shrink:0;min-height:34px;padding:7px 11px;background:var(--yellow);border:1px solid #e4b900;border-radius:3px;color:#171717;font-size:11px;line-height:1;font-weight:800;letter-spacing:.025em}
.stages-details>summary:hover .toggle-affordance,.stages-details>summary:focus-visible .toggle-affordance{background:#f0ba00;border-color:#c99c00}
.stages-details>summary:focus-visible{outline:3px solid #a57900;outline-offset:-3px}
.stages-details .toggle-closed-text{display:inline}
.stages-details .toggle-open-text{display:none}
.stages-details[open] .toggle-closed-text{display:none}
.stages-details[open] .toggle-open-text{display:inline}
.toggle-affordance .toggle-arrow{display:inline-block;width:8px;height:8px;margin:0 2px 3px 0;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .15s}
.stages-details[open] .toggle-affordance .toggle-arrow{transform:rotate(225deg);margin-top:5px;margin-bottom:0}
.single-stages-heading{padding:13px 22px 10px;font-size:12px;font-weight:700;color:#303a3e}
.single-stages .stages-grid{padding-top:4px}
@media(max-width:550px){.stages-details>summary{padding:8px 12px;min-height:50px}.toggle-affordance{gap:7px;padding:7px 9px;font-size:10px}.single-stages-heading{padding:12px 13px 10px}}
@media(prefers-reduced-motion:reduce){.toggle-affordance .toggle-arrow{transition:none}}

/* v1.2.9: coarse visual stage progress, without publicly exposed counts or % */
.stage-card.is-active .stage-progress{display:block;margin:5px 0 3px}
.stage-card.is-active .stage-progress[hidden]{display:none}
.stage-card.is-active .progress-line{height:9px;background:#dfe6e1;overflow:hidden;border-radius:10px}
.stage-card.is-active .progress-fill{height:100%;width:0;background:#2a9753;transition:width .35s ease,background-color .25s ease}
.stage-card.is-active .stage-progress[data-band="green-low"] .progress-fill{width:16%;background:#2a9753}
.stage-card.is-active .stage-progress[data-band="green-high"] .progress-fill{width:40%;background:#2a9753}
.stage-card.is-active .stage-progress[data-band="yellow"] .progress-fill{width:62%;background:#e9ba05}
.stage-card.is-active .stage-progress[data-band="orange"] .progress-fill{width:82%;background:#ef8713}
.stage-card.is-active .stage-progress[data-band="red"] .progress-fill{width:96%;background:#d52b32}
.stage-card .stage-note{display:none!important}
@media(prefers-reduced-motion:reduce){.stage-card.is-active .progress-fill{transition:none}}


/* v1.3.4: mobile-first status hierarchy; desktop stage cards remain unchanged. */
.stage-completed{display:none}
@media(max-width:550px){
  .stages-grid{grid-template-columns:minmax(0,1fr);gap:9px;padding:4px 12px 14px}
  .stage-card{min-height:0;padding:12px;border-radius:3px}
  /* A finished price tier is historical information, not a blocked registration. */
  .stage-card.is-full{
    display:grid;grid-template-columns:max-content minmax(0,1fr) max-content;
    align-items:center;column-gap:6px;min-height:40px;
    padding:8px 11px;background:#f1f3f4;border:1px solid #e0e4e6;
    color:#5b6870
  }
  .stage-card.is-full .stage-kicker{display:contents}
  .stage-card.is-full .stage-kicker>span:first-child{
    grid-row:1;grid-column:1;font-size:11px;font-weight:600;white-space:nowrap;color:#6b747a
  }
  .stage-card.is-full .stage-kicker>span:first-child::after{content:' ·'}
  .stage-card.is-full .stage-range{
    grid-row:1;grid-column:2;min-width:0;margin:0;font-size:11px;
    font-weight:600;color:#5b6870;white-space:nowrap
  }
  .stage-card.is-full .stage-completed{
    grid-row:1;grid-column:3;display:inline-flex;align-items:center;
    white-space:nowrap;font-size:11px;font-weight:600;color:#647078
  }
  .stage-card.is-full .stage-price,.stage-card.is-full .stage-progress{display:none!important}
  .stage-card.is-full .status-pill{display:none}
  /* The current stage gets visual priority and retains its qualitative progress bar. */
  .stage-card.is-active{
    min-height:159px;padding:14px 13px;border:1px solid #bde4c6;
    border-top:4px solid var(--green);background:var(--green-bg)
  }
  .stage-card.is-active .stage-kicker{font-size:11px}
  .stage-card.is-active .stage-range{font-size:13px;margin:10px 0 3px}
  .stage-card.is-active .stage-price{font-size:26px;margin:6px 0 10px}
  .stage-card.is-active .stage-progress{margin-top:auto;margin-bottom:0}
  .stage-card.is-active .progress-line{height:10px}
  /* Future tiers are compact, yellow-accented and clearly secondary. */
  .stage-card.is-future{
    display:grid;grid-template-columns:minmax(0,1fr) max-content;
    grid-template-rows:auto auto;gap:4px 12px;align-items:center;
    min-height:75px;padding:10px 12px;
    border:1px solid #f1e19f;border-top:3px solid #e9bf0b;background:#fff8dd
  }
  .stage-card.is-future .stage-kicker{grid-column:1/-1;font-size:10px}
  .stage-card.is-future .stage-range{
    grid-column:1;grid-row:2;margin:0;font-size:12px;color:#465057
  }
  .stage-card.is-future .stage-price{
    grid-column:2;grid-row:2;margin:0;font-size:20px;color:#302c22
  }
  .stage-card.is-loading{min-height:75px}
}
@media(max-width:365px){
  .stage-card.is-full{column-gap:4px;padding:8px}
  .stage-card.is-full .stage-kicker>span:first-child,
  .stage-card.is-full .stage-range,
  .stage-card.is-full .stage-completed{font-size:10px}
}
.registration-event-name{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#555e63;margin-bottom:7px}