/* Immediate section landings; panels can grow beyond the viewport. */
html:has(.landscape-home) { scroll-snap-type:y mandatory }
.landscape-hero,.weather-panel { scroll-snap-align:start; scroll-snap-stop:always }
.weather-panel {
 position:relative; isolation:isolate; min-height:100svh; display:grid; align-items:center;
 color:var(--ink); background:var(--weather-background); overflow:clip;
}
.weather-panel>.wrap { width:100% }
.weather-sky {
 --paper:#e7f2ed; --ink:#153e50; --muted:#405e6d; --line:#afc9cf;
 --weather-background:linear-gradient(#e6f1ed88,#e6f1ed88),url("/assets/weather-sky.png") center bottom / cover no-repeat;
}
.weather-storm,.weather-night {
 --paper:#213c50; --ink:#f0f5f7; --muted:#c4d4df; --line:#5b7388; --green:#ffe19b;
 --weather-background:linear-gradient(#17283766,#17283766),url("/assets/weather-storm.png") center bottom / cover no-repeat;
}
.weather-night {
 --weather-background:linear-gradient(#1a283c44,#1a283c44),url("/assets/weather-night.png") center bottom / cover no-repeat;
}
.weather-rain {
 --paper:#f4e9c5; --ink:#193d48; --muted:#49616a; --line:#c6cebb;
 --weather-background:linear-gradient(#e3eeeb88,#e3eeeb88),url("/assets/weather-rain.png") center bottom / cover no-repeat;
}
.weather-panel .focus-section { background:transparent }
.landscape-home .weather-panel .trust-section,.weather-panel .faq-section { border-top:0 }
.weather-panel .download-section { background:transparent; border:0; border-radius:0; margin-inline:auto }
.landscape-home :is(.weather-storm,.weather-night) .style-card { background:#253f53; border-color:#678294 }
.landscape-home :is(.weather-storm,.weather-night) .style-card:hover { background:#345168 }
.landscape-home :is(.weather-storm,.weather-night) .style-card.is-selected { background:#365267; border-color:#ffe19b; box-shadow:0 4px 0 #172837 }
:is(.weather-storm,.weather-night) .selection-mark { color:#183344 }
.weather-storm .trust-symbol { background:#385466 }
:is(.weather-storm,.weather-night) :is(a,button,summary):focus-visible { outline-color:#ffe19b }
.weather-sky .feature { background:#f3f7ef; --paper:#f3f7ef }
.landscape-home .benefit-strip { background:var(--paper) }

/* Three hero roles: headline, body, navigation/label. One warm headline accent. */
.landscape-hero h1 { font-size:clamp(48px,5.8vw,88px); font-weight:650; line-height:1.06 }
.landscape-hero h1 em {
 font-family:Georgia,serif; font-style:italic; font-weight:400; letter-spacing:-.045em;
 color:#ffe5a3; text-shadow:0 0 26px #ffc95c55,0 0 60px #ffcf6933;
}
.landscape-hero .hero-description { font-size:18px; line-height:1.6; max-width:440px; margin:28px 0 }
.landscape-hero .eyebrow { font-size:14px; font-weight:550; text-transform:none; letter-spacing:.02em; color:#e0eaec }
.landscape-hero :is(.button,.hero-explore),.landscape-home .site-header nav { font-size:14px; font-weight:550 }
.landscape-hero .hero-explore { margin-top:18px }
.landscape-hero .hero-copy { text-align:left }
@media(max-width:600px) {
 .landscape-hero .hero-description { margin-inline:0; max-width:310px }
 .landscape-home .site-header .nav-cta { font-size:14px }
 .weather-panel { min-height:100svh }
 .weather-panel .download-section { padding-inline:22px }
}
@media(prefers-reduced-motion:reduce) {
 html:has(.landscape-home) { scroll-snap-type:none; scroll-behavior:auto }
}

/* The weather lives in viewport space; only editorial content scrolls. */
.landscape-home { isolation:isolate }
.weather-backdrop { position:fixed; inset:0; z-index:-2; pointer-events:none; background:#c8e6ee }
.weather-backdrop>div { position:absolute; inset:0; background:var(--weather-background); opacity:0 }
.weather-backdrop>[data-weather=sky] { opacity:1 }
.landscape-home .content-surface { background:transparent }
.scroll-scene-enabled .weather-panel { background:transparent }
.landscape-home .benefit-strip { display:none }
@media(prefers-reduced-motion:reduce) {
 .weather-backdrop { display:none }
 .weather-panel { background:var(--weather-background) }
}
