/* Every scene shares a seekable clock; motion never runs ahead of the playhead. */
.film-clocked .film-scene,.film-clocked .film-background,.film-clocked .film-caption{transition:none!important}
.film-clocked .film-scene{transform:none}
.film-clocked .film-scene:not(.is-active) .film-caption{visibility:hidden!important}
.film-clocked *,.film-clocked *::before,.film-clocked *::after{animation-play-state:paused!important}
.film-vfx{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
.film-surface{position:absolute;inset:0;z-index:4;display:grid;place-items:center;width:100%;height:100%;border:0;padding:0;border-radius:0;background:transparent;cursor:pointer;color:#f0e4c3;appearance:none}
.film-surface:hover,.film-surface:active{background:transparent}
.film-surface:focus-visible{outline:2px solid #dcc68f!important;outline-offset:-6px!important}
.film-feedback{opacity:0;padding:18px 27px;background:#0b201af0;border:1px solid #e6c98d88;box-shadow:0 12px 50px #0008;font:400 22px Georgia,serif;transition:opacity .14s}
.show-film-feedback .film-feedback{opacity:1}
.film-transport{bottom:17px}
.film-seek{height:44px;position:relative;cursor:pointer;--seek:0}
.film-progress{position:absolute;inset:20px 0 auto;height:3px;margin:0;transition:height .15s}
.film-seek:hover .film-progress,.film-seek:focus-within .film-progress{height:5px}
.film-seek input{position:absolute;inset:0;width:100%;height:44px;margin:0;opacity:0;cursor:pointer;z-index:2;touch-action:none}
.film-seek-thumb{position:absolute;left:calc(var(--seek)*100%);top:22px;width:11px;height:11px;background:#f1ddb0;box-shadow:0 0 14px #e0bb6977;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none}
.film-seek:focus-within{outline:1px solid #dcca8d;outline-offset:2px}
.film-seek-preview{position:absolute;top:44px;left:0!important;line-height:39px;padding:0;background:#0a211d;color:#ede2c2;white-space:nowrap;font-size:13px;opacity:0;pointer-events:none}
.film-seek:hover .film-seek-preview,.film-seek:focus-within .film-seek-preview,.film-seek.is-scrubbing .film-seek-preview{opacity:1}
.film-transport:has(.film-seek:hover) #film-time,.film-transport:has(.film-seek:focus-within) #film-time{visibility:hidden}
.film-scenes{bottom:103px}
.film-wash{background:linear-gradient(90deg,#061b18bb,#06171135 65%,#06171111),linear-gradient(0deg,#061711 0%,#061711eb 23%,#06171140 61%,#071911aa)}
.film-background{filter:saturate(.67) contrast(1.09);will-change:transform}
.film-background.is-timed{animation:cinema-dolly 8s cubic-bezier(.16,.7,.3,1) both}
.film-background:nth-child(2n).is-timed{animation-name:cinema-pan}
.film-graphic{perspective:1000px;transform-style:preserve-3d}
.film-scene.is-timed .film-caption{animation:cinema-caption .7s .35s both;text-shadow:0 2px 12px #02120f}
.film-specializations{perspective:950px;gap:40px;transform-style:preserve-3d}
.film-spec{border:0;background:none;padding-bottom:10px;mix-blend-mode:lighten}
.film-spec img{width:132px;height:132px;filter:drop-shadow(0 12px 16px #0008);mask-image:radial-gradient(ellipse at center,#000 46%,transparent 73%)}
.film-spec.focus{border:0;width:230px;background:none;box-shadow:none}
.film-spec.focus img{width:185px;height:165px}
.film-spec.side{opacity:.9}
.film-spec::after{content:"";position:absolute;inset:auto 8% 0;height:1px;background:linear-gradient(90deg,transparent,#cdb57c,transparent)}
.is-timed .film-spec:first-child{animation:crest-left 1.6s .2s cubic-bezier(.12,.8,.25,1) both}
.is-timed .film-spec:last-child{animation:crest-right 1.6s .3s cubic-bezier(.12,.8,.25,1) both}
.is-timed .film-spec.focus{animation:crest-reveal 2s cubic-bezier(.12,.8,.25,1) both;z-index:1}
.is-timed .rule-lines i{animation-duration:.65s;animation-delay:1.1s;background:#d0b77d99}
.film-reference{margin-top:18px}
.read-sources>div{position:relative;border-bottom:1px solid #d3bb7977;background:linear-gradient(0deg,#24423899,transparent);padding:16px 8px}
.read-wires{visibility:hidden}
.read-core{background:linear-gradient(150deg,#38533eeb,#102a22ed);border-color:#d7c28b;box-shadow:0 12px 45px #020d0988,inset 0 0 25px #ab944d22}
.is-timed .read-sources>div{animation:signal-deploy 1.1s .25s cubic-bezier(.12,.8,.25,1) both}
.is-timed .read-sources>div:nth-child(2){animation-delay:.45s}
.is-timed .read-sources>div:nth-child(3){animation-delay:.65s}
.is-timed .read-core{animation:core-lock 1.2s 1.5s both}
.priority-stack{perspective:800px}
.priority-item{box-shadow:0 8px 22px #0005;position:relative}
.priority-item.blocked,.priority-item.waiting{opacity:1;color:#bcc6b6;background:#0b211ae6}
.is-timed .priority-item{animation:stack-deploy 1s .3s both}
.is-timed .priority-item.waiting{animation-delay:.5s}
.is-timed .priority-item.chosen{animation:action-extract 2.5s .65s cubic-bezier(.2,.7,.2,1) both;z-index:2}
.request-destination{background:linear-gradient(135deg,#294033ed,#10261def)}
.is-timed .request-destination{animation:request-lock 1.2s 2.9s both}
.is-timed .request-seal{animation:seal-close 1s 3s both}
.is-timed .cooldown-tile{animation:cooldown-lock 1.4s .5s both}
.cooldown-tile::before,.cooldown-tile::after{content:"";position:absolute;top:0;bottom:0;width:4px;background:#ddc183;box-shadow:0 0 25px #dab26066}
.cooldown-tile::before{left:0}.cooldown-tile::after{right:0}
.is-timed .cooldown-tile::before{animation:gate-left 1.3s .5s both}
.is-timed .cooldown-tile::after{animation:gate-right 1.3s .5s both}
.is-timed .ordinary-route{animation:route-open 1s 1.5s both}
.flow-rail{height:3px}.flow-rail i{height:3px}
.nec-node{background:linear-gradient(130deg,#254033ed,#0d241eeb);box-shadow:0 15px 35px #0005}
.nec-node.last{color:#f0deb7}
.is-timed .nec-node.first{animation:nec-arrival 1.2s .7s both}
.is-timed .nec-node.second{animation:nec-arrival 1.2s 2.1s both}
.is-timed .nec-node.last{animation:nec-arrival 1.2s 3.5s both}
.danger-track{height:2px}.danger-track i{height:28px;top:-13px;width:3px}
.log-sheet,.review-sheet{box-shadow:0 20px 30px #0005;border-color:#c4ad77}
.is-timed .log-sheet{animation:records-deploy 1.7s .2s both}
.is-timed .review-sheet{animation:review-deploy 1.7s .7s both}
.is-timed .research-boundary{animation:cinema-caption .8s 2.7s both}
@keyframes cinema-dolly{0%{transform:scale(1.3) translate3d(-2%,1%,0);filter:saturate(.6) blur(5px)}25%{filter:saturate(.67) blur(0)}100%{transform:scale(1.035) translate3d(0,0,0);filter:saturate(.67) blur(0)}}
@keyframes cinema-pan{0%{transform:scale(1.19) translate3d(4%,0,0);filter:saturate(.6) blur(4px)}25%{filter:saturate(.67) blur(0)}100%{transform:scale(1.08) translate3d(-2%,0,0);filter:saturate(.67) blur(0)}}
@keyframes cinema-caption{from{opacity:.2;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes crest-reveal{0%{opacity:0;transform:translateZ(400px) rotateY(-45deg) rotateX(15deg) translateY(24px);filter:blur(10px)}65%{opacity:1;transform:translateZ(15px) rotateY(3deg);filter:blur(0)}100%{opacity:1;transform:none;filter:blur(0)}}
@keyframes crest-left{from{opacity:0;transform:translateX(160px) translateZ(-180px) rotateY(65deg)}to{opacity:.9;transform:rotateY(12deg) scale(.88)}}
@keyframes crest-right{from{opacity:0;transform:translateX(-160px) translateZ(-180px) rotateY(-65deg)}to{opacity:.9;transform:rotateY(-12deg) scale(.88)}}
@keyframes signal-deploy{from{opacity:0;transform:translateY(-70px) rotateX(55deg);filter:blur(4px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes core-lock{0%{transform:scale(.85);box-shadow:0 0 0 #d9c38e00}55%{transform:scale(1.1);box-shadow:0 0 65px #d9c38e55}100%{transform:none;box-shadow:0 12px 45px #020d0988,inset 0 0 25px #ab944d22}}
@keyframes stack-deploy{from{opacity:0;transform:translateX(-65px) rotateY(20deg)}to{opacity:1;transform:none}}
@keyframes action-extract{0%{opacity:0;transform:translateX(-65px)}20%{opacity:1;transform:none}48%{transform:translateX(24px) translateZ(65px) rotateY(-5deg);box-shadow:0 15px 40px #000b,0 0 30px #b49a4e44}100%{opacity:1;transform:translateX(18px);box-shadow:inset 3px 0 #e8ca85,0 12px 35px #0008}}
@keyframes request-lock{0%{transform:translateX(32px) scale(.9);border-color:#b9aa7544}60%{transform:scale(1.055);border-color:#ffe5aa;box-shadow:0 0 45px #d6b45c66}100%{transform:none;border-color:#d5bc84;box-shadow:0 0 20px #d6b45c22}}
@keyframes seal-close{from{clip-path:inset(0 48%);opacity:0}to{clip-path:inset(0);opacity:1}}
@keyframes cooldown-lock{0%{transform:rotateX(25deg) scale(.9)}65%{transform:scale(1.04);box-shadow:0 0 50px #d3ad5755}100%{transform:none;box-shadow:0 10px 35px #0006}}
@keyframes gate-left{from{transform:translateX(-80px);opacity:0}to{transform:none;opacity:1}}
@keyframes gate-right{from{transform:translateX(80px);opacity:0}to{transform:none;opacity:1}}
@keyframes route-open{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes nec-arrival{0%{transform:translateY(18px) rotateX(12deg);border-color:#8c9f7777}60%{transform:translateY(-6px);border-color:#f3d9a6;box-shadow:0 0 45px #cfac5355}100%{transform:none;border-color:#cfb984;box-shadow:inset 0 -2px #d2b879,0 10px 30px #0005}}
@keyframes records-deploy{from{opacity:0;transform:translateX(-80px) rotateY(35deg) rotateZ(-4deg)}to{opacity:1;transform:none}}
@keyframes review-deploy{from{opacity:0;transform:translateX(80px) rotateY(-35deg) rotateZ(4deg)}to{opacity:1;transform:none}}
@media(max-width:600px){
 .film-specializations{gap:4px}.film-spec img{width:75px;height:90px}.film-spec.focus{width:44%}.film-spec.focus img{width:112px;height:125px}.film-spec>span{font-size:17px}.film-spec.focus>span{font-size:16px}.film-reference{margin-top:18px}
 .film-scenes{bottom:102px}.film-caption{font-size:22px;min-height:132px;margin-top:9px}.read-sources>div{padding:12px 2px;font-size:16px}.film-wash{background:linear-gradient(0deg,#061711 0%,#061711f5 26%,#06171162 67%,#071911bb)}
 .film-seek-preview{font-size:12px;padding:0;line-height:36px}.film-transport{bottom:14px}.film-buttons{height:36px}
 @keyframes action-extract{0%{opacity:0;transform:translateX(-35px)}20%{opacity:1;transform:none}48%{transform:translateZ(25px) translateX(5px);box-shadow:0 8px 25px #000b,0 0 24px #b49a4e44}100%{opacity:1;transform:translateX(5px);box-shadow:inset 3px 0 #e8ca85,0 12px 35px #0008}}
 @keyframes request-lock{0%{transform:translateY(16px) scale(.96);border-color:#b9aa7544}60%{transform:scale(1.025);border-color:#ffe5aa;box-shadow:0 0 45px #d6b45c66}100%{transform:none;border-color:#d5bc84;box-shadow:0 0 20px #d6b45c22}}
}
@media(max-width:360px){.film-caption{font-size:21px;min-height:143px}.film-spec.focus img{width:90px;height:115px}.film-spec img{width:60px}.film-spec.focus>span{font-size:15px}.read-sources>div{font-size:15px}.film-seek-preview{font-size:11px}}
.film-reduced .film-vfx{opacity:.5}.film-reduced .film-caption{opacity:1!important;transform:none!important}
