/* Shared motion vocabulary. Content remains readable if JS fails or is disabled. */
:root{--cbf-ease:cubic-bezier(.22,1,.36,1)}
.cbf-motion .scene-copy,.cbf-motion.cinema-ready .scene:not(.in-view) .scene-copy{opacity:1;translate:none;transition:none}
.cbf-motion .scene-bg{inset:-35px 0;transition:none}
.cbf-motion .scene-bg img{animation:none;will-change:auto;transform:scale(1.035)}
.cbf-motion #site-menu[open]{animation:none}
.cbf-reading-progress{position:fixed;inset:0 0 auto;height:3px;background:#d5b46f;z-index:200;transform-origin:0 50%;scale:0 1;pointer-events:none}
.cbf-motion a,.cbf-motion button{-webkit-tap-highlight-color:transparent}
.cbf-motion :is(.scene-link,.quiet-link,.workshop-footer a,.pastor-website,.film-direct,.agenda-save){text-decoration-thickness:1px;text-underline-offset:6px;transition:color .25s,border-color .25s,translate .35s var(--cbf-ease),background-color .25s}
.cbf-motion :is(.scene-link.primary,.film-main-cta,.pastor-watch,.cbf-menu-toggle){transition:translate .4s var(--cbf-ease),box-shadow .3s,background .3s,scale .2s}
.cbf-motion :is(.scene-link.primary,.film-main-cta,.pastor-watch,.cbf-menu-toggle):active{scale:.97}
.cbf-motion .cbf-menu-glyph,.cbf-motion .cbf-menu-glyph:after{transition:width .35s var(--cbf-ease),transform .35s var(--cbf-ease)}
.cbf-motion .cbf-menu-toggle:hover .cbf-menu-glyph:after{width:25px}
.cbf-motion :is(.album-photo img,.book-card img,.workbook-preview img,.ministry-card img){transition:scale .75s var(--cbf-ease),filter .5s;transform-origin:center}
.cbf-motion :is(.album-filters button,.passage-tabs button,.ministry-jump a){transition:background .25s,color .25s,border-color .25s,box-shadow .25s}
.cbf-motion .photo-wall{scroll-snap-type:x mandatory;overscroll-behavior-x:contain}
.cbf-motion .album-photo{scroll-snap-align:start}
.cbf-motion .album-photo:focus-visible{outline-offset:-4px}
.cbf-motion .ministry-card{transition:translate .45s var(--cbf-ease),box-shadow .45s,border-color .3s}
.cbf-motion .workbook-preview img{box-shadow:10px 18px 30px #08171920;transition:rotate .7s var(--cbf-ease),scale .7s var(--cbf-ease),box-shadow .7s}
.cbf-motion .scene-link:focus-visible,.cbf-motion .quiet-link:focus-visible{outline:2px solid currentColor;outline-offset:7px}
@media(hover:hover) and (pointer:fine){
 .cbf-motion .album-photo:hover img{scale:1.035;filter:brightness(1.06)}
 .cbf-motion .book-card:hover img{scale:1.025}
 .cbf-motion .workbook-preview>a:hover img{rotate:-2deg;scale:1.025;box-shadow:16px 25px 40px #08171930}
 .cbf-motion .ministry-card:hover{translate:0 -4px;box-shadow:0 18px 40px #0b252a10}
 .cbf-motion .scene-link.primary:hover,.cbf-motion .film-main-cta:hover,.cbf-motion .pastor-watch:hover{box-shadow:0 8px 30px #0002}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto!important}
 *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
 .cbf-motion .scene-bg{inset:0;translate:none!important}
 .cbf-motion .scene-bg img{transform:none!important}
 .cbf-motion :is(.album-photo img,.book-card img,.workbook-preview img,.ministry-card,.scene-link.primary,.film-main-cta,.pastor-watch){scale:1!important;rotate:none!important;translate:none!important}
}
@media(hover:none){.cbf-motion .scene-bg{inset:0;translate:none!important}}

/* Legacy scene reveals must not compete with the shared motion layer. */
.cinema-ready .scene .scene-copy,.cinema-ready .scene:not(.in-view) .scene-copy{opacity:1;translate:none;transition:none}
.cbf-motion main h1,.cbf-motion main h2{filter:none}
