/* All content is fully visible without this enhancement.
   One entrance: 520 ms per line, 80 ms offset; marker 380 ms, 110 ms offset.
   Feedback: 180 ms arrows, 420 ms deliberate photo hover, 220 ms FAQ.
   Viewport groups: once only, 420 ms, from .82 opacity and 12 px below.
   No pre-entry class changes baseline visibility or position. */
body.pl-home-v2 .pl-home-title-line,
body.pl-home-v2 .pl-motion-line-inner { display: block; }
body.pl-home-v2 .pl-home-title-line:first-child::after { content: none; }

/* The readable navy text sits above a solid, rectangular orange marker.
   Its final state is also its default state; no script can leave text hidden. */
body.pl-home-v2 .pl-home-hero h1 mark {
  position: relative;
  isolation: isolate;
  background: transparent;
}
body.pl-home-v2 .pl-home-hero h1 mark::before {
  content: '';
  position: absolute;
  inset: 0;
  background: #ff6b35;
  transform: scaleX(1);
  transform-origin: left center;
  z-index: -1;
  pointer-events: none;
}
body.pl-home-v2 .pl-motion-marker-text { position: relative; }

body.pl-home-v2.pl-motion-enter .pl-home-hero h1 mark::before {
  animation: pl-motion-marker 380ms cubic-bezier(.22, 1, .36, 1) 110ms backwards;
}
@keyframes pl-motion-marker {
  from { transform: scaleX(.08); }
  to { transform: scaleX(1); }
}

/* Fixed image windows preserve layout and captions during the small zoom.
   Hero is intentionally static and visible throughout the entrance. */
body.pl-home-v2 .pl-motion-photo-window { overflow: hidden; }
body.pl-home-v2 .pl-motion-photo-window > img { transform: scale(1); }
body.pl-home-v2 .pl-home-branch > .pl-motion-photo-window > img {
  width: 100%;
  aspect-ratio: 3 / 2;
  height: auto;
  object-fit: cover;
}

body.pl-home-v2 :is(.luca-arrow-button > b svg, .pl-home-feature a svg, .pl-home-branch-line svg, .pl-home-statement-scene a svg) {
  transition: transform 180ms cubic-bezier(.22, 1, .36, 1);
}
body.pl-home-v2 :is(.luca-arrow-button:focus-visible > b svg, .pl-home-feature a:focus-visible svg, .pl-home-branch:focus-visible .pl-home-branch-line svg, .pl-home-statement-scene a:focus-visible svg) {
  transform: translateX(3px);
}
body.pl-home-v2 .pl-home-faq summary:focus-visible {
  outline: 2px solid #0b1d3a;
  outline-offset: 3px;
}

@media (hover: hover) and (pointer: fine) {
  body.pl-home-v2 .pl-motion-photo-window > img {
    transition: transform 420ms cubic-bezier(.22, 1, .36, 1);
  }
  body.pl-home-v2 .pl-motion-photo-window:hover > img { transform: scale(1.015); }
  body.pl-home-v2 :is(.luca-arrow-button:hover > b svg, .pl-home-feature a:hover svg, .pl-home-branch:hover .pl-home-branch-line svg, .pl-home-statement-scene a:hover svg) {
    transform: translateX(3px);
  }
}

/* Native details keeps its summary, keyboard behavior, exclusive name groups,
   open state and accessibility semantics. The bounded answer alone reflows. */
@supports selector(details::details-content) and (interpolate-size: allow-keywords) and (transition-behavior: allow-discrete) {
  body.pl-home-v2.pl-motion-native-details .pl-home-faq .luca-accordion details::details-content {
    interpolate-size: allow-keywords;
    block-size: 0;
    overflow: clip;
    content-visibility: hidden;
    transition: block-size 220ms cubic-bezier(.22, 1, .36, 1), content-visibility 220ms allow-discrete;
  }
  body.pl-home-v2.pl-motion-native-details .pl-home-faq .luca-accordion details[open]::details-content {
    block-size: auto;
    content-visibility: visible;
  }
  body.pl-home-v2:is(.pl-motion-reduced, .pl-motion-suspended) .pl-home-faq .luca-accordion details::details-content {
    transition: none;
  }
}

body.pl-home-v2:is(.pl-motion-reduced, .pl-motion-suspended) .pl-motion-photo-window > img,
body.pl-home-v2:is(.pl-motion-reduced, .pl-motion-suspended) :is(.luca-arrow-button > b svg, .pl-home-feature a svg, .pl-home-branch-line svg, .pl-home-statement-scene a svg) {
  transform: none;
  transition: none;
}
body.pl-home-v2:is(.pl-motion-reduced, .pl-motion-suspended) .pl-home-hero h1 mark::before { animation: none; }
body.pl-home-v2:is(.pl-motion-reduced, .pl-motion-suspended) .pl-home-faq summary b { transition: none; }
body.pl-home-v2:is(.pl-motion-reduced, .pl-motion-suspended) .pl-motion-viewport-active {
  opacity: 1 !important;
  transform: none !important;
}

@media (prefers-reduced-motion: reduce) {
  body.pl-home-v2 .pl-home-hero h1 mark::before { animation: none !important; }
  body.pl-home-v2 .pl-motion-photo-window > img,
  body.pl-home-v2 :is(.luca-arrow-button > b svg, .pl-home-feature a svg, .pl-home-branch-line svg, .pl-home-statement-scene a svg) {
    transform: none !important;
    transition: none !important;
  }
  body.pl-home-v2 .pl-home-faq summary b { transition: none !important; }
  body.pl-home-v2 .pl-motion-viewport-active {
    opacity: 1 !important;
    transform: none !important;
  }
  @supports selector(details::details-content) {
    body.pl-home-v2 .pl-home-faq .luca-accordion details::details-content { transition: none !important; }
  }
}
