/* Home chapter settling. Keep the approved composition and existing sticky travel. */
html.nh-home-snap-active:has(.score-shell[data-page="home"]) {
  scroll-snap-type:y mandatory;
  scroll-padding-block:0!important;
}
.score-shell[data-page="home"] .art-intro-suite>.intro-scene {
  scroll-snap-align:start;
  scroll-snap-stop:always;
  scroll-margin-block:0 -24svh;
}
.score-shell[data-page="home"] .intro-stage {
  height:100svh;
  min-height:0;
}
/* Every later content block remains reachable, including oversized sections. */
.score-shell[data-page="home"] main>section,
.score-shell[data-page="home"]>footer {
  scroll-snap-align:start;
  scroll-snap-stop:normal;
  scroll-margin-block:0;
}
@media(max-width:900px){
  .score-shell[data-page="home"] .art-intro-suite>.intro-scene {scroll-margin-bottom:-18svh}
  .score-shell[data-page="home"] .intro-motion .intro-filmstrip {top:51svh!important;height:20svh!important}
}
/* The previous paint containment clipped the perforations in the film border. */
.score-shell[data-page="home"] .intro-motion .intro-filmstrip {
  contain:layout style;
  border-color:#101110;
  background:#101110;
  padding-block:8px;
  gap:7px;
}
.score-shell[data-page="home"] .intro-motion .intro-filmstrip::before,
.score-shell[data-page="home"] .intro-motion .intro-filmstrip::after {
  background:repeating-linear-gradient(90deg,transparent 0 12px,rgba(225,221,209,.48) 12px 20px,transparent 20px 32px);
  height:6px;
  pointer-events:none;
}
.score-shell[data-page="home"] .intro-motion .intro-filmstrip figure {
  outline:1px solid rgba(225,221,209,.18);
  outline-offset:-1px;
}
@media(prefers-reduced-motion:reduce){
 .score-shell[data-page="home"] .art-intro-suite>.intro-scene{scroll-margin-bottom:0}
}
/* Compose against the same stable mobile viewport used by the stage. */
@media(max-width:900px){
 .score-shell[data-page="home"] .intro-copy{bottom:7.5svh}
 .score-shell[data-page="home"] .intro-wave{height:27svh;top:38svh}
 .score-shell[data-page="home"] .intro-cta{bottom:3.2svh}
}
@media(max-width:700px){
 .score-shell[data-page="home"] .intro-nico .intro-copy{bottom:5.7svh!important}
}
@media(max-width:900px) and (max-height:650px){
 .score-shell[data-page="home"] .intro-nico .intro-copy{bottom:4svh!important}
}

/* Keep the final navigation reachable even when it extends its parent. */
.score-shell[data-page="home"] .art-footer {scroll-snap-align:end;scroll-snap-stop:normal;scroll-margin:0}
/* Short landscape: keep the lettering clear of the unchanged left rail. */
@media(max-width:900px) and (max-height:500px) and (orientation:landscape){
 html .score-shell[data-page="home"] .intro-stage .intro-copy{left:82px!important;right:20px!important}
 html .score-shell[data-page="home"] .intro-motion .intro-filmstrip{top:32svh!important;height:22svh!important}
}

/* Keep the approved rail consistent when an older route stylesheet arrives late. */
html .score-shell[data-page="home"] .intro-scene .intro-rail small{
 transform:none!important;translate:none!important;text-align:center!important;padding-left:.24em!important;
}
