/* Dynamic Restoration service pages: shared motion layer (2026-09-13).
   Reveal on entry, staggered cards, scroll-driven hero and photo drift.
   Everything is visible at rest; reduced motion gets the page untouched. */
.rise.pre{opacity:0;transform:translateY(18px)}
.rise.in{opacity:1;transform:none;transition:opacity .55s cubic-bezier(.2,.7,.2,1),transform .55s cubic-bezier(.2,.7,.2,1)}
.signs .sign:nth-child(2),.gal .tile:nth-child(2),.steps .step:nth-child(2),.faq-list details:nth-child(2),.ba-grid .ba-card:nth-child(2){transition-delay:95ms}
.signs .sign:nth-child(3),.gal .tile:nth-child(3),.steps .step:nth-child(3),.faq-list details:nth-child(3){transition-delay:190ms}
.signs .sign:nth-child(4),.gal .tile:nth-child(4),.steps .step:nth-child(4),.faq-list details:nth-child(4){transition-delay:285ms}
.signs .sign:nth-child(5),.gal .tile:nth-child(5),.steps .step:nth-child(5),.faq-list details:nth-child(5){transition-delay:380ms}
.signs .sign:nth-child(6),.gal .tile:nth-child(6){transition-delay:475ms}
.rise.done{transition:none;transition-delay:0s}
@media (prefers-reduced-motion:reduce){.rise.pre{opacity:1;transform:none}.rise.in{transition:none}}

.progress{position:fixed;left:0;top:0;height:3px;width:100%;background:var(--green);transform-origin:0 50%;transform:scaleX(0);z-index:60;pointer-events:none}
@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline: view()){
    .progress{animation:drGrow linear both;animation-timeline:scroll(root)}
    @keyframes drGrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
    .subhero-plate{animation:drPlateLift linear both;animation-timeline:scroll(root);animation-range:0 100vh}
    @keyframes drPlateLift{to{transform:translateY(-40px) scale(1.03)}}
    .subhero-copy{animation:drCopyOut linear both;animation-timeline:scroll(root);animation-range:0 90vh}
    @keyframes drCopyOut{to{transform:translateY(-20px);opacity:.35}}
    .gal .tile img,.ba-card .imgwrap img{transform:scale(1.14);transition:none;animation:drDrift linear both;animation-timeline:view();animation-range:entry 0% exit 100%}
    @keyframes drDrift{from{transform:scale(1.14) translateY(-5.5%)}to{transform:scale(1.14) translateY(5.5%)}}
    section:not(.subhero)>.wrap{animation:drWrapRise linear both;animation-timeline:view();animation-range:entry 0% entry 55%}
    @keyframes drWrapRise{from{transform:translateY(36px)}to{transform:none}}
  }
}
