:root {
  color-scheme: light;
  --ink: #211a2b;
  --ink-soft: #4a3b51;
  --plum: #382641;
  --rose: #bd788a;
  --coral: #f1ad98;
  --paper: #faf6f0;
  --cream: #f5eee6;
  --dust: #e8dcd4;
  --muted: #807480;
  --serif: "Iowan Old Style", "Baskerville", "Palatino Linotype", Georgia, serif;
  --sans: "Avenir Next", Avenir, "Segoe UI", sans-serif;
  --page: min(1180px, calc(100% - 64px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 88px; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); font-size: 15px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
button, input { font: inherit; }
a { color: inherit; }
::selection { color: var(--ink); background: #efb8aa; }
.page-width { width: var(--page); max-width: 1180px; margin-inline: auto; }
.skip-link { position: fixed; top: 12px; left: 12px; z-index: 99; padding: 9px 14px; transform: translateY(-180%); background: var(--paper); border-radius: 99px; }
.skip-link:focus { transform: translateY(0); }

.site-header { position: absolute; z-index: 5; top: 0; left: 0; width: 100%; height: 84px; display: flex; align-items: center; justify-content: space-between; padding-inline: max(32px, calc((100vw - 1180px) / 2)); color: #fff7f1; border-bottom: 1px solid rgba(255,255,255,.105); }
.wordmark { display: inline-flex; align-items: center; gap: 9px; text-decoration: none; font-family: var(--serif); font-size: 27px; letter-spacing: -.06em; line-height: 1; }
.brand-mark { color: var(--coral); font-family: var(--sans); font-size: 17px; line-height: 1; }
.main-nav { display: flex; align-items: center; gap: 36px; margin-left: 80px; }
.main-nav a, .header-cta { color: rgba(255,247,241,.78); text-decoration: none; font-size: 12px; transition: color .2s ease; }
.main-nav a:hover, .header-cta:hover { color: #fff; }
.header-cta { padding: 9px 0; color: #fff4ed; }
.header-cta span { margin-left: 7px; color: var(--coral); }

.hero { position: relative; isolation: isolate; min-height: 780px; overflow: hidden; color: #fff7f1; background: radial-gradient(ellipse at 74% 47%, #49344d 0%, #312438 30%, #211a2b 67%), #211a2b; }
.hero::before, .hero::after { position: absolute; z-index: -1; content: ""; pointer-events: none; }
.hero::before { top: -38%; right: -17%; width: 77vw; height: 125%; border: 1px solid rgba(238,190,177,.08); border-radius: 50%; transform: rotate(-23deg); box-shadow: 0 0 0 54px rgba(238,190,177,.018), 0 0 0 109px rgba(238,190,177,.014); }
.hero::after { right: 0; bottom: 0; left: 0; height: 27%; background: linear-gradient(0deg, rgba(23,17,29,.33), transparent); }
.hero-grain { position: absolute; inset: 0; z-index: -1; opacity: .14; pointer-events: none; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.88' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.17'/%3E%3C/svg%3E"); mix-blend-mode: screen; }
.hero-layout { position: relative; display: grid; grid-template-columns: 1.02fr .98fr; align-items: center; min-height: 718px; padding-top: 98px; }
.hero-copy { position: relative; z-index: 2; max-width: 600px; padding: 42px 0 65px; }
.eyebrow { display: flex; align-items: center; gap: 10px; margin: 0 0 21px; font-size: 9px; font-weight: 700; letter-spacing: .18em; line-height: 1.5; text-transform: uppercase; }
.eyebrow-light { color: #e9c8c2; }
.eyebrow-ink { color: #8b687a; }
.eyebrow-dot { width: 5px; height: 5px; flex: 0 0 auto; border-radius: 50%; background: var(--coral); box-shadow: 0 0 12px rgba(241,173,152,.65); }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: var(--serif); font-weight: 400; letter-spacing: -.045em; }
h1 { max-width: 630px; margin-bottom: 21px; font-size: clamp(48px, 5.6vw, 75px); line-height: 1.04; }
h1 em, h2 em { color: #dfaaad; font-weight: 400; }
.hero-description { max-width: 458px; margin-bottom: 19px; color: rgba(255,247,241,.73); font-size: 14px; line-height: 1.82; }
.text-link { text-decoration: none; }
.hero-scroll { display: inline-flex; align-items: center; gap: 9px; margin-bottom: 32px; color: #f1c5b9; font-size: 11px; }
.hero-scroll span { transition: transform .2s ease; }
.hero-scroll:hover span { transform: translateY(3px); }
.waitlist-form { width: min(100%, 500px); }
.field-label { display: block; margin-bottom: 9px; color: #fff8f3; font-family: var(--serif); font-size: 17px; }
.email-row { display: flex; gap: 8px; width: 100%; padding: 6px; background: rgba(255,255,255,.97); border: 1px solid rgba(255,255,255,.55); border-radius: 4px; box-shadow: 0 10px 35px rgba(14,9,19,.18); }
.email-row input { width: 100%; min-width: 0; padding: 0 13px; color: var(--ink); background: transparent; border: 0; outline: 0; font-size: 12px; }
.email-row input::placeholder { color: #988d98; }
.email-row:focus-within { outline: 3px solid rgba(241,173,152,.35); }
.button { display: inline-flex; min-height: 45px; align-items: center; justify-content: center; gap: 17px; padding: 0 17px; border: 0; border-radius: 3px; color: var(--ink); text-align: center; text-decoration: none; font-size: 11px; font-weight: 700; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; cursor: pointer; }
.button:hover { transform: translateY(-2px); box-shadow: 0 9px 20px rgba(28,17,32,.18); }
.button:focus-visible, a:focus-visible, summary:focus-visible, input:focus-visible { outline: 3px solid #cf8c94; outline-offset: 3px; }
.button-coral { flex: 0 0 auto; background: var(--coral); }
.button-coral:hover { background: #f5b9a5; }
.button-coral span { font-size: 15px; font-weight: 400; }
.platform-fieldset { display: flex; align-items: center; gap: 14px; margin: 15px 0 12px; padding: 0; border: 0; }
.platform-fieldset legend { float: left; margin-right: 14px; padding: 0; color: rgba(255,247,241,.57); font-size: 10px; }
.platform-options { display: inline-flex; gap: 5px; }
.platform-option { position: relative; cursor: pointer; }
.platform-option input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.platform-option span { display: inline-flex; min-height: 27px; align-items: center; padding: 0 10px; color: rgba(255,247,241,.74); border: 1px solid rgba(255,255,255,.17); border-radius: 50px; font-size: 9px; transition: color .2s ease, background .2s ease, border .2s ease; }
.platform-option input:checked + span { color: var(--ink); background: #f4ded4; border-color: #f4ded4; }
.platform-option input:focus-visible + span { outline: 3px solid var(--coral); outline-offset: 3px; }
.consent-row { display: flex; align-items: flex-start; gap: 9px; color: rgba(255,247,241,.68); font-size: 10px; line-height: 1.55; cursor: pointer; }
.consent-row input { width: 13px; height: 13px; flex: 0 0 auto; margin: 2px 0 0; accent-color: var(--coral); }
.form-help { margin: 8px 0 0 22px; color: rgba(255,247,241,.45); font-size: 9px; }
.form-status { min-height: 19px; margin: 7px 0 0 22px; color: #ffd3c4; font-size: 10px; }
.form-status.is-success { color: #d4eccf; }
.form-status.is-error { color: #ffc5bd; }
.honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }

.hero-art { position: relative; display: flex; min-height: 598px; align-items: center; justify-content: center; padding: 22px 0 26px 12px; }
.portal-stage { position: relative; width: min(100%, 540px); height: 535px; display: grid; place-items: center; }
.portal-halo { position: absolute; width: 425px; height: 425px; border-radius: 50%; filter: blur(8px); }
.halo-one { background: radial-gradient(circle, rgba(239,177,166,.2) 0%, rgba(178,125,162,.09) 41%, transparent 70%); animation: breathe 8s ease-in-out infinite alternate; }
.halo-two { width: 345px; height: 345px; background: radial-gradient(circle, rgba(236,184,160,.2), transparent 69%); animation: breathe 6s ease-in-out infinite alternate-reverse; }
.orbit { position: absolute; width: 465px; height: 229px; border: 1px solid rgba(236,197,188,.31); border-radius: 50%; }
.orbit-one { transform: rotate(-34deg); animation: orbit-float 19s ease-in-out infinite alternate; }
.orbit-two { width: 445px; height: 194px; border-color: rgba(205,168,197,.23); transform: rotate(48deg); animation: orbit-float 23s ease-in-out infinite alternate-reverse; }
.portal-arch { position: relative; width: 272px; height: 424px; overflow: hidden; border: 1px solid rgba(245,211,195,.57); border-radius: 145px 145px 19px 19px; background: linear-gradient(176deg, rgba(244,205,183,.18), rgba(132,89,125,.11) 47%, rgba(43,31,50,.46) 100%); box-shadow: inset 0 0 55px rgba(245,199,185,.13), 0 0 55px rgba(211,159,183,.17), 0 0 0 12px rgba(244,210,202,.026); transform: translateY(-5px); }
.portal-arch::before, .portal-arch::after { position: absolute; right: 12px; bottom: 0; left: 12px; height: 84%; content: ""; border: 1px solid rgba(248,211,197,.17); border-bottom: 0; border-radius: 130px 130px 0 0; }
.portal-arch::after { right: 23px; left: 23px; height: 77%; border-color: rgba(248,211,197,.12); }
.portal-light { position: absolute; top: 51px; left: 50%; width: 178px; height: 240px; border-radius: 50%; background: radial-gradient(ellipse at 50% 47%, rgba(251,224,198,.74) 0%, rgba(242,183,169,.4) 28%, rgba(220,155,183,.12) 58%, transparent 72%); filter: blur(3px); transform: translateX(-50%); animation: breathe 7s ease-in-out infinite alternate; }
.portal-moon { position: absolute; top: 69px; right: 62px; width: 27px; height: 27px; border-radius: 50%; background: #f4d3b2; box-shadow: 0 0 26px rgba(244,211,178,.75); }
.portal-moon::after { position: absolute; top: -5px; left: 8px; width: 26px; height: 26px; content: ""; border-radius: 50%; background: #6c4a68; }
.portal-ripple { position: absolute; right: -30%; bottom: 74px; left: -30%; height: 84px; border: 1px solid rgba(255,213,189,.24); border-radius: 50%; transform: rotate(-9deg); }
.ripple-two { bottom: 63px; transform: rotate(8deg); border-color: rgba(246,204,200,.15); }
.portal-figure { position: absolute; bottom: -12px; left: 50%; width: 218px; height: 337px; filter: drop-shadow(0 0 28px rgba(245,204,190,.24)); transform: translateX(-50%); animation: figure-breathe 8s ease-in-out infinite alternate; }
.portal-star { position: absolute; color: #ffddbd; text-shadow: 0 0 12px rgba(255,219,184,.9); }
.star-a { top: 111px; left: 46px; font-size: 14px; animation: twinkle 3s ease-in-out infinite; }
.star-b { top: 178px; right: 39px; font-size: 30px; animation: twinkle 4s ease-in-out infinite .7s; }
.star-c { top: 236px; left: 38px; font-size: 15px; animation: twinkle 3.6s ease-in-out infinite 1.2s; }
.art-caption { position: absolute; display: flex; align-items: center; gap: 10px; color: rgba(255,237,223,.76); font-family: var(--serif); font-size: 12px; font-style: italic; line-height: 1.35; }
.art-caption-top { top: 36px; left: -6px; }
.tiny-spark { color: var(--coral); font-size: 19px; font-style: normal; }
.art-caption-bottom { right: 5px; bottom: 41px; }
.caption-line { width: 33px; height: 1px; background: rgba(240,196,176,.56); }
.art-side-note { position: absolute; right: -10px; bottom: 92px; color: rgba(251,211,197,.5); font-size: 8px; letter-spacing: .12em; line-height: 1.6; text-align: right; text-transform: uppercase; }
.hero-bottom { position: absolute; right: 0; bottom: 0; left: 0; display: flex; align-items: center; gap: 16px; height: 62px; color: rgba(255,245,236,.39); font-size: 8px; font-weight: 600; letter-spacing: .19em; }
.hero-bottom-line { width: min(170px, 20vw); height: 1px; background: rgba(255,235,219,.23); }
.starfield { position: absolute; inset: 80px 0 0; z-index: -1; overflow: hidden; pointer-events: none; }
.starfield i { position: absolute; width: 2px; height: 2px; border-radius: 50%; background: #f9d8c2; opacity: .7; box-shadow: 0 0 8px #f9d8c2; animation: twinkle 4.5s ease-in-out infinite; }
.starfield i:nth-child(1) { top: 8%; left: 21%; animation-delay: .3s; }.starfield i:nth-child(2) { top: 21%; left: 54%; animation-delay: 1.2s; }.starfield i:nth-child(3) { top: 37%; left: 12%; animation-delay: .8s; }.starfield i:nth-child(4) { top: 62%; left: 7%; animation-delay: 1.8s; }.starfield i:nth-child(5) { top: 70%; left: 45%; animation-delay: 2.1s; }.starfield i:nth-child(6) { top: 18%; left: 88%; animation-delay: 1s; }.starfield i:nth-child(7) { top: 54%; left: 93%; animation-delay: 2.4s; }.starfield i:nth-child(8) { top: 84%; left: 72%; animation-delay: .7s; }.starfield i:nth-child(9) { top: 32%; left: 77%; animation-delay: 1.6s; }.starfield i:nth-child(10) { top: 13%; left: 34%; animation-delay: 2.7s; }.starfield i:nth-child(11) { top: 90%; left: 27%; animation-delay: 1.9s; }.starfield i:nth-child(12) { top: 42%; left: 40%; animation-delay: 2.3s; }.starfield i:nth-child(13) { top: 74%; left: 85%; animation-delay: .4s; }.starfield i:nth-child(14) { top: 28%; left: 96%; animation-delay: 1.4s; }

.section-pad { padding-block: 120px; }
.intro { position: relative; overflow: hidden; background: var(--paper); }
.intro::after { position: absolute; top: 28px; right: -100px; width: 380px; height: 380px; content: ""; border: 1px solid rgba(174,130,151,.13); border-radius: 50%; box-shadow: 0 0 0 42px rgba(174,130,151,.026), 0 0 0 84px rgba(174,130,151,.019); pointer-events: none; }
.intro-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.18fr .82fr; align-items: end; gap: 88px; margin-bottom: 66px; }
.intro-heading .eyebrow { margin-bottom: 17px; }
.intro h2, .platform-copy h2, .faq-heading h2 { margin: 0; color: var(--ink); font-size: clamp(37px, 4.4vw, 58px); line-height: 1.12; }
.intro h2 em, .platform-copy h2 em, .faq-heading h2 em { color: #ab7184; }
.intro-body { max-width: 390px; padding-bottom: 5px; color: #6b606d; font-size: 12px; line-height: 1.9; }
.intro-body p { margin-bottom: 14px; }
.ritual-cards { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #ddd1d0; border-bottom: 1px solid #ddd1d0; }
.ritual-card { position: relative; min-height: 225px; padding: 29px 31px 28px 0; }
.ritual-card + .ritual-card { padding-left: 31px; border-left: 1px solid #ddd1d0; }
.ritual-card-featured { background: linear-gradient(130deg, rgba(224,196,198,.27), rgba(250,246,240,0)); }
.card-number { display: block; color: #99838d; font-size: 8px; font-weight: 700; letter-spacing: .16em; }
.card-icon { position: absolute; top: 26px; right: 30px; display: grid; width: 32px; height: 32px; place-items: center; color: #aa7586; border: 1px solid rgba(170,117,134,.3); border-radius: 50%; font-size: 16px; }
.icon-moon { color: #ba817d; }.icon-sun { color: #c08f69; }
.ritual-card h3 { max-width: 255px; margin: 34px 0 9px; color: #34283a; font-family: var(--serif); font-size: 23px; font-weight: 400; letter-spacing: -.025em; line-height: 1.2; }
.ritual-card p { max-width: 250px; margin: 0; color: #7e747d; font-size: 11px; line-height: 1.7; }
.card-rule { position: absolute; right: 28px; bottom: 0; left: 0; height: 2px; background: #c57f8e; transform: scaleX(0); transform-origin: left; transition: transform .4s ease; }
.ritual-card:hover .card-rule { transform: scaleX(.55); }
.ritual-card + .ritual-card .card-rule { left: 31px; }

.note-section { position: relative; isolation: isolate; overflow: hidden; padding-block: 118px; color: #fff6ee; background: #302238; }
.note-section::before { position: absolute; top: -36%; left: -14%; z-index: -1; width: 59vw; height: 170%; content: ""; border: 1px solid rgba(232,189,180,.12); border-radius: 50%; transform: rotate(32deg); box-shadow: 0 0 0 60px rgba(232,189,180,.02), 0 0 0 120px rgba(232,189,180,.016); }
.note-section::after { position: absolute; inset: 0; z-index: -2; content: ""; opacity: .34; background: radial-gradient(ellipse at 22% 48%, rgba(178,116,147,.29), transparent 43%), radial-gradient(ellipse at 81% 12%, rgba(201,144,121,.12), transparent 36%); }
.note-layout { display: grid; grid-template-columns: 1fr .95fr; align-items: center; gap: 120px; }
.note-art { position: relative; display: grid; min-height: 380px; place-items: center; }
.note-card { position: relative; display: flex; width: 310px; height: 378px; flex-direction: column; align-items: center; justify-content: center; padding: 35px; color: #463246; border: 1px solid rgba(255,255,255,.61); background: linear-gradient(155deg, #f8eee4, #e8d2ca 70%, #d8bac0); box-shadow: 12px 21px 55px rgba(18,11,23,.27); transform: rotate(-4deg); }
.note-card::before { position: absolute; inset: 10px; content: ""; border: 1px solid rgba(123,81,105,.18); }
.note-card-kicker, .note-card-foot { color: #997281; font-size: 7px; font-weight: 700; letter-spacing: .19em; }
.note-card p { position: relative; z-index: 1; margin: 31px 0; font-family: var(--serif); font-size: 35px; line-height: 1.32; text-align: center; }
.note-card p em { color: #ac7185; font-weight: 400; }
.note-card-flower { color: #ad788c; font-size: 24px; }
.note-scribble { position: absolute; color: #efc0ae; font-family: var(--serif); font-size: 13px; font-style: italic; }
.scribble-one { top: 27px; right: 30px; transform: rotate(9deg); }
.scribble-two { bottom: 27px; left: 42px; font-size: 24px; }
.note-copy { max-width: 475px; }
.note-copy .eyebrow { margin-bottom: 18px; }
.note-copy h2, .closing-content h2 { margin: 0 0 21px; color: #fff7f0; font-size: clamp(40px, 4.6vw, 59px); line-height: 1.08; }
.note-copy h2 em, .closing-content h2 em { color: #e8b3ae; }
.note-copy > p:not(.eyebrow):not(.note-signature) { color: rgba(255,246,238,.68); font-size: 12px; line-height: 1.95; }
.note-signature { display: flex; align-items: center; gap: 13px; margin: 25px 0 0; color: #edc1b5; font-family: var(--serif); font-size: 13px; font-style: italic; }
.note-signature::before { width: 30px; height: 1px; content: ""; background: #ce9c9e; }
.note-orbit { position: absolute; right: -115px; bottom: -280px; width: 550px; height: 550px; border: 1px solid rgba(228,191,179,.085); border-radius: 50%; }
.note-orbit span { position: absolute; inset: 45px; border: inherit; border-radius: inherit; }.note-orbit span:nth-child(2) { inset: 95px; }.note-orbit span:nth-child(3) { inset: 145px; }

.platform-section { overflow: hidden; background: #f0e6df; }
.platform-layout { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: 70px; }
.platform-copy { max-width: 425px; }
.platform-copy .eyebrow { margin-bottom: 18px; }
.platform-copy h2 { margin-bottom: 20px; }
.platform-copy > p:not(.eyebrow) { max-width: 355px; margin: 0 0 26px; color: #746876; font-size: 12px; line-height: 1.85; }
.button-plum { min-width: 174px; color: #fff4ed; background: #493449; }
.button-plum:hover { background: #5a4052; }
.device-scene { position: relative; display: flex; height: 410px; align-items: center; justify-content: center; }
.device-orb { position: absolute; width: 360px; height: 250px; border-radius: 50%; filter: blur(14px); }
.orb-left { left: 6%; background: radial-gradient(ellipse, rgba(208,143,145,.22), transparent 68%); }
.orb-right { right: -4%; background: radial-gradient(ellipse, rgba(196,146,114,.19), transparent 68%); }
.phone { position: relative; width: 204px; height: 369px; padding: 8px; border: 1px solid rgba(62,41,61,.47); border-radius: 30px; background: #27202e; box-shadow: 0 23px 56px rgba(61,39,61,.2); }
.phone-front { z-index: 2; margin: 26px 0 0 -39px; transform: rotate(4deg); }
.phone-back { z-index: 1; margin: -1px -12px 0 0; transform: rotate(-7deg) scale(.94); }
.phone-speaker { position: absolute; z-index: 2; top: 14px; left: 50%; width: 45px; height: 11px; border-radius: 20px; background: #27202e; transform: translateX(-50%); }
.phone-screen { position: relative; display: flex; width: 100%; height: 100%; flex-direction: column; align-items: center; overflow: hidden; padding: 47px 15px 20px; border-radius: 22px; }
.front-screen { color: #fff4ec; background: radial-gradient(ellipse at 52% 34%, #73536d, #44344d 60%, #32283c); }
.back-screen { color: #493445; background: radial-gradient(ellipse at 52% 22%, #f6e4d6, #dfc2c8 58%, #b691aa); }
.screen-label { color: rgba(255,245,236,.63); font-size: 6px; font-weight: 700; letter-spacing: .17em; }
.back-screen .screen-label { color: rgba(73,52,69,.61); }
.screen-star { margin: 28px 0 12px; color: #f3bca7; font-size: 17px; }
.screen-serif { font-family: var(--serif); font-size: 22px; letter-spacing: -.025em; line-height: 1.35; text-align: center; }
.screen-serif em { color: #a3627b; font-weight: 400; }
.screen-wave { width: 92%; height: 40px; margin-top: auto; border: 1px solid rgba(84,55,82,.21); border-radius: 50%; transform: rotate(-7deg); }
.screen-moon { display: grid; width: 70px; height: 70px; place-items: center; margin: 35px 0 22px; color: #f2c1ae; border: 1px solid rgba(244,199,178,.31); border-radius: 50%; font-size: 35px; box-shadow: 0 0 34px rgba(237,183,165,.12); }
.screen-serif-small { font-size: 18px; }
.screen-button { display: flex; width: 100%; justify-content: space-between; margin-top: auto; padding: 9px 10px; color: #433046; background: #f0c8b3; border-radius: 2px; font-size: 6px; font-weight: 700; letter-spacing: .11em; }
.screen-button b { font-size: 10px; font-weight: 400; }
.screen-caption { margin-top: 10px; color: rgba(255,245,236,.54); font-size: 7px; }
.device-caption { position: absolute; bottom: 3px; left: 50%; color: #937988; font-size: 7px; font-weight: 700; letter-spacing: .19em; transform: translateX(-50%); white-space: nowrap; }

.closing-section { position: relative; isolation: isolate; overflow: hidden; padding: 100px 0 108px; color: #fff6ee; background: #211a2b; text-align: center; }
.closing-section::before, .closing-section::after { position: absolute; z-index: -1; width: 510px; height: 510px; content: ""; border: 1px solid rgba(234,190,174,.15); border-radius: 50%; }
.closing-section::before { top: -390px; left: -220px; box-shadow: 0 0 0 44px rgba(234,190,174,.025), 0 0 0 90px rgba(234,190,174,.018); }
.closing-section::after { right: -220px; bottom: -390px; box-shadow: 0 0 0 42px rgba(234,190,174,.024), 0 0 0 88px rgba(234,190,174,.016); }
.closing-glow { position: absolute; z-index: -1; top: -180px; left: 50%; width: 620px; height: 430px; border-radius: 50%; background: radial-gradient(ellipse, rgba(174,119,149,.19), transparent 67%); transform: translateX(-50%); }
.closing-content { display: flex; flex-direction: column; align-items: center; }
.closing-spark { margin-bottom: 17px; color: var(--coral); font-size: 22px; animation: slow-rotate 20s linear infinite; }
.closing-content .eyebrow { margin-bottom: 17px; }
.closing-content h2 { margin-bottom: 14px; font-size: clamp(56px, 7vw, 82px); line-height: .98; }
.closing-content > p:not(.eyebrow) { margin-bottom: 23px; color: rgba(255,246,238,.67); font-size: 12px; }
.closing-cta { min-width: 197px; min-height: 49px; }
.closing-note { margin-top: 11px; color: rgba(255,246,238,.46); font-size: 9px; }

.faq-section { background: var(--paper); }
.faq-layout { display: grid; grid-template-columns: .72fr 1.28fr; gap: 100px; }
.faq-heading h2 { font-size: clamp(38px, 4vw, 53px); }
.faq-list details { border-bottom: 1px solid #ddd2d0; }
.faq-list details:first-child { border-top: 1px solid #ddd2d0; }
.faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 19px 0; color: #423545; cursor: pointer; list-style: none; font-family: var(--serif); font-size: 17px; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary span { color: #ac7483; font-family: var(--sans); font-size: 18px; transition: transform .2s ease; }
.faq-list details[open] summary span { transform: rotate(45deg); }
.faq-list details p { max-width: 600px; margin: -3px 0 20px; color: #756b77; font-size: 11px; line-height: 1.85; }

.site-footer { color: rgba(255,247,241,.61); background: #1b1622; }
.footer-inner { display: grid; min-height: 86px; grid-template-columns: auto 1fr auto auto; align-items: center; gap: 28px; }
.footer-wordmark { color: #fff7f1; font-size: 22px; }
.footer-inner > p { margin: 0; color: rgba(255,247,241,.44); font-family: var(--serif); font-size: 12px; font-style: italic; }
.footer-links { display: flex; gap: 20px; }
.footer-links a { color: rgba(255,247,241,.66); text-decoration: none; font-size: 9px; }
.footer-links a:hover { color: #fff; }
.footer-copyright { color: rgba(255,247,241,.36); font-size: 8px; }
.mobile-join { display: none; }

.privacy-page { min-height: 100vh; background: var(--paper); }
.privacy-header { position: relative; color: var(--ink); background: #211a2b; }
.privacy-main { max-width: 760px; padding-block: 85px 110px; }
.privacy-main h1 { max-width: none; margin-bottom: 15px; color: var(--ink); font-size: clamp(44px, 6vw, 66px); }
.privacy-main h1 em { color: #ab7184; }
.privacy-main .updated { margin-bottom: 42px; color: #887c87; font-size: 11px; }
.privacy-main h2 { margin: 35px 0 10px; font-size: 25px; }
.privacy-main p, .privacy-main li { color: #645966; font-size: 13px; line-height: 1.85; }
.privacy-main ul { padding-left: 20px; }
.privacy-main a { color: #76516c; }
.privacy-note { padding: 16px 19px; border-left: 2px solid #bc8290; background: #f2e8e3; font-size: 11px !important; }

.js-motion [data-reveal] { opacity: 0; transform: translateY(18px); transition: opacity .8s ease, transform .8s cubic-bezier(.2,.65,.25,1); }
.js-motion [data-reveal].is-visible { opacity: 1; transform: translateY(0); }
.js-motion .hero-copy { animation: hero-rise .9s .15s both; }

@keyframes breathe { from { opacity: .62; scale: .94; } to { opacity: 1; scale: 1.08; } }
@keyframes figure-breathe { from { transform: translateX(-50%) translateY(1px); } to { transform: translateX(-50%) translateY(-5px); } }
@keyframes orbit-float { from { translate: -4px 3px; } to { translate: 5px -4px; } }
@keyframes twinkle { 0%, 100% { opacity: .28; scale: .8; } 50% { opacity: .95; scale: 1.25; } }
@keyframes hero-rise { from { opacity: 0; translate: 0 17px; } to { opacity: 1; translate: 0 0; } }
@keyframes slow-rotate { to { rotate: 360deg; } }

@media (max-width: 1000px) {
  :root { --page: min(100% - 48px, 850px); }
  .site-header { padding-inline: 24px; }
  .main-nav { gap: 22px; margin-left: 0; }
  .hero { min-height: 690px; }
  .hero-layout { min-height: 630px; grid-template-columns: 1.05fr .95fr; }
  h1 { font-size: clamp(47px, 6vw, 66px); }
  .hero-art { min-height: 530px; transform: scale(.88); transform-origin: center; }
  .portal-stage { width: 480px; }
  .intro-grid { gap: 48px; }
  .note-layout { gap: 70px; }
  .faq-layout { gap: 55px; }
}

@media (max-width: 720px) {
  :root { --page: calc(100% - 40px); }
  html { scroll-padding-top: 72px; }
  .site-header { height: 70px; padding-inline: 20px; }
  .wordmark { font-size: 24px; }
  .main-nav { display: none; }
  .header-cta { font-size: 10px; }
  .hero { min-height: 0; }
  .hero-layout { display: flex; min-height: 0; flex-direction: column; align-items: stretch; padding-top: 118px; }
  .hero-copy { padding: 0 0 10px; }
  .eyebrow { margin-bottom: 16px; font-size: 8px; }
  h1 { max-width: 540px; margin-bottom: 16px; font-size: clamp(46px, 11.8vw, 68px); line-height: 1.02; }
  .hero-description { max-width: 420px; margin-bottom: 12px; font-size: 12px; line-height: 1.76; }
  .hero-scroll { margin-bottom: 25px; font-size: 10px; }
  .waitlist-form { max-width: none; }
  .field-label { font-size: 16px; }
  .email-row { gap: 4px; padding: 5px; }
  .email-row input { padding-inline: 8px; font-size: 11px; }
  .email-row .button { min-height: 43px; gap: 8px; padding: 0 11px; font-size: 9px; }
  .platform-fieldset { gap: 9px; margin-top: 12px; }
  .platform-fieldset legend { margin-right: 5px; font-size: 9px; }
  .platform-option span { min-height: 25px; padding-inline: 8px; font-size: 8px; }
  .consent-row { font-size: 9px; }
  .form-help { font-size: 8px; }
  .hero-art { min-height: 372px; margin-top: -5px; padding: 0; transform: none; }
  .portal-stage { width: 100%; height: 375px; }
  .portal-halo { width: 330px; height: 330px; }
  .halo-two { width: 275px; height: 275px; }
  .orbit { width: 345px; height: 172px; }
  .orbit-two { width: 350px; height: 155px; }
  .portal-arch { width: 214px; height: 338px; border-radius: 115px 115px 16px 16px; }
  .portal-light { top: 45px; width: 145px; height: 203px; }
  .portal-moon { top: 55px; right: 44px; transform: scale(.78); }
  .portal-figure { bottom: -30px; width: 180px; height: 300px; }
  .art-caption-top { top: 4px; left: 2px; font-size: 10px; }
  .art-caption-bottom { right: 3px; bottom: 8px; font-size: 10px; }
  .art-side-note { right: 1px; bottom: 61px; font-size: 6px; }
  .hero-bottom { position: relative; height: 52px; margin-top: 0; font-size: 6px; letter-spacing: .12em; }
  .hero-bottom-line { flex: 1; width: auto; }
  .section-pad { padding-block: 78px; }
  .intro-grid { display: block; margin-bottom: 38px; }
  .intro h2, .platform-copy h2, .faq-heading h2 { font-size: clamp(38px, 9vw, 52px); }
  .intro-body { margin-top: 23px; font-size: 11px; }
  .ritual-cards { grid-template-columns: 1fr; }
  .ritual-card { min-height: 166px; padding: 22px 38px 22px 0; }
  .ritual-card + .ritual-card { padding: 22px 38px 22px 0; border-left: 0; border-top: 1px solid #ddd1d0; }
  .ritual-card-featured { background: linear-gradient(105deg, rgba(224,196,198,.27), rgba(250,246,240,0)); }
  .ritual-card h3 { max-width: 250px; margin: 20px 0 6px; font-size: 22px; }
  .ritual-card p { max-width: 280px; font-size: 10px; }
  .card-icon { top: 21px; right: 4px; }
  .card-rule, .ritual-card + .ritual-card .card-rule { right: 0; left: 0; }
  .note-section { padding-block: 75px 82px; }
  .note-layout { grid-template-columns: 1fr; gap: 53px; }
  .note-art { min-height: 345px; }
  .note-card { width: 268px; height: 331px; }
  .note-card p { font-size: 31px; }
  .scribble-one { top: 5px; right: 7px; }
  .scribble-two { bottom: 3px; left: 14px; }
  .note-copy h2 { font-size: clamp(39px, 9vw, 52px); }
  .note-copy > p:not(.eyebrow):not(.note-signature) { font-size: 11px; }
  .platform-layout { grid-template-columns: 1fr; gap: 34px; }
  .platform-copy { max-width: 460px; }
  .platform-copy > p:not(.eyebrow) { max-width: 340px; font-size: 11px; }
  .device-scene { height: 365px; }
  .phone { width: 178px; height: 324px; border-radius: 27px; }
  .phone-screen { border-radius: 20px; }
  .phone-front { margin-left: -34px; }
  .phone-back { margin-right: -7px; }
  .screen-serif { font-size: 19px; }
  .screen-serif-small { font-size: 16px; }
  .screen-moon { width: 59px; height: 59px; margin: 29px 0 18px; font-size: 29px; }
  .closing-section { padding: 77px 0 83px; }
  .closing-content h2 { font-size: 66px; }
  .faq-layout { grid-template-columns: 1fr; gap: 34px; }
  .faq-list summary { padding: 16px 0; font-size: 15px; }
  .faq-list details p { font-size: 10px; }
  .footer-inner { min-height: 0; grid-template-columns: 1fr auto; gap: 13px; padding-block: 21px; }
  .footer-inner > p { grid-column: 1; grid-row: 2; font-size: 10px; }
  .footer-links { grid-column: 2; grid-row: 1; gap: 13px; }
  .footer-copyright { grid-column: 2; grid-row: 2; text-align: right; }
  .mobile-join { position: fixed; z-index: 10; right: 12px; bottom: max(12px, env(safe-area-inset-bottom)); left: 12px; display: flex; justify-content: center; padding: 0 12px; transform: translateY(130%); transition: transform .32s ease; pointer-events: none; }
  body.past-hero .mobile-join { transform: translateY(0); pointer-events: auto; }
  .mobile-join a { display: flex; width: 100%; max-width: 460px; min-height: 47px; align-items: center; justify-content: center; gap: 14px; color: var(--ink); background: var(--coral); border: 1px solid rgba(255,255,255,.44); border-radius: 4px; box-shadow: 0 9px 27px rgba(31,19,35,.25); text-decoration: none; font-size: 11px; font-weight: 700; }
  .privacy-main { padding-block: 55px 75px; }
  .privacy-main h1 { font-size: 49px; }
}

@media (max-width: 390px) {
  :root { --page: calc(100% - 32px); }
  .site-header { padding-inline: 16px; }
  h1 { font-size: 44px; }
  .email-row input { padding-inline: 6px; font-size: 10px; }
  .email-row .button { padding-inline: 9px; }
  .platform-fieldset { align-items: flex-start; flex-direction: column; gap: 5px; }
  .platform-fieldset legend { float: none; margin: 0; }
  .hero-art { margin-top: 3px; }
  .art-caption-top { left: -1px; }
  .art-side-note { right: -1px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .js-motion [data-reveal] { opacity: 1; transform: none; }
}
