.registration-page { position: relative; overflow-x: clip; background:
  radial-gradient(55rem 30rem at 88% -6%, rgba(75,156,211,.10), transparent 60%),
  radial-gradient(48rem 32rem at -6% 108%, rgba(197,165,82,.10), transparent 62%),
  var(--exp-paper); }
.registration-section { position: relative; z-index: 1; max-width: 68rem; margin-inline: auto; padding: calc(var(--header-height) + clamp(1rem, 3vw, 2rem)) var(--gutter) clamp(4rem, 7vw, 6rem); }
.registration-status { margin: 0 0 2rem; padding: 1rem 1.25rem; color: var(--exp-ink); background: var(--exp-blue-paper); border-left: 3px solid var(--exp-brass); font-size: .9rem; line-height: 1.55; }
.registration-status[hidden] { display: none; }
.registration-status--error { background: #fbecec; border-left-color: #b23a3a; color: #7e1d1d; }
.registration-honeypot { position: absolute !important; left: -9999px !important; top: auto; width: 1px; height: 1px; overflow: hidden; }
.registration-form { display: grid; gap: 3rem; }
.registration-form[hidden] { display: none; }
.registration-form fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.registration-form legend { width: 100%; margin-bottom: 1.5rem; padding: 0 0 .8rem; border-bottom: 1px solid var(--exp-ink); font: 400 clamp(1.8rem, 3vw, 2.7rem)/1 var(--font-display); }
.registration-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.35rem 1.75rem; }
.registration-form label, .registration-label { display: grid; gap: .5rem; color: var(--exp-ink); font-size: .72rem; font-weight: 760; letter-spacing: .05em; line-height: 1.35; text-transform: uppercase; }
.registration-field__label { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.registration-field__optional { color: var(--exp-muted); font-size: .66rem; font-weight: 650; letter-spacing: .03em; text-transform: none; white-space: nowrap; }
.registration-field--full { grid-column: 1 / -1; }
.registration-options { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; }
.registration-options label { min-height: 44px; display: flex; align-items: center; gap: .65rem; font-size: .82rem; text-transform: none; }
.registration-options input { width: 1.2rem; height: 1.2rem; accent-color: var(--exp-deep); }
.registration-form input:not([type="radio"]), .registration-form select, .registration-form textarea { width: 100%; min-height: 44px; padding: .75rem .8rem; color: var(--exp-ink); background: #fff; border: 1px solid var(--exp-rule); border-radius: 0; font: 400 1rem/1.4 var(--font-sans); }
.registration-form textarea { min-height: 9rem; resize: vertical; }
.registration-form input:focus-visible, .registration-form select:focus-visible, .registration-form textarea:focus-visible, .registration-form a:focus-visible { outline: 3px solid var(--exp-brass); outline-offset: 3px; }
.registration-submit { padding: .5rem 0 0; display: flex; }
.registration-submit button { min-height: 44px; padding: .75rem clamp(1.4rem, 3vw, 2.2rem); width: auto; color: #fff; background: var(--exp-deep); border: 1px solid var(--exp-deep); border-radius: 0; font: 760 .72rem/1 var(--font-sans); letter-spacing: .07em; text-transform: uppercase; cursor: pointer; }
.registration-submit button[disabled] { opacity: .55; cursor: not-allowed; }
.registration-submit button:hover:not([disabled]) { background: #0d1c38; }

@media (max-width: 48rem) {
  .registration-section { padding: calc(var(--header-height) + 1rem) 1.25rem 4rem; }
  .registration-fields { grid-template-columns: 1fr; }
  .registration-field--full { grid-column: 1; }
}