/* Acts538: independent cartoon props and source-registered local picture layers. */
.a538-motion-on{background:#23754d!important;color:#fff!important;border-color:#2b9360!important}
#a538-fx{position:fixed;inset:0;z-index:80;pointer-events:none;overflow:hidden;display:grid;place-items:center;isolation:isolate}
.a538-backdrop{position:absolute;inset:0;background:rgba(9,24,34,.56);animation:a538-stage 6.5s ease both}
.a538-stage{position:relative;width:min(90vw,78vh,560px);aspect-ratio:1;container-type:inline-size;isolation:isolate;animation:a538-stage 6.5s ease both}
.a538-object{position:absolute;transform-origin:50% 80%;animation-duration:5.8s;animation-delay:var(--a538-delay,0s);animation-fill-mode:both;animation-timing-function:ease-in-out}
.a538-object>img{display:block;width:100%!important;height:100%!important;max-width:none!important;object-fit:contain;animation:none!important;transform:none!important;filter:drop-shadow(0 .8cqw 1cqw #10233245)}
.a538-atlas{position:absolute;inset:0;background-repeat:no-repeat;background-size:calc(var(--a538-cells,3)*100%) 100%;background-position:0 0}
.a538-atlas-action{animation:a538-atlas-action 5.8s steps(1,end) both}
@keyframes a538-stage{0%{opacity:0}7%,88%{opacity:1}100%{opacity:0}}
@keyframes a538-atlas-action{0%,25%{background-position:0 0}26%,59%{background-position:50% 0}60%,100%{background-position:100% 0}}
@keyframes a538-atlas-walk{0%,100%{background-position:0 0}33.333%{background-position:50% 0}66.667%{background-position:100% 0}}
/* The changing atlas frames perform each action. Their registration stays fixed
   so objects do not slide or warp while hands, clay, ropes or hinges change. */
.a538-idol-placement,.a538-king-prayer,.a538-altar-stone,.a538-scroll-unfurl,.a538-prophet-message,.a538-almond-bloom,.a538-bread-handoff,.a538-clay-reshape,.a538-pen-write,.a538-yoke-break,.a538-garden-grow,.a538-weight-balance,.a538-rope-lift,.a538-shackle-open,.a538-covenant-scroll{animation-name:a538-stationary}
@keyframes a538-stationary{from,to{transform:none}}
.a538-royal-walk{animation-name:a538-walk-across}.a538-royal-walk .a538-atlas{animation:a538-atlas-walk .8s steps(1,end) infinite}
@keyframes a538-walk-across{0%{transform:translateX(-28cqw)}100%{transform:translateX(28cqw)}}
.a538-caution-messenger{animation-name:a538-messenger-arrives}.a538-caution-messenger .a538-atlas{animation:a538-walk-and-warn 5.8s steps(1,end) both}
@keyframes a538-messenger-arrives{0%{transform:translateX(-36cqw);opacity:0}12%{opacity:1}55%,100%{transform:translateX(0);opacity:1}}
@keyframes a538-walk-and-warn{0%,12%,28%,44%{background-position:0 0}13%,27%,29%,43%{background-position:50% 0}55%,100%{background-position:100% 0}}
/* Local animation geometry is measured on the exact selected narrative bytes.
   People, walls, lamps and all other underlying source pixels remain fixed. */
.a538-picture{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:2;container-type:inline-size}
.a538-picture-piece{position:absolute;display:block;animation-play-state:paused!important}
.a538-picture-piece>img{display:block;width:100%!important;height:100%!important;max-width:none!important;object-fit:contain;animation:none!important;transform:none!important}
.a538-local-flame{translate:-50% -100%;transform-origin:var(--a538-pivot-x,50%) var(--a538-pivot-y,100%);animation:a538-local-flame var(--a538-duration,1.1s) ease-in-out var(--a538-delay) infinite alternate}
.a538-local-leaf{animation:a538-local-leaf var(--a538-duration,7s) linear var(--a538-delay) infinite}
.a538-local-water{background:repeating-linear-gradient(105deg,transparent 0 14%,#d6f2ff75 15% 18%,transparent 19% 30%);background-size:200% 200%;mix-blend-mode:screen;opacity:.55;animation:a538-local-water var(--a538-duration,3s) linear var(--a538-delay) infinite}
.a538-picture-running>.a538-picture-piece{animation-play-state:running!important}
@keyframes a538-local-flame{from{transform:rotate(-5deg) scale(.93,1);opacity:.58}to{transform:rotate(5deg) scale(1.05,.92);opacity:1}}
@keyframes a538-local-leaf{0%{transform:translate(0,-1cqw) rotate(0);opacity:0}12%,72%{opacity:.9}100%{transform:translate(var(--a538-drift-x),var(--a538-drift-y)) rotate(185deg);opacity:0}}
@keyframes a538-local-water{from{background-position:0 0}to{background-position:100% 100%}}
@media(prefers-reduced-motion:reduce){#a538-fx,.a538-picture{display:none!important}.a538-object,.a538-atlas{animation:none!important}}
@media print{#a538-fx,.a538-picture{display:none!important}}

.a538-raster-crop{display:block;width:100%;height:100%;background-repeat:no-repeat}
/* Altar repair is a repeated gentle working action, unlike irreversible
   opening/breaking/growing actions which finish on their completed frame. */
.a538-altar-stone .a538-atlas{animation:a538-mallet-tap 1.2s steps(1,end) infinite}
@keyframes a538-mallet-tap{0%,32%{background-position:0 0}33%,65%{background-position:50% 0}66%,100%{background-position:100% 0}}
.a538-food-carrier{animation-name:a538-food-arrives}.a538-food-carrier .a538-atlas{animation:a538-walk-and-offer 5.8s steps(1,end) both}
@keyframes a538-food-arrives{0%{transform:translateX(-24cqw);opacity:0}10%{opacity:1}55%,100%{transform:translateX(0);opacity:1}}
@keyframes a538-walk-and-offer{0%,14%,30%,46%{background-position:0 0}15%,29%,31%,45%{background-position:50% 0}55%,100%{background-position:100% 0}}
.a538-consultation-messenger{animation-name:a538-consultation-arrives}
@keyframes a538-consultation-arrives{0%{transform:translateX(-18cqw);opacity:0}10%{opacity:1}35%,100%{transform:translateX(0);opacity:1}}

/* New source-rendered rebuilding actions, fixed registration across three frames. */
.a538-return-caravan,.a538-foundation-build,.a538-timber-place,.a538-temple-raise,.a538-scroll-open,.a538-music-celebrate{animation-name:a538-stationary}
.a538-picture-atlas{display:block;width:100%;height:100%;background-repeat:no-repeat;background-size:300% 100%;animation:a538-local-atlas var(--a538-duration,2.4s) steps(1,end) var(--a538-delay,0s) infinite;animation-play-state:inherit!important}
@keyframes a538-local-atlas{0%,32%{background-position:0 0}33%,65%{background-position:50% 0}66%,100%{background-position:100% 0}}
.a538-local-cloth{transform-origin:var(--a538-pivot-x,50%) var(--a538-pivot-y,0%);animation:a538-local-cloth var(--a538-duration,2s) ease-in-out var(--a538-delay,0s) infinite alternate}
@keyframes a538-local-cloth{from{transform:skewX(-2deg) scaleY(.99)}to{transform:skewX(2deg) scaleY(1.01)}}

/* Ring the rendered handbell with changing clapper positions; the whole effect still clears at6.5s. */
.a538-music-celebrate .a538-atlas{animation:a538-bell-ring 1.15s steps(1,end) infinite}
@keyframes a538-bell-ring{0%,100%{background-position:0 0}25%,75%{background-position:50% 0}50%{background-position:100% 0}}

.a538-cymbal-clash,.a538-stone-place{animation-name:a538-stationary}
.a538-cymbal-clash .a538-atlas{animation:a538-cymbal-clash 1.4s steps(1,end) infinite}
@keyframes a538-cymbal-clash{0%,30%{background-position:0 0}31%,48%{background-position:50% 0}49%,100%{background-position:100% 0}}
.a538-return-caravan{animation-name:a538-cart-return}
.a538-return-caravan .a538-atlas{animation:a538-atlas-walk .85s steps(1,end) infinite}
@keyframes a538-cart-return{0%{transform:translateX(-24cqw)}100%{transform:translateX(24cqw)}}
/* Cloth edges stay registered; a visible moving fabric highlight shows wind. */
.a538-local-cloth{animation-name:none;transform:none}
.a538-local-cloth .a538-raster-crop{position:relative;animation-play-state:inherit!important}
.a538-local-cloth .a538-raster-crop::after{content:"";position:absolute;inset:0;pointer-events:none;mix-blend-mode:soft-light;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.75) 46%,rgba(0,0,0,.6) 55%,transparent 66%) no-repeat;background-size:240% 100%;animation:a538-cloth-ripple 1.8s linear infinite;animation-play-state:inherit!important}
@keyframes a538-cloth-ripple{from{background-position:150% 0}to{background-position:-150% 0}}
/* Authored three-frame actions may use this neutral fixed registration. */
.a538-generic-action{animation-name:a538-stationary}
