/* PACRIM: inked postcards, railway tickets and a quietly busy back office. */
.film[data-case="travel"]{--ink:#181c18;--paper:#f2e9d0;--ochre:#d9b849;--fg:#f6eedb;--hair:#f6eedb48;--figure-fill:var(--paper)}
.film[data-case="travel"][data-scene="0"]{--bg:#53612e;--accent:#bb9349;--backplate:#778142}
.film[data-case="travel"][data-scene="1"]{--bg:#a23d2b;--accent:#d39056;--backplate:#bb5a38}
.film[data-case="travel"][data-scene="2"]{--bg:#2d5065;--accent:#7b9d9b;--backplate:#476d7b}
.film[data-case="travel"][data-scene="3"]{--bg:#346d68;--accent:#d0a851;--backplate:#52837a}
.film[data-case="travel"][data-scene="4"]{--bg:#d3b64d;--fg:#232820;--accent:#857841;--hair:#23282048;--backplate:#ddc46f;--ochre:#ead799;--figure-fill:#f4ead0}
.film[data-case="travel"][data-scene="5"]{--bg:#6b3656;--accent:#bc7975;--backplate:#874d6b}
.film[data-case="travel"][data-scene="6"]{--bg:#435d43;--accent:#d0ab61;--backplate:#647c53}
.film[data-case="travel"] .story-art .print-label{font-weight:650;letter-spacing:1.05px}
.film[data-case="travel"] .travel-paper-drift{transform-origin:380px 280px;animation:travel-paper-drift 9s ease-in-out infinite}
.film[data-case="travel"] .travel-work-current{animation:travel-work-current 7s ease-in-out infinite}
.film[data-case="travel"] .travel-clock-long{transform-origin:0 0;animation:travel-clock-turn 20s linear infinite}
.film[data-case="travel"] .travel-clock-short{transform-origin:0 0;animation:travel-clock-turn 95s linear infinite}
.film[data-case="travel"] .travel-route{stroke-dasharray:7 6;animation:travel-route-flow 20s linear infinite}
.film[data-case="travel"] .travel-post-out{animation:travel-post-out 7s ease-in-out infinite}
.film[data-case="travel"] .travel-post-back{animation:travel-post-back 8s ease-in-out infinite}
.film[data-case="travel"] .travel-quote-rise{animation:travel-quote-rise 9s ease-in-out infinite}
.film[data-case="travel"] .travel-request{animation:travel-request 6s ease-in-out infinite}
.film[data-case="travel"] .travel-plane-glide{animation:travel-plane-glide 10s ease-in-out infinite}
.film[data-case="travel"] .travel-book-stage{transform-origin:380px 190px;animation:travel-book-stage 8s ease-in-out infinite}
.film[data-case="travel"] .travel-ticket-settle{transform-origin:410px 450px;animation:travel-ticket-settle 11s ease-in-out infinite}
.film[data-case="travel"] .travel-day-night{transform-origin:180px 158px;animation:travel-day-night 30s linear infinite}
.film[data-case="travel"] .travel-slip-loop{animation:travel-slip-loop 8s ease-in-out infinite}
.film[data-case="travel"] .travel-plane-hold{animation:travel-plane-hold 9s ease-in-out infinite}
.film[data-case="travel"] .travel-exception-rock{transform-origin:535px 330px;animation:travel-exception-rock 9s ease-in-out infinite}
.film[data-case="travel"] .travel-dossier-drift{transform-origin:440px 400px;animation:travel-dossier-drift 12s ease-in-out infinite}
.film[data-case="travel"] .travel-credit-pulse{animation:travel-credit-pulse 7s ease-in-out infinite}
.film[data-case="travel"] .travel-final-post{animation:travel-final-post 9s ease-in-out infinite}
.film[data-case="travel"] .travel-delay-1{animation-delay:-.4s}
.film[data-case="travel"] .travel-delay-2{animation-delay:-1.9s}
.film[data-case="travel"] .travel-delay-3{animation-delay:-3.6s}
.film[data-case="travel"] .travel-delay-4{animation-delay:-5.1s}
@keyframes travel-paper-drift{0%,100%{transform:translate(0,2px) rotate(-.7deg)}50%{transform:translate(3px,-5px) rotate(.6deg)}}
@keyframes travel-work-current{0%,100%{transform:translate(-33px,1px) rotate(-2deg)}50%{transform:translate(34px,-8px) rotate(3deg)}}
@keyframes travel-clock-turn{to{transform:rotate(360deg)}}
@keyframes travel-route-flow{to{stroke-dashoffset:-130}}
@keyframes travel-post-out{0%,100%{transform:translate(-9px,5px) rotate(-2deg)}50%{transform:translate(23px,-5px) rotate(3deg)}}
@keyframes travel-post-back{0%,100%{transform:translate(12px,0) rotate(1deg)}50%{transform:translate(-18px,5px) rotate(-2deg)}}
@keyframes travel-quote-rise{0%,100%{transform:translateY(4px)}50%{transform:translateY(-7px)}}
@keyframes travel-request{0%,100%{transform:translate(-8px,4px)}50%{transform:translate(14px,-7px)}}
@keyframes travel-plane-glide{0%,100%{transform:translate(-16px,6px)}50%{transform:translate(22px,-8px)}}
@keyframes travel-book-stage{0%,100%{transform:translateY(2px) rotate(-.2deg)}50%{transform:translateY(-3px) rotate(.3deg)}}
@keyframes travel-ticket-settle{0%,100%{transform:rotate(-.45deg) translateY(2px)}50%{transform:rotate(.5deg) translateY(-3px)}}
@keyframes travel-day-night{to{transform:rotate(360deg)}}
@keyframes travel-slip-loop{0%,100%{transform:translate(-5px,1px)}50%{transform:translate(7px,-4px)}}
@keyframes travel-plane-hold{0%,100%{transform:translate(-6px,0)}50%{transform:translate(9px,-6px)}}
@keyframes travel-exception-rock{0%,100%{transform:rotate(-.7deg) translateY(2px)}50%{transform:rotate(.7deg) translateY(-5px)}}
@keyframes travel-dossier-drift{0%,100%{transform:rotate(-.5deg)}50%{transform:rotate(.5deg) translateY(-4px)}}
@keyframes travel-credit-pulse{0%,100%{transform:translateY(2px)}50%{transform:translateY(-5px)}}
@keyframes travel-final-post{0%,100%{transform:translate(-7px,3px) rotate(-2deg)}50%{transform:translate(9px,-5px) rotate(2deg)}}
@media(prefers-reduced-motion:reduce){.film[data-case="travel"] .story-art *{animation:none!important;transition:none!important}}

/* Supplier paperwork feeds source-linked fields; providers remain authoritative. */
.film[data-case="travel"] .travel-document-drift{animation:travel-document-drift 9s ease-in-out infinite}
.film[data-case="travel"] .travel-fields-drift{animation:travel-fields-drift 10s ease-in-out infinite}
.film[data-case="travel"] .travel-idp-roller{transform-origin:383px 286px;animation:travel-idp-roller 12s linear infinite}
.film[data-case="travel"] .travel-review-slip{animation:travel-review-slip 9s ease-in-out infinite}
@keyframes travel-document-drift{0%,100%{transform:translate(-3px,1px)}50%{transform:translate(5px,-2px)}}
@keyframes travel-fields-drift{0%,100%{transform:translate(0,2px)}50%{transform:translate(2px,-3px)}}
@keyframes travel-idp-roller{to{transform:rotate(360deg)}}
@keyframes travel-review-slip{0%,100%{transform:translateY(1px)}50%{transform:translateY(-3px)}}
/* Leave a clear gap above playback controls when a caption wraps on a laptop. */
@media(min-width:761px){.film[data-case="travel"] .story-art{max-height:calc(100dvh - 264px)}}
