:root { color-scheme: light; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: #10214c; background: #f4f7fd; }
* { box-sizing: border-box; }
body { display: block; margin: 0; min-height: 100vh; overflow: auto; background: radial-gradient(circle at 10% 8%, #e9efff 0, transparent 34rem), #f4f7fd; }
button, input { font: inherit; }
.prelaunch-shell { width: 100%; min-height: calc(100vh - 64px); padding: 0; display: grid; grid-template-columns: minmax(330px, .78fr) minmax(480px, 1.22fr); text-align: left; border-radius: 0; background: transparent; box-shadow: none; }
.welcome-panel { padding: clamp(40px, 6vw, 78px); color: #fff; background: linear-gradient(160deg, #17377a 0%, #0d255f 58%, #162255 100%); display: flex; flex-direction: column; justify-content: center; position: relative; overflow: hidden; }
.welcome-panel::after { content: ""; position: absolute; width: 340px; height: 340px; right: -180px; bottom: -150px; border-radius: 50%; background: rgba(255,255,255,.05); }
.brand-logo { width: min(190px, 56%); height: auto; margin-bottom: 34px; filter: drop-shadow(0 10px 24px rgba(0,0,0,.16)); }
.eyebrow, .step-label { display: block; color: #fbbc20; font-size: .78rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
h1 { max-width: 560px; margin: 14px 0 18px; font-size: clamp(2.35rem, 4.2vw, 4rem); line-height: 1.02; letter-spacing: -.042em; }
.welcome-panel h1 { color: #fff; text-transform: none; }
.welcome-copy { max-width: 610px; margin: 0; color: #e9efff; font-size: clamp(1.04rem, 1.7vw, 1.28rem); line-height: 1.55; }
.benefit-list { list-style: none; display: grid; gap: 14px; margin: 34px 0 26px; padding: 0; }
.benefit-list li { display: grid; grid-template-columns: 24px 1fr; column-gap: 12px; }
.benefit-list li::before { content: "✓"; grid-row: 1 / 3; display: grid; place-items: center; align-self: start; width: 24px; height: 24px; border-radius: 50%; color: #102968; background: #fbbc20; font-weight: 900; }
.benefit-list strong { font-size: 1rem; }
.benefit-list span { margin-top: 3px; color: #cdd8f4; font-size: .92rem; }
.catalog-notice { align-self: flex-start; margin: 0; padding: 11px 16px; border: 1px solid rgba(255,255,255,.24); border-radius: 999px; color: #fff; font-size: .85rem; font-weight: 800; }
.registration-card { align-self: center; width: min(680px, calc(100% - 56px)); min-height: 570px; margin: 36px auto; padding: clamp(32px, 4vw, 52px); border: 1px solid #e4e8f0; border-radius: 24px; background: rgba(255,255,255,.98); box-shadow: 0 22px 54px rgba(16,41,104,.10); }
.registration-card .step-label { color: #e5191d; }
h2 { margin: 9px 0 8px; font-size: clamp(2rem, 4vw, 3rem); letter-spacing: -.035em; }
.form-intro { margin: 0 0 28px; color: #66718a; }
.form-progress { display: flex; align-items: center; gap: 12px; margin: 0 0 30px; color: #929bad; font-size: .8rem; font-weight: 800; }
.form-progress span { display: flex; align-items: center; gap: 7px; white-space: nowrap; }
.form-progress b { display: grid; place-items: center; width: 25px; height: 25px; border-radius: 50%; background: #eef1f6; color: #6b7690; }
.form-progress span.active { color: #102968; }
.form-progress span.active b { color: #fff; background: #102968; }
.form-progress i { width: 54px; height: 1px; background: #dce2ec; }
.form-step[hidden] { display: none; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 17px; }
label { display: grid; gap: 7px; color: #24345e; font-size: .86rem; font-weight: 800; }
.full-field { grid-column: 1 / -1; }
input { width: 100%; min-height: 48px; padding: 0 14px; border: 1px solid #ccd5e5; border-radius: 11px; outline: none; color: #10214c; background: #fbfcff; transition: border-color .18s, box-shadow .18s; }
input:focus { border-color: #254b9b; box-shadow: 0 0 0 4px rgba(37,75,155,.12); }
.consent-field { display: grid; grid-template-columns: 20px 1fr; align-items: start; gap: 10px; margin: 22px 0 0; color: #59657d; font-weight: 600; line-height: 1.45; }
.consent-field input { width: 18px; min-height: 18px; margin: 2px 0 0; accent-color: #102968; }
.field-message, .form-message { min-height: 20px; margin: 8px 0 0; color: #59708d; font-size: .84rem; font-weight: 700; }
.form-message { color: #c4141a; }
.register-button { width: 100%; min-height: 52px; margin-top: 20px; border: 0; border-radius: 12px; color: #fff; background: #e5191d; box-shadow: 0 10px 22px rgba(229,25,29,.18); font-weight: 900; cursor: pointer; }
.register-button:hover { background: #c91217; }
.register-button:disabled { opacity: .68; cursor: wait; }
.privacy-note { display: block; margin-top: 13px; text-align: center; color: #778198; line-height: 1.4; }
.confirmation-card { min-height: 520px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.confirmation-card[hidden] { display: none; }
.questionnaire-card[hidden] { display: none; }
.questionnaire-card { max-height: calc(100vh - 136px); overflow-y: auto; padding-right: 6px; scrollbar-color: #b8c4da transparent; }
.questionnaire-card fieldset { margin: 24px 0 0; padding: 0; border: 0; }
.questionnaire-card legend { margin-bottom: 11px; color: #1a2f61; font-size: .96rem; font-weight: 900; }
.choice-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.choice-grid.two-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.choice-grid.four-columns { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.choice-card { display: block; position: relative; cursor: pointer; }
.choice-card input { position: absolute; width: 1px; height: 1px; min-height: 0; opacity: 0; pointer-events: none; }
.choice-card span { min-height: 44px; padding: 10px 12px; display: flex; align-items: center; justify-content: center; border: 1px solid #ccd5e5; border-radius: 11px; color: #34456e; background: #fbfcff; font-size: .84rem; font-weight: 800; text-align: center; transition: border-color .18s, background .18s, box-shadow .18s; }
.choice-card input:checked + span { border-color: #17377a; color: #102968; background: #eaf0ff; box-shadow: 0 0 0 2px rgba(23,55,122,.12); }
.choice-card input:focus-visible + span { outline: 3px solid rgba(37,75,155,.2); outline-offset: 2px; }
.survey-other { margin-top: 12px; }
.survey-other[hidden] { display: none; }
.questionnaire-actions { margin-top: 8px; grid-template-columns: minmax(140px, .7fr) minmax(180px, 1fr); }
.confirmation-icon { display: grid; place-items: center; width: 80px; height: 80px; margin-bottom: 25px; border-radius: 50%; color: #fff; background: #168250; box-shadow: 0 14px 34px rgba(22,130,80,.24); font-size: 2.2rem; font-weight: 900; }
.confirmation-card p { max-width: 540px; color: #59657d; font-size: 1.05rem; line-height: 1.65; }
.confirmation-card strong { margin-top: 10px; color: #102968; font-size: 1.3rem; }
.confirmation-note { margin-top: 26px; padding: 12px 17px; border-radius: 12px; color: #805500; background: #fff6da; font-weight: 800; }
.form-actions { display: grid; grid-template-columns: 120px 1fr; gap: 12px; }
.form-actions .register-button { margin-top: 4px; }
.back-button { min-height: 52px; margin-top: 4px; border: 1px solid #ccd5e5; border-radius: 12px; color: #24345e; background: #fff; font-weight: 800; cursor: pointer; }
.security-footer { min-height: 64px; padding: 16px 24px; display: flex; align-items: center; justify-content: center; gap: 10px; color: #61708a; background: #fff; border-top: 1px solid #e5e9f1; font-size: .84rem; text-align: center; }
.security-footer span:first-child { color: #168250; font-size: .7rem; transform: rotate(45deg); }
.security-footer strong { color: #21345f; }
@media (max-width: 900px) { .prelaunch-shell { display: block; } .welcome-panel { min-height: auto; padding: 38px 24px 46px; } .brand-logo { width: 190px; margin-bottom: 28px; } .benefit-list { margin: 30px 0 24px; } .registration-card { width: calc(100% - 28px); margin: -16px auto 28px; position: relative; } }
@media (max-width: 560px) { .welcome-panel { padding: 30px 20px 42px; } .brand-logo { width: 150px; } .registration-card { width: calc(100% - 24px); min-height: 0; padding: 28px 20px; border-radius: 20px; } .form-grid { grid-template-columns: 1fr; } .full-field { grid-column: auto; } h2 { font-size: 2rem; } .form-progress i { width: 26px; } .form-actions { grid-template-columns: 96px 1fr; } .questionnaire-card { max-height: none; overflow: visible; } .choice-grid, .choice-grid.two-columns { grid-template-columns: 1fr 1fr; } .choice-grid.four-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); } .questionnaire-actions { grid-template-columns: 1fr; } .questionnaire-actions .back-button { order: 2; } .security-footer { flex-wrap: wrap; gap: 6px 9px; } }
