/* Cinematic depth is additive: all copy, photos, and controls remain visible. */
body.cinematic-ready .hero {
  --cinema-hero-progress:0;
  --cinema-copy-y:0px;
  --cinema-rail-y:0px;
  --cinema-hero-image-y:0px;
}
body.cinematic-active .hero-content {translate:0 var(--cinema-copy-y)}
body.cinematic-active .hero-showcase {
  translate:0 var(--cinema-rail-y);
  transform-origin:50% 70%;
}
body.cinematic-ready .spotlight-window {position:relative;isolation:isolate}
body.cinematic-active .spotlight-image > img {
  translate:0 var(--cinema-hero-image-y);
  scale:1.035;
}
body.cinematic-active .daily-edit-photo > img,
body.cinematic-active .experience-art > img,
body.cinematic-active .chauffeur-bg,
body.cinematic-active [data-cinematic-image] {
  translate:0 var(--cinema-image-y,0px);
  scale:1.055;
}
body.cinematic-active .daily-edit-photo > span:not(.cinematic-photo-frame),
body.cinematic-active .experience-art .photo-notation,
body.cinematic-active [data-cinematic-note] {translate:0 var(--cinema-note-y,0px)}
body.cinematic-ready .trip-preview {overflow:hidden}

/* A restrained 3D response follows a fine pointer without replacing the cursor.
   Individual rotate leaves the application's existing transform intact. */
