:root { --ink:#2a3358; --canvas:#f9fafb; --muted:#dfe1f5; --periwinkle:#7584d6; --violet:#7c5ce6; --pink:#ff9fd7; --line:rgba(165,164,250,.28); --font:Manrope,Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; background:var(--ink); }
body { min-width:320px; margin:0; background:var(--ink); color:var(--canvas); font-family:var(--font); }
a { color:inherit; text-decoration:none; }
.progress { position:fixed; inset:0 auto auto 0; z-index:20; width:0; height:3px; background:linear-gradient(90deg,var(--pink),var(--violet)); }
.topbar { position:fixed; inset:0 0 auto; z-index:10; display:flex; align-items:center; justify-content:space-between; padding:20px clamp(20px,5vw,72px); background:linear-gradient(180deg,rgba(21,28,61,.82),transparent); }
.brand { display:flex; align-items:center; gap:10px; color:#fff; font-size:11px; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.brand img { width:31px; height:31px; object-fit:contain; filter:drop-shadow(0 5px 12px rgba(128,229,255,.25)); }
.button { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:52px; padding:0 21px; border:0; border-radius:999px; background:linear-gradient(135deg,var(--periwinkle),var(--violet)); color:#fff; box-shadow:0 16px 36px rgba(117,132,214,.3); font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; transition:transform .25s ease,box-shadow .25s ease; }
.button:hover { transform:translateY(-2px); box-shadow:0 22px 46px rgba(117,132,214,.46); }
.eyebrow { margin:0 0 18px; color:#a5a4fa; font-size:11px; font-weight:800; letter-spacing:.2em; line-height:1.35; text-transform:uppercase; }
.hero { position:relative; display:grid; min-height:100svh; align-items:center; overflow:hidden; isolation:isolate; padding-top:72px; }
.hero video,.hero::after { position:absolute; inset:0; width:100%; height:100%; }
.hero video { z-index:-2; object-fit:cover; filter:saturate(.78) contrast(1.04); }
.hero::after { z-index:-1; content:""; background:linear-gradient(90deg,rgba(30,38,77,.95),rgba(42,51,88,.4) 58%,rgba(42,51,88,.2)),linear-gradient(0deg,rgba(42,51,88,.92),transparent 60%); }
.hero-copy { width:min(900px,90vw); padding:0 clamp(24px,10vw,150px); }
h1,h2 { margin:0; font-weight:700; letter-spacing:-.065em; line-height:.95; text-wrap:balance; }
.hero h1 { max-width:980px; font-size:clamp(3.1rem,6.2vw,7rem); }
.hero-meta { margin:25px 0 30px; color:rgba(249,250,251,.76); font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.scroll { position:absolute; right:clamp(22px,5vw,72px); bottom:28px; color:rgba(249,250,251,.68); font-size:10px; letter-spacing:.15em; text-transform:uppercase; }
.film,.days { display:grid; grid-template-columns:.78fr 1.22fr; gap:clamp(36px,8vw,128px); align-items:center; padding:clamp(84px,14vw,190px) clamp(24px,10vw,150px); }
.film { background:radial-gradient(circle at 82% 18%,rgba(165,164,250,.18),transparent 32%),var(--ink); }
.film h2,.days h2 { max-width:600px; font-size:clamp(2.7rem,5.6vw,6.2rem); }
.body-copy { max-width:44ch; margin:22px 0 0; color:rgba(249,250,251,.72); font-size:16px; line-height:1.65; }
.film-frame { padding:10px; border:1px solid rgba(165,164,250,.52); border-radius:24px; background:rgba(17,23,53,.7); box-shadow:0 32px 88px rgba(0,0,0,.25); }
.film-frame div { display:flex; justify-content:space-between; padding:8px 7px 14px; color:#a5a4fa; font-size:10px; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.film-frame video { display:block; width:100%; border-radius:15px; background:#101633; }
.chapters { padding:4vw clamp(24px,10vw,150px) 12vw; background:var(--canvas); color:var(--ink); }
.chapter-heading { padding:8vw 0 6vw; }
.chapter-heading h2 { max-width:730px; font-size:clamp(2.9rem,6vw,6.5rem); }
.chapter { display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,9vw,140px); align-items:center; min-height:84vh; }
.chapter:nth-of-type(odd) .chapter-media { order:2; }
.chapter-media { position:relative; min-height:min(640px,64vw); overflow:hidden; border-radius:26px; background:#dfe1f5; }
.chapter-media::after { position:absolute; inset:0; content:""; background:linear-gradient(135deg,rgba(117,132,214,.18),transparent 54%,rgba(255,159,215,.14)); mix-blend-mode:multiply; }
.chapter-media img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; filter:saturate(.74); }
.chapter-number { position:absolute; z-index:1; right:20px; bottom:17px; color:#fff; font-size:11px; font-weight:800; letter-spacing:.15em; }
.chapter h2 { max-width:620px; font-size:clamp(2.7rem,5.5vw,6rem); }
.chapter .body-copy { color:#465478; }
.days { background:#eef0fa; color:var(--ink); }
.days .body-copy { color:#465478; }
.day-list { display:grid; gap:4px; }
.day-list div { display:flex; justify-content:space-between; gap:20px; padding:22px 0; border-bottom:1px solid rgba(42,51,88,.16); }
.day-list span { color:var(--violet); font-size:11px; font-weight:800; letter-spacing:.15em; }
.day-list strong { font-size:clamp(1.65rem,3vw,3.1rem); letter-spacing:-.05em; }
.final { position:relative; display:grid; min-height:88vh; place-items:center; overflow:hidden; padding:80px 24px; text-align:center; background:radial-gradient(circle at 50% 20%,rgba(165,164,250,.25),transparent 35%),var(--ink); }
.final::before { position:absolute; content:""; width:min(800px,100vw); aspect-ratio:1; border:1px solid rgba(165,164,250,.18); border-radius:50%; box-shadow:0 0 100px rgba(117,132,214,.12); transform:rotate(-18deg) scaleY(.44); }
.final > * { position:relative; }
.final h2 { max-width:820px; font-size:clamp(3rem,7vw,8rem); }
.final .body-copy { margin:24px auto 30px; }
.footer { padding:30px; background:#1d2547; color:#a5a4fa; text-align:center; font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.apply-page,.thank-page { min-height:100vh; background:radial-gradient(circle at 50% -12%,rgba(165,164,250,.45),transparent 32%),#f9fafb; color:var(--ink); }
.light-topbar { position:sticky; background:rgba(249,250,251,.84); border-bottom:1px solid rgba(117,132,214,.16); backdrop-filter:blur(18px); }
.light-topbar .brand { color:var(--ink); }
.back { color:#545c9e; font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.apply-intro { width:min(1080px,calc(100% - 48px)); margin:auto; padding:clamp(88px,12vw,152px) 0 60px; text-align:center; }
.apply-intro h1 { font-size:clamp(3.1rem,7.5vw,7rem); }
.apply-intro .body-copy { margin-left:auto; margin-right:auto; color:#465478; }
.steps,.form-card { width:min(1080px,calc(100% - 48px)); margin:0 auto; }
.steps { display:grid; grid-template-columns:repeat(3,1fr); overflow:hidden; border:1px solid rgba(117,132,214,.2); border-radius:20px; background:rgba(255,255,255,.64); box-shadow:0 18px 42px rgba(117,132,214,.12); }
.steps div { min-height:128px; padding:24px; border-right:1px solid rgba(117,132,214,.16); }
.steps .step-active { background:linear-gradient(135deg,rgba(117,132,214,.10),rgba(165,164,250,.16)); }
.steps div:last-child { border-right:0; }
.steps span { display:block; margin-bottom:8px; color:var(--violet); font-size:11px; font-weight:800; letter-spacing:.15em; }
.steps strong { display:block; font-size:1.06rem; }.steps small { display:block; margin-top:7px; color:#7c84a8; }
.form-card { margin-top:28px; padding:10px; border:1px solid rgba(117,132,214,.22); border-radius:26px; background:rgba(255,255,255,.78); box-shadow:0 30px 84px rgba(117,132,214,.18); }
.package-choice { width:min(1080px,calc(100% - 48px)); margin:56px auto 0; padding:clamp(28px,5vw,56px); border:1px solid rgba(117,132,214,.18); border-radius:28px; background:rgba(255,255,255,.52); box-shadow:0 18px 42px rgba(117,132,214,.10); }
.package-heading { max-width:680px; margin:0 auto 32px; text-align:center; }
.package-heading h2 { color:var(--ink); font-size:clamp(2.3rem,4.5vw,4.6rem); }
.package-intro { margin:18px auto 0; color:#465478; font-size:15px; line-height:1.65; }
.package-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; align-items:start; }
.package-card { overflow:hidden; border:1px solid rgba(117,132,214,.20); border-radius:22px; background:rgba(255,255,255,.72); box-shadow:0 14px 32px rgba(117,132,214,.12); }
.package-card-featured { border-color:rgba(124,92,230,.38); box-shadow:0 18px 42px rgba(124,92,230,.17); }
.package-card-premium { border-color:rgba(255,159,215,.42); box-shadow:0 18px 42px rgba(165,164,250,.20); }
.package-card img { display:block; width:100%; height:auto; }
.package-card-copy { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px 17px; color:var(--ink); }
.package-card-copy strong { font-size:13px; letter-spacing:-.02em; }
.package-card-copy span { color:var(--violet); font-size:13px; font-weight:800; white-space:nowrap; }
.package-note { margin:24px auto 0; max-width:70ch; color:#7c84a8; text-align:center; font-size:12px; line-height:1.6; }
.form-label { padding:19px 22px 14px; color:#545c9e; font-size:11px; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.form-shell { position:relative; min-height:3000px; overflow:hidden; border-radius:17px; background:#eef0fa; }
.form-frame { position:relative; z-index:1; display:block; width:100%; min-height:3000px; border:0; background:#f9fafb; opacity:0; transition:opacity .25s ease; }
.form-frame.loaded { opacity:1; }
.skeleton { position:absolute; inset:0; display:grid; align-content:start; gap:20px; padding:clamp(26px,6vw,70px); background:linear-gradient(135deg,#f9fafb,#eef0fa); }
.skeleton span { display:block; height:58px; border-radius:12px; background:linear-gradient(90deg,#e2e6fa 25%,#f9fafb 50%,#e2e6fa 75%); background-size:200% 100%; animation:shimmer 1.5s infinite; }.skeleton span:first-child { width:35%; height:16px; }.skeleton span:nth-child(2) { width:63%; height:36px; }
@keyframes shimmer { to { background-position:-200% 0; } }
.thank-page { color:#f9fafb; background:radial-gradient(circle at 15% 20%,rgba(124,92,230,.35),transparent 32%),radial-gradient(circle at 88% 72%,rgba(165,164,250,.26),transparent 35%),var(--ink); }
.thank-packages { margin-top:32px; color:var(--ink); }.thank-packages .eyebrow { color:var(--violet); }.thank-packages .package-heading h2 { color:var(--ink); }.thank-packages .package-intro { color:#465478; }
.thank-hero { display:grid; min-height:calc(100vh - 72px); place-items:center; padding:80px 24px; }.thank-panel { width:min(720px,100%); padding:clamp(30px,7vw,68px); border:1px solid rgba(165,164,250,.35); border-radius:28px; background:rgba(20,27,62,.65); box-shadow:0 30px 100px rgba(10,13,35,.34); }.thank-mark { width:55px; height:55px; margin-bottom:26px; object-fit:contain; }.thank-panel h1 { font-size:clamp(3rem,7vw,6rem); }.next { margin-top:38px; padding:27px; border:1px solid rgba(165,164,250,.25); border-radius:18px; background:rgba(249,250,251,.045); }.next > div { display:grid; grid-template-columns:36px 1fr; gap:12px; padding:18px 0; border-top:1px solid rgba(165,164,250,.2); }.next span { color:#a5a4fa; font-size:11px; font-weight:800; }.next strong { font-size:1rem; }.next p { margin:6px 0 0; color:rgba(249,250,251,.67); line-height:1.55; }.thank-panel .button { margin-top:30px; }
@media (max-width:720px) { .topbar { padding:16px 20px; }.brand { font-size:9px; }.hero { align-items:end; padding-top:0; }.hero-copy { padding-bottom:17vh; }.scroll { display:none; }.film,.days,.chapter { grid-template-columns:1fr; }.film { padding-top:25vw; padding-bottom:25vw; }.chapter { min-height:auto; padding:17vw 0; gap:32px; }.chapter:nth-of-type(odd) .chapter-media { order:0; }.chapter-media { min-height:92vw; }.days { gap:48px; }.steps { grid-template-columns:1fr; }.steps div { min-height:auto; border-right:0; border-bottom:1px solid rgba(117,132,214,.16); }.steps div:last-child { border-bottom:0; }.package-choice { width:min(100% - 28px,1080px); padding:24px 14px 28px; }.package-grid { grid-template-columns:1fr; gap:16px; }.package-card-copy { padding:13px 14px 15px; }.apply-intro,.steps,.form-card { width:min(100% - 28px,1080px); }.form-card { padding:6px; }.form-shell,.form-frame { min-height:3300px; }.footer { padding:24px; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; animation-duration:.001ms !important; transition-duration:.001ms !important; } }
