/* Seven isolated preview plates. Ink masks share the original file:// fallback. */
[data-motion] .engraving-sheet{animation:none!important;opacity:1!important}
[data-motion].reveal{opacity:1;transition:none}
[data-motion]:not(.motion-ready) .art-stage{visibility:hidden}
.motion-part,.needle-plane,.needle-turn,.bottle-waterline,.payout-flight,.hero-handles{position:absolute;display:block;inset:0}
.motion-part>.ink-layer{inset:0}
.paper-layer{background-color:var(--paper)}
.file-mode .paper-layer{filter:url(#motion-paper-day)}
.file-mode[data-paper=night] .paper-layer{filter:url(#motion-paper-night)}
[data-motion] .move,[data-motion] .motion{animation-play-state:paused!important}
[data-motion].motion-visible.motion-ready .move,[data-motion].motion-visible.motion-ready .motion{animation-play-state:running!important}
.tab-hidden [data-motion] .move,.tab-hidden [data-motion] .motion,.motion-paused [data-motion] .move,.motion-paused [data-motion] .motion{animation-play-state:paused!important}
.show-backgrounds .motion-part,.show-backgrounds .die-contact,.show-backgrounds .euro-contact,.show-backgrounds .reel-window,.show-backgrounds .hero-handles,.show-backgrounds [data-motion=hero] .roulette-surface{visibility:hidden!important}
/* Shorter rests only: moving segments retain their original elapsed seconds and easing. */
/* Hop, rebound and ground contact; no invented face change. */
.die-hop{transform-origin:49% 98%;animation:die-hop 7s ease-in-out 1.7s infinite}
.die-contact{position:absolute;left:70.7%;top:92.8%;width:16.3%;height:4.1%;background:radial-gradient(ellipse,var(--ink) 0%,transparent 70%);opacity:.17;transform-origin:center;animation:die-shadow 7s ease-in-out 1.7s infinite}
@keyframes die-hop{0%,16.71428571%,52%,100%{transform:none}22.28571429%{transform:rotate(-4deg)}27.85714286%{transform:translate(1.5%,-9%) rotate(7deg)}33.42857143%{transform:translate(3%,0) rotate(3deg)}39%{transform:translate(1%,-2%) rotate(-2deg)}44.57142857%{transform:rotate(1deg)}}
@keyframes die-shadow{0%,22.28571429%,44.57142857%,100%{transform:none;opacity:.17}27.85714286%{transform:scale(.79);opacity:.08}33.42857143%{transform:translateX(3%) scale(1.03);opacity:.21}39%{transform:scale(.96);opacity:.14}}
/* Rotate in the dial plane, correcting the perspective of the oval face. */
.needle-plane{transform:scaleY(.81);transform-origin:57.51% 61.93%}
.needle-turn{transform:rotate(-47deg);transform-origin:57.51% 61.93%;animation:compass-settle 10s ease-in-out .5s infinite}
.needle-turn>.motion-part{transform:scaleY(1.2345679);transform-origin:48% 52%}
@keyframes compass-settle{0%,10.2%{transform:rotate(-47deg)}20.4%{transform:rotate(-58deg)}30.6%{transform:rotate(-42deg)}40.8%{transform:rotate(-49deg)}51%,56%{transform:rotate(-47deg)}62.8%{transform:rotate(-40deg)}73%{transform:rotate(-51deg)}83.2%{transform:rotate(-46deg)}95.1%,100%{transform:rotate(-47deg)}}
/* A short edge roll, deceleration, return and damped rocking; never a flat flip. */
.euro-roll{transform-origin:50% 96%;animation:euro-roll 9s ease-in-out 3.1s infinite}
.euro-contact{position:absolute;left:83.5%;top:94%;width:14%;height:3%;background:radial-gradient(ellipse,var(--ink),transparent 70%);opacity:.2;animation:euro-contact 9s ease-in-out 3.1s infinite}
@keyframes euro-contact{0%,14.77777778%,88.66666667%,100%{transform:none}27.44444444%{transform:translateX(6.5%)}40.11111111%{transform:translateX(9%)}54.88888889%{transform:translateX(3.5%)}65.44444444%{transform:translateX(-2%)}73.88888889%{transform:translateX(1%)}82.33333333%{transform:none}}
@keyframes euro-roll{0%,14.77777778%,88.66666667%,100%{transform:none}27.44444444%{transform:translateX(3.5%) rotate(3.5deg)}40.11111111%{transform:translateX(5%) rotate(5deg)}54.88888889%{transform:translateX(2%) rotate(2deg)}65.44444444%{transform:rotate(-2deg)}73.88888889%{transform:rotate(1deg)}82.33333333%{transform:rotate(-.4deg)}}
/* Nib-anchored strokes: small changes with clear rests. */
.quill-write{transform-origin:1% 99%;animation:quill-write 8s ease-in-out 4.4s infinite}
@keyframes quill-write{0%,16.875%,63.75%,100%{transform:none}22.5%{transform:translate(.4%,-.15%) rotate(-1.1deg)}28.125%{transform:translate(.7%,0) rotate(.45deg)}33.75%{transform:translate(.3%,-.1%) rotate(-.7deg)}39.375%{transform:translate(.7%,0) rotate(.3deg)}45%,50.625%{transform:translate(.5%,0) rotate(-.2deg)}56.25%{transform:rotate(.35deg)}}
/* The bottle intersects the wave. Its lower edge is hidden by the waterline. */
.bottle-waterline{clip-path:polygon(0 0,100% 0,100% 86%,75% 87%,64% 83%,58% 78%,52% 79%,47% 84%,35% 88%,0 89%)}
.bottle-bob{transform:translate(-2%,22%) rotate(-1deg);transform-origin:46% 77%;animation:bottle-bob 10.5s ease-in-out .9s infinite}
@keyframes bottle-bob{0%,100%{transform:translate(-2%,22%) rotate(-1deg)}28%{transform:translate(-1.6%,20.8%) rotate(.8deg)}54%,62%{transform:translate(-1.2%,22.4%) rotate(1.4deg)}82%{transform:translate(-1.7%,23%) rotate(-.4deg)}}
.wave-front{pointer-events:none}
/* The lever rotates around its axle; strips clip inside the three reel faces. */
.lever-pull{transform-origin:14% 96%;animation:lever-pull 10s cubic-bezier(.3,.02,.3,1) 2.3s infinite}
@keyframes lever-pull{0%,11.2%,28.8%,100%{transform:none}17.6%{transform:rotate(30deg)}20.8%{transform:rotate(30deg)}25.6%{transform:rotate(-3deg)}}
.reel-window{position:absolute;overflow:hidden;clip-path:polygon(0 0,91% 0,100% 38%,99% 100%,6% 100%,8% 48%);transform:skewY(2deg)}
.reel-ribbon{position:absolute;inset:0 0 auto;height:1100%;animation:reel-one 10s linear 2.3s infinite}
.reel-2 .reel-ribbon{animation-name:reel-two}
.reel-3 .reel-ribbon{animation-name:reel-three}
@keyframes reel-one{0%,22.4%{transform:translateY(0)}28.8%{transform:translateY(-18.181818%)}38.4%{transform:translateY(-54.545455%)}46.4%{transform:translateY(-81.818182%)}51.2%{transform:translateY(-91.1%)}54.4%,100%{transform:translateY(-90.909091%)}}
@keyframes reel-two{0%,22.4%{transform:translateY(0)}30.4%{transform:translateY(-18.181818%)}43.2%{transform:translateY(-54.545455%)}52.8%{transform:translateY(-81.818182%)}59.2%{transform:translateY(-91.1%)}62.4%,100%{transform:translateY(-90.909091%)}}
@keyframes reel-three{0%,22.4%{transform:translateY(0)}32%{transform:translateY(-18.181818%)}48%{transform:translateY(-54.545455%)}59.2%{transform:translateY(-81.818182%)}67.2%{transform:translateY(-91.1%)}70.4%,100%{transform:translateY(-90.909091%)}}
.reel-sharp{animation:reel-focus 10s linear 2.3s infinite}
.reel-blur{opacity:0;animation:reel-smear 10s linear 2.3s infinite}
.reel-2 .reel-sharp{animation-name:reel-focus-two}.reel-2 .reel-blur{animation-name:reel-smear-two}
.reel-3 .reel-sharp{animation-name:reel-focus-three}.reel-3 .reel-blur{animation-name:reel-smear-three}
@keyframes reel-focus{0%,22.4%,51.2%,100%{opacity:1}27.2%,44.8%{opacity:.12}}
@keyframes reel-smear{0%,22.4%,51.2%,100%{opacity:0}27.2%,44.8%{opacity:.95}}
@keyframes reel-focus-two{0%,22.4%,59.2%,100%{opacity:1}27.2%,52.8%{opacity:.12}}
@keyframes reel-smear-two{0%,22.4%,59.2%,100%{opacity:0}27.2%,52.8%{opacity:.95}}
@keyframes reel-focus-three{0%,22.4%,67.2%,100%{opacity:1}27.2%,60.8%{opacity:.12}}
@keyframes reel-smear-three{0%,22.4%,67.2%,100%{opacity:0}27.2%,60.8%{opacity:.95}}
.payout-flight{opacity:0;animation:payout 10s ease-in 2.3s infinite;clip-path:polygon(36% 57%,62% 57%,62% 76%,36% 76%)}
.payout-flight>.motion-part{left:44%!important;top:60%!important;width:6.6%!important;height:9.5%!important}
@keyframes payout{0%,70.4%,80%,100%{transform:none;opacity:0}72%{transform:translateY(-2%);opacity:0}73.6%{transform:translateY(0);opacity:1}76.8%{transform:translateY(7%);opacity:1}78.4%{transform:translateY(9%);opacity:0}}
/* Parrot crop: (347,22), 636x760. Only the original eye socket closes.
   Single blink, then double blink eight seconds later; each closure is 200ms. */
.parrot-blink{position:absolute;left:12.6572327044%;top:5.1315789474%;width:3.4591194969%;height:2.8947368421%;opacity:0;animation:parrot-blink 16s linear 6.2s infinite}
.parrot-blink>.ink-layer,.sand-fall>.ink-layer{inset:0}
@keyframes parrot-blink{0%,1.25%,50%,51.25%,52%,53.25%,100%{opacity:0}0.25%,0.75%,50.25%,50.75%,52.25%,52.75%{opacity:1}}
/* Hourglass crop: (389,39), 422x702. Replace only the original grains
   over blank glass; the 24px stipple repeat joins without a reset flash. */
.sand-channel{position:absolute;left:47.6303317536%;top:49.8575498575%;width:3.317535545%;height:17.094017094%;overflow:hidden;background:var(--paper);pointer-events:none}
.sand-fall{position:absolute;inset:0 0 auto;height:120%;opacity:.82;transform:translateY(-16.6666666667%);animation:sand-trickle .42s linear infinite}
@keyframes sand-trickle{to{transform:translateY(0)}}
/* Original tarpeet turret over the rotating ring; its paper silhouette occludes
   the ring while the unchanged ink layer retains the exact engraved edges. */
.roulette-turret{position:absolute;inset:0;z-index:2;background:var(--paper);clip-path:url(#roulette-turret-cutout);pointer-events:none}
/* Approved cross handles stay still; the live numbered SVG ring turns beneath. */
.hero-handles{z-index:2}
.handle-rod{position:absolute;left:75.4%;top:76.7%;width:4.2%;height:1.05%;transform-origin:left center}
.handle-knob{position:absolute;width:1.15%;height:1.7%;transform:translate(-50%,-50%)}
/* Ball inherits the live 4.8s counter-orbit and turret occlusion unchanged. */
.motion-plate[data-motion] .move,.motion-plate[data-motion] .motion{animation-play-state:paused!important}
.motion-plate[data-motion].motion-visible.motion-ready .move,.motion-plate[data-motion].motion-visible.motion-ready .motion{animation-play-state:running!important}
.tab-hidden .motion-plate[data-motion] .move,.tab-hidden .motion-plate[data-motion] .motion,.motion-paused .motion-plate[data-motion] .move,.motion-paused .motion-plate[data-motion] .motion{animation-play-state:paused!important}
/* Inspection sheet uses the same DOM, assets, filters and clocks as the preview. */
.motion-sheet{overflow-x:hidden}
.motion-toolbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;flex-wrap:wrap;gap:18px;padding:14px 24px;background:var(--paper);border-bottom:1px solid var(--rule);font:13px var(--sans)}
.motion-toolbar button{font:inherit;color:var(--ink);background:none;border:1px solid var(--rule);border-radius:4px;padding:6px 10px;cursor:pointer}
.motion-toolbar label{display:flex;gap:7px;align-items:center}
.motion-sheet main{max-width:1060px;margin:auto;padding:52px 28px}
.motion-sheet h1{font:italic 48px var(--serif);margin:0 0 46px}
.motion-specimen{padding:30px 0 46px;margin:0 0 28px;border-bottom:1px solid var(--rule);scroll-margin-top:90px}
.motion-specimen figcaption{font:14px/1.5 var(--sans);margin-bottom:24px}
.motion-specimen figcaption b{font-weight:500;text-transform:uppercase;letter-spacing:.08em}
.motion-specimen figcaption p{margin:8px 0;color:var(--ink-2)}
.motion-specimen .engraving{width:100%;max-width:900px;--plate-limit:660px;height:auto;margin:auto}
.motion-specimen [data-motion=compass]{max-width:550px}
.motion-specimen [data-motion=bottle]{max-width:700px}
@media(max-width:720px){.motion-sheet main{padding:28px 18px}.motion-sheet h1{font-size:37px}.motion-toolbar{gap:10px;padding:10px 14px}.motion-specimen{padding-top:22px}.motion-specimen .engraving{--plate-limit:470px}}
@media(prefers-reduced-motion:reduce){
 [data-motion] .move,[data-motion] .motion{animation:none!important}
 .needle-turn{transform:rotate(-47deg)}
 [data-motion=hero] .ball-orbit{transform:rotate(-135deg)!important}
 [data-motion=hero] .ball-level{transform:rotate(135deg)!important;opacity:1}
}

/* Image scheduling overrides apply only to Run C pages. */
html[data-perf-c] .reveal{transition-duration:0s!important;transition-delay:0s!important}html[data-perf-c] .engraving-sheet{animation:none!important;opacity:1!important}html[data-perf-c] .hero-side.reveal{opacity:1!important;transform:none!important;translate:none!important}html[data-perf-c] :is(.casino-logo,.casino-shot,.author-photo,.author-portrait,.boost-logo){transition:none!important;animation:none!important}