@media(hover:hover) and (pointer:fine) {
  body.cinematic-active .hero {perspective:1500px}
  body.cinematic-active .fleet-grid {perspective:1300px}
  body.cinematic-active .cinematic-pointer-surface {
    rotate:var(--cinema-tilt-axis-x,1) var(--cinema-tilt-axis-y,0) 0 var(--cinema-tilt-angle,0deg);
    transition:rotate .3s cubic-bezier(.16,1,.3,1),border-color .35s,box-shadow .4s,opacity .85s!important;
  }
}
body.cinematic-ready .cinematic-pointer-light {
  position:absolute;inset:0;z-index:4;border-radius:inherit;pointer-events:none;
  background:radial-gradient(450px circle at var(--cinema-light-x,50%) var(--cinema-light-y,50%),#ff274a26,#e922480d 38%,transparent 72%);
  box-shadow:inset 0 0 0 1px #ff4c6947;
  opacity:var(--cinema-light-strength,0);
  mix-blend-mode:screen;
  transition:opacity .3s ease;
}
body.cinematic-ready .hero-showcase > .cinematic-pointer-light {
  background:radial-gradient(600px circle at var(--cinema-light-x,50%) var(--cinema-light-y,50%),#ff274a29,#e922480b 45%,transparent 75%);
}

/* Fine corner marks give the photographs a single visual language. */
body.cinematic-ready .cinematic-photo-frame {
  position:absolute;
  inset:15px;
  z-index:3;
  pointer-events:none;
  opacity:.55;
  --cinema-frame-art:
    linear-gradient(#ff3e5d,#ff3e5d) left top/30px 1px no-repeat,
    linear-gradient(#ff3e5d,#ff3e5d) left top/1px 30px no-repeat,
    linear-gradient(#ffffffba,#ffffffba) right bottom/30px 1px no-repeat,
    linear-gradient(#ffffffba,#ffffffba) right bottom/1px 30px no-repeat;
  background:var(--cinema-frame-art);
}
body.cinematic-ready .daily-edit-photo > .cinematic-photo-frame {
  left:15px;top:15px;right:15px;bottom:15px;padding:0;
}
body.cinematic-active .spotlight-slide.is-current .spotlight-edition {
  translate:0 calc(var(--cinema-hero-image-y) * -.55);
}
body.cinematic-active .gallery-thumbs button,
body.cinematic-active .booking-photo-controls button {
  transition:border-color .25s ease,translate .3s cubic-bezier(.16,1,.3,1);
}
body.cinematic-active .gallery-thumbs button:is(:hover,:focus-visible),
body.cinematic-active .booking-photo-controls button:is(:hover,:focus-visible) {translate:0 -3px}
@media(max-width:820px) {
  body.cinematic-active .hero-content,
  body.cinematic-active .hero-showcase {translate:none;rotate:none}
  body.cinematic-active .spotlight-image > img {scale:1.025}
  body.cinematic-active .daily-edit-photo > img,
  body.cinematic-active .experience-art > img,
  body.cinematic-active .chauffeur-bg,
  body.cinematic-active [data-cinematic-image] {scale:1.04}
  body.cinematic-ready .cinematic-photo-frame {inset:10px}
}
/* Only controlled motion runs. Native scrolling and focus are never captured. */
body.cinematic-suspended *,body.cinematic-suspended *::before,body.cinematic-suspended *::after {
  animation-play-state:paused!important;
  transition:none!important;
}
body.motion-paused .hero-content,body.motion-paused .hero-showcase,
body.motion-paused .cinematic-pointer-surface,
body.motion-paused .spotlight-image > img,body.motion-paused .spotlight-edition,
body.motion-paused .daily-edit-photo > img,body.motion-paused .daily-edit-photo > span,
body.motion-paused .experience-art > img,body.motion-paused .experience-art .photo-notation,
body.motion-paused .chauffeur-bg,body.motion-paused [data-cinematic-image],body.motion-paused [data-cinematic-note] {
  translate:none!important;rotate:none!important;scale:none!important;
}
body.motion-paused .cinematic-pointer-light,body.cinematic-suspended .cinematic-pointer-light {opacity:0!important;transition:none!important}
@media(prefers-reduced-motion:reduce) {
  body.cinematic-ready .hero-content,body.cinematic-ready .hero-showcase,
  body.cinematic-ready .cinematic-pointer-surface,
  body.cinematic-ready .spotlight-image > img,body.cinematic-ready .spotlight-edition,
  body.cinematic-ready .daily-edit-photo > img,body.cinematic-ready .daily-edit-photo > span,
  body.cinematic-ready .experience-art > img,body.cinematic-ready .experience-art .photo-notation,
  body.cinematic-ready .chauffeur-bg,body.cinematic-ready [data-cinematic-image],body.cinematic-ready [data-cinematic-note] {
    translate:none!important;rotate:none!important;scale:none!important;
  }
  body.cinematic-ready .cinematic-pointer-light {display:none}
}

/* Real photography enters as an editorial sequence; graphics occupy the backplane. */
body.cinematic-ready .speed-field {
  position:absolute;inset:0;width:100%;height:100%;overflow:visible;
  pointer-events:none;opacity:.92;z-index:1;
}
body.cinematic-ready .speed-field path {fill:none;vector-effect:non-scaling-stroke;stroke-linecap:round}
body.cinematic-ready .speed-lane {stroke:#f52c49;stroke-width:1;opacity:.17}
body.cinematic-ready .speed-runner {
  stroke:#ff3b58;stroke-width:2;stroke-dasharray:90 910;opacity:.82;
  animation:cinematic-speed-travel 7.5s linear infinite;
  animation-delay:var(--speed-delay,0s);animation-play-state:paused;
}
body.cinematic-active .cinematic-scene-visible .speed-runner {animation-play-state:running}
body.cinematic-ready .hero:not(.cinematic-scene-visible) .hero-atmosphere > span,
body.cinematic-ready .hero:not(.cinematic-scene-visible) .hero-atmosphere::after {animation-play-state:paused!important}
body.cinematic-active .hero-ghost {translate:calc(var(--cinema-hero-progress,0) * -48px) 0}
body.cinematic-active .corvette-watermark {translate:calc((var(--cinema-progress,.5) - .5) * -70px) 0}
body.cinematic-active .corvette-main-photo img {
  translate:0 calc(var(--cinema-image-y,0px) * .55);scale:1.035;
}
body.cinematic-active .corvette-detail-photo img {
  translate:0 calc(var(--cinema-image-y,0px) * -.35);scale:1.035;
}
body.cinematic-ready .corvette-gallery .cinematic-photo-frame {
  position:absolute;inset:14px;width:auto;height:auto;margin:0;padding:0;border:0;border-radius:0;
  transform:none;translate:none;rotate:none;scale:none;opacity:.55;
  background:var(--cinema-frame-art);pointer-events:none;
}
body.cinematic-ready .cinematic-road-path {
  fill:none;stroke-dasharray:1000;stroke-dashoffset:0;
  stroke-linecap:round;vector-effect:non-scaling-stroke;
}
body.cinematic-active .cinematic-road-path {
  stroke-dashoffset:calc(1000 * (1 - var(--corvette-road-progress,0)));
}
body.cinematic-ready .corvette-road-runner {
  fill:none;stroke:#ff3653;stroke-width:2;stroke-linecap:round;
  vector-effect:non-scaling-stroke;stroke-dasharray:75 925;opacity:.9;
  animation:cinematic-speed-travel 6s linear infinite;animation-play-state:paused;
}
body.cinematic-ready .corvette-road-runner:nth-of-type(even) {animation-delay:-3s}
body.cinematic-active .cinematic-scene-visible .corvette-road-runner {animation-play-state:running}
body.cinematic-ready .corvette-spec-line {position:relative}
body.cinematic-ready .corvette-spec-line::after {
  content:"";position:absolute;bottom:-1px;left:0;right:0;height:1px;
  background:linear-gradient(90deg,#ff3653,#ff365344 75%,transparent);
  transform-origin:left;pointer-events:none;
}
body.cinematic-active .corvette-spec-line::after {scale:var(--corvette-road-progress,0) 1}
body.cinematic-ready .corvette-pulse {
  display:inline-block;flex:none;width:5px;height:5px;margin-left:12px;vertical-align:middle;
  border-radius:50%;background:#ff3653;box-shadow:0 0 0 4px #ff365314;
  animation:cinematic-ignition 3s ease-in-out infinite;animation-play-state:paused;
}
body.cinematic-active .cinematic-scene-visible .corvette-pulse {animation-play-state:running}
@keyframes cinematic-speed-travel {from{stroke-dashoffset:1000}to{stroke-dashoffset:0}}
@keyframes cinematic-ignition {0%,100%{box-shadow:0 0 0 4px #ff365314}50%{box-shadow:0 0 0 9px #ff365300}}
@media(max-width:820px) {
  body.cinematic-ready .speed-field {width:150%;left:-25%;opacity:.68}
  body.cinematic-active .corvette-main-photo img,body.cinematic-active .corvette-detail-photo img {scale:1.025}
  body.cinematic-active .corvette-watermark {translate:calc((var(--cinema-progress,.5) - .5) * -28px) 0}
}
body.motion-paused .speed-runner,body.motion-paused .corvette-road-runner,body.motion-paused .corvette-pulse {animation:none!important}
body.motion-paused .hero-ghost,body.motion-paused .corvette-watermark,
body.motion-paused .corvette-main-photo img,body.motion-paused .corvette-detail-photo img {translate:none!important;scale:none!important}
body.cinematic-suspended .speed-runner,body.cinematic-suspended .corvette-road-runner,body.cinematic-suspended .corvette-pulse {animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce) {
  body.cinematic-ready .speed-runner,body.cinematic-ready .corvette-road-runner,body.cinematic-ready .corvette-pulse {animation:none!important}
  body.cinematic-ready .cinematic-road-path {stroke-dashoffset:0!important}
  body.cinematic-ready .hero-ghost,body.cinematic-ready .corvette-watermark,
  body.cinematic-ready .corvette-main-photo img,body.cinematic-ready .corvette-detail-photo img {translate:none!important;scale:none!important}
  body.cinematic-ready .corvette-spec-line::after {scale:1!important}
}
