/* Shared rhythm: 24px within text groups, 48px between columns,
   80px between desktop sections; 48px between mobile sections. */
:root { --landing-gutter:32px; --landing-section:80px; --landing-copy-gap:24px; }
body.landing-mode,body.survey-mode { padding:0; }
[hidden] { display:none !important; }
.site-header { height:80px; max-width:1280px; margin:auto; padding:16px var(--landing-gutter); display:flex; justify-content:space-between; align-items:center; position:relative; z-index:2; }
.brand { color:var(--ink); font-size:30px; line-height:1; font-weight:600; letter-spacing:-.075em; text-decoration:none; }
.header-start,.return-home { color:var(--ink); font:500 14px 'Public Sans',sans-serif; border:0; background:none; padding:12px 0 12px 16px; cursor:pointer; text-decoration:none; }
.header-start:hover,.return-home:hover { opacity:.65; }
.landing-main { max-width:1280px; width:100%; }
#landing { overflow:clip; }
.hero-copy { text-align:center; padding:40px var(--landing-gutter) 48px; }
.hero h1 { font-size:clamp(42px,5.4vw,78px); line-height:1.06; letter-spacing:-.065em; font-weight:550; margin:0 0 var(--landing-copy-gap); max-width:none; }
.hero h1 span { color:#455e6b; }
.landing-main p { font-size:18px; line-height:1.6; font-weight:400; letter-spacing:-.018em; color:var(--ink); max-width:52ch; margin:0 0 24px; }
.hero p { margin:0 auto 24px; max-width:60ch; }
.primary { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:13px 25px; background:var(--ink); border-radius:6px; color:#eff3f5; font-size:16px; line-height:24px; font-weight:500; text-decoration:none; transition:background .18s,transform .18s; }
.primary:hover { background:#304b5b; transform:translateY(-2px); }
a:focus-visible,button:focus-visible { outline:2px solid var(--ink); outline-offset:5px; }
figure { margin:0; }
.image-stage { overflow:hidden; isolation:isolate; background:#82918f; }
.image-stage img { display:block; width:100%; height:100%; object-fit:cover; }
.hero-image { height:clamp(360px,46vw,560px); margin:0 var(--landing-gutter); border-radius:14px; }
.hero-image img { object-position:60% 55%; animation:camera-arrive 1.8s cubic-bezier(.2,.65,.25,1) both; }
.hero-copy { animation:copy-arrive .8s both; }
.landing-main h2 { font-size:clamp(32px,3.5vw,44px); font-weight:500; line-height:1.1; letter-spacing:-.05em; margin:0 0 var(--landing-copy-gap); }
.ownership { padding:var(--landing-section) var(--landing-gutter); text-align:center; }
.ownership p { margin:auto; }
.resourceful { padding:48px 0; margin:0 var(--landing-gutter) var(--landing-section); border-top:1px solid #20333f35; border-bottom:1px solid #20333f35; }
.section-label { font-size:18px; line-height:1.6; margin-bottom:24px; }
.resourceful-grid { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start; }
.resourceful-grid h2 { margin:0; }
.resourceful-grid p:last-child { margin-bottom:0; }
.memories { margin:0 var(--landing-gutter); display:grid; grid-template-columns:1.15fr 1fr; align-items:center; gap:48px; }
.detail-image { aspect-ratio:1.12; border-radius:14px; }
.detail-image img { object-position:55% center; }
.memories-copy { padding:0; }
.memories-copy p:last-child { margin-bottom:0; }
.invitation { text-align:center; padding:var(--landing-section) var(--landing-gutter) 48px; }
.invitation p { margin:0 auto 24px; }
.invitation .payment { margin:32px auto 0; max-width:44ch; }
.reveal { transition:opacity .45s cubic-bezier(.2,.65,.25,1),transform .45s cubic-bezier(.2,.65,.25,1); }
.motion-ready .reveal:not(.visible) { opacity:0; transform:translateY(28px); }
.survey-mode .site-header { max-width:656px; padding-inline:48px; }
#intake { max-width:560px; margin:28px auto 64px; }
#landing { view-transition-name:experience; }
#intake { view-transition-name:experience; }
::view-transition-old(experience) { animation:depart .28s ease both; }
::view-transition-new(experience) { animation:enter .36s cubic-bezier(.2,.7,.2,1) both; }
::view-transition-group(experience) { animation-duration:.36s; }
@keyframes camera-arrive { from { transform:scale(1.045); } to { transform:scale(1); } }
@keyframes copy-arrive { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
@keyframes depart { to { opacity:0; transform:translateY(-16px); } }
@keyframes enter { from { opacity:0; transform:translateY(16px); } }
@media(max-width:760px) {
 :root { --landing-gutter:24px; --landing-section:48px; }
 .site-header { height:72px; padding:16px 24px; }
 .hero-copy { padding:24px 24px 32px; }
 .hero h1 { font-size:clamp(38px,7.5vw,56px); letter-spacing:-.055em; }
 .hero h1 br { display:none; }
 .hero h1 span { display:block; }
 .desktop-break { display:none; }
 .landing-main p,.section-label { font-size:17px; }
 .hero-image { margin:0 24px; height:390px; border-radius:10px; }
 .hero-image img { object-position:80% center; }
 .ownership { padding:48px 24px; }
 .resourceful { padding:32px 0; margin:0 24px 48px; }
 .section-label { margin-bottom:20px; }
 .resourceful-grid { grid-template-columns:1fr; gap:24px; }
 .memories { margin:0 24px; grid-template-columns:1fr; gap:24px; }
 .detail-image { height:auto; aspect-ratio:1; border-radius:10px; }
 .memories-copy { padding:0; }
 .invitation { padding:48px 24px 40px; }
 .invitation .payment { margin-top:32px; }
 .survey-mode .site-header { padding:20px 24px; }
 #intake { width:auto; margin:20px 24px 48px; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none !important; transition:none !important; } .motion-ready .reveal:not(.visible) { opacity:1; transform:none; } }

/* The first question is part of the introduction. */
.entry-question { max-width:640px; margin:32px auto 0; text-align:left; scroll-margin-top:24px; }
.landing-main .entry-question h2 { font-size:22px; letter-spacing:-.025em; line-height:1.3; margin-bottom:16px; }
.entry-question h2:focus { outline:none; }
.entry-options { display:flex; flex-wrap:wrap; gap:10px; }
.entry-option { appearance:none; border:1px solid var(--border); border-radius:6px; background:#ffffff20; color:var(--ink); min-height:48px; padding:12px 18px; font:400 16px/24px 'Public Sans',sans-serif; cursor:pointer; transition:background .15s,border-color .15s; }
.entry-option:hover { background:#ffffff50; border-color:var(--ink); }
.entry-option[aria-pressed=true] { background:#e2e9ec; border-color:var(--ink); box-shadow:inset 0 0 0 1px var(--ink); }
@media(max-width:760px) { .entry-question { margin-top:28px; } .landing-main .entry-question h2 { font-size:20px; } .entry-options { gap:8px; } .entry-option { flex-grow:1; padding-inline:12px; } }

/* Earn confidence before the first question; detail remains below it. */
.execution { margin:0 var(--landing-gutter); display:grid; grid-template-columns:1.1fr 1fr; align-items:center; gap:48px; }
.execution .hero-image { margin:0; height:auto; aspect-ratio:1.15; }
.execution-copy p { margin:0; }
.survey-entry { margin:var(--landing-section) var(--landing-gutter) 0; padding:48px 24px; border-top:1px solid #20333f35; border-bottom:1px solid #20333f35; }
.survey-entry .entry-question { margin:0 auto; }
.memories + .resourceful { margin-top:var(--landing-section); margin-bottom:0; }
@media(max-width:760px) {
 .execution { grid-template-columns:1fr; gap:24px; }
 .execution .hero-image { aspect-ratio:1.35; }
 .survey-entry { padding:32px 0; }
}
