/* Native scrolling with lightweight decorative motion. */
#camera-parallax{position:absolute;inset:0;pointer-events:none}
#landscape{background-image:url('assets/environment-motion.webp');transition:transform .65s cubic-bezier(.22,.72,.25,1);will-change:auto}
/* Chapters remain in document flow. A finger/wheel can never strand an
   invisible panel between transforms or wait for a transition lock. */
#viewport{overflow-y:auto;overflow-x:hidden;perspective:none;touch-action:pan-x pan-y pinch-zoom;overscroll-behavior-y:contain;scroll-behavior:auto!important;scrollbar-width:thin;scrollbar-color:#e6b65a88 transparent;-webkit-overflow-scrolling:touch}
#world{position:relative;inset:auto;transform-style:flat;min-height:100%}
.scene,.scene.active,.scene.departing{position:relative;inset:auto;display:flow-root;min-height:var(--stage-height,calc(100dvh - 148px));opacity:1;visibility:visible;pointer-events:auto;transform:none!important;transition:none!important;scroll-margin-top:0}
.scene-scroll,.scene.active .scene-scroll{height:auto;min-height:var(--stage-height,calc(100dvh - 148px));overflow:visible;scroll-behavior:auto!important;touch-action:pan-x pan-y pinch-zoom;overscroll-behavior-y:auto}
.hero{height:var(--stage-height,calc(100dvh - 148px));overflow:visible}
.cards-track,.route-timeline,.chips{position:relative;scroll-behavior:auto!important;scroll-snap-type:none;overscroll-behavior-x:contain;overscroll-behavior-y:auto;touch-action:pan-x pan-y pinch-zoom;-webkit-overflow-scrolling:touch}
#add-results{overscroll-behavior-y:auto}
@media(max-height:650px){.hero{height:auto;overflow:visible}}
.cards-track>*,.route-timeline>*{scroll-snap-stop:normal}
.cards-track .place-card,.cards-track .package-card,.cards-track .is-featured{transition:none;box-shadow:0 0 0 1px #dda54388,0 8px 18px #2a162650;backface-visibility:hidden}
.cards-track{overflow-anchor:none;perspective:1300px}
.cards-track article{will-change:auto}
.mouse-dragging,.mouse-dragging *{user-select:none!important;cursor:grabbing!important}
.hero{overflow-anchor:none}
.temple-spotlight{min-height:129px;overflow-anchor:none}
.temple-spotlight>img{flex-shrink:0}
.temple-spotlight>div{min-width:0}
#detail-dialog{overscroll-behavior:contain;touch-action:pan-y pinch-zoom;-webkit-overflow-scrolling:touch}
#detail-dialog::backdrop{backdrop-filter:none}
#day-stops{min-height:150px}
.day-editor,.trip-settings,.route-aside,.enquiry-card{overflow-anchor:none}
@media(max-width:700px){.temple-spotlight{min-height:175px}.cards-track{perspective:none}}
.cards-track.is-dragging{cursor:grabbing;user-select:none}
#krishna-guide,body[data-chapter="4"] #krishna-guide,body[data-chapter="5"] #krishna-guide{left:4.4%;bottom:4.4%;width:min(27vw,calc((100dvh - 140px)/2));transform:none;transition:none;filter:none;perspective:900px}
#guide-flight,#guide-rotor,.guide-pose{position:absolute;inset:0;transform-style:preserve-3d}
.guide-pose{opacity:0;transition:opacity .38s linear;pointer-events:none}
.guide-pose.is-current{opacity:1}
.guide-sprite{background-image:url('assets/krishna-motion.webp');filter:none;animation:guide-breathe 6s ease-in-out infinite}
@keyframes guide-breathe{0%,100%{transform:translate3d(0,0,0) rotateZ(-.3deg)}50%{transform:translate3d(0,-3px,0) rotateZ(.3deg)}}

@media(max-width:1100px){#krishna-guide,body[data-chapter="4"] #krishna-guide,body[data-chapter="5"] #krishna-guide{left:1%;bottom:8%;width:24vw}}
@media(max-width:700px){
 #krishna-guide,body[data-chapter="0"] #krishna-guide,body[data-chapter="3"] #krishna-guide,body[data-chapter="4"] #krishna-guide,body[data-chapter="5"] #krishna-guide{left:-1%;bottom:58px;width:100px;filter:none}
 .scene-scroll,.place-card,.package-card,.search-dock,.enquiry-card,.trip-settings,.day-editor,.temple-spotlight,.route-aside{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
 .guide-sprite{animation-duration:7s}
}
@media(max-height:550px) and (min-width:701px){#krishna-guide,body[data-chapter="4"] #krishna-guide,body[data-chapter="5"] #krishna-guide{width:145px;bottom:55px}}
.motion-off .guide-sprite{animation:none}
.motion-off .guide-pose,.motion-off #landscape{transition:none}
@media(prefers-reduced-motion:reduce){.guide-sprite{animation:none}.guide-pose{transition:none}}

.is-browsing .guide-sprite{animation-play-state:paused}
