[data-motion^="prk-"] {
  --prk-x: 42px;
  --prk-x-neg: -42px;
  --prk-y: 30px;
  --prk-y-neg: -30px;
  --prk-run: 86px;
  --prk-run-neg: -86px;
  contain: paint;
}

.prk-entry-frame,
.prk-height-display,
.prk-lane-lights,
.prk-ceiling-list li > i,
.prk-ceiling-beam,
.prk-clearance-ticks,
.prk-level-track,
.prk-camera-focus,
.prk-film-rail,
.prk-steering-console dl > div > i,
.prk-steering-wheel,
.prk-barrier,
.prk-pass-lamps,
.prk-slot-overlay,
.prk-console-map,
.prk-floor-selector,
.prk-floor-dots,
.prk-exit-code,
.prk-exit-tunnel,
.prk-exit-glow {
  pointer-events: none;
}

/* 1. The entry portal separates, checks clearance, and admits the lane. */
.js [data-motion="prk-clearance-gate"] .prk-hero-photo img {
  animation: prk-gate-photo-open 1.12s cubic-bezier(.16,.78,.22,1) both paused;
}
.js [data-motion="prk-clearance-gate"] .prk-hero-copy {
  animation: prk-gate-copy-admit .9s cubic-bezier(.16,.8,.22,1) .08s both paused;
}
.js [data-motion="prk-clearance-gate"] .prk-entry-frame {
  animation: prk-gate-frame-rise .82s steps(6,end) .18s both paused;
}
.js [data-motion="prk-clearance-gate"] .prk-entry-frame > span:first-child {
  animation: prk-gate-panel-left 1.05s cubic-bezier(.2,.72,.22,1) .28s both paused;
}
.js [data-motion="prk-clearance-gate"] .prk-entry-frame > span:nth-child(2) {
  animation: prk-gate-panel-right 1.05s cubic-bezier(.2,.72,.22,1) .28s both paused;
}
.js [data-motion="prk-clearance-gate"] .prk-entry-frame > i {
  animation: prk-gate-clearance-scan 2.7s cubic-bezier(.42,.02,.28,1) .65s infinite paused;
}
.js [data-motion="prk-clearance-gate"] .prk-entry-frame > b {
  animation: prk-gate-reader-pulse 1.35s steps(2,end) .8s infinite paused;
}
.js [data-motion="prk-clearance-gate"] .prk-height-display {
  animation: prk-gate-display-boot .7s steps(5,end) .38s both paused;
}
.js [data-motion="prk-clearance-gate"] .prk-height-display > i {
  animation: prk-gate-display-dot 1.2s steps(2,end) infinite paused;
}
.js [data-motion="prk-clearance-gate"] .prk-height-display > i:nth-of-type(2) { animation-delay: .2s; }
.js [data-motion="prk-clearance-gate"] .prk-height-display > i:nth-of-type(3) { animation-delay: .4s; }
.js [data-motion="prk-clearance-gate"] .prk-lane-lights > span {
  animation: prk-gate-lane-chase 1.4s ease-out infinite paused;
}
.js [data-motion="prk-clearance-gate"] .prk-lane-lights > span:nth-child(2) { animation-delay: .12s; }
.js [data-motion="prk-clearance-gate"] .prk-lane-lights > span:nth-child(3) { animation-delay: .24s; }
.js [data-motion="prk-clearance-gate"] .prk-lane-lights > span:nth-child(4) { animation-delay: .36s; }
.js [data-motion="prk-clearance-gate"] .prk-lane-lights > span:nth-child(5) { animation-delay: .48s; }
.js [data-motion="prk-clearance-gate"] .prk-lane-lights > span:nth-child(6) { animation-delay: .6s; }

@keyframes prk-gate-photo-open {
  0% { opacity: 0; filter: grayscale(1) contrast(1.45); clip-path: inset(0 50%); }
  100% { opacity: 1; filter: none; clip-path: inset(0); }
}
@keyframes prk-gate-copy-admit {
  0% { opacity: 0; translate: var(--prk-x-neg) 0; clip-path: inset(0 18% 0 0); }
  100% { opacity: 1; translate: none; clip-path: inset(0); }
}
@keyframes prk-gate-frame-rise {
  0% { filter: brightness(.35) blur(6px); clip-path: inset(100% 0 0); }
  100% { filter: brightness(1) blur(0); clip-path: inset(0); }
}
@keyframes prk-gate-panel-left {
  0% { opacity: .2; translate: var(--prk-x) 0; }
  100% { opacity: 1; translate: none; }
}
@keyframes prk-gate-panel-right {
  0% { opacity: .2; translate: var(--prk-x-neg) 0; }
  100% { opacity: 1; translate: none; }
}
@keyframes prk-gate-clearance-scan {
  0% { opacity: 0; translate: 0 var(--prk-y-neg); }
  18%, 76% { opacity: 1; }
  100% { opacity: 0; translate: 0 var(--prk-y); }
}
@keyframes prk-gate-reader-pulse {
  0%, 44% { opacity: .22; filter: brightness(.65); }
  45%, 100% { opacity: 1; filter: brightness(1.55); }
}
@keyframes prk-gate-display-boot {
  0% { opacity: 0; filter: blur(7px) brightness(.4); }
  100% { opacity: 1; filter: blur(0) brightness(1); }
}
@keyframes prk-gate-display-dot {
  0%, 42% { opacity: .18; scale: .55; }
  43%, 100% { opacity: 1; scale: 1; }
}
@keyframes prk-gate-lane-chase {
  0% { opacity: .15; scale: .55; }
  55% { opacity: 1; scale: 1.15; }
  100% { opacity: .12; scale: .7; }
}

