/* Phone presentation. The approved desktop composition stays in the existing sheets. */
@media (hover:none) and (pointer:coarse) and (max-width:1100px) {
 html {-webkit-text-size-adjust:100%;text-size-adjust:100%}
 /* Follow Safari's visible viewport instead of leaving a short fixed stage
    behind when its browser bars collapse. The stage uses the same ruler. */
 html.immersive body[data-page-flow-preview] .stage-scene {height:100dvh!important}
 html.immersive body[data-page-flow-preview]>.scene-tail {height:100dvh!important}
}
@media (orientation:portrait) and (max-width:1100px) {
 body[data-page-flow-preview] {--gutter:22px}
 .masthead .menu-button {min-width:76px;min-height:44px;font-size:13px}
 #mobile-menu {top:76px;max-height:calc(100svh - 92px);overflow-y:auto;overscroll-behavior:contain;padding:12px}
 #mobile-menu a {min-height:48px;display:flex;align-items:center;font-size:19px;padding:12px 16px}
 body[data-page-flow-preview] #top .platform-pin #hero-title {font-size:clamp(30px,8.2vw,40px)}
 body[data-page-flow-preview] #top .platform-pin #hero-description {font-size:14px;line-height:1.5;max-width:440px}
 body[data-page-flow-preview] #top .platform-pin #platform-tag {font-size:9px;letter-spacing:.09em}
 body[data-page-flow-preview] #top .platform-pin .offer-actions {gap:12px;flex-wrap:wrap}
 body[data-page-flow-preview] #top .platform-pin .offer-actions .offer-button {font-size:13px;min-height:44px;padding:10px 12px}
 body[data-page-flow-preview] #top .platform-pin .offer-text-link {font-size:13px;min-height:44px;display:inline-flex;align-items:center}
 body[data-page-flow-preview] #top .platform-pin #capacity-labels span {font-size:10px}
 /* Reading sections can be taller than a phone. Their final card and action stay reachable. */
 html.immersive body[data-page-flow-preview] :is(#story,#sizes) {overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;scroll-padding-top:90px;padding-bottom:calc(32px + env(safe-area-inset-bottom))}
 body[data-page-flow-preview] :is(#story,#sizes) .eyebrow {font-size:10px}
 body[data-page-flow-preview] #story .daily-number {padding:12px 10px}
 body[data-page-flow-preview] #story .daily-number span {font-size:13px}
 body[data-page-flow-preview] #story .daily-assumptions {font-size:12px;line-height:1.55}
 body[data-page-flow-preview] #story .offer-actions a {font-size:13px;min-height:48px}
 body[data-page-flow-preview] #sizes .offer-section-top {align-items:flex-start;gap:14px}
 body[data-page-flow-preview] #sizes .offer-preview-label {font-size:9px;max-width:115px;line-height:1.5;text-align:right}
 body[data-page-flow-preview] #sizes .offer-title-row {margin-top:18px}
 body[data-page-flow-preview] #sizes .size-option {padding:18px 16px}
 body[data-page-flow-preview] #sizes .size-option header p {font-size:13px;line-height:1.5}
 body[data-page-flow-preview] #sizes .size-specs {gap:6px}
 body[data-page-flow-preview] #sizes .size-specs>div {padding:10px 6px}
 body[data-page-flow-preview] #sizes .size-specs dd {font-size:clamp(16px,4.2vw,20px);white-space:nowrap}
 body[data-page-flow-preview] #sizes .size-specs dt {font-size:11px;line-height:1.4}
 body[data-page-flow-preview] #sizes .size-plan-summary {font-size:14px;line-height:1.6}
 body[data-page-flow-preview] #sizes .size-option .offer-button {min-height:48px;font-size:14px}
 /* Keep the full movie and measured-yard overlays together, directly below the copy. */
 body[data-page-flow-preview] #inside .official-tour .tour-copy {top:calc(var(--screen-header) + 72px)!important}
 body[data-page-flow-preview] #inside .official-tour .tour-copy h2 {font-size:clamp(28px,8vw,36px);line-height:1.06;margin-bottom:12px}
 body[data-page-flow-preview] #inside .official-tour .tour-copy>.eyebrow {font-size:10px;line-height:1.5}
 body[data-page-flow-preview] #inside .official-tour .tour-copy>p:not(.eyebrow) {font-size:14px;line-height:1.5;max-width:440px}
 body[data-page-flow-preview] #inside .official-tour .section-top .quiet-link {font-size:11px;min-height:44px;display:flex;align-items:center;padding:8px}
 body[data-page-flow-preview] #inside .official-tour #field-status {font-size:9px;min-height:44px;box-sizing:border-box;display:flex;align-items:center;max-width:calc(100% - var(--gutter)*2 - 134px)}
 body[data-page-flow-preview] #inside .official-tour[data-film-fit="contain"] #vision-summary {top:calc(var(--mobile-film-bottom, 55svh) + 16px);bottom:auto;left:var(--gutter);right:var(--gutter);max-width:none;transform:none}
 body[data-page-flow-preview] #inside .official-tour #vision-summary dl>div,
 body[data-page-flow-preview] #inside .official-tour #vision-summary dd {font-size:11px}
 body[data-page-flow-preview] #inside .official-tour #vision-summary small {font-size:10px;line-height:1.4}
 body[data-page-flow-preview] #inside .official-tour .tour-note {font-size:10px;line-height:1.4;max-width:none;left:var(--gutter);right:var(--gutter);bottom:calc(16px + env(safe-area-inset-bottom))}
 /* The phone remains interactive; readable tabs and a full-size app link sit above it. */
 html.immersive body[data-page-flow-preview] #app.crew-app {grid-template-rows:auto minmax(400px,1fr);gap:12px;overscroll-behavior-y:contain;padding-bottom:calc(32px + env(safe-area-inset-bottom))}
 body[data-page-flow-preview] #app .crew-phone-stage {min-height:400px}
 body[data-page-flow-preview] #app .crew-lead {font-size:14px;line-height:1.5}
 body[data-page-flow-preview] #app .crew-beats {gap:8px;scroll-padding-inline:4px;padding-bottom:4px}
 body[data-page-flow-preview] #app .crew-beats :is(button,.crew-planned) {min-height:44px;padding:10px 12px;font-size:13px}
 body[data-page-flow-preview] #app .crew-beats b {font-size:13px}
 body[data-page-flow-preview] #app .crew-copy>.offer-button {position:static;font-size:13px;min-height:44px;margin-top:0;padding:8px 0}
 body[data-page-flow-preview] #app .crew-copy>.eyebrow {max-width:none;font-size:10px}
 body[data-page-flow-preview] #app .crew-note {font-size:11px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;margin:4px 0 0}
 body[data-page-flow-preview] #app .crew-open-app {display:inline-flex;align-items:center;gap:12px;min-height:44px;font-size:14px;margin:0}
 body[data-page-flow-preview] #app .crew-phone-caption {font-size:11px;bottom:-20px}
}
@media (orientation:portrait) and (max-width:450px) and (max-height:720px) {
 body[data-page-flow-preview] #top .platform-pin #platform-story {top:88px}
 body[data-page-flow-preview] #top .platform-pin #hero-description {font-size:13px;line-height:1.4;margin-top:10px}
 body[data-page-flow-preview] #top .platform-pin .offer-actions {margin-top:10px;gap:8px}
 body[data-page-flow-preview] #top .platform-pin .offer-stage-label {margin-top:6px;font-size:8px}
 body[data-page-flow-preview] #inside .official-tour .tour-copy {top:134px!important}
 body[data-page-flow-preview] #inside .official-tour .tour-copy h2 {font-size:28px;margin-bottom:8px}
 body[data-page-flow-preview] #inside .official-tour .tour-copy>p:not(.eyebrow) {font-size:13px}
 body[data-page-flow-preview] #inside .official-tour #vision-summary {padding:8px 10px}
 body[data-page-flow-preview] #inside .official-tour #vision-summary small {font-size:9px}
}
@media (orientation:landscape) and (max-height:540px) and (max-width:1000px) {
 html.immersive body[data-page-flow-preview] :is(#story,#sizes) {overflow-y:auto;overscroll-behavior-y:contain}
 body[data-page-flow-preview] .masthead .desktop-nav {display:none}
 body[data-page-flow-preview] .masthead .menu-button {display:flex;min-height:44px}
 #mobile-menu {top:64px;max-height:calc(100svh - 76px);overflow-y:auto;padding:8px}
 #mobile-menu a {font-size:17px;padding:10px 14px;min-height:44px}
 html.immersive body[data-page-flow-preview] #app.crew-app {grid-template-rows:minmax(0,1fr)}
 body[data-page-flow-preview] #app .crew-phone-stage {min-height:0}
 body[data-page-flow-preview] #inside .official-tour .tour-copy {top:100px!important}
}
/* A rotated small phone uses the existing wide film, with the same projection
   as a larger landscape screen. No portrait movie is stretched behind the text. */
@media (orientation:landscape) and (max-width:760px) {
 body[data-page-flow-preview][data-experience="official"] .platform-pin #hero-visual {--true-native-width:min(100vw,160svh)}
 body[data-page-flow-preview][data-experience="official"] .platform-pin :is(.opening-film,.arrival-poster,.scene-fallback img) {position:absolute;inset:auto!important;left:calc(50% - var(--true-native-width)*1.01875)!important;top:calc(50% - var(--true-native-width)*.4)!important;width:calc(var(--true-native-width)*1.8)!important;height:calc(var(--true-native-width)*.8)!important;max-height:none!important}
 body[data-page-flow-preview][data-experience="official"] .platform-pin :is(.opening-film,.arrival-poster img) {object-fit:contain!important;object-position:50% 50%!important}
}
@media (max-width:860px) {
 body.reserve-page .masthead .desktop-nav {display:none}
 body.reserve-page .masthead .menu-button {display:flex}
 body.reserve-page .masthead .menu-button {min-height:44px;font-size:13px}
 body.reserve-page #mobile-menu {top:68px;max-height:calc(100svh - 80px);overflow-y:auto}
 body.reserve-page .rv .rs-3d canvas {touch-action:pan-y pinch-zoom}
 body.reserve-page .rv .rs-back {min-height:44px;display:flex;align-items:center;font-size:11px;top:4px}
 body.reserve-page .rv .rs-3d-bar {gap:12px;max-width:calc(100% - 32px)}
 body.reserve-page .rv .rs-3d-hint {font-size:10px;letter-spacing:.04em;white-space:normal;max-width:140px}
 body.reserve-page .rv .rs-ramp-btn,body.reserve-page .rv .rs-lock {min-height:44px;font-size:12px;padding:10px 12px}
 body.reserve-page .rv-metrics dt {font-size:10px;line-height:1.4}
 body.reserve-page .rv .rv-field input {font-size:16px;min-height:48px}
 body.reserve-page .rv .rv-field span {font-size:13px}
 body.reserve-page .rv :is(.rv-submit,.rd-secondary) {min-height:48px;font-size:14px}
 body.reserve-page .rv-rail {padding-bottom:calc(32px + env(safe-area-inset-bottom))}
 body.reserve-page .rd-dialog {padding:24px;scroll-padding-block:24px}
}
