:root { color-scheme:dark; --night:#090412; --panel:#140b23; --text:#f4edff; --muted:#bdb0d2; --lavender:#d4b0ff; --edge:#9c72d33d; --font-ui:'Manrope',sans-serif; --font-display:'Sora',sans-serif; background:var(--night); color:var(--text); font-family:var(--font-ui); }
* { box-sizing:border-box; }
body { margin:0; min-width:280px; min-height:100svh; background:radial-gradient(ellipse at 75% 5%,#44216d3d,transparent 55%),var(--night); }
button,input,textarea { font:inherit; }
button,a,input,textarea { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
button:disabled { cursor:wait; opacity:.65; }
a { color:inherit; }
[hidden] { display:none !important; }
::selection { background:#8c57c7; color:#fff; }
:focus-visible { outline:2px solid #e1bdff; outline-offset:5px; }
input:focus-visible,textarea:focus-visible { outline-offset:3px; }
h1:focus,h2:focus,main:focus { outline:none; }
.skip-link { position:fixed; z-index:5; top:-100px; left:20px; background:var(--panel); padding:16px; }
.skip-link:focus { top:15px; }
.shell { position:relative; max-width:1280px; margin:auto; padding:0 clamp(20px,5vw,64px); }
.sky { position:fixed; inset:0; pointer-events:none; overflow:hidden; }
.sky::before { content:''; position:absolute; width:900px; height:900px; left:-500px; top:5%; border-radius:50%; background:radial-gradient(circle,#4f15891a,transparent 64%); }
.stars,.stardust { position:absolute; inset:-40px; background-image:radial-gradient(circle at 9% 14%,#dabcf3ab 0 1px,transparent 1.8px),radial-gradient(circle at 38% 66%,#deb6ff80 0 1px,transparent 1.6px),radial-gradient(circle at 69% 22%,#dcb9ff85 0 .8px,transparent 1.6px),radial-gradient(circle at 91% 79%,#c9a4ff70 0 .7px,transparent 1.5px); background-size:431px 473px; animation:drift 35s ease-in-out infinite alternate; }
.stardust { transform:rotate(180deg); background-size:613px 577px; opacity:.4; animation-duration:47s; }
.header { min-height:112px; display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:1px solid #cfb4ff16; }
.wordmark { display:flex; gap:13px; align-items:center; text-decoration:none; font:500 13px/1.5 var(--font-display); letter-spacing:.08em; }
.wordmark-to { color:#b3a0cb; font-size:10px; }
.wordmark-sub { display:block; color:#b5a2cb; font:500 9px/1.8 var(--font-ui); letter-spacing:.23em; }
.brand-orbit { display:grid; place-items:center; width:43px; height:43px; border:1px solid #ad7ee970; border-radius:50%; font-size:22px; color:#e0c2ff; box-shadow:inset 0 0 13px #a679ff29,0 0 18px #6a22b132; }
.header-badge { display:flex; gap:9px; align-items:center; color:var(--muted); font-size:11px; border:1px solid var(--edge); padding:9px 14px; border-radius:50px; background:#a66bdd09; }
.header-badge>span { width:5px; height:5px; background:#d4b0ff; border-radius:50%; box-shadow:0 0 9px #aa6dec; }
.footer { display:flex; justify-content:space-between; gap:15px; border-top:1px solid #cfb4ff16; margin-top:64px; padding:23px 0 28px; font-size:11px; color:#a796ba; }
main { min-height:60vh; }
.welcome { display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(35px,6vw,90px); align-items:center; padding:68px 0 15px; }
.eyebrow { display:flex; align-items:center; gap:10px; margin:0 0 20px; color:var(--lavender); font-size:10px; font-weight:600; line-height:1.5; letter-spacing:.18em; text-transform:uppercase; }
.eyebrow::before { content:''; display:block; width:21px; height:1px; background:var(--lavender); }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { font-family:var(--font-display); font-weight:500; }
h1 { font-size:clamp(38px,4.3vw,58px); line-height:1.12; letter-spacing:-.05em; margin-bottom:25px; }
h1 em { font-style:normal; color:#d3a2fa; }
.lead { color:#c7bbd8; font-size:16px; line-height:1.8; max-width:460px; }
.orbit-art { position:relative; width:240px; height:170px; margin:32px 0 0 26px; opacity:.85; }
.orbit-art::before { content:''; position:absolute; inset:8px -35px -8px; border-radius:50%; background:radial-gradient(ellipse,#9954e52b,transparent 65%); }
.orbit-art svg { width:100%; height:100%; overflow:visible; }
.orbit-dot { animation:breathe 6s ease-in-out infinite alternate; transform-origin:center; }
.glass { border:1px solid #b07be45c; border-radius:27px; background:radial-gradient(ellipse at 5% 0%,#6d2eae24,transparent 65%),linear-gradient(140deg,#20122edd,#100a1def); box-shadow:inset 0 1px #f3d5ff30,0 24px 65px #0004,0 0 40px #8942d40b; }
.welcome-card { padding:36px; position:relative; }
.welcome-card::before { content:''; position:absolute; top:-1px; left:15%; right:15%; height:1px; background:linear-gradient(90deg,transparent,#dbb9ff,transparent); box-shadow:0 0 15px 2px #ac5bff50; }
.small-label { color:var(--lavender); font-size:10px; font-weight:650; letter-spacing:.14em; text-transform:uppercase; }
.welcome-card h2 { font-size:24px; line-height:1.3; letter-spacing:-.035em; margin:14px 0 14px; }
.welcome-card p { color:#c6b9d4; font-size:14px; line-height:1.8; }
.welcome-facts { list-style:none; padding:0; margin:24px 0; display:grid; gap:15px; }
.welcome-facts li { display:flex; align-items:flex-start; gap:13px; color:#d8cce6; font-size:13px; line-height:1.65; }
.fact-icon { flex:0 0 25px; color:#d1adfa; font-size:17px; }
.button { min-height:54px; border-radius:100px; padding:15px 23px; border:1px solid #b084dc7a; display:inline-flex; gap:16px; justify-content:center; align-items:center; text-decoration:none; font-size:14px; font-weight:650; transition:transform 160ms,box-shadow 160ms,background 160ms; }
.primary { color:#fff; background:radial-gradient(ellipse at 45% 0,#ce9cfa55,transparent 70%),linear-gradient(#8d55ce,#67329f); border-color:#d4a1ff9e; box-shadow:inset 0 1px 1px #fbeaff8a,inset 0 -3px 7px #34124966,0 5px 24px #8843d42a; }
.primary:hover:not(:disabled) { background:linear-gradient(#9c65dc,#7840b4); box-shadow:inset 0 1px #fbeaff,0 5px 32px #ae63f23d; transform:translateY(-1px); }
.primary:active:not(:disabled) { transform:translateY(1px); }
.secondary { background:linear-gradient(150deg,#b888ee19,#130b21); color:#e1d3ed; border-color:#9475b450; box-shadow:inset 0 1px #ead5ff17; }
.secondary:hover:not(:disabled) { border-color:#cda6ee; }
.wide { width:100%; justify-content:space-between; }
.button .arrow { font-weight:400; font-size:22px; line-height:1; }
.fineprint { font-size:11px!important; line-height:1.7!important; color:#b6a4c9!important; margin:15px 0 0; }
.text-button { appearance:none; background:none; border:0; border-bottom:1px solid transparent; color:#cdb5e5; padding:12px 4px; min-height:44px; font-size:12px; }
.text-button:hover { color:#f5eaff; text-decoration:underline; text-underline-offset:5px; }
.resume { padding:16px; border:1px solid #b17ad37a; border-radius:15px; background:#8f4cb51a; margin-bottom:20px; }
.resume p { margin:0 0 10px; }
.resume strong { color:var(--text); font-size:14px; }
.resume .button { min-height:46px; font-size:12px; padding:10px 16px; }
.workspace { display:grid; grid-template-columns:230px minmax(0,1fr); gap:clamp(30px,5vw,72px); margin:55px auto 0; align-items:start; }
.rail { padding:22px 0; position:sticky; top:25px; }
.rail h2 { font-size:24px; line-height:1.35; letter-spacing:-.035em; margin-bottom:28px; }
.chapters { list-style:none; margin:0; padding:0; }
.chapters li { display:flex; align-items:center; gap:13px; padding:12px 0; color:#ab99bd; font-size:12px; }
.chapters li[aria-current=step] { color:#efddff; }
.chapters span { display:grid; place-items:center; width:29px; height:29px; border:1px solid #8466945c; border-radius:50%; color:#bb9ed0; font-size:10px; }
.chapters li[aria-current=step] span { background:#70409355; border-color:#c392ee; box-shadow:0 0 15px #b867ff29; color:#f3e2ff; }
.rail-note { margin:29px 0 0; padding-top:24px; border-top:1px solid #bfa0dc24; color:#b6a2c9; font-size:12px; line-height:1.9; }
.survey-panel { padding:32px 38px; min-width:0; }
.progress-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:12px; color:var(--lavender); font-size:10px; letter-spacing:.08em; }
progress { display:block; appearance:none; border:0; height:3px; width:100%; margin:0 0 32px; border-radius:20px; background:#342441; color:#bd87f0; }
progress::-webkit-progress-bar { background:#342441; border-radius:20px; }
progress::-webkit-progress-value { background:linear-gradient(90deg,#8750c4,#e3b7ff); border-radius:20px; box-shadow:0 0 12px #c171ff6e; transition:width 220ms; }
progress::-moz-progress-bar { background:#c796ef; }
.question-title { font-size:clamp(24px,2.3vw,33px); line-height:1.32; letter-spacing:-.038em; margin-bottom:16px; }
.question-help { color:#c0b0ce; font-size:14px; line-height:1.8; margin-bottom:25px; }
.optional { display:block; color:#b5a2c7; font-size:11px; font-family:var(--font-ui); font-weight:400; margin-top:11px; letter-spacing:0; }
.required-note { color:#dcc0f4; }
.feedback-fields { display:grid; gap:26px; }
.feedback-fields .field-label { line-height:1.7; }
.feedback-fields textarea { min-height:136px; }
.field-label { display:block; font-size:12px; color:#d1c0e0; margin:0 0 10px; }
textarea,input[type=text],input[type=email] { display:block; width:100%; min-width:0; border:1px solid #9c7ab059; color:#f3e9ff; border-radius:15px; padding:17px; background:#0e0717aa; font-size:16px; line-height:1.65; box-shadow:inset 0 2px 12px #0002; }
textarea { min-height:152px; resize:vertical; }
textarea::placeholder,input::placeholder { color:#a38caf; opacity:1; }
textarea:disabled { opacity:.55; }
.field-note { color:#ac96c1; font-size:11px; margin:10px 0 0; }
fieldset { margin:0; padding:0; border:0; min-width:0; }
.choices { display:grid; gap:10px; }
.choice { position:relative; display:flex; align-items:center; gap:13px; min-height:55px; padding:14px 17px; border:1px solid #9e7eb447; border-radius:15px; color:#dfd0eb; background:linear-gradient(140deg,#b780e80b,#10081b66); cursor:pointer; font-size:14px; line-height:1.5; transition:background 160ms,border-color 160ms; }
.choice:hover { border-color:#ac86cb; }
.choice:has(input:checked) { border-color:#c18ce9; background:linear-gradient(125deg,#7744a94a,#3d20583d); box-shadow:inset 0 1px #edd6ff1c,0 0 18px #9954cf10; color:#f5eaff; }
.choice input { appearance:none; width:19px; height:19px; border:1px solid #9777b0; border-radius:50%; margin:0; flex:0 0 19px; display:grid; place-content:center; }
.choice input:checked { border-color:#dfbcff; background:#cca0ff; box-shadow:0 0 12px #c180ef40; }
.choice input:checked::before { content:''; width:7px; height:7px; border-radius:50%; background:#35134f; }
.choice input[type=checkbox] { border-radius:5px; }
.choice input[type=checkbox]:checked::before { width:9px; height:5px; border-radius:0; background:none; border-left:2px solid #35134f; border-bottom:2px solid #35134f; transform:translateY(-1px) rotate(-45deg); }
.choice:has(input:disabled) { opacity:.5; cursor:default; }
.multi-choices { grid-template-columns:repeat(2,minmax(0,1fr)); }
.multi-choices .choice { align-items:center; font-size:13px; }
.selection-help { color:#cfb1e8; font-size:11px; line-height:1.7; margin:0 0 15px; min-height:19px; }
.route-note { border-left:2px solid #b280d5; padding:4px 0 4px 13px; color:#c9b1dc; font-size:12px; line-height:1.8; margin:0 0 25px; }
.choice-gap { margin-top:17px; }
.choice-gap .choice { font-size:12px; min-height:48px; background:transparent; }
.alternative-label { display:flex; align-items:center; gap:12px; color:#ad97bf; font-size:10px; margin:20px 0 12px; }
.alternative-label::after { content:''; flex:1; height:1px; background:#b892d425; }
.field-extra { margin-top:22px; }
.actions { display:flex; justify-content:space-between; gap:12px; margin-top:30px; }
.actions .button { min-width:120px; }
.skip-wrap { margin:9px 0 0; text-align:right; }
.saved-note { display:flex; align-items:center; gap:7px; font-size:10px; color:#baa6cc; margin:24px 0 0; }
.saved-note::before { content:''; width:4px; height:4px; background:#b890da; border-radius:50%; }
.topic-list { display:grid; gap:14px; }
.topic-row { display:grid; grid-template-columns:25px 1fr; gap:10px; align-items:center; }
.topic-number { color:#c398ea; font-size:11px; }
.topic-row label { min-width:0; }
.topic-row .field-label { font-size:11px; margin:0 0 6px; }
.topic-list input { padding:12px 15px; }
details { font-size:12px; color:#c6aedb; margin:16px 0; }
summary { cursor:pointer; min-height:44px; display:flex; align-items:center; gap:9px; }
summary::before { content:'+'; color:#d6acfa; font-size:17px; }
details[open] summary::before { content:'−'; }
details p { color:#bfaacd; line-height:1.8; margin-bottom:8px; }
.notice { border:1px solid #c49bc569; border-radius:13px; background:#291733; padding:15px 20px; color:#f0d6f1; font-size:13px; line-height:1.7; margin:20px 0; }
.error { color:#f9c5dc; font-size:13px; line-height:1.6; margin:20px 0 0; border-left:2px solid #dc9bbd; padding:3px 0 3px 13px; }
.review-heading { font-size:33px; line-height:1.3; letter-spacing:-.045em; margin:0 0 16px; }
.review-items { display:grid; gap:0; margin-top:26px; }
.review-item { padding:21px 0; border-bottom:1px solid #b895d52c; }
.review-top { display:flex; justify-content:space-between; align-items:baseline; gap:15px; }
.review-top h3 { margin:0; font-size:14px; line-height:1.6; }
.review-top button { padding:5px 0; min-height:35px; font-size:11px; }
.review-item p { margin:7px 0 0; font-size:14px; line-height:1.8; color:#cbbad9; white-space:pre-wrap; overflow-wrap:anywhere; }
.review-item p.empty { color:#a28caf; font-size:12px; }
.consent { display:flex; align-items:flex-start; gap:13px; margin-top:28px; color:#cfc0dd; font-size:12px; line-height:1.8; cursor:pointer; }
.consent input { flex:0 0 20px; width:20px; height:20px; margin:2px 0 0; accent-color:#bc85ec; }
.privacy-box { padding:20px; margin:24px 0; border:1px solid #bb8dea70; border-radius:18px; background:linear-gradient(145deg,#7941ac20,#110a1ee6); box-shadow:inset 0 1px #e3b7ff24; }
.privacy-box h3 { display:flex; align-items:center; gap:10px; margin:0 0 12px; font-size:14px; line-height:1.5; color:#eddcff; }
.privacy-box h3 svg { flex:0 0 24px; width:24px; height:24px; color:#d4b0ff; }
.privacy-box p { font-size:12px; margin:0; line-height:1.75; }
.privacy-box .consent { margin:17px 0 0; color:#eee0fa; }
.privacy-box .consent input { margin-top:3px; }
.privacy-box .privacy-choice { margin-top:14px; color:#bba7cc; font-size:11px; }
.privacy-box .error { margin-top:16px; color:#f9c5dc; }
.privacy-box:has(input:checked) { border-color:#c695ed; }
.consent-summary { margin-top:25px; padding:18px; border:1px solid #b895d53d; border-radius:15px; background:#8d57bd0b; }
.consent-summary p { font-size:12px; line-height:1.8; color:#cfc0dd; margin:0; }
.consent-summary .text-button { padding-left:0; margin-top:4px; }
.enrollment-field { margin-top:30px; padding:24px; border:1px solid #c294ee66; border-radius:20px; background:radial-gradient(ellipse at 100% 0,#9c52dd20,transparent 65%),#1b102980; box-shadow:inset 0 1px #e0b9ff26,0 0 30px #9c52dd0b; }
.enrollment-field h2 { font-size:24px; margin:10px 0 24px; }
.enrollment-field .fineprint { text-align:left; margin-bottom:0; }
.enrollment-field input[readonly] { opacity:.8; }
.completion-access { margin:25px 0 10px; }
.review-notice { margin:20px 0 0; font-size:12px; color:#bca6cb; line-height:1.8; }
.thank-you { width:min(100%,660px); margin:65px auto 0; padding:45px; text-align:center; }
.thanks-symbol { display:grid; place-items:center; width:82px; height:82px; margin:0 auto 30px; font-size:35px; color:#e4c4ff; border:1px solid #cb99f4; border-radius:50%; box-shadow:inset 0 0 25px #b170d433,0 0 40px #a759e02e; animation:arrive 500ms both; }
.thank-you h1 { font-size:42px; }
.thank-you p { color:#cbb9db; font-size:15px; line-height:1.85; }
.receipt { border-top:1px solid #ba93d835; padding-top:22px; margin-top:25px; color:#b99dcc!important; font-size:11px!important; }
.thank-you .button { margin-top:15px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.screen-enter { animation:arrive 250ms ease-out both; }
@keyframes drift { to { translate:12px -22px; } }
@keyframes breathe { to { opacity:.4; } }
@keyframes arrive { from { opacity:0; transform:translateY(7px); } to { opacity:1; transform:translateY(0); } }
body[data-hidden=true] *,body[data-hidden=true] *::before { animation-play-state:paused!important; }
@media (min-width:1300px) { .welcome { padding-top:85px; } }
@media (max-width:850px) {
  .shell { padding:0 25px; }
  .welcome { gap:32px; }
  .welcome-card { padding:25px; }
  .workspace { grid-template-columns:170px minmax(0,1fr); gap:25px; }
  .survey-panel { padding:28px; }
}
@media (max-width:650px) {
  .multi-choices { grid-template-columns:1fr; }
  .shell { padding:0 20px; }
  .header { min-height:88px; gap:12px; }
  .wordmark { font-size:11px; gap:10px; }
  .wordmark-sub { font-size:8px; }
  .brand-orbit { width:35px; height:35px; font-size:18px; }
  .header-badge { font-size:0; border:0; padding:0; background:none; }
  .header-badge>span { width:6px; height:6px; }
  .welcome { grid-template-columns:1fr; gap:25px; padding:35px 0 0; }
  h1 { font-size:40px; }
  .welcome .lead { font-size:14px; margin-bottom:0; }
  .welcome .eyebrow { font-size:9px; margin-bottom:18px; }
  .orbit-art { display:none; }
  .welcome-card { padding:25px; border-radius:23px; }
  .welcome-card h2 { font-size:21px; }
  .welcome-facts { margin:20px 0; gap:12px; }
  .workspace { display:block; margin-top:26px; }
  .rail { position:static; padding:0; }
  .rail h2,.rail-note,.rail .eyebrow { display:none; }
  .chapters { display:flex; gap:15px; margin:0 0 20px; }
  .chapters li { flex:1; gap:7px; padding:0; font-size:10px; line-height:1.5; }
  .chapters span { width:21px; height:21px; flex:0 0 21px; font-size:9px; }
  .survey-panel { padding:25px 20px; border-radius:23px; }
  .question-title { font-size:25px; }
  .question-help { font-size:13px; margin-bottom:21px; }
  .question-title .optional { font-size:10px; }
  progress { margin-bottom:26px; }
  .progress-heading { font-size:9px; }
  .choice { font-size:13px; padding:13px; }
  .actions { margin-top:26px; gap:9px; }
  .actions .button { min-width:0; padding:13px 18px; font-size:12px; }
  .actions .primary { flex:1; }
  .button { min-height:52px; }
  textarea { min-height:140px; padding:14px; }
  .footer { font-size:9px; margin-top:35px; flex-direction:column; gap:8px; }
  .review-heading { font-size:28px; }
  .thank-you { margin-top:35px; padding:33px 23px; }
  .thank-you h1 { font-size:33px; }
  .thank-you p { font-size:14px; }
}
@media (max-width:360px) { .shell { padding:0 14px; } .survey-panel { padding:23px 16px; } .chapters { gap:8px; } .chapters li { font-size:9px; gap:5px; } h1 { font-size:36px; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