/* 2. A ceiling scanner samples each low point from portal to return lane. */
.js [data-motion="prk-ceiling-scan"] .prk-height-photo {
  animation: prk-ceiling-photo-drop 1.05s cubic-bezier(.16,.78,.22,1) both paused;
}
.js [data-motion="prk-ceiling-scan"] .prk-height-slice {
  animation: prk-ceiling-slice-dock .9s cubic-bezier(.16,.8,.22,1) .08s both paused;
}
.js [data-motion="prk-ceiling-scan"] .prk-ceiling-list > li {
  animation: prk-ceiling-item-sample .62s ease-out both paused;
  animation-delay: calc(.18s + var(--ceil) * 115ms);
}
.js [data-motion="prk-ceiling-scan"] .prk-ceiling-list > li > i {
  animation: prk-ceiling-item-probe .64s steps(4,end) both paused;
  animation-delay: calc(.48s + var(--ceil) * 115ms);
  transform-origin: left;
}
.js [data-motion="prk-ceiling-scan"] .prk-ceiling-beam {
  animation: prk-ceiling-beam-wake .74s steps(5,end) .3s both paused;
}
.js [data-motion="prk-ceiling-scan"] .prk-ceiling-beam > span {
  animation: prk-ceiling-beam-sweep 2.85s cubic-bezier(.42,.02,.28,1) .55s infinite paused;
}
.js [data-motion="prk-ceiling-scan"] .prk-ceiling-beam > i {
  animation: prk-ceiling-beam-node 1.45s ease-out infinite paused;
}
.js [data-motion="prk-ceiling-scan"] .prk-ceiling-beam > i:nth-of-type(2) { animation-delay: .42s; }
.js [data-motion="prk-ceiling-scan"] .prk-ceiling-beam > b {
  animation: prk-ceiling-beam-lock 1.3s steps(2,end) infinite paused;
}
.js [data-motion="prk-ceiling-scan"] .prk-clearance-ticks > span {
  animation: prk-ceiling-tick-read .8s steps(3,end) infinite alternate paused;
  transform-origin: right;
}
.js [data-motion="prk-ceiling-scan"] .prk-clearance-ticks > span:nth-child(2n) { animation-delay: .12s; }
.js [data-motion="prk-ceiling-scan"] .prk-clearance-ticks > span:nth-child(3n) { animation-delay: .24s; }

@keyframes prk-ceiling-photo-drop {
  0% { opacity: 0; filter: brightness(.5) saturate(.25); clip-path: inset(0 0 100%); }
  100% { opacity: 1; filter: none; clip-path: inset(0); }
}
@keyframes prk-ceiling-slice-dock {
  0% { opacity: 0; translate: var(--prk-x) 0; }
  100% { opacity: 1; translate: none; }
}
@keyframes prk-ceiling-item-sample {
  0% { opacity: 0; translate: 0 var(--prk-y); filter: blur(4px); }
  100% { opacity: 1; translate: none; filter: blur(0); }
}
@keyframes prk-ceiling-item-probe {
  0% { opacity: .12; scale: .05 1; }
  100% { opacity: 1; scale: 1; }
}
@keyframes prk-ceiling-beam-wake {
  0% { filter: brightness(.3) blur(6px); }
  100% { filter: brightness(1) blur(0); }
}
@keyframes prk-ceiling-beam-sweep {
  0% { opacity: 0; translate: 0 var(--prk-run-neg); }
  18%, 78% { opacity: .95; }
  100% { opacity: 0; translate: 0 var(--prk-run); }
}
@keyframes prk-ceiling-beam-node {
  0% { opacity: .2; scale: .5; }
  62% { opacity: 1; }
  100% { opacity: 0; scale: 1.45; }
}
@keyframes prk-ceiling-beam-lock {
  0%, 46% { opacity: .2; filter: brightness(.7); }
  47%, 100% { opacity: 1; filter: brightness(1.5); }
}
@keyframes prk-ceiling-tick-read {
  0% { opacity: .2; scale: .2 1; }
  100% { opacity: 1; scale: 1; }
}

/* 3. A ramp route propagates through five stops and banks into the exit. */
.js [data-motion="prk-ramp-flow"] .prk-route-heading {
  animation: prk-ramp-heading-route .82s ease-out both paused;
}
.js [data-motion="prk-ramp-flow"] .prk-level-plan {
  animation: prk-ramp-plan-unfold .96s cubic-bezier(.16,.78,.22,1) .08s both paused;
}
.js [data-motion="prk-ramp-flow"] .prk-level-plan > article {
  animation: prk-ramp-stop-flow .64s cubic-bezier(.16,.75,.22,1.08) both paused;
  animation-delay: calc(.18s + var(--stop) * 105ms);
}
.js [data-motion="prk-ramp-flow"] .prk-level-track {
  animation: prk-ramp-track-wake .7s steps(5,end) .26s both paused;
}
.js [data-motion="prk-ramp-flow"] .prk-level-track > span {
  animation: prk-ramp-segment-run 1.35s ease-in-out infinite alternate paused;
  transform-origin: left;
}
.js [data-motion="prk-ramp-flow"] .prk-level-track > span:nth-child(2) { animation-delay: .18s; }
.js [data-motion="prk-ramp-flow"] .prk-level-track > span:nth-child(3) { animation-delay: .36s; }
.js [data-motion="prk-ramp-flow"] .prk-level-track > span:nth-child(4) { animation-delay: .54s; }
.js [data-motion="prk-ramp-flow"] .prk-level-track > i {
  animation: prk-ramp-traveler 3.3s cubic-bezier(.42,.02,.28,1) .54s infinite paused;
}
.js [data-motion="prk-ramp-flow"] .prk-level-track > b {
  animation: prk-ramp-destination 1.5s ease-out infinite paused;
}
.js [data-motion="prk-ramp-flow"] .prk-route-photo {
  animation: prk-ramp-photo-bank 1.08s cubic-bezier(.16,.78,.22,1) .12s both paused;
}

