/* Homepage only. Preserves the existing scene, motion and product components. */
.home-page-shell {
  --home-bg-base: #030c18;
  --home-bg-soft: #041320;
  --home-surface: #071c2b;
  --home-border: #285168;
  --home-control-border: #61869e;
  --home-accent: #61d4f5;
  --home-text: #eff7fc;
  --home-text-muted: #b5cadb;
  --home-radius: 14px;
  --home-gap: 24px;
  --home-gutter: 40px;
  --landing-bg: var(--home-bg-base);
  --landing-surface: var(--home-surface);
  --landing-text: var(--home-text);
  --landing-muted: var(--home-text-muted);
  --landing-cyan: var(--home-accent);
  background: var(--home-bg-base);
}
.home-page-shell .container,
.home-page-shell #core > .container {
  width: calc(100% - var(--home-gutter) * 2);
  max-width: 1240px;
  margin-inline: auto;
  padding-inline: 0;
}
.home-page-shell .lp-evidence {
  --hp-ink: var(--home-text);
  --hp-muted: var(--home-text-muted);
  --hp-line: var(--home-border);
  --hp-cyan: var(--home-accent);
  --hp-panel: var(--home-surface);
  background: var(--home-bg-base);
}
.home-page-shell :is(.landing-hero,.landing-story,.landing-section,.home-transparency,.hp-closing,.landing-footer) {
  background: transparent;
}
.home-page-shell .lp-evidence :is(.landing-story,.landing-section,.home-transparency,.hp-closing) {
  padding-block: 88px;
  border-top: 1px solid #28516866;
}
.home-page-shell .lp-evidence :is(.landing-story,.home-transparency) { background: var(--home-bg-soft); }
.home-page-shell :is(.landing-story,.landing-section,.landing-closing,.hp-closing)::before,
.home-page-shell :is(.landing-story,.landing-section,.landing-closing,.hp-closing)::after {
  background: none;
}
.home-page-shell .landing-atmosphere { opacity: .35; }
.home-page-shell .atmosphere-far {
  background: radial-gradient(ellipse 70% 12% at 80% 10%,#61d4f50a,transparent 85%),radial-gradient(ellipse 70% 14% at 20% 48%,#61d4f508,transparent 85%);
}
.home-page-shell .atmosphere-near { background: none; }
.home-page-shell .hp-intelligence-haze { background: radial-gradient(ellipse at 50% 50%,#61d4f50a,transparent 70%); }
.home-page-shell .hp-intelligence-orbits { stroke-opacity: .05; }
.home-page-shell .landing-hero::after { background: linear-gradient(transparent,var(--home-bg-base)); }
.home-page-shell .landing-header { background: #030c18f2; border-bottom: 1px solid #28516866; }
.home-page-shell .landing-footer { background: var(--home-bg-base); border-color: var(--home-border); padding-block: 28px; }
.home-page-shell :is(.landing-page p,.story-chapter p,.landing-plan > p,.home-transparency-card p) { color: var(--home-text-muted); }
.home-page-shell .lp-evidence :is(.landing-lead,.hp-journey-copy,.story-chapter p,.hp-insight > p,.landing-plan > p) {
  font-size: 16px;
  line-height: 1.7;
}
.home-page-shell .landing-page h2 { text-wrap: balance; }
.home-page-shell .landing-hero h1 { overflow-wrap: anywhere; }
.home-page-shell .landing-lead { max-width: 48ch; }
.home-page-shell :is(.landing-link,.hero-bottom,.landing-assurances,.story-principles,.hp-flow li,.hp-project-evidence,.hp-project-count,.landing-unavailable,.lp-plan-details,.landing-footer nav a,.landing-footer nav button) { font-size: 14px; }
.home-page-shell .landing-footer nav :is(a,button) { min-height: 44px; }
.home-page-shell .lp-evidence .landing-button,
.home-page-shell .landing-header .button {
  min-height: 48px;
  padding: 12px 20px;
  font-size: 15px;
  line-height: 1.45;
  border-radius: 9px;
}
.home-page-shell .landing-primary { color: #002431; box-shadow: inset 0 1px 0 #ffffff30; }
.home-page-shell .landing-secondary { color: var(--home-text); border-color: var(--home-control-border); background: var(--home-surface); }
.home-page-shell :is(a,button,summary,input):focus-visible { outline: 3px solid var(--home-accent); outline-offset: 4px; }
.home-page-shell :is(.hp-insight,.landing-plan,.home-transparency-card) {
  border: 1px solid var(--home-border);
  border-radius: var(--home-radius);
  background: linear-gradient(145deg,#ffffff03,transparent 55%),var(--home-surface);
  box-shadow: inset 0 1px 0 #eff7fc05;
}
.home-page-shell .lp-evidence :is(.hp-insight,.landing-plan) { padding: 28px; }
.home-page-shell :is(.hp-insight,.landing-plan)::before,
.home-page-shell :is(.hp-insight,.landing-plan)::after { background: none; }
.home-page-shell .hp-insight:hover { transform: none; box-shadow: inset 0 1px 0 #eff7fc05; border-color: var(--home-border); }
.home-page-shell :is(.hp-intelligence-grid,.landing-plans) { gap: var(--home-gap); }
.home-page-shell .hp-insight > p { min-height: 0; }
.home-page-shell :is(.hp-visual-labels,.hp-visual-note,.hp-context-visual) { font-size: 14px; color: var(--home-text-muted); }
.home-page-shell .hp-history-visual,
.home-page-shell .hp-signal-visual,
.home-page-shell .hp-context-visual { height: auto; min-height: 160px; }
.home-page-shell .hp-icon-tile { border-color: var(--home-border); background: #0b2638; box-shadow: none; color: var(--home-accent); }
.home-page-shell .lp-evidence .landing-premium { background: var(--home-surface); border-color: var(--home-border); box-shadow: none; }
.home-page-shell .lp-evidence .landing-plan-label { font-size: 14px; letter-spacing: .05em; color: var(--home-text-muted); }
.home-page-shell .lp-evidence .landing-plan-badge { font-size: 14px; padding: 4px 8px; background: #143247; border-color: var(--home-border); }
.home-page-shell .lp-evidence .story-chapter .landing-link { font-size: 14px; }
.home-page-shell .lp-evidence .front-category-chip { font-size: 14px; line-height: 1.5; min-height: 44px; padding: 8px 12px; border-color: var(--home-control-border); }
.home-page-shell .front-category-count { font-size: 14px; }
.home-page-shell .lp-evidence .lp-plan-details p { font-size: 14px !important; }
.home-page-shell .lp-evidence .landing-unavailable { font-size: 14px; background: transparent; border: 0; padding: 0; min-height: 0; }
.home-page-shell .lp-evidence .home-transparency-layout { grid-template-columns: 1fr; gap: 28px; }
.home-page-shell .lp-evidence .home-transparency-cards { gap: 20px; }
.home-page-shell .lp-evidence .home-transparency-card { padding: 24px; background: var(--home-surface); }
.home-page-shell .lp-evidence .home-transparency-card h3 { font-size: 17px; line-height: 1.4; }
.home-page-shell .lp-evidence .home-transparency-card p { font-size: 15px; line-height: 1.65; }
.home-page-shell .lp-evidence .hp-closing p { font-size: 16px; line-height: 1.7; }
.home-page-shell .lp-evidence .hp-closing > .container { gap: 32px; }
.home-page-shell .lp-evidence .story-system-frame { background: #071c2bb8; border-color: var(--home-border); }
.home-page-shell .lp-evidence .story-source { background: linear-gradient(120deg,#0d2a3e,#071c2b); }
.home-page-shell .lp-evidence .story-chapter { padding-top: 28px; }
.home-page-shell .story-visual { isolation: isolate; }

/* The project keeps its original illustration; copy has its own calm surface. */
.home-page-shell .hp-featured-project.hp-geodnet { max-width: none; border-color: var(--home-border); border-radius: var(--home-radius); background: var(--home-surface); box-shadow: none; }
.home-page-shell .hp-geodnet-scene { position: relative; display: grid; grid-template-columns: 55% 45%; aspect-ratio: auto; min-height: 370px; }
.home-page-shell .hp-geodnet-picture { inset: 0 0 0 55%; height: 100%; border-radius: 0 var(--home-radius) 0 0; overflow: clip; }
.home-page-shell .hp-geodnet-picture img { object-position: right center; }
.home-page-shell .hp-geodnet-scene::after { inset: 0 0 0 52%; background: linear-gradient(90deg,var(--home-surface),#071c2b00 28%),linear-gradient(0deg,#071c2b66,transparent 45%); }
.home-page-shell .lp-evidence .hp-geodnet .hp-featured-copy { position: relative; inset: auto; grid-column: 1; padding: 28px; display: flex; flex-direction: column; align-items: flex-start; min-width: 0; }
.home-page-shell .hp-geodnet .hp-featured-category { position: static; font-size: 14px; gap: 12px; color: var(--home-text-muted); }
.home-page-shell .hp-geodnet-symbol { width: 34px; height: 34px; border-radius: 8px; background: #10364b; }
.home-page-shell .hp-geodnet-symbol svg { width: 24px; height: 24px; }
.home-page-shell .lp-evidence .hp-geodnet h3 { position: static; margin-top: 12px; font-size: 44px; line-height: 1.12; }
.home-page-shell .lp-evidence .hp-geodnet .hp-geodnet-description { position: static; width: auto; max-width: 53ch; margin: 16px 0 22px; color: var(--home-text-muted); font-size: 17px; line-height: 1.6; text-shadow: none; }
.home-page-shell .hp-geodnet-description span { display: inline; }
.home-page-shell .hp-geodnet-description span + span::before { content: ' '; }
.home-page-shell .hp-geodnet .project-journey { position: static; margin-top: auto; flex-wrap: wrap; gap: 12px 20px; }
.home-page-shell .hp-geodnet .project-journey .landing-button { width: auto; min-width: 0; min-height: 48px; height: auto; position: static; padding: 12px 20px; font-size: 15px; border-radius: 9px; gap: 12px; }
.home-page-shell .hp-geodnet .project-journey .landing-link { font-size: 15px; }
.home-page-shell .hp-geodnet .hp-image-caption { top: auto; right: 14px; bottom: 14px; font-size: 14px; border-radius: 6px; padding: 6px 10px; background: #030c18e8; backdrop-filter: none; }
.home-page-shell .hp-geodnet .hp-project-evidence { background: var(--home-surface); border-color: var(--home-border); font-size: 14px; min-height: 68px; padding: 16px 28px; gap: 14px 24px; }
.home-page-shell .hp-geodnet .hp-project-evidence .hp-icon { width: 20px; height: 20px; }
.home-page-shell .hp-geodnet .hp-evidence-dot::before { display: none; }

/* A diagram of the existing user process. No simulated answers or live values. */
.home-page-shell #core.home-core { position: relative; background: transparent; padding-block: 96px; }
.home-page-shell #core.home-core .home-core-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 64px; align-items: center; }
.home-page-shell #core.home-core h2 { margin: 14px 0 24px; max-width: 15ch; font-size: clamp(34px,3.5vw,48px); line-height: 1.14; text-wrap: balance; }
.home-page-shell #core.home-core .home-core-copy p { font-size: 16px; line-height: 1.7; max-width: 55ch; margin-bottom: 20px; }
.home-page-shell #core.home-core .home-core-copy .home-core-lead { font-size: 18px; }
.home-page-shell .home-core-copy .project-journey { flex-wrap: wrap; gap: 12px 20px; margin-top: 28px; }
.home-page-shell .home-core-method { margin-top: 12px; }
.home-page-shell .home-core-figure { position: relative; isolation: isolate; margin: 0; padding: 32px; border: 1px solid var(--home-border); border-radius: var(--home-radius); background: var(--home-surface); }
.home-page-shell .home-core-orbits { position: absolute; inset: -42px; pointer-events: none; z-index: -1; }
.home-page-shell .home-core-orbits::before { content: ''; position: absolute; inset: -28px; background: radial-gradient(ellipse,#61d4f50e,transparent 68%); }
.home-page-shell .home-core-orbits i { position: absolute; inset: 12% 7%; border: 1px solid #61d4f51a; border-radius: 50%; transform: rotate(-22deg); }
.home-page-shell .home-core-orbits i + i { inset: 2% 20%; transform: rotate(26deg); }
.home-page-shell .home-core-marker { display: flex; align-items: center; gap: 14px; margin-bottom: 28px; color: var(--home-text); }
.home-page-shell .home-core-marker > .hp-icon { width: 42px; height: 42px; color: var(--home-accent); }
.home-page-shell .home-core-marker span { font-size: 14px; line-height: 1.5; letter-spacing: .04em; }
.home-page-shell .home-core-marker strong { display: block; font-size: 24px; font-weight: 600; letter-spacing: -.02em; }
.home-page-shell .home-core-path { display: grid; gap: 0; list-style: none; margin: 0; padding: 0; }
.home-page-shell .home-core-path li { position: relative; display: grid; grid-template-columns: 28px 24px minmax(0,1fr); align-items: start; gap: 14px; padding: 19px 0; border-top: 1px solid var(--home-border); }
.home-page-shell .home-core-path .hp-icon { width: 22px; height: 22px; margin-top: 3px; color: var(--home-accent); }
.home-page-shell .home-core-step { font-size: 13px; line-height: 28px; color: var(--home-text-muted); font-variant-numeric: tabular-nums; }
.home-page-shell #core.home-core .home-core-path h3 { font-size: 18px; line-height: 1.4; margin: 0 0 6px; }
.home-page-shell #core.home-core .home-core-path p { font-size: 15px; line-height: 1.6; margin: 0; }
.home-page-shell #core.home-core .home-core-limit { display: flex; gap: 12px; font-size: 14px; line-height: 1.6; padding-top: 20px; margin-top: 6px; border-top: 1px solid var(--home-border); }
.home-page-shell .home-core-limit .hp-icon { width: 20px; margin-top: 2px; color: var(--home-text-muted); }
.home-page-shell .home-core-figure figcaption { font-size: 14px; line-height: 1.5; margin-top: 24px; color: var(--home-text-muted); }
@media(max-width:1100px) {
 .home-page-shell { --home-gutter: 32px; }
 .home-page-shell .lp-evidence .story-layout { grid-template-columns: 1fr 1fr; }
 .home-page-shell .lp-evidence .story-visual { grid-area: 2 / 1 / auto / -1; width: min(100%,540px); justify-self: center; }
 .home-page-shell #core.home-core .home-core-layout { gap: 36px; }
 .home-page-shell .home-core-figure { padding: 24px; }
 .home-page-shell .home-transparency-cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .home-page-shell .hp-flow { flex-wrap: wrap; }
 .home-page-shell .hp-flow ol { flex-basis: 100%; flex-wrap: wrap; justify-content: flex-start; }
}
@media(max-width:900px) {
 .home-page-shell { --home-gutter: 24px; --home-gap: 16px; }
 .home-page-shell .landing-hero-inner { min-height: 0; }
 .home-page-shell .lp-evidence .landing-hero-copy { width: 100%; padding-top: 64px; padding-bottom: 0; }
 .home-page-shell .landing-scene { max-width: 100%; }
 .home-page-shell .hp-intelligence-grid { grid-template-columns: 1fr; }
 .home-page-shell .hp-insight > p { max-width: 60ch; }
 .home-page-shell .landing-plans { grid-template-columns: 1fr; }
 .home-page-shell #core.home-core .home-core-layout { grid-template-columns: 1fr; gap: 36px; }
 .home-page-shell #core.home-core h2 { max-width: 18ch; }
 .home-page-shell .home-core-figure { max-width: 620px; width: 100%; justify-self: center; }
 .home-page-shell .home-core-orbits { inset: 0; }
 .home-page-shell .hp-geodnet-scene { display: flex; flex-direction: column; padding-top: 0; min-height: 0; }
 .home-page-shell .hp-geodnet-picture { position: relative; inset: auto; width: 100%; height: auto; aspect-ratio: 16 / 9; border-radius: var(--home-radius) var(--home-radius) 0 0; }
 .home-page-shell .hp-geodnet-scene::after { inset: 0 0 auto; height: auto; aspect-ratio: 16 / 9; background: linear-gradient(0deg,#071c2b4d,transparent 45%); }
 .home-page-shell .hp-geodnet .hp-image-caption { inset: 12px auto auto 12px; max-width: calc(100% - 24px); }
 .home-page-shell .lp-evidence .hp-geodnet .hp-featured-copy { padding: 24px; }
 .home-page-shell .lp-evidence .hp-geodnet h3 { font-size: 40px; }
 .home-page-shell .hp-geodnet .hp-project-evidence { padding: 20px 24px; }
 .home-page-shell .home-core-orbits::before { inset: 0; }
}
@media(max-width:700px) {
 .home-page-shell .lp-evidence :is(.landing-story,.landing-section,.home-transparency,.hp-closing),
 .home-page-shell #core.home-core { padding-block: 56px; }
 .home-page-shell .lp-evidence .landing-hero-copy { padding-top: 48px; }
 .home-page-shell .lp-evidence h1 { font-size: clamp(38px,9.3vw,60px); line-height: 1.09; }
 .home-page-shell .lp-evidence .landing-lead { font-size: 17px; line-height: 1.65; }
 .home-page-shell .lp-evidence .story-layout { display: flex; flex-direction: column; gap: 32px; }
 .home-page-shell .lp-evidence .story-chapter { padding: 0; width: 100%; }
 .home-page-shell .lp-evidence .story-chapter p { max-width: 60ch; margin-top: 16px; }
 .home-page-shell .lp-evidence .story-visual { order: 3; width: 100%; max-width: 460px; height: 420px; align-self: center; }
 .home-page-shell .hp-section-heading { flex-wrap: wrap; align-items: flex-start; gap: 16px; }
 .home-page-shell .lp-evidence .hp-section-heading h2 { font-size: 32px; }
 .home-page-shell .lp-evidence :is(.hp-insight,.landing-plan) { padding: 24px; }
 .home-page-shell .hp-visual-labels { flex-wrap: wrap; }
 .home-page-shell .hp-closing > .container { display: flex; flex-direction: column; align-items: flex-start; }
 .home-page-shell .landing-header .header-inner { gap: 12px; }
 .home-page-shell .landing-header .header-actions { gap: 10px; }
 .home-page-shell .landing-header .menu-toggle { min-width: 44px; min-height: 44px; padding: 10px; position: relative; z-index: 2; }
 .home-page-shell .landing-header .nav.open { top: 100%; max-height: calc(100dvh - 80px); overflow-y: auto; padding: 16px var(--home-gutter); background: var(--home-bg-soft); border-block: 1px solid var(--home-border); }
 .home-page-shell .landing-header .nav a { min-height: 44px; padding-block: 12px; font-size: 16px; }
 .home-page-shell .landing-footer-inner { gap: 24px; align-items: flex-start; }
 .home-page-shell .landing-footer nav { gap: 6px 20px; flex-wrap: wrap; }
 .home-page-shell .home-core-path li { gap: 10px; grid-template-columns: 24px 22px minmax(0,1fr); }
}
@media(max-width:480px) {
 .home-page-shell { --home-gutter: 20px; }
 .home-page-shell .landing-header .header-actions { flex: 1; min-width: 0; gap: 8px; }
 .home-page-shell .landing-header .landing-signup { padding: 6px 8px; min-width: 0; white-space: normal; text-align: center; }
 .home-page-shell .landing-header .menu-toggle { flex-shrink: 0; }
 .home-page-shell .home-transparency-cards { grid-template-columns: 1fr; }
 .home-page-shell .lp-evidence .home-transparency-card { padding: 22px; }
 .home-page-shell .lp-evidence .hp-geodnet .hp-featured-copy { padding: 22px; }
 .home-page-shell .hp-geodnet .hp-project-evidence { padding: 18px 22px; }
 .home-page-shell .hp-geodnet .project-journey { width: 100%; }
 .home-page-shell .hp-geodnet .project-journey .landing-button { width: 100%; }
 .home-page-shell .home-core-figure { padding: 22px; }
 .home-page-shell .home-core-copy .project-journey .landing-button { width: 100%; }
 .home-page-shell #core.home-core .home-core-copy .home-core-lead { font-size: 17px; }
 .home-page-shell .hp-flow ol { gap: 12px 20px; }
 .home-page-shell .hp-flow li + li::before { margin-right: 0; }
}
@media(max-width:350px) {
 .home-page-shell { --home-gutter: 16px; }
 .home-page-shell .landing-header .landing-signup { font-size: 14px; }
 .home-page-shell .brand-name { font-size: 16px; }
 .home-page-shell .landing-brand-original { width: 28px; height: 28px; }
 .home-page-shell .landing-header .header-inner { gap: 8px; }
 .home-page-shell .home-core-figure { padding: 18px; }
}
@media(prefers-reduced-motion:reduce) {
 .home-page-shell *, .home-page-shell *::before, .home-page-shell *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
 .home-page-shell [data-reveal], .home-page-shell [data-intelligence-reveal] { opacity: 1; transform: none; }
}
.home-page-shell .landing-hero-copy > .hp-journey-copy { margin-top: 20px; }
