/* V4.1 city → immersive cabin → parked arrival. */
.invitation-header{gap:5px}.invitation-header>span{font-size:13px}.top-actions{gap:5px}.invitation-header button{padding:0 7px;font-size:11px;min-height:44px}#sound-toggle{min-width:65px}
.scene.journey .scene-visual{background:url(/release-20260924/assets/g3r/city.webp) center 56%/cover}
.scene.journey[data-view=park] .scene-visual{background-image:url(/release-20260924/assets/g3r/arrival.webp)}
.scene.journey[data-view=cabin] .scene-visual{background:#d6c0a0}
.scene.journey .scene-visual:before{background:linear-gradient(#24342335,transparent 30%,#20342508 60%,#1c352c77)}
.journey-stage,.outside-car,.cabin-frame,.arrival-view{position:absolute;inset:0;overflow:hidden}
.journey-stage{z-index:2}.cabin-frame canvas,.cabin-people{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;pointer-events:none}
.cabin-people{z-index:1}.cabin-frame canvas{image-rendering:pixelated}
.trip-car{position:absolute;width:100%;height:auto;left:0;bottom:calc(var(--panel-h) + 20px);filter:drop-shadow(0 10px 4px #40312266)}
.trip-hosts{position:absolute;width:34%;height:auto;right:9%;bottom:calc(var(--panel-h) + 115px);filter:drop-shadow(0 4px 2px #382e2144);z-index:-1}
.outside-car{isolation:isolate}.parked-car{position:absolute;width:79%;height:auto;left:-12%;bottom:calc(var(--panel-h) + 72px);filter:drop-shadow(0 7px 3px #3a3a2d55)}
.park-hosts{position:absolute;width:45%;height:auto;right:4%;bottom:calc(var(--panel-h) + 27px);filter:drop-shadow(0 5px 2px #26392755)}
.door-wipe{position:absolute;inset:-8%;background:linear-gradient(90deg,#273a31,#deccb0 30%,#dfcdb4 65%,#294136);border:16px solid #20372d;z-index:4;pointer-events:none;opacity:0}
.journey .dialogue{padding:17px 14px 12px;box-shadow:3px 4px 0 #19332a99;background:#fff7e6f5}
.journey .dialogue h2{font-size:18px;line-height:1.4}.journey .dialogue p{font-size:16px;line-height:1.4;margin-bottom:10px}
.journey .dialogue .primary,.journey .dialogue .secondary{font-size:16px;min-height:44px;width:100%}
.trip-skip{display:block;background:none;border:0;color:#526d50;min-height:44px;font-size:13px;text-decoration:underline;text-underline-offset:4px;width:100%;margin-top:2px}
.journey .dialogue .trip-error{font-size:13px;color:#855b25;margin:7px 0 0}
.music-pulse{position:absolute;z-index:2;top:51%;left:49%;color:#fae9b4;font-size:24px;text-shadow:0 0 6px #23bda2}
.trip-route{position:absolute;left:20px;right:20px;top:76px;display:flex;align-items:center;gap:12px;font-size:12px;color:#fff5dc;z-index:3;background:#173b31c9;padding:7px 10px;border-radius:2px}
.trip-track{flex:1;height:3px;background:#b8c4a766}.trip-track i{display:block;height:100%;background:#eed095}
.memory-strip{grid-template-columns:repeat(var(--shot-count,3),minmax(0,1fr));align-items:start}.memory-strip img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain}.memory-strip button{width:100%;min-width:0}.memory-strip[data-count="1"]{max-width:100%}
@media(max-height:720px){.journey .dialogue{padding:15px 12px 10px;bottom:12px}.journey .dialogue h2{font-size:16px}.journey .dialogue p{font-size:16px;margin-bottom:8px}.trip-route{top:64px}.trip-hosts{width:30%;bottom:calc(var(--panel-h) + 93px)}.trip-car{bottom:calc(var(--panel-h) + 15px)}.park-hosts{width:40%}}
@media(orientation:landscape) and (max-height:560px){.journey .dialogue{width:32%;left:auto;right:14px;bottom:14px;padding:14px 12px 10px}.journey .dialogue h2{font-size:16px}.journey .dialogue p{font-size:16px}.trip-route{left:20px;right:38%;top:64px}.trip-car{width:52%;left:2%;bottom:14px}.trip-hosts{width:16%;left:35%;right:auto;bottom:92px}.parked-car{width:42%;left:0;bottom:25px}.park-hosts{width:20%;left:36%;right:auto;bottom:20px}.cabin-frame canvas,.cabin-people{object-position:center center}}
@media(prefers-reduced-motion:reduce){.door-wipe{transition:none}}

@media(orientation:landscape) and (max-height:560px){.trip-route{top:auto;bottom:12px;right:38%}.journey[data-view=cabin] .dialogue{width:30%;right:12px}.music-pulse{top:53%;left:32%}}

/* Detail revision: equal photo mounts, readable studio sign and story navigation. */
.memory-strip{align-items:stretch}
.memory-strip button{display:grid;grid-template-rows:auto 32px;align-content:start;padding:5px}
.memory-strip .memory-shot{display:flex;align-items:center;justify-content:center;aspect-ratio:3/4;min-width:0;min-height:0;padding:0;background:#efe9d9;overflow:hidden}
.memory-strip .memory-shot img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;aspect-ratio:auto;object-fit:contain;background:transparent}
.memory-strip .memory-label{display:flex;align-items:center;justify-content:center;padding:5px 0;font-size:11px;line-height:1.2;color:#385440}
.studio-sign{position:absolute;z-index:-2;display:flex;align-items:center;justify-content:center;color:#f7e6bf;font-family:"Songti SC","STSong",serif;font-weight:700;letter-spacing:.25em;padding-left:.25em;text-shadow:1px 1px 0 #3f3029;white-space:nowrap}
.trip-route{display:block;padding:8px 10px 3px;border:1px solid #d9cfa77d;border-radius:5px;background:#f5f0dedf;color:#254b3e;box-shadow:0 2px 8px #132d2530;pointer-events:none;backdrop-filter:blur(5px)}
.route-heading{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:600;line-height:1.3}
.route-heading small{font-size:9px;font-weight:400;color:#6c7f6b}
.trip-route svg{display:block;width:100%;height:70px;overflow:visible}
.map-green{fill:#c3d5ac}.map-block{fill:#dfd7bd}.map-street{fill:none;stroke:#fffdf3;stroke-width:8;stroke-linejoin:round}
#route-path{fill:none;stroke:#c9c4aa;stroke-width:4;stroke-linecap:round}#route-done{fill:none;stroke:#a57a38;stroke-width:4;stroke-linecap:round}
.route-start{fill:#fff9e9;stroke:#728565;stroke-width:2}.route-end circle{fill:#3e7053;stroke:#fff7dc;stroke-width:2}.route-end path{fill:none;stroke:#fff7dc;stroke-width:1.5}
#route-car rect{fill:#155b4f;stroke:#fff9e6;stroke-width:1.5}#route-car>path{fill:#c6e0d3;stroke:none}#route-car .car-wheel{stroke:#1d3b31;stroke-width:2;stroke-linecap:round}
.trip-route text{font-size:10px;fill:#526a54;font-family:inherit}
@media(max-height:720px){.trip-route{padding:6px 9px 2px}.trip-route svg{height:58px}}
@media(orientation:landscape) and (max-height:560px){.scene.journey[data-view=city] .scene-visual{background-position:center 34%}.trip-route{width:300px;max-width:38%;right:auto;left:18px;bottom:12px;top:auto}.trip-route svg{height:55px}.route-heading{font-size:11px}}

@media(orientation:landscape) and (max-height:560px){.journey[data-view=city] .trip-car{bottom:-55px}.journey[data-view=city] .trip-hosts{bottom:20px}}