@keyframes prk-ramp-heading-route {
  0% { opacity: 0; translate: 0 var(--prk-y); }
  100% { opacity: 1; translate: none; }
}
@keyframes prk-ramp-plan-unfold {
  0% { opacity: 0; filter: grayscale(1); clip-path: polygon(0 0, 16% 0, 0 100%, 0 100%); }
  100% { opacity: 1; filter: none; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); }
}
@keyframes prk-ramp-stop-flow {
  0% { opacity: 0; translate: var(--prk-x-neg) 0; filter: blur(3px); }
  100% { opacity: 1; translate: none; filter: blur(0); }
}
@keyframes prk-ramp-track-wake {
  0% { filter: brightness(.35) saturate(0); }
  100% { filter: brightness(1) saturate(1); }
}
@keyframes prk-ramp-segment-run {
  0% { opacity: .22; scale: .18 1; }
  100% { opacity: 1; scale: 1; }
}
@keyframes prk-ramp-traveler {
  0% { opacity: 0; translate: var(--prk-run-neg) 0; scale: .7; }
  16%, 82% { opacity: 1; }
  100% { opacity: 0; translate: var(--prk-run) 0; scale: 1; }
}
@keyframes prk-ramp-destination {
  0% { opacity: .2; scale: .55; }
  58% { opacity: 1; }
  100% { opacity: 0; scale: 1.4; }
}
@keyframes prk-ramp-photo-bank {
  0% { opacity: 0; rotate: 4deg; filter: contrast(1.4); clip-path: inset(0 100% 0 0); }
  100% { opacity: 1; rotate: 0deg; filter: none; clip-path: inset(0); }
}

/* 4. A camera flash develops four frames and advances the film rail. */
.js [data-motion="prk-photo-flash"] .prk-photo-contact {
  animation: prk-flash-photo-develop 1.02s steps(7,end) both paused;
}
.js [data-motion="prk-photo-flash"] .prk-photo-copy {
  animation: prk-flash-copy-print .88s cubic-bezier(.16,.78,.22,1) .08s both paused;
}
.js [data-motion="prk-photo-flash"] .prk-contact-sheet > article {
  animation: prk-flash-frame-develop .7s steps(5,end) both paused;
  animation-delay: calc(.18s + var(--frame) * 125ms);
}
.js [data-motion="prk-photo-flash"] .prk-camera-focus {
  animation: prk-flash-focus-wake .62s steps(4,end) .28s both paused;
}
.js [data-motion="prk-photo-flash"] .prk-camera-focus > span {
  animation: prk-flash-focus-lock .8s cubic-bezier(.15,.74,.22,1.16) both paused;
}
.js [data-motion="prk-photo-flash"] .prk-camera-focus > span:nth-child(2) { animation-delay: .08s; }
.js [data-motion="prk-photo-flash"] .prk-camera-focus > span:nth-child(3) { animation-delay: .16s; }
.js [data-motion="prk-photo-flash"] .prk-camera-focus > span:nth-child(4) { animation-delay: .24s; }
.js [data-motion="prk-photo-flash"] .prk-camera-focus > i {
  animation: prk-flash-lens-pop 1.65s ease-out infinite paused;
}
.js [data-motion="prk-photo-flash"] .prk-film-rail > span {
  animation: prk-flash-film-feed 1.25s steps(2,end) infinite paused;
}
.js [data-motion="prk-photo-flash"] .prk-film-rail > span:nth-child(2n) { animation-delay: .14s; }
.js [data-motion="prk-photo-flash"] .prk-film-rail > span:nth-child(3n) { animation-delay: .28s; }

@keyframes prk-flash-photo-develop {
  0% { opacity: 0; filter: brightness(2.1) grayscale(1); clip-path: circle(9% at 50% 50%); }
  55% { opacity: 1; filter: brightness(1.35) grayscale(.3); }
  100% { opacity: 1; filter: none; clip-path: circle(75% at 50% 50%); }
}
@keyframes prk-flash-copy-print {
  0% { opacity: 0; translate: var(--prk-x) 0; }
  100% { opacity: 1; translate: none; }
}
@keyframes prk-flash-frame-develop {
  0% { opacity: 0; filter: grayscale(1) blur(5px); clip-path: inset(100% 0 0); }
  100% { opacity: 1; filter: none; clip-path: inset(0); }
}
@keyframes prk-flash-focus-wake {
  0% { filter: brightness(.3) blur(5px); }
  100% { filter: brightness(1) blur(0); }
}
@keyframes prk-flash-focus-lock {
  0% { opacity: 0; scale: 1.65; }
  100% { opacity: 1; scale: 1; }
}
@keyframes prk-flash-lens-pop {
  0% { opacity: .15; scale: .45; }
  62% { opacity: 1; }
  100% { opacity: 0; scale: 1.35; }
}
@keyframes prk-flash-film-feed {
  0%, 42% { opacity: .15; translate: var(--prk-x) 0; scale: .55; }
  43%, 100% { opacity: 1; translate: none; scale: 1; }
}

