@font-face{font-family:Montserrat;src:url('assets/fonts/montserrat-latin-variable.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:'Source Sans 3';src:url('assets/fonts/sourcesans3-latin-variable.woff2') format('woff2');font-weight:200 900;font-style:normal;font-display:swap}

:root{--font-display:'Montserrat',Arial,sans-serif;--font-body:'Source Sans 3','Segoe UI',sans-serif;--radius-lg:.35rem;--radius-md:.25rem}
body{font-family:var(--font-body);font-size:1.0625rem;line-height:1.7}
[hidden]{display:none!important}
button,input,summary{font-family:inherit}
h1,h2,h3,.lunar-moment blockquote,.brand__text strong,.signature-line>span,.photo-stack__main figcaption,.stage-card__number,.stage-view__index,.guide__image-tag strong,.credential-list span,.google-rating strong,.weather-card>div>strong,.prepare summary,.site-footer__seal strong{font-family:var(--font-display);font-weight:500}
strong,b{font-weight:700}
.hero h1,.section-heading h2,.guide h2,.prepare h2,.final-cta h2{font-family:var(--font-display);font-weight:450;line-height:1.18;letter-spacing:-.04em}
.hero h1{font-size:clamp(2.75rem,4.7vw,4.3rem);max-width:17ch;line-height:1.14}
.section-heading h2,.guide h2,.prepare h2{font-size:clamp(2.1rem,3.8vw,3.4rem)}
.hero h1 strong,.cosmos-heading h2 strong,.lunar-moment blockquote strong,.final-cta h2 strong{color:var(--gold-soft)}
.hero h1 strong,.section-heading h2 strong,.guide h2 strong,.prepare h2 strong,.cosmos-heading h2 strong,.final-cta h2 strong{font-weight:700}
.brand__text strong{font-size:1.05rem;font-weight:700;letter-spacing:-.025em}
.brand__text small{font-size:.8125rem;letter-spacing:0}
.nav-links a,.button,.button--compact{font-family:var(--font-display);font-size:.875rem;font-weight:600;letter-spacing:0}
.eyebrow{font-family:var(--font-display);font-size:.75rem;letter-spacing:.09em;font-weight:600}
.hero__trust{font-size:.9375rem;gap:.6rem 1rem}
.hero__lead{font-size:1.1875rem;line-height:1.65;max-width:32rem}
.hero__lead strong{color:#fff}
.hero__actions{gap:.65rem;margin-top:1.6rem}
.button{border-radius:.25rem;box-shadow:none;min-height:3.3rem;padding:.8rem 1.1rem}
.button--gold:hover{box-shadow:0 6px 25px #f5aa1c20}
.intro::before,.feature-card::before,.journey::after{display:none}
.intro,.pillars,.prepare{background:#f0f1ea}
.stage-card,.stage-view,.feature-card,.review-card,.google-rating,.weather-card,.site-footer__seal,.guide__image-tag{border-radius:.35rem}
.feature-card__icon,.weather-card__icon{border:0;border-radius:0}
.stage-card>i{border:0}
.feature-card h3{font-size:1.6rem;line-height:1.25;letter-spacing:-.03em;font-weight:600}
.feature-card p,.credential-list li{font-size:1.0625rem}
.stage-card strong{font-size:1rem;font-weight:600}
.stage-card small,.stage-view__live,.guide__image-tag span,.google-rating small{font-size:.875rem}
.stage-view__body>p{font-size:.8125rem}
.weather-card p{font-size:1rem}
.stage-view__body>span{font-size:1.125rem}
.stage-view__body h3{font-size:1.9rem;line-height:1.25;font-weight:600;letter-spacing:-.025em}
.signature-line{font-size:.8rem;letter-spacing:.025em}
.review-card>p{font-family:var(--font-body);font-size:1.25rem;line-height:1.65;font-weight:400}
.review-card footer strong{font-size:.9375rem}
.guide__lead{font-family:var(--font-body);font-size:1.25rem!important;line-height:1.6!important;font-weight:400}
.photo-stack{min-height:34rem;display:grid;grid-template-columns:1.35fr 1fr;grid-template-rows:1fr 1fr;gap:1rem;perspective:none}
.photo-stack figure{position:relative;inset:auto;width:100%;height:100%;transform:none;border:0;border-radius:.3rem;box-shadow:none}
.photo-stack__main{grid-row:span 2}
.photo-stack__main figcaption{font-size:1.15rem;font-weight:600;text-transform:none;letter-spacing:0;bottom:0;left:0;right:0;border:0;border-radius:0;background:linear-gradient(transparent,#020504bd);padding:3rem 1rem 1rem;backdrop-filter:none}
.guide__image{border-radius:.3rem}
.lunar-moment__media::after{background:linear-gradient(90deg,#020304ed 6%,#020304ae 48%,#02030425),linear-gradient(transparent 65%,#020304b8)}
.lunar-moment blockquote{font-size:clamp(2.4rem,4.6vw,4.4rem);line-height:1.2;font-weight:400;letter-spacing:-.035em;max-width:20ch}
.final-cta h2{font-size:clamp(2.4rem,4.6vw,4.3rem);max-width:24ch}
.constellation{opacity:.55}
.site-footer__grid a,.site-footer__grid span,.site-footer__brand p{font-size:1rem}
.site-footer__grid strong{font-size:.875rem;letter-spacing:.025em}
.site-footer__bottom,.site-footer__seal small{font-size:.875rem}
.site-footer__seal span{font-size:.75rem}
.site-footer__seal strong{font-size:1rem;font-weight:600;line-height:1.5}
.prepare summary span{font-family:var(--font-body)}
.prepare summary{font-size:1rem;font-weight:600;line-height:1.5;letter-spacing:-.01em}

/* Still illustrations and the live celestial model share one stage panel. */
.stage-view__image-wrap{isolation:isolate}
.stage-view__image-wrap::after{pointer-events:none}
.stage-view__image-wrap[data-media=diagram]::after,.stage-view__image-wrap[data-media=celestial]::after{display:none}
.stage-view__image-wrap[data-media=diagram] #stage-image{object-fit:contain}
.stage-view__image-wrap[data-stage="06"] #stage-image{transform:scale(1.2);transform-origin:center bottom;object-position:center bottom}
.stage-view__image-wrap[data-media=diagram],.stage-view__image-wrap[data-media=celestial]{background:#02090e}
.stage-view__live{font-family:var(--font-body);font-size:.8125rem;font-weight:500;letter-spacing:.025em;text-transform:none;border-radius:.25rem}
.stage-view__celestial{position:absolute;inset:0}
.stage-view__celestial canvas,.full-moon__viewport canvas{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity .5s ease}
.stage-view__celestial.is-ready canvas,.full-moon__viewport.is-ready canvas{opacity:1}
.stage-view__celestial .scene-fallback,.full-moon__viewport .scene-fallback{width:100%;height:100%;object-fit:contain;transition:opacity .4s ease}
.stage-view__celestial.is-ready .scene-fallback,.full-moon__viewport.is-ready .scene-fallback{opacity:0;visibility:hidden}
.celestial-legend{position:absolute;z-index:3;left:1.25rem;bottom:4.2rem;display:flex;gap:1rem;font-size:.8125rem;color:#c4d5d8}
.celestial-legend span{display:inline-flex;align-items:center;gap:.45rem}
.celestial-legend span::before{content:"";height:2px;width:1rem;background:#7edbd4}
.celestial-legend span+span::before{background:var(--gold-soft)}
.motion-toggle{position:absolute;z-index:4;bottom:1rem;left:1.25rem;min-height:44px;padding:.45rem .8rem;border:1px solid #b9cbd347;background:#04131be8;border-radius:.25rem;color:#e8eeee;font-size:.875rem;cursor:pointer}
.motion-toggle:hover,.motion-toggle:focus-visible{border-color:var(--gold-soft);color:var(--gold-soft)}
.lunar-moment{min-height:0;background:#020304}
.lunar-moment__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:3rem;padding-block:6rem}
.lunar-moment__content{padding-block:0}
.full-moon{position:relative;min-width:0;margin:0}
.full-moon__viewport{position:relative;width:100%;height:clamp(24rem,42vw,36rem)}
.full-moon figcaption{margin-top:1rem;text-align:center;font-family:var(--font-display);font-size:1.05rem;font-weight:600}
.full-moon figcaption span{display:block;margin-top:.25rem;color:#99abae;font-family:var(--font-body);font-size:.875rem;font-weight:400}

/* Each fact is a star on the same route. Lines follow the markers on resize. */
.facts-constellation{position:relative;z-index:6;padding:2rem 0 3rem;margin-top:1rem}
.facts-constellation__items{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem;align-items:start}
.fact{display:flex;align-items:center;flex-direction:column;text-align:center;margin-top:5rem;min-width:0}
.fact:nth-child(2){margin-top:0}
.fact:nth-child(3){margin-top:7rem}
.fact:nth-child(4){margin-top:2rem}
.fact__star{position:relative;display:block;flex:none;width:.55rem;height:.55rem;margin:.6rem 0 2rem;border-radius:50%;background:#fff0c6;box-shadow:0 0 8px #ffd36daa,0 0 22px 5px #f5aa1c24;transition:box-shadow .35s,background .35s}
.fact__star::before,.fact__star::after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:linear-gradient(transparent,#fff5d8b8,transparent);pointer-events:none}
.fact__star::before{width:1px;height:1.5rem}
.fact__star::after{height:1px;width:1.5rem;background:linear-gradient(90deg,transparent,#fff5d8b8,transparent)}
.fact__body{min-width:0}
.fact__value{display:block;color:#f2f2eb;font-family:var(--font-display);font-size:clamp(2.5rem,4.5vw,3.65rem);font-weight:650;line-height:1.12;letter-spacing:-.055em;font-variant-numeric:lining-nums;white-space:nowrap;transition:color .35s}
.fact__value>span{font-size:.42em;font-weight:500;letter-spacing:-.015em}
.fact p{max-width:21ch;margin:.7rem auto 0;color:#bcc8c2;font-size:1rem;line-height:1.5;text-wrap:balance}
.facts-constellation__connections{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.facts-constellation__link{fill:none;stroke:#c8b77e;stroke-opacity:.48;stroke-width:1;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1s ease,stroke-opacity .35s}
.facts-constellation__link:nth-child(2){transition-delay:.24s,0s}
.facts-constellation__link:nth-child(3){transition-delay:.48s,0s}
.facts-constellation.is-drawn .facts-constellation__link{stroke-dashoffset:0}
.facts-constellation__link.is-active{stroke-opacity:1}
@media(hover:hover){
  .fact:hover .fact__star{background:#fff;box-shadow:0 0 10px #ffd36d,0 0 30px 8px #f5aa1c38}
  .fact:hover .fact__value{color:var(--gold-soft)}
}

/* The Moon is a single lit sphere. Scrolling moves the light, not a frame. */
.hero{overflow:clip;padding-top:7.5rem;background:#030707;isolation:isolate}
.hero__backdrop{opacity:.2;filter:saturate(.6) brightness(.7);background-position:center 22%;transform:none}
.hero::before{background:linear-gradient(90deg,#030707ed 10%,#03070744 65%,#03070755)}
.hero__grid{align-items:start;grid-template-columns:1fr 1fr;gap:2.5rem;min-height:160svh}
.hero__copy{position:sticky;top:max(7rem,calc(50svh - 21rem));padding-block:1rem}
.moon-chapter{height:160svh;min-width:0}
.moon-sticky{position:sticky;top:max(6.5rem,calc(50svh - 20rem));padding-bottom:1.5rem}
.moon-viewport{position:relative;width:100%;height:clamp(23rem,39vw,34rem);overflow:hidden}
.moon-viewport canvas{position:absolute;inset:0;display:block;width:100%;height:100%;opacity:0;transition:opacity .6s ease;pointer-events:none}
.moon-viewport.is-ready canvas{opacity:1}
.moon-fallback{width:100%;height:100%;object-fit:contain;opacity:.9;transition:opacity .6s ease}
.moon-viewport.is-ready .moon-fallback{opacity:0;visibility:hidden}
.moon-caption{max-width:24rem;margin:0 auto;text-align:center}
.cosmos-kicker{display:block;color:var(--gold-soft);font-size:.875rem;letter-spacing:.065em}
.moon-caption p{margin:.65rem 0 .6rem;font-family:var(--font-display);font-size:1.75rem;font-weight:500;line-height:1.3;letter-spacing:-.025em}
.moon-hint{display:block;color:#d3d8d1;font-size:.875rem}
.moon-caption small{display:block;color:#b8c0b5;font-size:.75rem;line-height:1.5;margin-top:.3rem}
#moon-phase-control{display:block;width:min(16rem,80%);margin:1rem auto .3rem;accent-color:var(--gold);height:1.75rem;cursor:ew-resize}
#moon-phase-control:focus-visible{outline:2px solid var(--gold);outline-offset:5px}

/* Planetary exploration uses real surface maps; galaxy imagery is separate. */
.cosmos-section{position:relative;isolation:isolate;overflow:clip;padding:7rem 0 0;background:#030609}
.galaxy-backdrop{position:absolute;z-index:-1;inset:0;pointer-events:none;background:linear-gradient(#030609ed 2%,#030609d9 35%,#03060991 74%,#030609cc 100%),url('assets/cosmos/whirlpool-hubble.jpg') center 78% / cover no-repeat}
.cosmos-heading{max-width:58rem;text-align:center}
.cosmos-heading .eyebrow{justify-content:center}
.cosmos-heading h2{font-family:var(--font-display);font-size:clamp(2.4rem,4.8vw,4.5rem);font-weight:450;line-height:1.18;letter-spacing:-.04em;margin:0}
.cosmos-heading>p:not(.eyebrow){max-width:37rem;margin:1.7rem auto 0;color:#c4cbd1;font-size:1.125rem;line-height:1.7}
.solar-explorer{position:relative}
.solar-viewport{position:relative;height:clamp(25rem,41vw,39rem);width:100%;margin-top:2rem;scroll-margin-top:6rem;touch-action:pan-y}
.solar-viewport.is-compact{height:58rem}
.solar-viewport.is-compact.is-focused{height:clamp(24rem,85vw,32rem)}
.solar-viewport canvas{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity .7s ease;cursor:grab;touch-action:pan-y}
.solar-viewport.is-ready canvas{opacity:1}
.solar-viewport canvas:active{cursor:grabbing}
.planet-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden;opacity:0;transition:opacity .45s ease}
.solar-viewport.is-ready .planet-labels{opacity:1}
.planet-label{position:absolute;top:0;left:0;font-size:.875rem;color:#e3e5e3;text-shadow:0 2px 8px #000;white-space:nowrap;transition:opacity .2s}
.solar-viewport.is-compact .planet-label{font-size:1rem}
.solar-fallback{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(30rem,85%);font-size:1.1rem;text-align:center;color:#d1d7d8;line-height:1.8}
.solar-viewport.is-ready .solar-fallback{display:none}
.planet-nav{display:flex;justify-content:center;flex-wrap:wrap;gap:.3rem .9rem;border-top:1px solid #ffffff20;border-bottom:1px solid #ffffff20;padding:.85rem 0}
.planet-nav button{padding:.6rem .45rem;min-height:44px;border:0;border-bottom:1px solid transparent;background:none;color:#d1d7d8;font-family:var(--font-display);font-size:.875rem;font-weight:500;cursor:pointer;transition:color .2s,border-color .2s}
.planet-nav button:hover,.planet-nav button[aria-pressed=true]{color:var(--gold-soft);border-bottom-color:var(--gold)}
.planet-nav button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.planet-story{display:grid;grid-template-columns:1fr 1.7fr;column-gap:3rem;padding:2.5rem 1rem 1rem;min-height:13rem;max-width:62rem;margin:auto}
.planet-story .cosmos-kicker{grid-column:1;font-size:.875rem}
.planet-story h3{grid-column:1;font-size:2.25rem;font-weight:600;line-height:1.2;letter-spacing:-.035em;margin:.7rem 0 0}
.planet-story>p{grid-column:2;grid-row:1 / 3;color:#c4cbd1;font-size:1.125rem;margin:.1rem 0 0;line-height:1.75}
.cosmos-note{font-size:.875rem;line-height:1.7;color:#aeb8c0;text-align:center;max-width:55rem;margin:1rem auto 0}
.galaxy-note{padding-block:7rem 8rem;max-width:54rem;text-align:center}
.galaxy-note>span{color:var(--gold-soft);letter-spacing:.11em;font-size:.8rem}
.galaxy-note>p{font-family:var(--font-display);font-size:clamp(2.1rem,4vw,3.8rem);font-weight:400;line-height:1.2;letter-spacing:-.035em;margin:1.2rem 0 1.5rem}
.galaxy-note small{display:block;font-size:1rem;line-height:1.7;color:#c4cbd1}
.cosmos-credits{margin-top:1.5rem;padding-block:1rem;font-size:.75rem;color:#a3aba9;border-top:1px solid #ffffff14}
.cosmos-credits summary{cursor:pointer;min-height:2.3rem}
.cosmos-credits a{text-decoration:underline;text-underline-offset:3px}
.cosmos-credits p{max-width:70rem}
.no-webgl .moon-chapter{height:auto}
.no-webgl .moon-sticky{position:relative;top:0}
.no-webgl .hero__grid{min-height:auto}
.no-webgl .hero__copy{position:relative;top:0}
.no-webgl #moon-phase-control{display:none}

@media(max-width:1120px){
  .hero__grid{gap:1.5rem}
  .hero__actions .button{font-size:.875rem}
  .hero__copy{top:7rem}
  .hero h1{font-size:clamp(2.75rem,4.7vw,3.4rem)}
  .moon-viewport{height:28rem}
  .facts-constellation__items{gap:1rem}
  .fact{margin-top:4rem}
  .fact:nth-child(3){margin-top:5rem}
  .fact p{max-width:19ch}
}
@media(max-width:900px){
  .hero{padding-top:6.8rem}
  .hero__grid{display:block;min-height:0}
  .hero__copy{position:relative;top:0;max-width:42rem;margin-inline:auto}
  .hero h1{font-size:clamp(2.75rem,6vw,3.8rem);max-width:18ch}
  .moon-chapter{height:165svh;margin-top:1rem}
  .moon-sticky{top:calc(50svh - 19rem);max-width:37rem;margin-inline:auto}
  .moon-viewport{height:26rem}
  .photo-stack{min-height:32rem;max-width:42rem;margin:auto;width:100%}
  .planet-story{column-gap:1.5rem}
  .lunar-moment__grid{grid-template-columns:1fr;gap:2rem;padding-block:5rem}
  .lunar-moment__content{max-width:42rem;margin-inline:auto}
  .full-moon{width:min(100%,34rem);margin-inline:auto}
}
@media(max-width:720px){
  .facts-constellation{padding:1rem 0 2rem}
  .facts-constellation__items{grid-template-columns:1fr;gap:2.1rem;max-width:26rem;margin-inline:auto}
  .fact:nth-child(n){display:grid;grid-template-columns:3rem minmax(0,1fr);gap:1.25rem;margin-top:0;text-align:left;align-items:center}
  .fact__star{justify-self:start;margin:0 0 0 .9rem}
  .fact:nth-child(even) .fact__star{margin-left:1.65rem}
  .fact__value{font-size:2.65rem;letter-spacing:-.045em}
  .fact p{max-width:none;margin:.4rem 0 0;text-wrap:initial}
}
@media(max-width:640px){
  .brand__text strong{font-size:1.05rem}
  .hero h1{font-size:clamp(2.25rem,9vw,3.25rem);line-height:1.16}
  .hero__lead{font-size:1.125rem}
  .hero__trust{display:flex;font-size:.9375rem}
  .hero__actions .button{font-size:.875rem}
  .moon-chapter{height:160svh;margin-top:0}
  .moon-sticky{top:max(5rem,calc(50svh - 16rem));padding-bottom:0}
  .moon-viewport{height:min(84vw,23rem)}
  .moon-caption p{font-size:1.65rem}
  .cosmos-kicker{font-size:.875rem}
  .photo-stack{min-height:27rem;gap:.65rem;grid-template-columns:1.45fr 1fr}
  .photo-stack__main figcaption{font-size:1rem}
  .feature-card h3{font-size:1.55rem}
  .section-heading h2,.guide h2,.prepare h2{font-size:clamp(1.9rem,7.6vw,2.75rem)}
  .stage-list{display:grid;grid-template-columns:1fr;overflow:visible;margin:0;padding:0;gap:.6rem}
  .stage-card{min-height:4.8rem;gap:.7rem;padding:.75rem .9rem}
  .stage-card small{font-size:.875rem}
  .stage-view__image-wrap{height:23rem}
  .stage-view__live{top:1rem;left:1rem;max-width:calc(100% - 2rem);font-size:.8125rem}
  .celestial-legend{left:1rem;bottom:4rem;gap:.75rem;font-size:.75rem}
  .motion-toggle{left:1rem}
  .full-moon__viewport{height:min(88vw,26rem)}
  .stage-view__body h3{font-size:1.75rem}
  .cosmos-section{padding-top:5rem}
  .cosmos-heading h2{font-size:clamp(2rem,8vw,2.9rem)}
  .cosmos-heading>p:not(.eyebrow){font-size:1.125rem}
  .solar-viewport{height:28rem;margin-top:1.5rem}
  .planet-label{font-size:.875rem}
  .planet-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.15rem .5rem;padding:.6rem 0}
  .planet-nav button[data-planet=all]{grid-column:1/-1}
  .planet-nav button{padding:.55rem .15rem}
  .planet-story{display:block;padding:2rem 0 0;min-height:16rem}
  .planet-story h3{font-size:2rem;margin-bottom:1rem}
  .cosmos-note{font-size:.75rem;text-align:left;margin-top:.8rem}
  .galaxy-note{padding-block:5rem 6rem}
  .galaxy-backdrop{background-size:auto,cover;background-position:center,center 80%}
  .review-card>p{font-size:1.25rem}
  .final-cta h2{font-size:clamp(2rem,8vw,2.9rem)}
  .final-cta__content>small{font-size:.875rem}
  .mobile-cta{border-radius:.3rem}
  .mobile-cta strong,.mobile-cta span{font-size:.875rem}
}
@media(max-height:720px) and (min-width:901px){
  .hero__copy{position:relative;top:0}
  .moon-sticky{top:5rem}
  .moon-viewport{height:22rem}
  .moon-caption p{font-size:1.6rem}
}
@media(prefers-reduced-motion:reduce){
  .hero__grid{min-height:0;align-items:center}
  .hero__copy,.moon-sticky{position:relative;top:0}
  .moon-chapter{height:auto}
  .facts-constellation__link{stroke-dashoffset:0;transition:none}
}
