:root {
  color-scheme: light;
  --blue: #0864d7;
  --deep-blue: #063eaa;
  --ink: #09224a;
  --muted: #63738f;
  --line: #dce4f1;
  --yellow: #ffd337;
  --card: #f9fbff;
}

* { box-sizing: border-box; }
html { min-height: 100%; background: #063eaa; }
body {
  min-width: 320px;
  min-height: 100%;
  margin: 0;
  color: var(--ink);
  background:
    radial-gradient(circle at 76% 8%, rgba(49,163,255,.32), transparent 31rem),
    linear-gradient(145deg, #074ba9 0%, #086ad8 54%, #04339a 100%);
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}

a { color: #0760c9; font-weight: 750; text-underline-offset: 3px; }
button, input, select { font: inherit; }
.page { min-height: 100svh; display: flex; flex-direction: column; }

.topbar {
  width: min(1120px, 100%);
  margin: 0 auto;
  padding: max(18px, env(safe-area-inset-top)) 24px 12px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 14px;
  color: white;
}
.back-button {
  width: 42px; height: 42px; display: grid; place-items: center;
  border: 1px solid rgba(255,255,255,.24); border-radius: 14px;
  color: white; background: rgba(255,255,255,.1); text-decoration: none;
  font-size: 25px; line-height: 1;
}
.brand { min-width: 0; display: flex; align-items: center; gap: 10px; color: white; text-decoration: none; font-size: 17px; font-weight: 800; }
.brand img { width: 38px; height: 38px; border-radius: 12px; object-fit: cover; box-shadow: 0 8px 20px rgba(0,20,80,.2); }
.test-label { padding: 8px 12px; border: 1px solid rgba(255,255,255,.22); border-radius: 999px; color: rgba(255,255,255,.86); font-size: 10px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }

.registration-main { width: min(920px, 100%); margin: 0 auto; padding: 38px 24px 64px; flex: 1 0 auto; }
.registration-heading { max-width: 680px; margin: 0 auto 28px; text-align: center; color: white; }
.eyebrow { margin: 0 0 8px; color: #91d7ff; font-size: 12px; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; }
.registration-heading h1 { margin: 0; font-size: clamp(32px, 6vw, 50px); line-height: 1.02; letter-spacing: -.04em; }
.registration-heading > p:last-child { max-width: 600px; margin: 14px auto 0; color: rgba(255,255,255,.76); font-size: 16px; line-height: 1.55; }
.registration-form { display: grid; gap: 18px; }

.form-card { padding: 28px; border: 1px solid rgba(255,255,255,.6); border-radius: 26px; background: rgba(250,252,255,.97); box-shadow: 0 20px 55px rgba(0,25,90,.25); }
.section-heading { display: flex; align-items: flex-start; gap: 13px; margin-bottom: 22px; }
.section-number { flex: 0 0 34px; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 11px; color: white; background: linear-gradient(145deg, #0b7bea, #0751bc); font-size: 14px; font-weight: 850; box-shadow: 0 7px 17px rgba(7,89,200,.23); }
.section-heading h2 { margin: 1px 0 3px; font-size: 21px; letter-spacing: -.02em; }
.section-heading p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.4; }
.form-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 17px; }
.form-grid.two-columns { grid-template-columns: repeat(2, minmax(0,1fr)); }
.personal-row { margin-top: 18px; }
.field { min-width: 0; display: flex; flex-direction: column; gap: 7px; }
.field-label, .choice-group legend { color: #263c5e; font-size: 13px; font-weight: 750; }
.field-label b, .choice-group b, .required-note b { color: #e25151; }
.field input, .field select {
  width: 100%; min-height: 50px; padding: 0 15px;
  border: 1px solid var(--line); border-radius: 14px; outline: none;
  color: var(--ink); background: white; box-shadow: 0 2px 7px rgba(14,45,96,.04);
  transition: border-color .2s ease, box-shadow .2s ease;
}
.field input::placeholder { color: #9aa8bc; }
.field input:focus, .field select:focus { border-color: #2f8df0; box-shadow: 0 0 0 4px rgba(28,130,235,.12); }
.field small { color: #7b89a0; font-size: 11px; line-height: 1.35; }
.choice-group { min-width: 0; margin: 0; padding: 0; border: 0; }
.choice-group legend { margin-bottom: 7px; }
.segmented { min-height: 50px; display: grid; grid-template-columns: 1fr 1fr; padding: 4px; border: 1px solid var(--line); border-radius: 14px; background: white; }
.segmented input { position: absolute; opacity: 0; pointer-events: none; }
.segmented span { height: 40px; display: grid; place-items: center; border-radius: 10px; color: #718099; font-size: 13px; font-weight: 750; cursor: pointer; }
.segmented input:checked + span { color: #075ac8; background: #e8f3ff; box-shadow: 0 2px 8px rgba(13,96,205,.08); }
.check-row { display: flex; align-items: flex-start; gap: 11px; color: #4e607c; font-size: 13px; line-height: 1.45; cursor: pointer; }
.check-row input { flex: 0 0 20px; width: 20px; height: 20px; margin: 0; accent-color: #0875de; }
.subtle-check { align-self: end; min-height: 50px; align-items: center; padding: 0 14px; border: 1px solid var(--line); border-radius: 14px; background: #f1f6fc; }
.confirmation-card .check-row + .check-row { margin-top: 13px; }
.captcha-row { display: grid; grid-template-columns: 150px 44px 1fr; align-items: end; gap: 12px; margin-bottom: 22px; }
.captcha-code { height: 50px; display: grid; place-items: center; overflow: hidden; border-radius: 14px; color: #0751b8; background: repeating-linear-gradient(-18deg, #e8f4ff 0 8px, #f8fbff 8px 16px); font-family: Georgia, serif; font-size: 25px; font-weight: 800; font-style: italic; letter-spacing: .16em; text-decoration: line-through rgba(19,120,202,.42); }
.refresh-captcha { width: 44px; height: 50px; border: 1px solid var(--line); border-radius: 14px; color: #0763c9; background: white; font-size: 24px; cursor: pointer; }
.required-note { margin: 18px 0 14px; color: #7a89a0; font-size: 11px; }
.submit-button { width: 100%; min-height: 54px; border: 0; border-radius: 16px; color: #102957; background: linear-gradient(135deg, #ffdc4b, #ffc928); box-shadow: 0 12px 28px rgba(255,197,23,.27); font-size: 16px; font-weight: 850; cursor: pointer; }
.submit-button:focus-visible, .back-button:focus-visible { outline: 3px solid rgba(255,217,60,.7); outline-offset: 3px; }
.login-link { margin: 17px 0 0; text-align: center; color: #66758d; font-size: 14px; }
.prototype-note { margin: 14px 0 0; padding: 10px 12px; border-radius: 12px; color: #75839a; background: #f2f6fc; font-size: 11px; text-align: center; }
.prototype-note span { width: 7px; height: 7px; margin-right: 8px; display: inline-block; border-radius: 50%; background: #1ca8ee; box-shadow: 0 0 0 5px rgba(28,168,238,.1); }

.site-footer { position: static; border-top: 1px solid rgba(255,255,255,.13); color: white; background: rgba(0,24,81,.32); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.site-footer-inner { width: min(920px, 100%); margin: 0 auto; padding: 19px 24px calc(19px + env(safe-area-inset-bottom)); display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.site-footer-nav { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.site-footer-nav a { color: rgba(255,255,255,.9); font-size: 13px; font-weight: 750; text-decoration: none; }
.site-footer-support { color: rgba(255,255,255,.68); font-size: 11px; line-height: 1.55; text-align: right; }
.site-footer-support a { color: white; font-weight: 750; text-decoration: none; }

@media (max-width: 720px) {
  .topbar { padding-inline: 16px; gap: 10px; }
  .brand span { display: none; }
  .test-label { padding: 7px 9px; font-size: 9px; }
  .registration-main { padding: 24px 16px 42px; }
  .registration-heading { margin-bottom: 22px; }
  .registration-heading > p:last-child { font-size: 14px; }
  .form-card { padding: 21px 18px; border-radius: 22px; }
  .form-grid, .form-grid.two-columns { grid-template-columns: 1fr; gap: 15px; }
  .personal-row { margin-top: 15px; }
  .captcha-row { grid-template-columns: 1fr 44px; }
  .captcha-input { grid-column: 1 / -1; }
  .site-footer-inner { display: block; padding-inline: 16px; text-align: center; }
  .site-footer-nav { justify-content: center; }
  .site-footer-support { margin-top: 10px; text-align: center; }
}

@media (max-width: 370px) {
  .form-card { padding-inline: 15px; }
  .section-heading h2 { font-size: 19px; }
}