/* 5. A steering wheel turns while four control channels confirm independently. */
.js [data-motion="prk-wheel-turn"] .prk-condition-heading > div {
  animation: prk-wheel-heading-left .78s ease-out both paused;
}
.js [data-motion="prk-wheel-turn"] .prk-condition-heading > p {
  animation: prk-wheel-heading-right .78s ease-out .1s both paused;
}
.js [data-motion="prk-wheel-turn"] .prk-steering-console {
  animation: prk-wheel-console-start .82s steps(6,end) .08s both paused;
}
.js [data-motion="prk-wheel-turn"] .prk-steering-console dl > div {
  animation: prk-wheel-control-check .62s ease-out both paused;
  animation-delay: calc(.18s + var(--ctrl) * 125ms);
}
.js [data-motion="prk-wheel-turn"] .prk-steering-console dl > div > i {
  animation: prk-wheel-control-lamp 1.2s steps(2,end) infinite paused;
  animation-delay: calc(var(--ctrl) * 185ms);
}
.js [data-motion="prk-wheel-turn"] .prk-steering-wheel {
  animation: prk-wheel-rim-turn 5.2s cubic-bezier(.42,.02,.28,1) .42s infinite paused;
}
.js [data-motion="prk-wheel-turn"] .prk-steering-wheel > span,
.js [data-motion="prk-wheel-turn"] .prk-steering-wheel > i,
.js [data-motion="prk-wheel-turn"] .prk-steering-wheel > b {
  animation: prk-wheel-ring-pulse 1.5s ease-in-out infinite alternate paused;
}
.js [data-motion="prk-wheel-turn"] .prk-steering-wheel > i:nth-of-type(2) { animation-delay: .2s; }
.js [data-motion="prk-wheel-turn"] .prk-steering-wheel > i:nth-of-type(3) { animation-delay: .4s; }
.js [data-motion="prk-wheel-turn"] .prk-condition-photo {
  animation: prk-wheel-photo-roll 1.05s cubic-bezier(.16,.78,.22,1) .1s both paused;
}

@keyframes prk-wheel-heading-left {
  0% { opacity: 0; translate: var(--prk-x-neg) 0; }
  100% { opacity: 1; translate: none; }
}
@keyframes prk-wheel-heading-right {
  0% { opacity: 0; translate: var(--prk-x) 0; }
  100% { opacity: 1; translate: none; }
}
@keyframes prk-wheel-console-start {
  0% { filter: brightness(.35) saturate(0) blur(4px); }
  100% { filter: brightness(1) saturate(1) blur(0); }
}
@keyframes prk-wheel-control-check {
  0% { opacity: 0; clip-path: inset(0 100% 0 0); }
  100% { opacity: 1; clip-path: inset(0); }
}
@keyframes prk-wheel-control-lamp {
  0%, 46% { opacity: .2; filter: grayscale(1) brightness(.7); }
  47%, 100% { opacity: 1; filter: grayscale(0) brightness(1.4); }
}
@keyframes prk-wheel-rim-turn {
  0% { rotate: -24deg; }
  35% { rotate: 34deg; }
  68% { rotate: -12deg; }
  100% { rotate: 336deg; }
}
@keyframes prk-wheel-ring-pulse {
  0% { opacity: .45; filter: brightness(.7); }
  100% { opacity: 1; filter: brightness(1.35); }
}
@keyframes prk-wheel-photo-roll {
  0% { opacity: 0; filter: grayscale(1) contrast(1.35); clip-path: circle(8% at 42% 66%); }
  100% { opacity: 1; filter: none; clip-path: circle(115% at 42% 66%); }
}

/* 6. A barrier authorizes four checks, lifts its arm, and passes the lane. */
.js [data-motion="prk-barrier-pass"] .prk-access-photo {
  animation: prk-barrier-photo-open 1.02s cubic-bezier(.16,.78,.22,1) both paused;
}
.js [data-motion="prk-barrier-pass"] .prk-access-pass {
  animation: prk-barrier-pass-dock .9s cubic-bezier(.16,.8,.22,1) .08s both paused;
}
.js [data-motion="prk-barrier-pass"] .prk-access-pass ol > li {
  animation: prk-barrier-step-authorize .62s steps(5,end) both paused;
  animation-delay: calc(.18s + var(--pass) * 115ms);
}
.js [data-motion="prk-barrier-pass"] .prk-barrier {
  animation: prk-barrier-post-wake .7s steps(5,end) .28s both paused;
}
.js [data-motion="prk-barrier-pass"] .prk-barrier > span {
  animation: prk-barrier-arm-lift 2.1s cubic-bezier(.36,.02,.28,1) .55s both paused;
  transform-origin: left center;
}
.js [data-motion="prk-barrier-pass"] .prk-barrier > i {
  animation: prk-barrier-reader-pulse 1.25s steps(2,end) infinite paused;
}
.js [data-motion="prk-barrier-pass"] .prk-barrier > b {
  animation: prk-barrier-marker-pass 2.7s cubic-bezier(.42,.02,.28,1) .72s infinite paused;
}
.js [data-motion="prk-barrier-pass"] .prk-pass-lamps > span {
  animation: prk-barrier-lamp-pass 1.35s ease-out infinite paused;
}
.js [data-motion="prk-barrier-pass"] .prk-pass-lamps > span:nth-child(2) { animation-delay: .18s; }
.js [data-motion="prk-barrier-pass"] .prk-pass-lamps > span:nth-child(3) { animation-delay: .36s; }
.js [data-motion="prk-barrier-pass"] .prk-pass-lamps > span:nth-child(4) { animation-delay: .54s; }

