/* WBL scroll-scenes (original). CSS scroll-driven animations: reading progress bar, soft fade-up on entry, image
   parallax. Runs off the main thread where supported (Chrome/Edge 115+, Safari 26+, Firefox 159+); module.js covers
   older browsers for the bar and parallax only. Transform/opacity only. */
.wbl-progress{position:fixed;inset:0 0 auto 0;height:3px;z-index:60;background:var(--wbl-accent,#8E3B2E);transform-origin:0 50%;transform:scaleX(var(--wbl-p,0));pointer-events:none}
.wbl-par{overflow:clip;position:relative;border-radius:var(--wbl-radius,0)}
.wbl-par>img{width:100%;height:100%;object-fit:cover;transform:translateY(var(--wbl-py,0)) scale(1.18);will-change:transform}
@keyframes wbl-sd-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes wbl-sd-fade{from{opacity:.25;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes wbl-sd-par{from{transform:translateY(-7%) scale(1.18)}to{transform:translateY(7%) scale(1.18)}}
@supports (animation-timeline: view()){
  .wbl-progress{transform:none;animation:wbl-sd-grow linear both;animation-timeline:scroll(root block)}
  @media (prefers-reduced-motion:no-preference){
    html.wbl-js [data-sd~="fade"]{animation:wbl-sd-fade linear both;animation-timeline:view();animation-range:entry 0% entry 70%}
    .wbl-par>img{animation:wbl-sd-par linear both;animation-timeline:view();animation-range:cover 0% cover 100%}
  }
}
@media (prefers-reduced-motion:reduce){.wbl-par>img{transform:none!important;animation:none!important}}
