@font-face {
  font-family: "Barlow Condensed";
  src: url("fonts/barlow-condensed-800.woff2") format("woff2");
  font-style: normal;
  font-weight: 800;
  font-display: swap;
}

@font-face {
  font-family: "Instrument Serif";
  src: url("fonts/instrument-serif-400.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: Geist;
  src: url("fonts/geist-400.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: Geist;
  src: url("fonts/geist-600.woff2") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: Geist;
  src: url("fonts/geist-700.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

@layer tokens {
  :root {
    --af-font-body: Geist, ui-sans-serif, system-ui, sans-serif;
    --af-font-display: "Instrument Serif", Georgia, serif;
    --af-font-force: "Barlow Condensed", "Arial Narrow", ui-sans-serif, sans-serif;
  }
}

@layer components {
  .skip-link {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }

  .receipt-campaign {
    background-image: linear-gradient(90deg, #f7f9fcf7, #f7f9fc85), url("formation-v4.webp");
  }

  .af-mark__logo {
    display: block;
    width: auto;
    height: var(--af-logo, 60px);
    aspect-ratio: 1083 / 360;
  }

  .credibility-footer {
    width: min(calc(100% - 32px), 1180px);
    min-height: 64px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 0 auto;
    padding: 14px 0;
    color: var(--af-muted);
    border-top: 1px solid var(--af-line);
    font-size: var(--af-125);
  }

  .credibility-footer a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    font-weight: 600;
    text-underline-offset: 4px;
  }

  .legal-links {
    display: flex;
    align-items: center;
    gap: 18px;
  }

  .legal-links [aria-current="page"] {
    color: var(--af-ink);
    text-decoration-thickness: 2px;
  }

  .legal-page .form-shell {
    width: min(calc(100% - 32px), 760px);
  }

  .legal-page .form-intro > h1 {
    font-family: var(--af-font-body);
    font-size: var(--af-t-h1);
    font-weight: 700;
    letter-spacing: -.045em;
    line-height: .96;
  }

  .legal-page .form-intro h2 {
    margin: 32px 0 8px;
    font-family: var(--af-font-force);
    font-size: var(--af-t-h2);
    font-weight: 800;
  }

  .legal-page .form-intro p:not(.eyebrow):not(.deck) {
    color: #343b45;
    font-size: var(--af-17);
  }

  .route-chooser {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 28px;
  }

  .route-card {
    min-width: 0;
    min-height: 230px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 24px;
    color: var(--af-ink);
    background: var(--af-surface-strong);
    border: 0;
    border-radius: 0;
    box-shadow: var(--af-shadow-plate);
    text-align: left;
    text-decoration: none;
    cursor: pointer;
    transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
    border-top: 4px solid var(--af-red);
  }

  .route-card:hover,
  .route-card:focus-visible {
    transform: translateY(-2px);
    border-color: var(--af-ink);
    box-shadow: 0 18px 42px rgba(17, 19, 24, .11);
  }

  .route-card__index {
    margin-bottom: 30px;
    color: var(--af-muted);
    font-family: var(--af-font-force);
    font-size: var(--af-125);
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
  }

  .route-card h2,
  .route-card .route-card__title {
    display: block;
    margin: 0 0 9px;
    font-family: var(--af-font-body);
    font-size: var(--af-t-card);
    font-weight: 700;
    letter-spacing: -.04em;
    line-height: .98;
  }

  .route-card p {
    margin: 0;
    color: var(--af-ink-2);
    font-size: var(--af-14);
    overflow-wrap: anywhere;
  }

  .route-card__truth {
    margin-top: auto !important;
    padding-top: 24px;
    color: var(--af-ink) !important;
    font-size: var(--af-t-label) !important;
    font-weight: 700;
    line-height: 1.4;
  }

  .route-card__action {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 14px;
    color: var(--af-blue-strong);
    font-weight: 700;
    font-size: 16px;
  }

  .priority-route {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 20px;
    margin-top: 14px;
    padding: 18px 20px;
    color: var(--af-surface-strong);
    background: var(--af-ink);
    border: 0;
    border-radius: 10px;
    text-align: left;
    cursor: pointer;
  }

  .priority-route:hover,
  .priority-route:focus-visible {
    outline-color: var(--af-ink);
    box-shadow: 0 10px 28px rgba(17, 19, 24, .16);
  }

  .priority-route strong {
    display: block;
    margin-bottom: 3px;
    font-size: var(--af-t-label);
    color: var(--af-ink);
    line-height: 1.4;
  }

  .priority-route span {
    color: var(--af-pearl);
    font-size: var(--af-125);
  }

  .priority-route__action {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    color: #fff !important;
    font-weight: 700;
    white-space: nowrap;
  }

  .selected-route {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 16px;
    margin-bottom: 24px;
    padding: 16px 18px;
    background: var(--af-surface-strong);
    border: 1px solid var(--af-line);
    border-left: 4px solid var(--af-red);
    border-radius: 8px;
  }

  .selected-route>h1 {
    display: block;
    color: var(--af-muted);
    font-size: var(--af-t-h1-utility);
  }

  .selected-route strong {
    display: block;
    font-size: var(--af-17);
  }

  .booking-panel {
    margin-bottom: 28px;
    padding: 22px;
    background: #111318;
    color: #fff;
    border-radius: 10px;
  }

  .booking-panel h2 {
    margin: 0 0 6px;
    font-family: var(--af-font-force);
    font-size: var(--af-t-h2);
    font-weight: 800;
    letter-spacing: -.03em;
  }

  .draft-note {
    margin: 0 0 14px;
    padding: 10px 14px;
    color: var(--af-ink);
    background: var(--af-pearl);
    border: 0;
    border-left: 0;
    border-radius: 8px;
    font-size: var(--af-14);
    font-weight: 600;
  }

  [data-comp-branch][hidden] {
    display: none;
  }

  .booking-panel p {
    margin: 0 0 16px;
    color: var(--af-pearl);
  }

  .booking-panel .button {
    background: #fff;
    color: #111318;
  }

  /* Booking-first client release: the dark panel leads the page, so it carries two peer actions
     (calendar + mail) and the route cards below it are information, not form triggers. */
  .booking-panel--lead {
    margin-top: 28px;
    margin-bottom: 0;
  }

  .booking-panel__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }

  .booking-panel .button--ondark {
    color: #fff;
    background: transparent;
    border-color: rgba(255, 255, 255, .45);
  }

  .booking-panel .button--ondark:hover,
  .booking-panel .button--ondark:focus-visible {
    background: rgba(255, 255, 255, .1);
    border-color: #fff;
  }

  .route-card--static,
  .route-card--static:hover {
    transform: none;
    cursor: default;
    border-color: var(--af-line);
    box-shadow: 0 12px 34px rgba(17, 19, 24, .07);
  }

  .route-card__truth a {
    color: inherit;
  }

  .relationship-fence {
    margin-top: 20px;
    padding: 14px 16px;
    color: var(--af-muted);
    background: var(--af-pearl);
    border: 0;
    border-radius: 8px;
    font-size: var(--af-125);
    border-left: 0;
  }
}

@layer pages {
  /* Packet typography rule: major headings on form pages use the strong legible sans already
     carrying the home door titles (.gate-route__label -> --af-font-body 700), never the thin
     serif display face. Overrides @layer base `h1 { font-family: var(--af-font-display) }`. */
  .form-page h1,
  .form-page .form-step h1,
  .form-page .route-card__title,
  .form-page .booking-panel h2,
  .form-page .summary-section h2,
  .form-page .error-summary h2,
  .form-page [data-success] h1 {
    font-family: var(--af-font-body);
    font-weight: 700;
    letter-spacing: -.035em;
  }

  .gate-page .gate-copy h1 {
    max-width: 820px;
    font-family: var(--af-font-body);
    font-size: var(--af-t-h1);
    font-weight: 700;
    letter-spacing: -.048em;
    line-height: .94;
  }

  .gate-page .gate-route__label {
    font-family: var(--af-font-body);
    font-size: clamp(36px, 3.5vw, 50px);
    font-weight: 700;
    letter-spacing: -.045em;
  }

  .gate-page .gate-route__content {
    height: auto;
  }

  .gate-page .gate-route__detail {
    max-width: 330px;
  }

  .chooser-page .form-shell {
    width: min(calc(100% - 32px), 960px);
    padding-top: 42px;
  }

  .chooser-page .form-intro > h1,
  .partner-page h1 {
    max-width: 760px;
    font-size: var(--af-t-h1);
    line-height: .94;
  }

  .chooser-page .form-intro > .deck,
  .partner-page .deck {
    max-width: 680px;
    margin-bottom: 0;
  }

  .chooser-page form {
    width: min(100%, 680px);
    margin-inline: auto;
  }

  .partner-shell {
    width: min(calc(100% - 32px), 960px);
    margin: 0 auto;
    padding: 58px 0 80px;
  }

  .partner-panel {
    display: grid;
    grid-template-columns: 1fr .72fr;
    gap: 36px;
    align-items: start;
    margin-top: 36px;
    padding-top: 34px;
    border-top: 1px solid var(--af-line);
  }

  .partner-types {
    display: grid;
    gap: 12px;
  }

  .partner-type {
    padding: 18px;
    background: var(--af-surface-strong);
    border: 0;
    border-radius: 0;
    border-top: 4px solid var(--af-ink);
    box-shadow: var(--af-shadow-plate);
  }

  .partner-type h2 {
    margin-bottom: 5px;
    font-size: var(--af-t-h2);
    font-family: var(--af-font-force);
    font-weight: 800;
  }

  .partner-type p {
    margin: 0;
    color: var(--af-muted);
  }body[data-page="partners"] .choice__copy>span{font-size:var(--af-t-label);color:var(--af-ink-2)}
}

@media (max-width: 760px) {
  .public-header nav {
    display: none;
  }

  .credibility-footer {
    align-items: flex-start;
    flex-direction: column;
    gap: 2px;
  }

  .gate-page .gate-stage {
    gap: 6px !important;
    padding-top: 8px !important;
  }

  .gate-page .gate-copy h1 {
    max-width: 360px;
    font-size: var(--af-t-h1) !important;
  }

  .gate-page .gate-art {
    aspect-ratio: 1.66 / 1 !important;
  }

  .gate-page .gate-routes {
    height: 258px !important;
    min-height: 258px !important;
    grid-template-rows: repeat(2, 129px) !important;
  }

  .gate-page .gate-route,
  .gate-page .gate-route:first-child,
  .gate-page .gate-route:last-child {
    min-height: 129px !important;
  }

  .gate-page .gate-route__content,
  .gate-page .gate-route[data-route="growth"] .gate-route__content {
    padding: 16px 0 14px !important;
  }

  .gate-page .gate-route__label,
  .gate-page .gate-route[data-route="growth"] .gate-route__label {
    font-size: clamp(22px, 6.1vw, 24px) !important;
    line-height: .88;
  }

  .gate-page .gate-route__detail,
  .gate-page .gate-route[data-route="growth"] .gate-route__detail {
    max-width: 305px;
    font-size: 12.5px;
    line-height: 1.16;
  }

  .route-chooser {
    grid-template-columns: 1fr;
    gap: 10px;
    margin-top: 22px;
  }

  .route-card {
    width: 100%;
    min-height: 0;
    padding: 18px;
    border: 0;
    border-radius: 0;
    border-top: 4px solid var(--af-red);
    box-shadow: var(--af-shadow-plate);
  }

  .route-card__index {
    margin-bottom: 14px;
  }

  .route-card h2,
  .route-card .route-card__title {
    font-size: var(--af-t-card);
    overflow-wrap: anywhere;
  }

  .route-card__truth {
    padding-top: 16px;
    font-size: var(--af-t-label);
    color: var(--af-ink);
    line-height: 1.4;
  }

  .priority-route,
  .selected-route,
  .partner-panel {
    grid-template-columns: 1fr;
  }

  .priority-route {
    gap: 8px;
  }

  .priority-route__action {
    justify-self: start;
  }

  .chooser-page .form-shell {
    padding-top: 24px;
  }

  .chooser-page .form-intro > h1,
  .partner-page h1 {
    font-size: var(--af-t-h1);
    overflow-wrap: anywhere;
  }

  .booking-panel .button {
    width: 100%;
  }

  .partner-shell {
    padding-top: 30px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .route-card {
    transition: none;
    border: 0;
    border-radius: 0;
    border-top: 4px solid var(--af-red);
    box-shadow: var(--af-shadow-plate);
  }
}

.optional-step-tooltip-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  vertical-align: middle;
}

.optional-step-tooltip-trigger {
  min-height: 32px;
  padding: 3px 8px;
  border: 1px solid var(--af-line);
  border-radius: 99px;
  color: var(--af-muted);
  background: var(--af-surface);
  font-size: var(--af-125);
  font-weight: 650;
  cursor: pointer;
}

.optional-step-tooltip-trigger:hover,
.optional-step-tooltip-trigger:focus-visible {
  color: var(--af-ink);
  border-color: var(--af-ink);
}

.form-step [data-next]:focus-visible {
  outline: 3px solid var(--af-ink);
  outline-offset: 3px;
}

.optional-step-tooltip {
  position: absolute;
  z-index: 10;
  top: calc(100% + 8px);
  left: 0;
  width: min(320px, calc(100vw - 48px));
  padding: 10px 12px;
  color: var(--af-ink);
  background: var(--af-surface-strong);
  border: 1px solid var(--af-line);
  border-radius: var(--af-radius-sm);
  box-shadow: var(--af-shadow);
  font-family: var(--af-font-body);
  font-size: var(--af-125);
  font-weight: 500;
  line-height: 1.4;
}

/* ------------------------------------------------------------------------------------------
   Launch field system port (B3). Source: live /get-help/ and /join/ (launch.css): red square
   CTA, 0-radius fields, 1px grey borders, REQUIRED tag in red-neutral Barlow, panel with a 4px
   red top rule, serif page h1, red Barlow eyebrow, 3px red focus ring. No coloured left-edge
   accent bars anywhere. Lives in the `pages` layer so it outranks the component defaults above.
   ------------------------------------------------------------------------------------------ */
@layer pages {
  :root {
    --af-red-strong: #b92525;
    --af-field-line: #aeb7c4;
  }

  :focus-visible {
    outline: 3px solid var(--af-red);
    outline-offset: 3px;
  }


  .release-surface__code {
    color: var(--af-red);
    font-family: var(--af-font-force);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
  }

  /* Release pages load their sizing stylesheet after this shared sheet. */
  body.release-surface h1 {
    font-family: var(--af-font-force);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .015em;
  }

  /* Page h1 uses the existing brand heading face; step headings stay Geist */
  .form-intro > h1,
  .legal-page .form-intro > h1,
  .release-surface h1 {
    font-family: var(--af-font-force);
    font-size: var(--af-t-h1);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .015em;
    line-height: .94;
    text-wrap: balance;
  }

  .form-step > h1 {
    font-family: var(--af-font-body);
    font-size: var(--af-t-h1-utility);
    font-weight: 700;
    letter-spacing: -.04em;
    line-height: 1.05;
  }

  /* Panel: white plate, 4px red top rule */
  .form-shell form[data-intake-kind],
  .form-shell .receipt,
  .receipt[data-success] {
    padding: 24px 28px 22px;
    background: var(--af-surface-strong);
    border: 0;
    border-top: 4px solid var(--af-red);
    border-radius: 0;
    box-shadow: none;
  }

  .form-shell { width: min(calc(100% - 32px), 760px); }

  /* Fields */
  .field { align-content: start; }

  .field label,
  .field__label {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: baseline;
    gap: 6px 10px;
    font-size: var(--af-t-label);
    font-weight: 700;
    color: var(--af-ink);
    line-height: 1.4;
  }

  .field label > :where(input, select, textarea, .field__help, .field__error),
  .field label > :where(div, fieldset) {
    grid-column: 1 / -1;
  }

  .req {
    color: var(--af-muted);
    font-family: var(--af-font-force);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
  }

  .req::before { content: "Required"; }

  legend .req { margin-left: 10px; }

  .field input,
  .field select,
  .field textarea,
  input.field__input {
    min-height: 48px;
    padding: 10px 12px;
    background: #fff;
    border: 1px solid var(--af-field-line);
    border-radius: 0;
    box-shadow: none;
    font: inherit;
    font-size: 14px;
    font-weight: 400;
  }

  .field input::placeholder,
  .field textarea::placeholder {
    color: #737d8b;
    font-weight: 400;
  }

  .field input:hover,
  .field select:hover,
  .field textarea:hover { border-color: var(--af-ink); }

  .field input:focus,
  .field select:focus,
  .field textarea:focus {
    border-color: var(--af-ink);
    outline: 3px solid var(--af-red);
    outline-offset: 2px;
  }

  .field [aria-invalid="true"] {
    border-color: var(--af-critical);
    box-shadow: none;
    outline: 1px solid var(--af-critical);
  }

  .field__help { font-size: 12px; }

  .choice {
    border: 1px solid var(--af-field-line);
    border-radius: 0;
  }

  .choice:has(input:checked) {
    border-color: var(--af-ink);
    box-shadow: inset 0 0 0 1px var(--af-ink);
  }

  .choice input { accent-color: var(--af-red); }

  .field .choice input,
  .choice input {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    min-height: 18px;
    margin: 2px 0 0;
    padding: 0;
    border: 0;
    box-shadow: none;
  }

  .field label.choice,
  label.choice {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 10px;
  }

  /* Buttons: red, square, arrow */
  .button {
    min-height: 50px;
    padding: 0 18px;
    border-radius: 0;
    font-size: var(--af-t-button);
    font-weight: 800;
  }

  .button--primary {
    color: #fff;
    background: var(--af-red-fill);
    border-color: var(--af-red-fill);
  }

  .button--primary:hover:not([disabled]) {
    background: var(--af-red-fill-hover);
    border-color: var(--af-red-fill-hover);
  }

  .button--primary::after {
    content: "\2192";
    margin-left: 6px;
    font-size: 20px;
    font-weight: 400;
    line-height: 1;
  }

  .button--outline { border-color: var(--af-ink); background: #fff; }
  .button--text { min-height: 44px; font-weight: 600; color: var(--af-ink-2); }
  .button--text::after { content: none; }

  /* Stepper */
  .stepper__track { background: var(--af-pearl); border-radius: 0; }
  .stepper__bar { background: var(--af-red); }
  .stepper__meta [aria-current="step"] { color: var(--af-ink); font-weight: 700; }

  /* Banned left-edge accent bars become flat rows / top rules */
  .selected-route {
    padding: 0 0 14px;
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--af-line);
    border-radius: 0;
  }

  .selected-route>h1 {
    color: var(--af-red);
    font-family: var(--af-font-force);
    font-size: var(--af-t-h1-utility);
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
  }

  .draft-note {
    border: 0;
    border-radius: 0;
    border-left: 0;
    background: var(--af-pearl);
  }

  .error-summary,
  .notice--critical {
    border-width: 1px;
    border-top-width: 4px;
    border-radius: 0;
  }

  .notice,
  .notice--strong {
    border-left-width: 1px;
    border-radius: 0;
  }

  .notice--strong { border-top: 4px solid var(--af-ink); }

  /* Join chooser cards become launch panels */
  .route-card {
    min-height: 0;
    background: var(--af-surface-strong);
    border: 0;
    border-top: 4px solid var(--af-red);
    border-radius: 0;
    box-shadow: var(--af-shadow-plate);
  }

  .route-card:hover,
  .route-card:focus-visible {
    transform: none;
    box-shadow: inset 0 0 0 1px var(--af-ink);
  }

  .route-card__action { color: var(--af-red); }

  .priority-route { border-radius: 0; }

  /* Release surfaces (404, expired link, buyer confirm, owner denied) */
  .release-surface__actions .button--primary { min-width: 220px; justify-content: space-between; }
}

/* B5: chip groups, optional group, access note */
@layer pages {
  .field--wide { grid-column: 1 / -1; }

  fieldset.field {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
  }

  fieldset.field > legend {
    width: 100%;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    padding: 0;
    margin-bottom: 8px;
    font-size: var(--af-t-label);
    font-weight: 700;
    color: var(--af-ink);
    line-height: 1.4;
  }

  .chip-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .chip-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }

  .chip-grid label.choice {
    display: flex;
    flex-direction: row;
    min-height: 44px;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
  }

  .access-note {
    margin: 0 0 18px;
    padding: 12px 14px;
    background: var(--af-pearl);
    border: 0;
    border-top: 4px solid var(--af-ink);
    font-size: 16px;
    font-weight: 600;
    border-left: 0;
  }

  /* Video page: square plates, no coloured left bar, ink outline marks the current prompt */
  .prompt-row,
  .storage-truth { border-radius: 0; }
  .prompt-row[data-state="current"] {
    border-color: var(--af-ink);
    box-shadow: inset 0 0 0 1px var(--af-ink);
  }
  .capture-panel {
    border: 0;
    border-top: 4px solid var(--af-red);
    border-radius: 0;
    box-shadow: var(--af-shadow-plate);
  }

  /* Legal lists read at paragraph size */
  article.form-intro > ul { margin: 0 0 18px; padding-left: 22px; }
  article.form-intro > ul > li { margin: 0 0 10px; font-size: 17px; line-height: 1.55; color: var(--af-muted); }

  .receipt-group { border-radius: 0; }
  .optional-group { margin-top: 18px; }
  .optional-group .status-chip { margin-left: 10px; }

  .field--wide .field { margin-top: 12px; }

  @media (max-width: 760px) {
    .chip-grid--three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }

  @media (max-width: 420px) {
    .chip-grid .choice { padding: 8px 10px; gap: 8px; min-height: 48px; }
  }

  /* Required Telegram step (applicants). One block, state as form: stripe + chip, readable in grayscale.
     Not linked = ink top stripe and outlined chip; linked = filled ink chip with a check. */
  .tg-gate {
    margin: 18px 0 0;
    padding: 18px 20px 20px;
    background: var(--af-surface-strong);
    border: 0;
    border-top: 4px solid var(--af-red);
    border-radius: 0;
    box-shadow: var(--af-shadow-plate);
  }
  .tg-gate__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
  .tg-gate__head h2 { margin: 0; font-size: var(--af-t-h2); line-height: 1.15; font-family: var(--af-font-force); font-weight: 800; }
  .tg-gate__head .eyebrow { margin-bottom: 4px; }
  .tg-gate__state {
    flex: none;
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 3px 10px;
    border: 1px solid var(--af-ink);
    border-radius: 0;
    font-size: var(--af-125);
    font-weight: 700;
    white-space: nowrap;
  }
  .tg-gate[data-state="linked"] { border-top-color: var(--af-ink); }
  .tg-gate[data-state="linked"] .tg-gate__state { background: var(--af-ink); color: #fff; }
  .tg-gate[data-state="linked"] .tg-gate__state::before { content: "\2713\00a0"; }
  .tg-gate p { max-width: 62ch; }
  .tg-gate:is([data-state="start"], [data-state="pending"], [data-state="linked"]) { padding: 12px 14px; }
  .tg-gate:is([data-state="start"], [data-state="pending"], [data-state="linked"]) .tg-gate__head { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .tg-gate [data-tg-stage="start"] { display: flex; align-items: center; gap: 12px; }
  .tg-gate [data-tg-stage="start"] p { flex: 1; margin: 0; font-size: var(--af-125); }
  .tg-gate [data-tg-stage="start"] .actions { flex: none; }
  .tg-gate [data-tg-start] { padding-inline: 12px; }
  [data-tg-start]::after { display: none !important; }
  .tg-gate [data-tg-message]:empty { display: none; }
  .tg-gate__linked { display: flex; gap: 12px; align-items: center; justify-content: space-between; }
  .tg-gate__linked input { flex: 1; min-width: 0; }
  .tg-gate__linked .button, [data-tg-start] { min-height: 44px; gap: 8px; white-space: nowrap; }
  .tg-gate__reopen { display: inline-flex; align-items: center; min-height: 44px; }
  .tg-gate__linked strong { overflow-wrap: anywhere; }
  @media (min-width: 761px) {
    .tg-profile-field { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); column-gap: 16px; align-items: center; }
    .tg-profile-field > label, .tg-profile-field > input, .tg-profile-field > .field__error { grid-column: 1; }
    .tg-profile-field .tg-gate { grid-column: 2; grid-row: 2; margin: 0; padding: 2px 10px; }
  }
  @media (max-width: 340px) {
    .tg-gate [data-tg-stage="start"] { display: block; }
    .tg-gate [data-tg-stage="start"] p { margin-bottom: 10px; }
  }
  .profile-connect__row { display: flex; align-items: stretch; gap: 8px; }
  .profile-connect__row input { flex: 1; min-width: 0; }
  .profile-connect__row .button { flex: none; min-height: 44px; padding-inline: 12px; white-space: nowrap; }
  .profile-connect__identity { display: flex; align-items: center; gap: 6px; min-width: 0; max-width: 65%; font-size: var(--af-125); overflow-wrap: anywhere; }
  .profile-connect__identity span { min-width: 0; }
  .profile-connect__identity:has(> [data-provider-change][hidden]) { display: none; }
  .profile-connect__row { flex-wrap: wrap; }
  .profile-connect__identity { flex-wrap: wrap; flex: 1 1 100%; max-width: 100%; }
  .profile-connect__identity span { flex: 1 1 100%; }
  .profile-connect__identity .button { min-height: 44px; padding: 0 6px; }
  .tg-gate [data-tg-stage] > .actions { margin-top: 0; }
  @media (max-width: 520px) {
    .tg-gate { padding: 16px 14px 18px; border: 0; border-radius: 0; border-top: 4px solid var(--af-red); box-shadow: var(--af-shadow-plate); }
    .tg-gate__linked { flex-wrap: wrap; }
  }
}

/* Forms rework 2026-10-04: quiet draft line, grouped-choice error, collapsed review, contact echo. Tokens only. */
@layer pages {
  .draft-line {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: -12px 0 18px;
    color: var(--af-muted);
    font-size: var(--af-125);
    font-weight: 600;
  }
  .draft-line[hidden] { display: none; }
  /* A square mark plus words: it reads as "saved" in grayscale. */
  .draft-line::before { content: ""; width: 8px; height: 8px; background: var(--af-good); }

  /* One outline on the whole group; the boxes inside stay quiet. */
  fieldset[aria-invalid="true"] { outline: 1px solid var(--af-critical); outline-offset: 8px; }

  .req[hidden] { display: none; }
  .field__note { margin: 6px 0 0; color: var(--af-muted); font-size: var(--af-125); }

  .review-heading { margin: 30px 0 4px; font-size: var(--af-17); font-weight: 700; }
  /* The answers summary is a list inside the form, not the success card: no red top rule (it read as an input underline) and no extra inset. */
  [data-review].receipt { border: 0; box-shadow: none; background: transparent; padding: 0; }
  .summary-section {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 0 8px;
    padding: 0;
    border-bottom: 1px solid var(--af-line);
  }
  .summary-section details { min-width: 0; }
  .summary-section summary {
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 12px;
    cursor: pointer;
    list-style: none;
    font-weight: 700;
  }
  .summary-section summary::-webkit-details-marker { display: none; }
  .summary-section summary::before {
    content: "";
    flex: none;
    width: 7px;
    height: 7px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(-45deg);
    transition: transform .12s ease;
  }
  .summary-section details[open] summary::before { transform: rotate(45deg); }
  .summary-section__count { margin-left: auto; color: var(--af-muted); font-size: var(--af-125); font-weight: 600; }
  .summary-section dl { margin: 0; padding: 0 0 14px 19px; }
  .summary-edit { min-height: 44px; min-width: 56px; padding: 0 14px; }

  .contact-echo {
    margin: 0;
    padding: 12px 14px;
    background: var(--af-pearl);
    border: 0;
    font-size: var(--af-14);
    border-left: 0;
  }
  .contact-echo strong { font-weight: 700; overflow-wrap: anywhere; }
  .contact-echo button {
    min-height: 44px;
    min-width: 44px;
    padding: 0 6px;
    border: 0;
    background: transparent;
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
    font: inherit;
    font-weight: 600;
    font-size: var(--af-t-button);
  }
  @media (max-width: 520px) {
    .summary-section dl { padding-left: 0; }
  }
  /* Success screens: numbered next steps. State is a numbered mark plus words. */
  .next-title { margin: 22px 0 10px; font-size: var(--af-17); font-weight: 700; }
  .next-steps { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
  .next-steps li { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 12px; align-items: start; font-size: var(--af-14); line-height: 1.5; }
  .next-steps__n { display: grid; place-items: center; width: 24px; height: 24px; background: var(--af-ink); color: #fff; font-size: var(--af-125); font-weight: 700; }
  .next-steps strong { display: block; }
  .next-steps li > span:last-child { color: var(--af-muted); }
  .next-steps li > span:last-child strong { color: var(--af-ink); }

  /* Short orientation above the first control of a form step. */
  .form-lede { display: grid; gap: 8px; margin: 12px 0 4px; font-size: var(--af-14); line-height: 1.5; }
  .form-lede p { margin: 0; }
  .form-lede__aside { color: var(--af-muted); font-size: var(--af-125); }

  /* Beside the final Send button: what is still missing, as a list of links to the fields. */
  .submit-needs { margin: 18px 0 0; padding: 12px 16px; border: 0; background: #fff7f7; color: #621b1b; font-size: var(--af-14); border-top: 4px solid var(--af-critical); }
  .submit-needs ul { margin: 6px 0 0; padding-left: 18px; display: grid; gap: 4px; }
  .submit-needs a { color: #621b1b; }

  /* Hire step 1: the job description link is the fast path, so it gets the panel treatment (red top rule, as the route
     cards use) and the small group titles that split a long step into readable parts. */
  .fast-path { padding: 14px 16px 16px; background: var(--af-surface); border: 0; border-top: 4px solid var(--af-red); border-radius: 0; box-shadow: var(--af-shadow-plate); }
  .fast-path__title { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 0 0 10px; font-size: var(--af-t-label); font-weight: 700; color: var(--af-ink); line-height: 1.4; }
  .fast-path__title .status-chip { border-color: var(--af-red); background: var(--af-red); color: #fff; }
  .form-step .step-group { margin: 22px 0 10px; color: var(--af-muted); font-family: var(--af-font-force); font-size: var(--af-t-h3); font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
  .form-step .field-grid > .step-group { margin: 14px 0 0; }
  .role-narratives { margin-top: 18px; }

}

/* C01–09: founder-approved form clarity. Scoped to the four full intake routes. */
@layer pages {
.form-page[data-intake-route] .selected-route{display:flex;align-items:center;justify-content:flex-start;gap:16px;margin-bottom:24px;padding-bottom:20px}
.form-page[data-intake-route] .selected-route>h1{font-family:var(--af-font-force);font-size:var(--af-t-h1-utility);font-weight:800;line-height:1.1;letter-spacing:.015em;text-transform:uppercase;color:var(--af-ink)}
.form-page[data-intake-route] .af-change-path{flex:0 0 auto;min-height:44px;padding:0 12px;font-size:var(--af-t-button);font-weight:700;white-space:nowrap;background:#fff;color:var(--af-ink);border:1px solid var(--af-ink);text-decoration:none}
.credibility-footer .legal-links a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}
.form-page[data-intake-route] .stepper__meta{font-size:12.5px;margin-bottom:12px}
.af-stages{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:8px;list-style:none;padding:0;margin:0 0 16px}
.af-stages li{display:flex;align-items:flex-start;gap:8px;padding:10px 8px;border-top:2px solid var(--af-line);color:var(--af-muted);font-size:12.5px;line-height:1.35}
.af-stage-number{display:inline-grid;place-items:center;flex:0 0 22px;width:22px;height:22px;border:1px solid var(--af-line);font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}
.af-stage-name{font-weight:600;font-size:14px}.af-stage-state{display:block;margin-top:4px;font-size:11px;font-weight:400}.af-stage-state::after{content:'Upcoming'}
.form-page[data-intake-route] form:has(>.form-step[data-step="1"]:not([hidden])) .af-stages li:nth-child(1){border-top-color:var(--af-red);color:var(--af-ink);background:var(--af-pearl)}.form-page[data-intake-route] form:has(>.form-step[data-step="1"]:not([hidden])) .af-stages li:nth-child(1) .af-stage-number{color:#fff;background:var(--af-red);border-color:var(--af-red)}.form-page[data-intake-route] form:has(>.form-step[data-step="1"]:not([hidden])) .af-stages li:nth-child(1) .af-stage-state::after{content:'Current'}
.form-page[data-intake-route] form:has(>.form-step[data-step="2"]:not([hidden])) .af-stages li:nth-child(2){border-top-color:var(--af-red);color:var(--af-ink);background:var(--af-pearl)}.form-page[data-intake-route] form:has(>.form-step[data-step="2"]:not([hidden])) .af-stages li:nth-child(2) .af-stage-number{color:#fff;background:var(--af-red);border-color:var(--af-red)}.form-page[data-intake-route] form:has(>.form-step[data-step="2"]:not([hidden])) .af-stages li:nth-child(2) .af-stage-state::after{content:'Current'}
.form-page[data-intake-route] form:has(>.form-step[data-step="2"]:not([hidden])) .af-stages li:nth-child(-n+1){color:var(--af-ink);border-top-color:var(--af-ink)}.form-page[data-intake-route] form:has(>.form-step[data-step="2"]:not([hidden])) .af-stages li:nth-child(-n+1) .af-stage-state::after{content:'Completed'}
.form-page[data-intake-route] form:has(>.form-step[data-step="3"]:not([hidden])) .af-stages li:nth-child(3){border-top-color:var(--af-red);color:var(--af-ink);background:var(--af-pearl)}.form-page[data-intake-route] form:has(>.form-step[data-step="3"]:not([hidden])) .af-stages li:nth-child(3) .af-stage-number{color:#fff;background:var(--af-red);border-color:var(--af-red)}.form-page[data-intake-route] form:has(>.form-step[data-step="3"]:not([hidden])) .af-stages li:nth-child(3) .af-stage-state::after{content:'Current'}
.form-page[data-intake-route] form:has(>.form-step[data-step="3"]:not([hidden])) .af-stages li:nth-child(-n+2){color:var(--af-ink);border-top-color:var(--af-ink)}.form-page[data-intake-route] form:has(>.form-step[data-step="3"]:not([hidden])) .af-stages li:nth-child(-n+2) .af-stage-state::after{content:'Completed'}
.form-page[data-intake-route] form:has(>.form-step[data-step="4"]:not([hidden])) .af-stages li:nth-child(4){border-top-color:var(--af-red);color:var(--af-ink);background:var(--af-pearl)}.form-page[data-intake-route] form:has(>.form-step[data-step="4"]:not([hidden])) .af-stages li:nth-child(4) .af-stage-number{color:#fff;background:var(--af-red);border-color:var(--af-red)}.form-page[data-intake-route] form:has(>.form-step[data-step="4"]:not([hidden])) .af-stages li:nth-child(4) .af-stage-state::after{content:'Current'}
.form-page[data-intake-route] form:has(>.form-step[data-step="4"]:not([hidden])) .af-stages li:nth-child(-n+3){color:var(--af-ink);border-top-color:var(--af-ink)}.form-page[data-intake-route] form:has(>.form-step[data-step="4"]:not([hidden])) .af-stages li:nth-child(-n+3) .af-stage-state::after{content:'Completed'}
.form-page[data-intake-route] .req{color:var(--af-red);font-family:var(--af-font-body);font-size:17px;font-weight:700;line-height:1;letter-spacing:0;text-transform:none;align-self:start;justify-self:end}.form-page[data-intake-route] .req::before{content:'*'}
.form-page[data-intake-route] fieldset.field>legend{width:100%;position:relative;padding-right:20px}.form-page[data-intake-route] legend .req{position:absolute;right:0;top:0;margin:0}
.form-page[data-intake-route] label:has(>input:not([required]),>select:not([required]),>textarea:not([required]))>.req{display:none}
.form-page[data-intake-route] label:has(>input[required],>select[required],>textarea[required]):not(:has(>.req)){position:relative;padding-right:18px}
.form-page[data-intake-route] label:has(>input[required],>select[required],>textarea[required]):not(:has(>.req))::after{content:'*';position:absolute;top:0;right:0;color:var(--af-red);font-size:17px;line-height:1;font-weight:700}
.form-page[data-intake-route] label.choice:has(input[required])::after{top:10px;right:10px}
.form-page[data-intake-route] .field__help{font-size:14px}
@media(max-width:600px){.form-page[data-intake-route] .selected-route{gap:12px}.form-page[data-intake-route] .selected-route>h1{font-size:var(--af-t-h1-utility);flex:1;min-width:0}.af-stages{gap:8px;grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr))}.af-stages li{display:block;padding:8px 4px}.af-stage-number{margin-bottom:8px}.af-stage-name{display:block;font-size:14px;overflow-wrap:anywhere}.af-stage-state{font-size:11px}.form-page[data-intake-route] .af-change-path{padding-inline:10px;font-size: var(--af-t-button)}}
}

@layer pages {
/* Existing unlayered mobile rule hides nav: keep the approved form menu available. */
.form-page[data-intake-route] label.choice:has(input[type="radio"][required])::after{content:none}
}

/* H01–13: Growth company context and compact consent. */
@layer pages {
body[data-intake-route="growth"] .growth-company-row{margin-top:20px}
body[data-intake-route="growth"] .growth-field-pair{display:grid;gap:18px;align-content:start}
body[data-intake-route="growth"] .growth-chain-picker{border:0;background:var(--af-surface-strong);box-shadow: inset 0 0 0 1px var(--af-line)}
body[data-intake-route="growth"] .growth-chain-picker>summary{min-height:48px;padding:12px;cursor:pointer;font-size:14px;font-weight:600}
body[data-intake-route="growth"] .growth-chain-picker[open]>summary{border-bottom:1px solid var(--af-line)}
body[data-intake-route="growth"] .growth-chain-picker .chip-grid{padding:12px;gap:6px}
body[data-intake-route="growth"] .growth-chain-picker .choice{min-height:44px;padding:10px;font-size:14px}
body[data-intake-route="growth"] .growth-consents{gap:0;border-block:1px solid var(--af-line)}
body[data-intake-route="growth"] .growth-consents>.choice{min-height:44px;padding:12px 32px 12px 0;border:0;border-bottom:1px solid var(--af-line);align-items:center}
body[data-intake-route="growth"] .growth-consents>.choice:last-child{border-bottom:0}
body[data-intake-route="growth"] .growth-consents .choice__copy strong{font-size:14px;font-weight:600}
body[data-intake-route="growth"] .growth-consents>.choice:has(input:checked){box-shadow:none}
body[data-intake-route="growth"] .growth-consents>.choice::after{top:14px}
}

/* F01: keep individual optional semantics available to assistive technology. */
@layer pages {
.form-page[data-intake-route] .af-optional-suffix{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;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
}

.form-page[data-intake-route] details.optional-group > summary::before {
  content: "";
  display: inline-block;
  flex: 0 0 8px;
  width: 8px;
  height: 8px;
  margin-right: 12px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(-45deg);
}
.form-page[data-intake-route] details.optional-group[open] > summary::before {
  transform: rotate(45deg);
}
.form-page[data-intake-route] details.optional-group > summary {
  justify-content: flex-start;
}
.form-page[data-intake-route] details.optional-group > summary > .status-chip {
  margin-left: auto;
}

/* Talent-only title/button overrides lived here UNLAYERED (they beat every layered rule). The title size and the
   path-switch layout are now shared by all four forms, layered, at the end of intake-progress.css. */

/* B1 build-20261014: talent/partner controls. Patterns: Calendly weekly hours (day row + time block),
   GOV.UK conditional reveal (only questions revealed), Linear-style compact multi-select chips. */
@layer pages {
.form-page[data-intake-route] .mt-12{margin-top:12px}
.form-page[data-intake-route] .af-group-title{margin:32px 0 14px;padding-top:20px;border-top:1px solid var(--af-line);font-family:var(--af-font-force);font-size:var(--af-t-h3);font-weight:800;letter-spacing:.02em;text-transform:uppercase;line-height:1.1;color:var(--af-ink)}
.form-page[data-intake-route] .form-step > h1 + .field__help + .af-group-title,.form-page[data-intake-route] .form-step > h1 + .af-group-title{border-top:0;padding-top:0;margin-top:20px}
.form-page[data-intake-route] .field-grid--three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.form-page[data-intake-route] .choice-grid--two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.form-page[data-intake-route] .af-inline-action{display:flex;gap:10px;align-items:stretch;flex-wrap:wrap}
.form-page[data-intake-route] .af-inline-action>input{flex:1 1 220px;min-width:0}
.form-page[data-intake-route] .af-inline-action>.button{min-height:48px;white-space:nowrap}
.form-page[data-intake-route] .af-status-pill{align-self:center;display:inline-flex;align-items:center;min-height:28px;padding:2px 10px;border:1px solid var(--af-field-line);border-radius:999px;font-size:var(--af-125);font-weight:700;color:var(--af-muted);background:var(--af-surface-strong)}
.form-page[data-intake-route] .af-status-pill[data-state="linked"]{border-color:var(--af-good);background:var(--af-good);color:#fff}
.form-page[data-intake-route] .af-schedule__rows{display:grid;gap:0;border:0;background:var(--af-surface-strong);box-shadow: inset 0 0 0 1px var(--af-line)}
.form-page[data-intake-route] .af-schedule__row{display:grid;grid-template-columns:180px 1fr;align-items:center;gap:12px;min-height:56px;padding:6px 12px;border-bottom:1px solid var(--af-line)}
.form-page[data-intake-route] .af-schedule__row:last-child{border-bottom:0}
.form-page[data-intake-route] .af-schedule__row>.field__error{grid-column:1/-1;margin:0}
.form-page[data-intake-route] .af-schedule__row>.field__error:empty{display:none}
.form-page[data-intake-route] .af-schedule__day{border:0;padding:6px 0;min-height:44px;box-shadow:none!important;background:none}
.form-page[data-intake-route] .af-schedule__times{display:flex;align-items:center;gap:10px}
.form-page[data-intake-route] .af-schedule__times select{width:auto;min-width:108px;min-height:44px;font-variant-numeric:tabular-nums}
.form-page[data-intake-route] .af-schedule__times span{color:var(--af-muted);font-size:var(--af-14)}
.form-page[data-intake-route] .af-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.form-page[data-intake-route] .af-picker{border:0;background:var(--af-surface-strong);margin-top:8px;box-shadow: inset 0 0 0 1px var(--af-line)}
.form-page[data-intake-route] .af-picker>summary{min-height:48px;padding:12px 40px 12px 12px;cursor:pointer;font-size:var(--af-14);font-weight:600;list-style:none;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.form-page[data-intake-route] .af-picker>summary::-webkit-details-marker{display:none}
.form-page[data-intake-route] .af-picker>summary::after{content:"";position:absolute;right:16px;top:18px;width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg)}
.form-page[data-intake-route] .af-picker[open]>summary::after{transform:rotate(-135deg);top:22px}
.form-page[data-intake-route] .af-picker[open]>summary{border-bottom:1px solid var(--af-line)}
.form-page[data-intake-route] .af-picker .chip-grid{padding:12px;gap:6px;grid-template-columns:repeat(2,minmax(0,1fr))}
.form-page[data-intake-route] .af-picker .choice{min-height:44px;padding:10px;font-size:var(--af-14)}
.form-page[data-intake-route] .af-cards{display:grid;gap:14px;margin-top:14px}
.form-page[data-intake-route] .af-card{border:0;background:var(--af-surface-strong);padding:16px 18px;display:grid;gap:12px;border-radius: 0;border-top: 4px solid var(--af-red);box-shadow: var(--af-shadow-plate)}
.form-page[data-intake-route] .af-card__head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.form-page[data-intake-route] .af-card__head h3{margin:0;font-size:var(--af-17);font-weight:700}
.form-page[data-intake-route] .af-remove{min-height:44px;color:var(--af-muted)}
.form-page[data-intake-route] .af-lang-row{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;margin-top:10px}
.form-page[data-intake-route] .af-badge-note{display:flex;gap:12px;align-items:flex-start;margin-top:12px;padding:12px 14px;border:0;background:var(--af-pearl);border-left: 0}
.form-page[data-intake-route] .af-badge-note p{margin:0;font-size:var(--af-14);line-height:1.5}
.form-page[data-intake-route] .af-soon{display:inline-block;flex:none;margin-right:6px;padding:2px 8px;border:1px solid var(--af-ink);font-size:var(--af-11);font-weight:800;letter-spacing:.06em;text-transform:uppercase;line-height:1.5;vertical-align:middle;color:var(--af-ink);background:var(--af-surface-strong)}
.form-page[data-intake-route] .af-note{margin:0;font-size:var(--af-14);color:var(--af-muted)}
.form-page[data-intake-route] .af-referral__who{margin-top:14px}
.form-page[data-intake-route] .af-referral__who .field__help{grid-column:1/-1;margin:0}
.form-page[data-intake-route] .af-two-up{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
@media (max-width:600px){
  .form-page[data-intake-route] .field-grid--three,.form-page[data-intake-route] .choice-grid--two,.form-page[data-intake-route] .af-two-up{grid-template-columns:1fr}
  .form-page[data-intake-route] .af-schedule__row{grid-template-columns:1fr;gap:4px;padding:8px 10px}
  .form-page[data-intake-route] .af-schedule__times select{flex:1;min-width:0}
  .form-page[data-intake-route] .af-picker .chip-grid{grid-template-columns:1fr}
  .form-page[data-intake-route] .af-lang-row{grid-template-columns:1fr 1fr}
  .form-page[data-intake-route] .af-lang-row>.af-remove{grid-column:1/-1;justify-self:start}
}
}

@layer pages {
.form-page[data-intake-route] fieldset:has(> .af-picker),.form-page[data-intake-route] .af-picker{min-width:0;min-inline-size:0;border: 0;box-shadow: inset 0 0 0 1px var(--af-line)}
@media (max-width:600px){.form-page[data-intake-route] .af-two-up{grid-template-columns:minmax(0,1fr)}}
}

/* 1017-A2 P1-2: ONE header system (home gate, /account/, /apply/*, /privacy/, /terms/). The same declarations are repeated in launch-join.css (/join/), referrals/referrals.css and the /account/preferences/ inline style because those pages do not load this file.
   Bar 84px desktop / 64px mobile (logo 60px / 44px, centred), content column max 1232px, one row at every width. Controls 44px desktop / 40px mobile, 1px --af-line border, 4px radius, 12.5px/700 uppercase. Red fill is the primary variant (Join Action Force); everything else is the outline. */
@layer pages {
/* 1018 hotfix: the lockup is 72/64px (desktop tiers) and hangs below the 84px bar (overhang 10/8px; 0 on phones, where the logo is centred in the 64px bar). Same tokens are repeated in launch-join.css, referrals.css and the /account/preferences/ inline style. The wordmark glyphs are 22% of the lockup height, so size is what makes them legible. Header sits above .gate-stage (z 11) so the hanging legs of the A paint over the hero photo. */
body:is(.gate-page,.form-page,.join-page,.referrals-page){--af-bar:84px;--af-logo:60px;--af-logo-top:0px;--af-logo-overhang:0px}
@media(max-width:1099px){body:is(.gate-page,.form-page,.join-page,.referrals-page){--af-logo:56px;--af-logo-overhang:0px}}
@media(max-width:760px){body:is(.gate-page,.form-page,.join-page,.referrals-page){--af-bar:64px;--af-logo:44px;--af-logo-top:0px;--af-logo-overhang:0px}}
@media(max-width:360px){body:is(.gate-page,.form-page,.join-page,.referrals-page){--af-logo:44px;--af-logo-top:0px}}
body:is(.gate-page,.form-page) :is(.gate-header,.public-header){position:relative;z-index:12;box-sizing:border-box;display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:16px;width:100%!important;max-width:none!important;height:var(--af-bar)!important;min-height:0!important;margin:0!important;padding:0 max(24px,calc((100% - 1232px)/2))!important;background:#fff;border-bottom:1px solid var(--af-line);overflow:visible}
body:is(.gate-page,.form-page) :is(.gate-header,.public-header) .af-mark{display:block!important;flex:0 0 auto;height:var(--af-logo);margin:var(--af-logo-top) 0 calc(-1 * var(--af-logo-overhang) - 1px)!important;min-height:0!important;white-space:nowrap;line-height:0}
/* The hanging lockup (overhang 8-10px) must not touch the first element of the page: 12px of margin below the bar on every public-header page (margin, so pages that already pad their main keep that padding). Desktop only; phones have no overhang. */
@media(min-width:761px){body:is(.gate-page,.form-page) .public-header + main{margin-top:calc(var(--af-logo-overhang) + 12px)}}
body:is(.gate-page,.form-page) :is(.public-header nav,.gate-header .gate-actions){display:flex!important;flex:0 0 auto;flex-wrap:nowrap;align-items:center;gap:8px;width:auto;margin-left:auto}
body.form-page .public-header>.quiet-link{font-size:16px;font-weight:700;letter-spacing:0;text-transform:none}
body:is(.gate-page,.form-page) :is(.public-header nav a,.gate-header .gate-login,.gate-header .gate-join,.gate-header .gate-social a){display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;box-sizing:border-box;min-height:44px;height:44px;padding:0 16px;border:1px solid var(--af-line);border-radius:4px;background:#fff;color:var(--af-ink);font:700 16px/1 var(--af-font-body);letter-spacing:0;text-transform:none;text-decoration:none;white-space:nowrap}
body:is(.gate-page,.form-page) :is(.public-header nav a,.gate-header .gate-login,.gate-header .gate-join,.gate-header .gate-social a):hover{border-color:var(--af-ink);background:#fff;color:var(--af-ink)}
body:is(.gate-page,.form-page) :is(.public-header nav a.af-form-join,.gate-header .gate-join){background:var(--af-red);border-color:var(--af-red);color:#fff}
body:is(.gate-page,.form-page) :is(.public-header nav a.af-form-join,.gate-header .gate-join):hover{background:#a81f1f;border-color:#a81f1f;color:#fff}
body:is(.gate-page,.form-page) :is(.public-header nav a,.gate-header .gate-login,.gate-header .gate-join,.gate-header .gate-social a):focus-visible{outline:3px solid var(--af-ink);outline-offset:2px}
body:is(.gate-page,.form-page) .gate-header .gate-social{display:flex;gap:0}
body:is(.gate-page,.form-page) .gate-header .gate-social a{width:44px;padding:0}
body:is(.gate-page,.form-page) .gate-header .gate-social svg{width:17px;height:17px;fill:currentColor}
@media(max-width:760px){
  body:is(.gate-page,.form-page) :is(.gate-header,.public-header){min-height:64px!important;height:64px!important;padding:0 16px!important;gap:8px}
  body:is(.gate-page,.form-page) :is(.gate-header,.public-header) .af-mark{margin:0!important}
  body:is(.gate-page,.form-page) :is(.public-header nav,.gate-header .gate-actions){gap:6px}
  body:is(.gate-page,.form-page) :is(.public-header nav a,.gate-header .gate-login,.gate-header .gate-join,.gate-header .gate-social a){min-height:44px;height:44px;padding:0 11px;letter-spacing:0}
  body:is(.gate-page,.form-page) .gate-header .gate-social a{width:44px;padding:0}
}
@media(width < 480px){.public-header .af-join__rest{display:none}}
@media(min-width:480px) and (max-width:560px){body.form-page.account-page .public-header nav a{padding-inline:5px}}
/* 320px phones: tighter gutters; the secondary "For crypto teams" link on /account/ yields so the bar stays one row without overflow */
@media(max-width:360px){body:is(.gate-page,.form-page) :is(.gate-header,.public-header){padding-inline:12px!important}}
@media(max-width:400px){body:is(.gate-page,.form-page) .account-nav-team{display:none!important}}
}

/* 1022 TG-first: signed-out gate box (3-step strip + one primary) and the Telegram block at the top of step 1.
   Pattern: Stripe Checkout / Linear onboarding step list, current step = inverted ink block (form, not colour alone). */
@layer pages {
.gate-box{padding:18px 20px 20px}
.gate-steps{list-style:none;margin:0 0 16px;padding:0;display:grid;grid-template-columns:1fr;gap:6px}
.gate-steps li{display:flex;align-items:center;gap:12px;min-width:0;padding:10px 12px;background:#fff;border-top:4px solid var(--af-line);color:#3a4250;font-size:16px;font-weight:600;line-height:1.25}
.gate-steps li[aria-current="step"]{background:var(--af-ink);border-top-color:var(--af-red);color:#fff;font-weight:800}
.gate-steps__n{display:inline-grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border:2px solid currentColor;font-size:16px;font-weight:800;font-variant-numeric:tabular-nums}
.gate-steps li[aria-current="step"] .gate-steps__n{background:var(--af-red-fill);border-color:var(--af-red-fill);color:#fff}
.gate-steps__t{min-width:0;overflow-wrap:anywhere}
.gate-box p{margin:0 0 10px;max-width:62ch;font-size:16px;font-weight:600}
.gate-box .gate-box__need{font-weight:500;color:#2b323d}
.gate-box .gate-box__cta{margin:14px 0 0;display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.gate-box .gate-box__cta .button{min-height:50px}
.gate-box [data-partner-recheck][hidden],.gate-box [data-candidate-recheck][hidden]{display:none}
@media(min-width:700px){
  .gate-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .gate-steps li{align-items:flex-start}
}
@media(max-width:480px){.gate-box .gate-box__cta .button--primary{width:100%;justify-content:space-between}}
.form-step .tg-first__title{margin-bottom:10px}
.form-step .tg-first{margin:0 0 24px}
.form-step .tg-first:not(.tg-profile-field){display:grid;grid-template-columns:minmax(0,1fr)}
@media(max-width:480px){.tg-first:not(.tg-profile-field) .tg-gate [data-tg-stage="start"]{display:block}.tg-first:not(.tg-profile-field) .tg-gate [data-tg-stage="start"] p{margin-bottom:10px;overflow-wrap:anywhere}}
}
/* Talent: hide the "Start your profile" route card while the sign-in gate box is showing. */
.form-shell:has([data-candidate-auth]:not([hidden])) .route-chooser{display:none}
/* Partners step 1: "Connect your accounts" row (X, LinkedIn, Telegram). Green is a status accent only. */
.connect-row{margin:0 0 28px}
.connect-row__help{margin:0 0 14px;font-size:var(--af-14);color:var(--af-ink-2)}
.connect-row__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:stretch}
.connect-tile{position:relative;display:flex;flex-direction:column;gap:10px;min-width:0;padding:16px 16px 18px;background:var(--af-surface-strong);border:1px solid var(--af-line);border-top:4px solid var(--af-ink);border-radius:var(--af-radius);box-shadow:var(--af-shadow-plate);transition:transform .18s ease,box-shadow .18s ease}
.connect-tile:hover,.connect-tile:focus-within{transform:translateY(-2px);box-shadow:var(--af-shadow-lift)}
.connect-tile[data-state="connected"]{border-top-color:var(--af-good)}
.connect-tile__head{display:flex;align-items:center;gap:10px}
.connect-tile__logo{width:26px;height:26px;flex:none;color:var(--af-ink)}
.connect-tile__name{margin:0;font-family:var(--af-font-force);font-size:var(--af-t-h3);font-weight:800;line-height:1.1}
.connect-tile__status{display:flex;align-items:center;gap:10px;margin:0;font-size:var(--af-t-label);font-weight:700;color:var(--af-ink);overflow-wrap:anywhere}
.connect-tile[data-state="none"] .connect-tile__status,.connect-tile[data-state="checking"] .connect-tile__status{color:var(--af-ink-2);font-weight:600}
.connect-dot{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex:none;border-radius:50%;border:2px solid var(--af-muted);background:transparent;box-sizing:border-box}
.connect-tile[data-state="pending"] .connect-dot{border-style:dashed;border-color:var(--af-ink)}
.connect-tile[data-state="connected"] .connect-dot{border-color:var(--af-good);background:var(--af-good);box-shadow:0 0 0 4px rgba(25,116,67,.16),0 0 12px rgba(25,116,67,.55)}
.connect-tile[data-state="connected"] .connect-dot::after{content:"\2713";color:#fff;font-size:12px;font-weight:800;line-height:1}
.connect-tile__action{margin-top:auto}
.connect-tile__hint{margin:0;font-size:var(--af-14);line-height:1.5;color:var(--af-ink-2)}
.connect-tile__hint-on{display:none}
.connect-tile[data-state="connected"] .connect-tile__hint-on{display:inline}
.connect-tile[data-state="connected"] .connect-tile__hint-off{display:none}
.connect-tile:has(.field__error:not(:empty)) .connect-tile__hint{display:none}
.connect-row .connect-tile--tg .tg-gate{margin-top:auto}
.connect-tile--tg .field__help{display:none}
.connect-tile__action .button{min-height:44px;white-space:nowrap}
.connect-tile .field__error:empty{display:none}
.connect-tile .field{margin:0}
.connect-row .connect-tile .tg-gate{margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.connect-row .connect-tile .tg-gate__head{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.connect-row .connect-tile .tg-gate [data-tg-stage="start"]{display:block}
.connect-row .connect-tile .tg-gate [data-tg-stage="start"] p{margin:0 0 6px;font-size:var(--af-125);overflow-wrap:break-word}
.connect-row .connect-tile .tg-gate__linked strong{display:none}
.connect-row .connect-tile .tg-gate__linked{justify-content:flex-start}
.connect-row .connect-tile .tg-gate [data-tg-start]{width:100%;justify-content:center}
@media(max-width:760px){.connect-row__grid{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){.connect-tile{transition:none}.connect-tile:hover,.connect-tile:focus-within{transform:none}}
/* Inline unlink confirm (telegram-link.js askInline): question line, then the destructive button and Cancel, in the tile's action area. */
.unlink-confirm{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;flex:1 1 100%;margin-top:8px}
.unlink-confirm p{margin:0;flex:1 1 100%;font-size:var(--af-14);line-height:1.45;font-weight:600;color:var(--af-ink)}
.unlink-confirm .button{min-height:44px}
.connect-tile__action [data-connect-unlink]:not([hidden]){width:100%}
.connect-row .connect-tile .tg-gate [data-tg-unlink]{width:100%;justify-content:center}
.unlink-confirm .button--primary::after{content:none}