@keyframes prk-barrier-photo-open {
  0% { opacity: 0; filter: brightness(.5); clip-path: inset(0 100% 0 0); }
  100% { opacity: 1; filter: none; clip-path: inset(0); }
}
@keyframes prk-barrier-pass-dock {
  0% { opacity: 0; translate: var(--prk-x) 0; }
  100% { opacity: 1; translate: none; }
}
@keyframes prk-barrier-step-authorize {
  0% { opacity: 0; filter: grayscale(1) blur(4px); }
  100% { opacity: 1; filter: none; }
}
@keyframes prk-barrier-post-wake {
  0% { filter: brightness(.35) blur(5px); }
  100% { filter: brightness(1) blur(0); }
}
@keyframes prk-barrier-arm-lift {
  0% { rotate: 76deg; }
  68% { rotate: -7deg; }
  100% { rotate: 0deg; }
}
@keyframes prk-barrier-reader-pulse {
  0%, 46% { opacity: .22; filter: brightness(.65); }
  47%, 100% { opacity: 1; filter: brightness(1.5); }
}
@keyframes prk-barrier-marker-pass {
  0% { opacity: 0; translate: var(--prk-run-neg) 0; scale: .65; }
  16%, 82% { opacity: 1; }
  100% { opacity: 0; translate: var(--prk-run) 0; scale: 1; }
}
@keyframes prk-barrier-lamp-pass {
  0% { opacity: .18; scale: .55; }
  62% { opacity: 1; scale: 1.18; }
  100% { opacity: .12; scale: .7; }
}

/* 7. Four parking bays shift into alignment and confirm the receiving slot. */
.js [data-motion="prk-bay-shift"] .prk-bay-copy {
  animation: prk-bay-copy-grid .88s cubic-bezier(.16,.78,.22,1) both paused;
}
.js [data-motion="prk-bay-shift"] .prk-bay-plan > article {
  animation: prk-bay-cell-shift .68s cubic-bezier(.16,.75,.22,1.08) both paused;
  animation-delay: calc(.16s + var(--bay) * 125ms);
}
.js [data-motion="prk-bay-shift"] .prk-bay-note {
  animation: prk-bay-note-lock .62s steps(5,end) .62s both paused;
}
.js [data-motion="prk-bay-shift"] .prk-bay-photo {
  animation: prk-bay-photo-reveal 1.05s cubic-bezier(.16,.78,.22,1) .08s both paused;
}
.js [data-motion="prk-bay-shift"] .prk-slot-overlay {
  animation: prk-bay-slot-focus .7s steps(5,end) .3s both paused;
}
.js [data-motion="prk-bay-shift"] .prk-slot-overlay > span {
  animation: prk-bay-slot-draw .85s cubic-bezier(.18,.72,.22,1) both paused;
  transform-origin: top;
}
.js [data-motion="prk-bay-shift"] .prk-slot-overlay > span:nth-child(2) { animation-delay: .12s; }
.js [data-motion="prk-bay-shift"] .prk-slot-overlay > span:nth-child(3) { animation-delay: .24s; }
.js [data-motion="prk-bay-shift"] .prk-slot-overlay > i {
  animation: prk-bay-slot-scan 2.6s cubic-bezier(.42,.02,.28,1) .6s infinite paused;
}
.js [data-motion="prk-bay-shift"] .prk-slot-overlay > b {
  animation: prk-bay-slot-confirm 1.45s ease-out infinite paused;
}

@keyframes prk-bay-copy-grid {
  0% { opacity: 0; translate: var(--prk-x-neg) 0; }
  100% { opacity: 1; translate: none; }
}
@keyframes prk-bay-cell-shift {
  0% { opacity: 0; translate: 0 var(--prk-y); filter: blur(4px); }
  72% { opacity: 1; translate: 0 -3px; filter: blur(0); }
  100% { opacity: 1; translate: none; filter: blur(0); }
}
@keyframes prk-bay-note-lock {
  0% { opacity: 0; clip-path: inset(0 100% 0 0); }
  100% { opacity: 1; clip-path: inset(0); }
}
@keyframes prk-bay-photo-reveal {
  0% { opacity: 0; filter: grayscale(1) contrast(1.4); clip-path: polygon(0 0, 100% 0, 100% 14%, 0 42%); }
  100% { opacity: 1; filter: none; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); }
}
@keyframes prk-bay-slot-focus {
  0% { filter: brightness(.3) blur(6px); }
  100% { filter: brightness(1) blur(0); }
}
@keyframes prk-bay-slot-draw {
  0% { opacity: .12; scale: 1 .03; }
  100% { opacity: 1; scale: 1; }
}
@keyframes prk-bay-slot-scan {
  0% { opacity: 0; translate: var(--prk-run-neg) 0; }
  18%, 78% { opacity: 1; }
  100% { opacity: 0; translate: var(--prk-run) 0; }
}
@keyframes prk-bay-slot-confirm {
  0% { opacity: .2; scale: .55; }
  58% { opacity: 1; }
  100% { opacity: 0; scale: 1.45; }
}

