/* Native document snapping preserves the existing window-driven sticky scenes. */
html:has(body:is(.home-page,.contact-page).has-home-scroll) {
  scroll-snap-type:y mandatory;
  scroll-padding-block:0;
  scroll-behavior:smooth;
}
:is(.home-page,.contact-page).has-home-scroll .home-snap-panel,
:is(.home-page,.contact-page).has-home-scroll .home-snap-stop {
  scroll-snap-align:start;
  scroll-snap-stop:always;
  scroll-margin-block:0;
}
:is(.home-page,.contact-page).has-home-scroll .home-snap-panel { position:relative; }
.home-snap-stop {
  position:absolute;
  left:0;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
  user-select:none;
}
:is(.home-page,.contact-page).has-home-scroll .site-footer { min-height:100svh; }
/* Animate children so the cloud float, title pulse and sticky transforms remain independent. */
:is(.home-page,.contact-page).has-home-motion [data-home-reveal] {
  transition:opacity 1100ms cubic-bezier(.16,1,.3,1),filter 1100ms cubic-bezier(.16,1,.3,1),transform 1100ms cubic-bezier(.16,1,.3,1);
  transition-delay:var(--home-delay,0ms);
}
:is(.home-page,.contact-page).has-home-motion [data-home-reveal]:not(.is-home-visible) { opacity:0; filter:blur(9px); }
:is(.home-page,.contact-page).has-home-motion [data-home-reveal="copy"]:not(.is-home-visible) { transform:translateY(26px); }
:is(.home-page,.contact-page).has-home-motion [data-home-reveal="visual"]:not(.is-home-visible) { transform:translateY(36px); }
:is(.home-page,.contact-page).has-home-motion [data-home-reveal="wordmark"] { transition-duration:1500ms; }
.home-equipment-reveal { display:block; }
.home-page .has-sector-scroll .home-equipment-reveal {
  opacity:var(--sector-opacity);
  transform:translateY(calc((1 - var(--sector-opacity)) * 32px));
}
.home-page .has-sector-scroll .sector-object figcaption {
  opacity:var(--sector-opacity);
  transform:translateY(calc((1 - var(--sector-opacity)) * 12px));
}
@media(prefers-reduced-motion:reduce) {
 html:has(body:is(.home-page,.contact-page).has-home-scroll) { scroll-snap-type:y proximity; scroll-behavior:auto; }
 :is(.home-page,.contact-page) [data-home-reveal] { transition:none!important; }
 .home-page .home-equipment-reveal,.home-page .sector-object figcaption { transform:none!important; }
}
/* A full-screen footer keeps its links clear of the fixed navigation. */
:is(.home-page,.contact-page).has-home-scroll .site-footer { padding-top:max(88px,3.17vw); }
:is(.home-page,.contact-page).has-home-motion [data-home-reveal]:focus-within { opacity:1; filter:none; }
:is(.home-page,.contact-page).has-home-motion [data-home-reveal="copy"]:focus-within { transform:translateY(0); }
@media(max-height:600px) and (min-width:768px) { .home-page .office-stage { padding-top:78px; } }
/* Wordmark and WITH share the horizon's scroll progress rather than entry timers. */
.home-page .closing-heading {
  position:absolute;
  z-index:3;
  top:max(80px,8svh);
  inset-inline:20px;
  text-align:center;
}
.home-page .closing-heading h2 { position:relative; top:auto; inset-inline:auto; margin:0; }
.home-page .closing-with {
  display:flex;
  justify-content:center;
  margin:14px 0 0;
  font-family:"Helvetica Now Display","Helvetica Neue",Helvetica,Arial,sans-serif;
  font-size:12px;
  font-weight:600;
  letter-spacing:.07em;
  line-height:1.5;
  color:#fe5e0e;
  opacity:var(--closing-reveal,1);
  filter:blur(calc((1 - var(--closing-reveal,1)) * 6px));
  transform:translateY(calc((1 - var(--closing-reveal,1)) * 8px));
}
.home-page .closing-wordmark {
  opacity:var(--closing-reveal,1);
  filter:blur(calc((1 - var(--closing-reveal,1)) * 8px));
}
.closing-with .hero-letter {
  --signal-color:#fe5e0e;
  --signal-transparent:rgba(254,94,14,0);
  --signal-shadow-rest:0 0 .12em rgba(254,94,14,.32);
  --signal-shadow-peak:.012em -.006em .20em rgba(255,160,65,.65),-.012em .009em .32em rgba(254,94,14,.60);
  --halo-rest:.055em;
  --halo-peak:.22em;
  --ink-peak:.006em;
}
.closing-with .hero-halo {
  background-image:var(--type-grain),linear-gradient(180deg,#ffbf80 6.6482%,#ff9e48 15.983%,#fe5e0e 29.537%,#ff5300 53.324%,#ffa566 65.078%,#fe5e0e 76.831%,#6b2400 100%),linear-gradient(#fe5e0e,#fe5e0e);
}
@media(max-width:767px) { .home-page .closing-heading { top:84px; } }
@media(max-height:500px) { .home-page .closing-heading { top:40px; } }
@media(prefers-reduced-motion:reduce) {
 .home-page .closing-with,.home-page .closing-wordmark { opacity:1; filter:none; }
 .home-page .closing-with { transform:none; }
}
