.passenger-motion{position:absolute;inset:0;width:200%;height:100%;object-fit:fill;pointer-events:none;display:none;z-index:1;clip-path:polygon(13.5% 39.8%,19% 39.8%,23.5% 51%,24% 61%,16.5% 61%,15.5% 54%,13.5% 39.8%,36% 38%,49% 38%,49% 45.7%,38% 46.7%,36% 38%,13.5% 39.8%)}
[data-mode="passenger"][data-video-ready="true"] .passenger-motion{display:block}
/* Only the corrected lower ledge/floor enters the original camera plate.
   Faces, idle-video alignment and the windshield remain the original pixels. */
.legroom-plate{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none;display:none;z-index:2;-webkit-mask-image:linear-gradient(transparent 60%,#000 62%);mask-image:linear-gradient(transparent 60%,#000 62%)}
.phone[data-mode="passenger"]:not([data-window="true"]) .legroom-plate{display:block}
.driver-layer{position:absolute;inset:0;z-index:4;pointer-events:none;display:none}
.driver-layer canvas{width:100%;height:100%;display:block}
[data-mode="driver"] .driver-layer{display:block}
.phone[data-window="true"] .driver-layer,.phone[data-window="true"] .passenger-motion{display:none}
.road-viewport{z-index:3}
[data-mode="passenger"] .road-viewport{left:29.63%;top:39.5833%;width:49.074%;height:11.1979%;clip-path:none;-webkit-mask-image:url('/assets/passenger-windshield-mask.png');mask-image:url('/assets/passenger-windshield-mask.png');-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.phone[data-window="true"] .road-viewport{-webkit-mask-image:none;mask-image:none}
[data-mode="passenger"] .road-viewport::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(165deg,#fffaf021,transparent 50%,#d2e8ff08)}
.phone[data-window="true"] .road-viewport::after{display:none}
.view-tools{gap:5px;flex-wrap:wrap;max-width:calc(100% - 28px)}
.view-tools button{font-size:11px;padding:8px 10px}
.panorama-dialog{width:min(1100px,100vw);height:min(860px,100dvh);max-width:100vw;max-height:100dvh;padding:0;overflow:hidden;background:#d8c9b4;color:#fff;border:0;border-radius:24px}
.panorama-canvas{position:absolute;inset:0;touch-action:none;user-select:none;cursor:grab;outline:none}
.panorama-canvas:active{cursor:grabbing}.panorama-canvas canvas{display:block;width:100%;height:100%}
.panorama-heading{position:absolute;inset:0 0 auto;display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:24px;background:linear-gradient(#201a13b0,transparent);pointer-events:none}
.panorama-heading>button{pointer-events:auto;background:#fbf9f5e8;color:#403b32;flex-shrink:0}
.panorama-heading .eyebrow{color:#f7edda;margin:0}.panorama-heading h2{font-size:23px;margin:8px 0;color:white;text-shadow:0 2px 8px #0007}
.panorama-bottom{position:absolute;bottom:0;left:0;right:0;padding:20px 24px max(20px,env(safe-area-inset-bottom));background:linear-gradient(transparent,#fbf9f5ee 36%,#fbf9f5);color:#403b32;pointer-events:none;display:grid;grid-template-columns:1fr auto;gap:10px}
.panorama-bottom p{color:#403b32!important;margin:0;align-self:center;font-size:12px}.panorama-bottom button{pointer-events:auto}.panorama-bottom .panorama-note{grid-column:1/-1;font-size:11px;line-height:1.8}.panorama-bottom .primary-button{grid-column:1/-1;background:#f4bf27;color:#403b32}
@media(max-width:850px){.panorama-dialog{width:100vw;height:100dvh;border-radius:0;margin:0}}
@media(orientation:landscape) and (max-height:600px){.panorama-bottom{left:auto;width:38%;padding:15px;background:#fbf9f5e8;border-radius:20px 0 0 0}.panorama-heading h2{font-size:18px}.panorama-note{font-size:11px!important}}

/* 導遊逐幀覆蓋層：畫在路景之上、只在擋風玻璃框內、只畫當幀 alpha 內的導遊，路景遮罩因此不必再挖她的動作包絡。 */
.guide-overlay{position:absolute;display:none;pointer-events:none;z-index:4;left:29.63%;top:39.5833%;width:49.074%;height:11.1979%}
[data-mode="passenger"] .guide-overlay{display:block}
.phone[data-window="true"] .guide-overlay{display:none}

/* Direct head-look is the default after departure; every passenger view shares
   the same photographic cabin, furniture, footwell and lens. */
.phone[data-passenger-cabin="true"] .photo-frame{width:100%!important;height:100%!important;transform:translate(-50%,-50%)}
.phone[data-passenger-cabin="true"] .scene{opacity:0!important}
.phone[data-passenger-cabin="true"] .passenger-motion,.phone[data-passenger-cabin="true"] .legroom-plate,.phone[data-passenger-cabin="true"] .guide-overlay{display:none}
.phone[data-passenger-cabin="true"] .road-viewport{left:0;top:0;width:100%;height:100%;clip-path:none;-webkit-mask-image:none;mask-image:none}
.phone[data-passenger-cabin="true"] .road-viewport::after{display:none}
.passenger-options{flex-wrap:wrap}