/* 8. A dispatch map boots six inputs, draws its route, and locks the cursor. */
.js [data-motion="prk-map-console"] .prk-quote-photo {
  animation: prk-map-photo-pixel 1.05s steps(8,end) both paused;
}
.js [data-motion="prk-map-console"] .prk-dispatch-board {
  animation: prk-map-board-boot .9s cubic-bezier(.16,.8,.22,1) .08s both paused;
}
.js [data-motion="prk-map-console"] .prk-dispatch-board > dl > div {
  animation: prk-map-data-load .58s steps(5,end) both paused;
}
.js [data-motion="prk-map-console"] .prk-dispatch-board > dl > div:nth-child(2) { animation-delay: .08s; }
.js [data-motion="prk-map-console"] .prk-dispatch-board > dl > div:nth-child(3) { animation-delay: .16s; }
.js [data-motion="prk-map-console"] .prk-dispatch-board > dl > div:nth-child(4) { animation-delay: .24s; }
.js [data-motion="prk-map-console"] .prk-dispatch-board > dl > div:nth-child(5) { animation-delay: .32s; }
.js [data-motion="prk-map-console"] .prk-dispatch-board > dl > div:nth-child(6) { animation-delay: .4s; }
.js [data-motion="prk-map-console"] .prk-console-map {
  animation: prk-map-console-glow 1.8s ease-in-out .38s infinite alternate paused;
}
.js [data-motion="prk-map-console"] .prk-console-map > span {
  animation: prk-map-route-draw 1.1s cubic-bezier(.18,.72,.22,1) .45s both paused;
  transform-origin: left;
}
.js [data-motion="prk-map-console"] .prk-console-map > i {
  animation: prk-map-node-hop 1.35s ease-out infinite paused;
}
.js [data-motion="prk-map-console"] .prk-console-map > i:nth-of-type(2) { animation-delay: .26s; }
.js [data-motion="prk-map-console"] .prk-console-map > i:nth-of-type(3) { animation-delay: .52s; }
.js [data-motion="prk-map-console"] .prk-console-map > b {
  animation: prk-map-cursor-travel 3s cubic-bezier(.42,.02,.28,1) .62s infinite paused;
}
.js [data-motion="prk-map-console"] .prk-dispatch-board .hero-actions {
  animation: prk-map-lock .62s steps(4,end) .68s both paused;
}

@keyframes prk-map-photo-pixel {
  0% { opacity: 0; filter: contrast(1.7) grayscale(1); clip-path: inset(0 0 100%); }
  100% { opacity: 1; filter: none; clip-path: inset(0); }
}
@keyframes prk-map-board-boot {
  0% { opacity: 0; translate: var(--prk-x-neg) 0; filter: blur(5px); }
  100% { opacity: 1; translate: none; filter: blur(0); }
}
@keyframes prk-map-data-load {
  0% { opacity: 0; clip-path: inset(100% 0 0); filter: blur(3px); }
  100% { opacity: 1; clip-path: inset(0); filter: blur(0); }
}
@keyframes prk-map-console-glow {
  0% { filter: brightness(.68) saturate(.7); }
  100% { filter: brightness(1.35) saturate(1.2); }
}
@keyframes prk-map-route-draw {
  0% { opacity: .14; scale: .02 1; }
  100% { opacity: 1; scale: 1; }
}
@keyframes prk-map-node-hop {
  0% { opacity: .18; translate: 0 8px; scale: .6; }
  56% { opacity: 1; translate: 0 -4px; scale: 1.12; }
  100% { opacity: .18; translate: none; scale: .72; }
}
@keyframes prk-map-cursor-travel {
  0% { opacity: 0; translate: var(--prk-run-neg) 12px; }
  18%, 80% { opacity: 1; }
  100% { opacity: 0; translate: var(--prk-run) -12px; }
}
@keyframes prk-map-lock {
  0% { opacity: 0; filter: brightness(.6); }
  100% { opacity: 1; filter: brightness(1); }
}

/* 9. The FAQ panel changes floor while its indicators answer in sequence. */
.js [data-motion="prk-faq-level"] .prk-faq-copy {
  animation: prk-faq-copy-level .88s cubic-bezier(.16,.78,.22,1) both paused;
}
.js [data-motion="prk-faq-level"] .prk-faq-list > details {
  animation: prk-faq-item-floor .55s ease-out backwards paused;
}
.js [data-motion="prk-faq-level"] .prk-faq-list > details:nth-child(2) { animation-delay: .07s; }
.js [data-motion="prk-faq-level"] .prk-faq-list > details:nth-child(3) { animation-delay: .14s; }
.js [data-motion="prk-faq-level"] .prk-faq-list > details:nth-child(4) { animation-delay: .21s; }
.js [data-motion="prk-faq-level"] .prk-faq-list > details:nth-child(5) { animation-delay: .28s; }
.js [data-motion="prk-faq-level"] .prk-faq-list > details:nth-child(6) { animation-delay: .35s; }
.js [data-motion="prk-faq-level"] .prk-faq-photo {
  animation: prk-faq-photo-door 1.08s cubic-bezier(.16,.78,.22,1) .08s both paused;
}
.js [data-motion="prk-faq-level"] .prk-floor-selector {
  animation: prk-faq-selector-boot .68s steps(5,end) .28s both paused;
}
.js [data-motion="prk-faq-level"] .prk-floor-selector > span {
  animation: prk-faq-level-change 2.1s steps(4,end) .52s infinite paused;
}
.js [data-motion="prk-faq-level"] .prk-floor-selector > i {
  animation: prk-faq-level-lamp 1.25s steps(2,end) infinite paused;
}
.js [data-motion="prk-faq-level"] .prk-floor-selector > i:nth-of-type(2) { animation-delay: .22s; }
.js [data-motion="prk-faq-level"] .prk-floor-selector > i:nth-of-type(3) { animation-delay: .44s; }
.js [data-motion="prk-faq-level"] .prk-floor-selector > b {
  animation: prk-faq-direction-pulse 1.45s ease-out infinite paused;
}
.js [data-motion="prk-faq-level"] .prk-floor-dots > span {
  animation: prk-faq-floor-sequence 1.5s ease-out infinite paused;
}
.js [data-motion="prk-faq-level"] .prk-floor-dots > span:nth-child(2) { animation-delay: .12s; }
.js [data-motion="prk-faq-level"] .prk-floor-dots > span:nth-child(3) { animation-delay: .24s; }
.js [data-motion="prk-faq-level"] .prk-floor-dots > span:nth-child(4) { animation-delay: .36s; }
.js [data-motion="prk-faq-level"] .prk-floor-dots > span:nth-child(5) { animation-delay: .48s; }
.js [data-motion="prk-faq-level"] .prk-floor-dots > span:nth-child(6) { animation-delay: .6s; }

