/* Route imagery is a quiet atmospheric wash; the camper stays crisp and dominant. */
.studio{background:#f2f1eb;isolation:isolate}
.studio-word{display:none}
.route-landscape,.route-ground{position:absolute;pointer-events:none;opacity:0;transition:opacity .35s ease}
.route-landscape{left:0;right:0;top:-95px;height:calc(95px + 57%);overflow:hidden;z-index:-2;mask-image:linear-gradient(transparent 0%,#000 22%,#000 48%,transparent 100%)}
.route-landscape img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(.65) saturate(.5) contrast(.7) blur(2px);transform:scale(1.025)}
/* No hard horizon or simulated photo terrain: a pale studio floor beneath the wheels. */
.route-ground{left:0;right:0;top:42%;height:900px;z-index:-3;background:linear-gradient(transparent,color-mix(in srgb,var(--route-ground-near) 22%,#f2f1eb) 9%,#f2f1eb 38%)}
.has-route-scene .route-landscape{opacity:.42}
.has-route-scene .route-ground{opacity:1}
.has-route-scene .studio-top{background:transparent}
.has-route-scene .studio-status{color:#344333}
.route-scene-credit{position:absolute;bottom:8px;left:12px;right:12px;text-align:center;font-size:9px;line-height:1.4;color:#414739;z-index:4}
.route-scene-credit a{color:inherit;text-decoration:underline}
@media(min-width:701px) and (max-width:1000px){.route-landscape{top:-160px;height:calc(160px + 57%)}}
@media(max-width:700px){#fleet-panel .route-landscape{top:-30px;height:calc(30px + 57%)}.route-landscape img{filter:grayscale(.65) saturate(.5) contrast(.7) blur(1px)}.route-scene-credit{font-size:7px;bottom:4px}}
@media(prefers-reduced-motion:reduce){.route-landscape,.route-ground{transition:none}}

/* Contact and soft cast shadows share the same proportional coordinates as the cutouts.
   They remain on the neutral floor even when no route is selected. */
.product-scene::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:-1;background:
 radial-gradient(ellipse 5.3% 1.8% at 70% 70%,#292b2666,transparent 80%),
 radial-gradient(ellipse 2.7% 1.1% at 28% 63.5%,#292b2659,transparent 80%),
 radial-gradient(ellipse 28% 5% at 48% 67%,#34382e29,transparent 76%)}
.product-scene>img{filter:drop-shadow(1px 3px 3px #34382e26)}
.equipment:not(.tent)::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 40% 7% at 50% 87%,#34382e30,transparent 80%)}
.equipment.camp::before{background:
 radial-gradient(ellipse 7% 2.2% at 6% 75%,#292b2659,transparent 80%),
 radial-gradient(ellipse 7% 2.2% at 20% 82%,#292b2666,transparent 80%),
 radial-gradient(ellipse 6% 2% at 39% 73%,#292b264d,transparent 80%),
 radial-gradient(ellipse 7% 2.2% at 82% 83%,#292b2666,transparent 80%),
 radial-gradient(ellipse 6% 2% at 95% 75%,#292b2659,transparent 80%),
 radial-gradient(ellipse 6% 2% at 37% 85%,#292b2666,transparent 80%),
 radial-gradient(ellipse 6% 2% at 52% 91%,#292b2666,transparent 80%),
 radial-gradient(ellipse 6% 2% at 65% 84%,#292b2659,transparent 80%),
 radial-gradient(ellipse 25% 6% at 20% 79%,#34382e26,transparent 80%),
 radial-gradient(ellipse 24% 6% at 80% 80%,#34382e26,transparent 80%),
 radial-gradient(ellipse 24% 7% at 51% 85%,#34382e26,transparent 80%)}
.equipment.satellite::before{background:radial-gradient(ellipse 39% 5% at 50% 88%,#292b264d,transparent 80%)}
.equipment.fishing::before{background:radial-gradient(ellipse 35% 5% at 50% 88%,#292b264d,transparent 80%)}
.equipment.lantern::before,.equipment.coffee::before{background:radial-gradient(ellipse 30% 5% at 50% 88%,#292b2659,transparent 80%)}
/* Preview emphasis keeps the equipment planted instead of lifting it off the floor. */
.equipment.previewing{transform:none;filter:drop-shadow(0 0 2px #e9663740)}
