/* d29-signup - the LaunchPad application form (0929 design, GENERATED by tools/port.py).
   1006: /signup is retired (301 to /launchpad); the form lives in the /launchpad hero and this sheet
   is linked from there. The /signup page layout rules (su-hero, su-sec, su-grid, su-media) are gone. */
.d29 .d29-sr {position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;}
.d29 [hidden] {display: none !important;}
.d29 .d29-hp {position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden;}
.d29 .su-plan {display: inline-block; margin-bottom: var(--stack-s); padding: .5rem .9rem; border: 1px solid var(--rule); border-radius: 999px; background: var(--surface); font-weight: 600; color: var(--ink); font-size: var(--fs-small);}
.d29 .su-scope {font-size: var(--fs-small); color: var(--muted); max-width: var(--measure);}
.d29 .su-form {display: block;}
.d29 .su-form .fstep + .fstep {margin-top: var(--stack-l); padding-top: var(--stack-l); border-top: 1px solid var(--rule);}
.d29 .su-form[data-steps="on"] .fstep + .fstep {margin-top: 0; padding-top: 0; border-top: 0;}
.d29 .su-form .fstep[hidden] {display: none;}
.d29 .su-form legend {font: 600 var(--fs-eyebrow)/1.4 var(--sans) !important; letter-spacing: var(--track-eyebrow); text-transform: uppercase; color: var(--muted) !important; margin-bottom: .75rem !important;}
.d29 .su-form legend b {color: var(--accent); font-weight: 600;}
.d29 .fstep-h {font: 400 clamp(1.75rem, 1.4rem + 1.2vw, 2.5rem)/1.15 var(--serif); color: var(--ink); letter-spacing: -.015em; margin-bottom: var(--stack-m); outline: none;}
.d29 .d29-fgrid {display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem var(--col-gap);}
.d29 .d29-fgrid .d29-full {grid-column: 1 / -1;}
.d29 .su-form .d29-of-req {font: 600 .6875rem/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin-left: .4rem;}
.d29 .su-form label .d29-hint {display: inline; font-weight: 400; margin: 0 0 0 .4rem;}
.d29 .d29-of-msg {display: block; margin-top: .4rem; font-size: .875rem; font-weight: 600; color: #A12622;}
.d29 .d29-of-msg[hidden] {display: none;}
.d29 .d29-field.is-bad input, .d29 .d29-field.is-bad select, .d29 .d29-field.is-bad textarea {border-color: #A12622 !important;}
.d29 .su-form .d29-q {font-weight: 600; color: var(--ink); font-size: .9375rem; margin-bottom: .75rem;}
.d29 .d29-chips {display: flex; flex-wrap: wrap; gap: .5rem;}
.d29 .su-form .d29-chips label {position: relative; display: inline-flex; margin: 0; font-weight: 400;}
.d29 .d29-chips input {position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer;}
.d29 .d29-chips span {display: inline-flex; align-items: center; min-height: 44px; padding: .55rem 1rem; border: 1px solid rgba(0,0,0,.18); border-radius: 999px; background: var(--surface); color: var(--ink); font-size: .9375rem; transition: background-color .15s, border-color .15s, color .15s;}
.d29 .d29-chips label:hover span {border-color: var(--ink);}
.d29 .d29-chips input:checked + span {background: var(--ink); border-color: var(--ink); color: #fff;}
.d29 .d29-chips input:focus-visible + span {outline: 2px solid var(--focus); outline-offset: 2px;}
.d29 .d29-choice .d29-hint {margin-top: .75rem;}
.d29 .d29-review-rail {display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--col-gap); margin-bottom: var(--stack-m); border-top: 1px solid var(--rule);}
.d29 .d29-review-rail[hidden] {display: none;}
.d29 .d29-review-rail > div {display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 1rem; padding-block: .85rem; border-bottom: 1px solid var(--rule);}
.d29 .d29-review-rail dt {grid-column: 1; font: 600 var(--fs-eyebrow)/1.4 var(--sans); letter-spacing: var(--track-eyebrow); text-transform: uppercase; color: var(--muted);}
.d29 .d29-review-rail dd {grid-column: 1; margin: .15rem 0 0; color: var(--ink); overflow-wrap: anywhere;}
.d29 .d29-review-rail a {grid-column: 2; grid-row: 1 / span 2; align-self: center; font-size: var(--fs-small); font-weight: 600; color: var(--ink); text-underline-offset: 3px;}
.d29 .su-form .d29-optin {display: flex; gap: .75rem; align-items: flex-start; margin-top: var(--stack-m); font-weight: 400; font-size: var(--fs-small); color: var(--text);}
.d29 .su-form .d29-optin input {width: 20px; height: 20px; margin-top: .15rem; flex: none; accent-color: var(--ink);}
.d29 .su-form .d29-fine {margin-top: 1.25rem; font-size: .875rem; color: var(--muted);}
.d29 .su-form .d29-fine a {color: var(--ink); text-underline-offset: 3px;}
.d29 .su-form .d29-fine[hidden] {display: none;}
.d29 .d29-form-actions {display: flex; flex-wrap: wrap; gap: .75rem; margin-top: var(--stack-m);}
.d29 .d29-form-actions [hidden] {display: none;}
.d29 .su-form .d29-btn [hidden] {display: none;}
.d29 .d29-of-sum {margin-top: 1rem; font-weight: 600; color: var(--ink);}
@media (max-width: 640px){
.d29 .d29-fgrid, .d29 .d29-review-rail {grid-template-columns: 1fr;}
.d29 .d29-form-actions .d29-btn {width: 100%; justify-content: center;}
}