@keyframes prk-faq-copy-level {
  0% { opacity: 0; translate: var(--prk-x-neg) 0; }
  100% { opacity: 1; translate: none; }
}
@keyframes prk-faq-item-floor {
  0% { opacity: 0; translate: 0 var(--prk-y); clip-path: inset(0 0 100%); }
  100% { opacity: 1; translate: none; clip-path: inset(0); }
}
@keyframes prk-faq-photo-door {
  0% { opacity: 0; filter: grayscale(1) contrast(1.45); clip-path: inset(0 50%); }
  100% { opacity: 1; filter: none; clip-path: inset(0); }
}
@keyframes prk-faq-selector-boot {
  0% { filter: brightness(.3) blur(7px); }
  100% { filter: brightness(1) blur(0); }
}
@keyframes prk-faq-level-change {
  0%, 22% { opacity: .25; filter: blur(4px) brightness(.7); scale: .82; }
  23%, 48% { opacity: .85; filter: blur(0) brightness(1.2); scale: 1; }
  49%, 74% { opacity: .35; filter: blur(3px) brightness(.85); scale: .9; }
  75%, 100% { opacity: 1; filter: blur(0) brightness(1.45); scale: 1; }
}
@keyframes prk-faq-level-lamp {
  0%, 46% { opacity: .2; filter: brightness(.65); }
  47%, 100% { opacity: 1; filter: brightness(1.5); }
}
@keyframes prk-faq-direction-pulse {
  0% { opacity: .2; translate: 0 8px; scale: .6; }
  58% { opacity: 1; translate: 0 -4px; scale: 1.12; }
  100% { opacity: 0; translate: none; scale: .75; }
}
@keyframes prk-faq-floor-sequence {
  0% { opacity: .16; scale: .5; }
  55% { opacity: 1; scale: 1.16; }
  100% { opacity: .12; scale: .7; }
}

/* 10. Exit lights expand through the tunnel and carry one marker outside. */
.js [data-motion="prk-exit-light"] .prk-contact-photo img {
  animation: prk-exit-photo-drive 9.5s ease-in-out infinite alternate paused;
}
.js [data-motion="prk-exit-light"] .prk-exit-panel {
  animation: prk-exit-panel-arrive .96s cubic-bezier(.16,.8,.22,1) .08s both paused;
}
.js [data-motion="prk-exit-light"] .prk-final-links > a {
  animation: prk-exit-link-open .55s ease-out backwards paused;
}
.js [data-motion="prk-exit-light"] .prk-final-links > a:nth-child(2) { animation-delay: .08s; }
.js [data-motion="prk-exit-light"] .prk-final-links > a:nth-child(3) { animation-delay: .16s; }
.js [data-motion="prk-exit-light"] .prk-final-links > a:nth-child(4) { animation-delay: .24s; }
.js [data-motion="prk-exit-light"] .prk-exit-code > span {
  animation: prk-exit-code-wave 1.25s ease-in-out infinite alternate paused;
  transform-origin: bottom;
}
.js [data-motion="prk-exit-light"] .prk-exit-code > span:nth-child(2n) { animation-delay: .12s; }
.js [data-motion="prk-exit-light"] .prk-exit-code > span:nth-child(3n) { animation-delay: .24s; }
.js [data-motion="prk-exit-light"] .prk-exit-tunnel {
  animation: prk-exit-tunnel-wake .82s steps(6,end) .3s both paused;
}
.js [data-motion="prk-exit-light"] .prk-exit-tunnel > span {
  animation: prk-exit-tunnel-expand 2.2s ease-out infinite paused;
  transform-origin: center;
}
.js [data-motion="prk-exit-light"] .prk-exit-tunnel > span:nth-child(2) { animation-delay: .24s; }
.js [data-motion="prk-exit-light"] .prk-exit-tunnel > span:nth-child(3) { animation-delay: .48s; }
.js [data-motion="prk-exit-light"] .prk-exit-tunnel > span:nth-child(4) { animation-delay: .72s; }
.js [data-motion="prk-exit-light"] .prk-exit-tunnel > i {
  animation: prk-exit-marker-travel 3.6s cubic-bezier(.42,.02,.28,1) .62s infinite paused;
}
.js [data-motion="prk-exit-light"] .prk-exit-tunnel > b {
  animation: prk-exit-sign-pulse 1.35s steps(2,end) infinite paused;
}
.js [data-motion="prk-exit-light"] .prk-exit-glow {
  animation: prk-exit-glow-breathe 3s ease-out infinite paused;
}

