/* One world transform keeps train, platform, rails and scenery together. */
.journey-world{position:absolute;inset:0;transform-origin:8% 78%;will-change:transform}
.travel-scene .modular-scenery{opacity:.94;mask-image:linear-gradient(to bottom,transparent,black 12%,black 94%,transparent);-webkit-mask-image:linear-gradient(to bottom,transparent,black 12%,black 94%,transparent)}
[data-modular-landscape],[data-common-track]{position:absolute;inset:0;overflow:hidden}
.landscape-module{position:absolute;top:0;height:100%;mask-image:linear-gradient(to right,transparent,black 16%);-webkit-mask-image:linear-gradient(to right,transparent,black 16%)}
.landscape-module img{display:block;width:100%;height:100%;max-width:none;object-fit:fill}
[data-common-track]{background-image:url('assets/meadow.webp');background-repeat:repeat-x;clip-path:inset(77% 0 19.7%);z-index:30;pointer-events:none}
.world-guide{position:absolute;z-index:6;pointer-events:none;width:0;border:0;background:none;box-shadow:none;border-radius:0;transition:none}
.world-guide[hidden]{display:none}
.world-guide>i{position:absolute;inset:0 auto 0 0;width:0;height:auto;border:0;border-left:1px dashed #6a866d;opacity:.8}
.world-guide>span{position:absolute;top:0;bottom:auto;transform:none;white-space:nowrap;background:#fcfcf3ed;border:1px solid #92a78a;color:#49664c;border-radius:5px;padding:4px 7px;font:650 10px/1.25 var(--sans);box-shadow:0 2px 6px #344a3310}
.world-guide.slow-guide>span{border-color:#baa277;color:#79603a}
.world-guide.slow-guide>i{border-color:#ae8c59}
.world-guide.stack-label>span{top:32px}
.stop-target i:before{content:'S';position:absolute;top:auto;bottom:6px;left:-7px;width:13px;height:13px;background:#f5f3e7;border:1px solid #799078;font:700 9px var(--sans);border-radius:2px;display:grid;place-items:center}
.stop-target:after{display:none}
.stop-ground{position:absolute;left:0;bottom:0;height:7px;border-inline:2px solid #709d70;border-bottom:1px dashed #709d70;background:linear-gradient(0deg,#a2d79875,#c5e3ad18);box-shadow:0 0 8px #a7cfa842;box-sizing:border-box}
.stop-target.in-target{background:none;border:0}
.stop-target.in-target .stop-ground{background:#a8d89d8c}
.stop-target.stopped{animation:none;background:none!important;border:0;opacity:1}
.stop-target.settled{opacity:0;transition:opacity .5s}
.world-guide.offscreen>i{visibility:hidden}
.dial-pointer{fill:#426f68;stroke:#fffaf0;stroke-width:.8;transform-origin:90px 106px;transition:transform .2s ease;pointer-events:none}
.dial-actual{fill:#c99355;stroke:#fffdf5;stroke-width:1;pointer-events:none}
.cab-lever.dragging .dial-pointer{transition:none}
.close-toggle[aria-pressed=true]{background:#d7e5ce;box-shadow:inset 0 0 0 1px #96b190}
.purchase-notice{position:fixed;z-index:80;bottom:22px;right:24px;width:min(350px,calc(100vw - 32px));box-sizing:border-box;display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid #c7d4bb;border-radius:14px;background:#fffdf4;box-shadow:0 7px 30px #334b3820;animation:purchase-in .3s ease-out}
.purchase-notice .purchase-check{display:grid;place-items:center;width:32px;height:32px;flex:none;background:#e6efd9;color:#517c56;border-radius:50%}
.purchase-notice>div{min-width:0;flex:1}.purchase-notice strong{display:block;font-size:13px;line-height:1.4}.purchase-notice small{display:block;font-size:11px;color:#7d886e;margin-top:3px}
.purchase-notice button{display:grid;place-items:center;width:28px;height:28px;flex:none;border:0;background:transparent;color:#6b7b62;border-radius:50%;cursor:pointer}.purchase-notice button:focus-visible{outline:2px solid #6a8b62}
@keyframes purchase-in{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@media(max-width:650px){.cab-dashboard .ride-tools{gap:6px}.purchase-notice{right:16px;bottom:16px}.world-guide>span{font-size:9px;padding:3px 5px}}
@media(prefers-reduced-motion:reduce){.purchase-notice{animation:none}.dial-pointer{transition:none}.stop-target.settled{transition:none}}
.reduce-motion .purchase-notice{animation:none}.reduce-motion .dial-pointer{transition:none}

.travel-scene:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:7;background:linear-gradient(to bottom,var(--paper),transparent 18px,transparent calc(100% - 18px),var(--paper))}
