/* A shared, quiet field. Content and the existing cursor sit above it. */
.particle-world{position:fixed;inset:0;z-index:0;width:100%;height:100%;pointer-events:none}
.particles-on{isolation:isolate}
.particles-on main{position:relative;z-index:1}
.particles-on footer{position:relative;z-index:1}
.particles-on .hero{background:radial-gradient(ellipse at 78% 45%,#0d4a3a12,transparent 60%)}
.particles-on .hero-grid-plane{display:none}
.particles-on .approach,.particles-on .cap{background:transparent}
.particles-on .method{background:radial-gradient(ellipse 55% 60% at 85% 35%,#0d4a3a10,transparent 60%)}
.particles-on .cap-alt{background:radial-gradient(ellipse at 80% 45%,#0d4a3a0f,transparent 65%)}
.future-home.particles-on .home-contact{background:radial-gradient(ellipse at 80% 30%,#0d4a3a17,transparent 55%)}
.particles-on .home-contact:before{display:none}
.future-home.particles-on footer{z-index:1;background:linear-gradient(#030a0755,#030a07bb)}
.hero-system-particles{position:absolute;inset:0;z-index:0;pointer-events:none;width:100%;height:100%}
.hero-system-ready .meshmap{visibility:hidden}
.hero-system-ready .stage-label,.hero-system-ready .stage-footer{filter:opacity(var(--system-opacity,1))}
@media(prefers-reduced-motion:reduce){.hero-system-ready .stage-label,.hero-system-ready .stage-footer{filter:none}}

/* The miniature neighbourhood fills the hero behind the foreground copy. */
/* Top padding is whatever the screen has left after the copy (~445px) and the
   bottom band, so the hero is exactly one screen and its bottom bar stays in view. */
.future-home .hero.hero-system-ready{min-height:100svh;padding:clamp(300px,calc(100svh - 565px),580px) 0 120px;align-items:flex-end}
.future-home .hero-system-ready .hero-grid{display:block}
.hero-system-ready .hero-stage{position:absolute;inset:0;width:100%;padding:0;pointer-events:none}
.hero-system-ready .meshmap,.hero-system-ready .stage-label,.hero-system-ready .stage-footer{display:none}
.hero-system-ready .hero-copy{position:relative;z-index:2;max-width:1180px}
.future-home .hero-system-ready h1{font-size:clamp(54px,6.1vw,112px);max-width:19ch;line-height:1.02;letter-spacing:-.06em;text-shadow:0 3px 35px #030605}
.future-home .hero-system-ready .hero-copy p{max-width:580px;text-shadow:0 2px 15px #030605}
.hero-system-ready .hero-footnote{margin-top:30px}
/* Laptop-height screens: the copy tightens a little so the hero still fits
   one screen, town included, with its bottom bar in view. */
@media(min-width:961px) and (max-height:860px){
  .future-home .hero.hero-system-ready{padding:clamp(270px,calc(100svh - 500px),580px) 0 96px}
  .future-home .hero-system-ready h1{font-size:clamp(46px,min(6.1vw,9.4svh),112px);margin:20px 0 20px}
  .future-home .hero-system-ready .hero-actions{margin-top:30px}
  .hero-system-ready .hero-footnote{margin-top:24px}
}
@media(max-width:960px){
  .future-home .hero.hero-system-ready{padding:360px 0 105px;min-height:100svh}
  .future-home .hero-system-ready h1{font-size:clamp(42px,7.4vw,70px);max-width:19ch}
}
@media(max-width:600px){
  .future-home .hero.hero-system-ready{padding:350px 0 90px}
  .future-home .hero-system-ready h1{font-size:clamp(36px,10.4vw,54px)}
}