@keyframes prk-exit-photo-drive {
  0% { translate: 0 0; scale: 1.01; filter: saturate(.82) brightness(.8); }
  100% { translate: -1.2% 0; scale: 1.055; filter: saturate(1.08) brightness(.98); }
}
@keyframes prk-exit-panel-arrive {
  0% { opacity: 0; translate: var(--prk-x-neg) 0; filter: blur(5px); }
  100% { opacity: 1; translate: none; filter: blur(0); }
}
@keyframes prk-exit-link-open {
  0% { opacity: 0; clip-path: inset(0 100% 0 0); }
  100% { opacity: 1; clip-path: inset(0); }
}
@keyframes prk-exit-code-wave {
  0% { opacity: .28; scale: 1 .18; }
  100% { opacity: 1; scale: 1; }
}
@keyframes prk-exit-tunnel-wake {
  0% { filter: brightness(.3) blur(7px); }
  100% { filter: brightness(1) blur(0); }
}
@keyframes prk-exit-tunnel-expand {
  0% { opacity: .12; scale: .5; }
  64% { opacity: .9; }
  100% { opacity: 0; scale: 1.18; }
}
@keyframes prk-exit-marker-travel {
  0% { opacity: 0; translate: var(--prk-run-neg) 18px; scale: .65; }
  16%, 84% { opacity: 1; }
  100% { opacity: 0; translate: var(--prk-run) -18px; scale: 1; }
}
@keyframes prk-exit-sign-pulse {
  0%, 46% { opacity: .2; filter: brightness(.65); }
  47%, 100% { opacity: 1; filter: brightness(1.55); }
}
@keyframes prk-exit-glow-breathe {
  0% { opacity: 0; scale: .72; filter: blur(8px); }
  48% { opacity: .7; }
  100% { opacity: 0; scale: 1.2; filter: blur(1px); }
}

.js [data-motion^="prk-"].is-motion-active,
.js [data-motion^="prk-"].is-motion-active *,
.js [data-motion^="prk-"].is-motion-active *::before,
.js [data-motion^="prk-"].is-motion-active *::after {
  animation-play-state: running;
}

@media (max-width: 1080px) {
  [data-motion^="prk-"] {
    --prk-x: 34px;
    --prk-x-neg: -34px;
    --prk-y: 25px;
    --prk-y-neg: -25px;
    --prk-run: 70px;
    --prk-run-neg: -70px;
  }

  .js [data-motion="prk-wheel-turn"] .prk-steering-wheel { animation-duration: 5.8s; }
  .js [data-motion="prk-exit-light"] .prk-exit-tunnel > span { animation-duration: 2.5s; }
}

@media (max-width: 840px) {
  [data-motion^="prk-"] {
    --prk-x: 26px;
    --prk-x-neg: -26px;
    --prk-y: 20px;
    --prk-y-neg: -20px;
    --prk-run: 54px;
    --prk-run-neg: -54px;
  }

  .js [data-motion="prk-ramp-flow"] .prk-level-track > i,
  .js [data-motion="prk-barrier-pass"] .prk-barrier > b,
  .js [data-motion="prk-map-console"] .prk-console-map > b,
  .js [data-motion="prk-exit-light"] .prk-exit-tunnel > i { animation-duration: 4s; }

  .js [data-motion="prk-photo-flash"] .prk-camera-focus > i,
  .js [data-motion="prk-faq-level"] .prk-floor-selector > b { animation-duration: 1.8s; }
}

@media (max-width: 560px) {
  [data-motion^="prk-"] {
    --prk-x: 18px;
    --prk-x-neg: -18px;
    --prk-y: 14px;
    --prk-y-neg: -14px;
    --prk-run: 38px;
    --prk-run-neg: -38px;
  }

  .js [data-motion="prk-ceiling-scan"] .prk-ceiling-list > li,
  .js [data-motion="prk-ramp-flow"] .prk-level-plan > article,
  .js [data-motion="prk-photo-flash"] .prk-contact-sheet > article,
  .js [data-motion="prk-barrier-pass"] .prk-access-pass ol > li,
  .js [data-motion="prk-bay-shift"] .prk-bay-plan > article { animation-duration: .52s; }

  .js [data-motion="prk-exit-light"] .prk-contact-photo img { animation-duration: 11s; }
}

@media (max-width: 380px) {
  [data-motion^="prk-"] {
    --prk-x: 12px;
    --prk-x-neg: -12px;
    --prk-y: 10px;
    --prk-y-neg: -10px;
    --prk-run: 26px;
    --prk-run-neg: -26px;
  }

  .js [data-motion="prk-clearance-gate"] .prk-hero-copy,
  .js [data-motion="prk-ceiling-scan"] .prk-height-slice,
  .js [data-motion="prk-barrier-pass"] .prk-access-pass,
  .js [data-motion="prk-map-console"] .prk-dispatch-board,
  .js [data-motion="prk-exit-light"] .prk-exit-panel { animation-duration: .72s; }
}

@media (prefers-reduced-motion: reduce) {
  [data-motion^="prk-"],
  [data-motion^="prk-"] *,
  [data-motion^="prk-"] *::before,
  [data-motion^="prk-"] *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}
