@font-face{font-family:Manrope;src:url('assets/font.woff2') format('woff2');font-display:swap;font-weight:200 800}:root{color-scheme:dark;--ink:#eef7ff;--muted:#a9bdcc;--accent:#9eefff;--ease:cubic-bezier(.16,1,.3,1)}*{box-sizing:border-box}body{margin:0;background:#03080e;color:var(--ink);font-family:Manrope,'Segoe UI',sans-serif;overflow:hidden;font-size:16px}button,input,select{font:inherit}button,a{touch-action:manipulation}a{color:inherit;text-underline-offset:4px}button{color:inherit;cursor:pointer}button:active{transform:scale(.96)}:focus-visible{outline:2px solid var(--accent);outline-offset:5px}::selection{background:#9eefff;color:#04121e}button{transition:background .2s ease,transform .2s var(--ease)}[hidden]{display:none!important}#universe{position:fixed;inset:0;background:#03080e;z-index:0}#space{display:block;width:100%;height:100%;position:absolute;inset:0}#earth-fallback{position:absolute;left:50%;top:50%;width:min(75vh,75vw);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:#09243c url('assets/earth.jpg') center/auto 100%;box-shadow:inset -50px -20px 100px #000,0 0 70px #4b9bd04d;animation:fallback-rotate 70s linear infinite}body.webgl #earth-fallback{visibility:hidden}header{position:fixed;top:0;left:0;width:100%;z-index:15;display:flex;align-items:center;justify-content:space-between;padding:28px 4%;pointer-events:none}header>*{pointer-events:auto}.wordmark{display:flex;align-items:center;gap:10px;font-size:22px;letter-spacing:-.04em;text-decoration:none;font-weight:650}.wordmark svg{width:29px;height:29px;stroke:#c1e9fb;fill:none;stroke-width:1}.wordmark span{font-size:11px;align-self:start;padding-top:6px}.header-actions{display:flex;gap:26px}.header-actions button{border:0;background:none;color:#b9cbd8;font-size:12px;padding:8px 0}.header-actions button:hover{color:white}#portal{position:fixed;inset:0;z-index:3;display:grid;place-items:center;transition:opacity .35s ease}.search-dock{width:min(590px,88vw);position:relative;margin-top:1vh}h1{font-size:16px;font-weight:450;text-align:center;margin:0 0 20px;color:#e9f4fc;letter-spacing:.01em;text-shadow:0 1px 12px #000}#search-form{display:flex;align-items:center;padding:8px 9px 8px 23px;background:#07121ce8;border:1px solid #c3e5ff57;border-radius:14px;box-shadow:0 12px 50px #0006;backdrop-filter:blur(16px);gap:15px}#search-form>svg{height:21px;width:21px;flex-shrink:0;color:#92b2c7;stroke-width:1.5}#query{min-width:0;width:100%;height:53px;background:transparent;border:0;outline:none;color:white;font-size:17px;caret-color:var(--accent)}#query::placeholder{color:#aec1cf}#search-button{width:53px;height:53px;flex-shrink:0;display:grid;place-items:center;background:#c3edfb;color:#0a2335;border:0;border-radius:9px}#search-button:hover{background:#fff}#search-button svg{width:24px;stroke-width:1.5}#search-button:disabled{opacity:.5}#search-status{font-size:12px;text-align:center;margin:16px 0 0;color:#c1d3df;min-height:20px;text-shadow:0 2px 8px #000}#results{position:absolute;top:calc(100% + 12px);width:100%;max-height:min(300px,35vh);overflow:auto;background:#07131ff5;border:1px solid #244252;border-radius:12px;padding:7px;box-shadow:0 15px 50px #0008;scrollbar-width:thin;scrollbar-color:#405d70 #07131f}.result{display:block;width:100%;text-align:left;background:none;border:0;padding:12px 15px;border-radius:7px}.result:hover,.result:focus{background:#163044}.result strong{display:block;font-size:15px;font-weight:550}.result small{display:block;font-size:12px;color:#a9bdcc;margin-top:3px}.orbit-footer{position:absolute;bottom:28px;left:4%;right:4%;display:flex;justify-content:space-between;gap:30px;font-size:11px;color:#8da4b5}.orbit-footer p{margin:0}.status-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#9eefff;margin-right:8px}.orbit-caption{position:absolute;bottom:15%;left:50%;transform:translateX(-50%);font-size:12px;color:#a9bdcc;letter-spacing:.02em;white-space:nowrap}body[data-state=flight] #portal{opacity:0;pointer-events:none}#flight{position:fixed;inset:0;z-index:10;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#03080e12;pointer-events:none;text-shadow:0 3px 22px #000}#flight p{font-size:14px;color:#bddeef}#flight h2{font-size:clamp(40px,7vw,90px);letter-spacing:-.04em;font-weight:500}.flight-track{width:180px;height:2px;background:#b7e6ff30;margin-top:20px;overflow:hidden}.flight-track span{display:block;width:100%;height:100%;background:#b7e6ff;transform-origin:left;animation:progress 3.5s linear both}#skip-flight{pointer-events:auto;margin-top:24px;background:#061321c9;border:1px solid #456173;border-radius:6px;padding:8px 16px;font-size:12px}#journey{position:fixed;inset:0;z-index:4;background:#040b12;overflow:clip}.destination-background{position:absolute;inset:-3%;background-image:url('assets/earth.jpg');background-size:cover;background-position:center;opacity:.8;animation:landscape 35s ease-in-out infinite alternate;transition:filter 1s ease}.destination-shade{position:absolute;inset:0;background:linear-gradient(90deg,#020a12e8 0%,#030c12a1 55%,#030a12c4),linear-gradient(0deg,#030a12f2,transparent 35%,#030a1266 80%)}.journey-top{position:absolute;top:100px;left:5%;right:5%;display:flex;justify-content:space-between;align-items:center;z-index:2;color:#b6c9d5;font-size:12px}.text-button{background:none;border:0;padding:8px 0;font-size:13px}.text-button:hover{color:var(--accent)}#chapters{position:absolute;top:155px;left:5%;display:flex;gap:25px;z-index:5}#chapters button{border:0;background:none;padding:8px 0;color:#9db1c0;font-size:12px;position:relative}#chapters button[aria-current]{color:#f4fbff}#chapters button[aria-current]:after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:#aeeeff}.slide{position:absolute;inset:215px 5% 100px;display:grid;grid-template-columns:1fr minmax(300px,.85fr);gap:9%;align-items:center;overflow:auto;scrollbar-width:thin;scrollbar-color:#547487 transparent;padding:10px 3px 20px}.slide.active>*{animation:reveal .8s var(--ease) both}.slide.active>*:last-child{animation-delay:.09s}.arrival-copy{align-self:center}.subtle{font-size:15px;color:#b9d0df;margin-bottom:10px}#destination-title{font-size:clamp(45px,7.7vw,112px);font-weight:450;letter-spacing:-.055em;line-height:1.05;margin:0 0 22px;overflow-wrap:anywhere}#destination-title:focus{outline:none}.arrival-message{font-size:24px;color:#c7d9e5;font-weight:350;line-height:1.45;margin-bottom:35px}.journey-cta{padding:14px 0;border:0;border-bottom:1px solid #a4d4e96e;background:none;color:#e7faff;font-size:14px;display:flex;gap:48px}.journey-cta span{font-size:22px;line-height:1}.arrival-facts{background:#05111abf;padding:30px;border:1px solid #b0defa24;border-radius:3px;backdrop-filter:blur(12px)}.fact-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;gap:15px;font-size:13px;color:#bbd5e3}.fact-title img{width:40px;height:28px;object-fit:contain}#facts{display:grid;grid-template-columns:1fr 1fr;gap:24px 15px;margin:0}#facts dt{color:#8fa9bb;font-size:12px;font-weight:400;margin-bottom:7px}#facts dd{font-size:15px;font-weight:500;overflow-wrap:anywhere;margin:0}.source-note{font-size:11px;color:#a7bdcb;line-height:1.6;margin:22px 0 0}.source-note a{color:#c9e5f5}.slide-intro h2{font-size:clamp(38px,5.7vw,76px);font-weight:450;letter-spacing:-.045em;line-height:1.08;margin-bottom:25px}.slide-intro>p{font-size:16px;line-height:1.7;max-width:350px;color:#b6cad8}.content-panel{background:#06131edb;border:1px solid #b0defa24;border-radius:3px;padding:30px;backdrop-filter:blur(12px);max-height:100%;overflow:auto;scrollbar-width:thin;scrollbar-color:#547487 transparent}.temperature{font-size:88px;font-weight:350;letter-spacing:-.06em;line-height:1.1;margin:20px 0}.weather-meta{display:flex;gap:20px;flex-wrap:wrap;font-size:13px;margin-top:25px}.weather-meta span{display:block;color:#92aebe;font-size:11px;margin-bottom:5px}.sun{float:right;height:45px;width:45px;stroke:#aeeeff;fill:none;stroke-width:1.3;animation:rotate 35s linear infinite}label{display:block;font-size:12px;color:#adc6d5;margin-bottom:10px}.form-control,.form-select{background-color:#0b2030;border:1px solid #456175;border-radius:5px;color:#edf8ff;min-height:45px;font-size:13px}.form-control:focus,.form-select:focus{background:#0b2030;color:white;border-color:#b9eeff;box-shadow:0 0 0 3px #b9eeff15}.form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23bfd6e4' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.money-input{font-size:38px;height:70px;background:none;border:0;border-radius:0;border-bottom:1px solid #345165;padding-left:0}.currency-row{display:grid;grid-template-columns:minmax(0,1fr) 30px minmax(0,1fr);gap:10px;align-items:end;margin:22px 0}.currency-row #swap{height:45px;background:none;border:0;font-size:25px;color:#c8ecff}.main-button{width:100%;border:0;border-radius:5px;padding:13px 17px;background:#c1eafa;color:#0a2030;font-size:13px;display:flex;justify-content:space-between}.main-button:disabled{opacity:.5}#conversion{font-size:30px;line-height:1.3;font-weight:500;margin-top:24px;overflow-wrap:anywhere}#conversion small{display:block;font-size:12px;color:#b2c9d7;margin-top:10px;font-weight:400}.year-select{width:135px}.holiday-list{max-height:300px;overflow:auto;scrollbar-width:thin;scrollbar-color:#547487 transparent}.holiday{display:flex;gap:25px;padding:14px 0;border-bottom:1px solid #1d3748}.holiday time{font-size:13px;color:#9ac3d8;min-width:55px}.holiday strong{font-weight:500;font-size:14px;display:block}.holiday small{font-size:11px;color:#9db5c4}.local-item{padding:18px 0;border-bottom:1px solid #203a4a}.local-item:first-child{padding-top:0}.local-item:last-child{border:0}.local-item h3{font-size:17px;font-weight:500;margin-bottom:12px}.local-item p{font-size:13px;line-height:1.7;color:#c3d6e1;margin:0}.local-item .source-note{font-size:11px;margin-top:12px}#safety-body p{font-size:15px;line-height:1.8;color:#c4d8e5}#safety-body .source-note{font-size:12px}.journey-bottom{position:absolute;bottom:25px;left:5%;right:5%;display:flex;align-items:end;justify-content:space-between;gap:20px;z-index:4}#photo-credit{margin:0 0 7px;font-size:11px;max-width:65ch}#slide-counter{font-size:11px;color:#9fb6c6}.slide-controls{display:flex;gap:18px;align-items:center}.slide-controls button{width:40px;height:40px;border:1px solid #c0e7ff40;border-radius:50%;background:#071523a8;font-size:18px}.slide-controls button:hover{background:#27516b}.slide-controls button:disabled{opacity:.3;cursor:default}#progress{display:flex;gap:6px}#progress i{height:3px;width:17px;background:#5b78895e}#progress i.on{background:#b6ebff}.loading{font-size:13px;color:#b0c8d7}.loading:before{content:'';display:inline-block;width:12px;height:12px;border:1px solid #688999;border-top-color:#c5f2ff;border-radius:50%;margin-right:10px;animation:rotate .7s linear infinite}.error{font-size:13px;color:#ffd3b0}.retry{background:none;border:0;padding:8px 0;color:#bcecff;text-decoration:underline;font-size:12px}dialog{width:min(650px,90vw);max-height:85dvh;border:1px solid #34536a;border-radius:12px;background:#07131f;color:#d4e7f2;padding:36px;box-shadow:0 20px 90px #000b;scrollbar-width:thin}dialog::backdrop{background:#01060dcc;backdrop-filter:blur(8px)}dialog h2{font-size:30px;margin-bottom:24px}dialog p{font-size:14px;line-height:1.8}.dialog-close{position:absolute;right:16px;top:10px;background:none;border:0;font-size:30px;color:#bad7e7}.no-script{position:fixed;bottom:20px;left:20px;background:#10263a;padding:20px;z-index:100}@keyframes reveal{from{opacity:0;transform:translateY(24px);filter:blur(5px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes landscape{to{transform:scale(1.07) translateX(-1%)}}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes fallback-rotate{to{background-position:200% center}}html.paused *,html.paused *:before{animation:none!important;transition:none!important;scroll-behavior:auto!important}@media(max-width:900px){.slide{gap:5%;grid-template-columns:1fr 1fr}.content-panel,.arrival-facts{padding:22px}#chapters{gap:20px}.slide-intro h2{font-size:49px}#destination-title{font-size:65px}}@media(prefers-reduced-motion:reduce){*,*:before{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Quiet orbital entrance; all explanations remain available in Sources. */
body[data-state="orbit"] .header-actions,.orbit-footer,.orbit-caption{display:none}
.search-dock{margin-top:0}
#search-status:empty{display:none}
#search-status:not(:empty){position:absolute;top:100%;width:100%;padding:7px 12px;background:#030a1380;border-radius:18px;backdrop-filter:blur(12px)}
#results{top:calc(100% + 60px)}
/* Translucent glass, specular edges and an optical tint over the actual globe. */
#search-form{position:relative;isolation:isolate;border-radius:40px;border:1px solid #e3f7ff70;background:linear-gradient(145deg,#effaff25,#e4f6ff08 42%,#7db7e512 75%,#fff2);backdrop-filter:blur(8px) saturate(150%);-webkit-backdrop-filter:blur(8px) saturate(150%);box-shadow:inset 0 1px 1px #fff9,inset 0 -1px 1px #c5edff40,0 12px 48px #0004;transition:box-shadow .25s ease,border-color .25s ease}
#search-form:before{content:'';position:absolute;inset:3px;border-radius:inherit;border-top:1px solid #fff3;pointer-events:none}
#search-form:focus-within{border-color:#e7faffb3;box-shadow:inset 0 1px 2px #fffa,0 0 0 4px #b7e9ff0d,0 15px 50px #0005}
#search-form>svg{color:#e0f3ff}#query{ text-shadow:0 1px 8px #000a}#query::placeholder{color:#e2eff6}
#search-button{border-radius:50%;background:linear-gradient(140deg,#fff5,#d4edff17);color:#f3fbff;border:1px solid #effaff60;box-shadow:inset 0 1px 1px #fff8}
#search-button:hover{background:#e7f8ff40}
.destination-background{animation:none;will-change:transform;transition:filter 1.4s ease}
.slide.active>*{animation:none}
.content-panel,.arrival-facts{border-radius:16px;background:linear-gradient(135deg,#0b2236b8,#020c16d6);border-color:#c6eaff2b;box-shadow:inset 0 1px 0 #e1f7ff12,0 20px 75px #0003}
#chapters button:after{transform-origin:left;animation:chapter-line .65s var(--ease) both}
#progress i.on{animation:chapter-line .8s var(--ease) both;transform-origin:left}
.journey-cta span{transition:transform .25s var(--ease)}.journey-cta:hover span{transform:translate(4px,-4px)}
#scene-atmosphere{position:absolute;inset:0;pointer-events:none;overflow:hidden;opacity:.5;transition:opacity 1s ease}
#scene-atmosphere i{position:absolute;left:12%;top:20%;width:3px;height:3px;border-radius:50%;background:#bdeeff;box-shadow:0 0 12px #9de0ff;animation:drift 17s linear infinite}
#scene-atmosphere i:nth-child(2){left:24%;top:75%;animation-delay:-7s;animation-duration:24s}
#scene-atmosphere i:nth-child(3){left:44%;top:45%;animation-delay:-3s}
#scene-atmosphere i:nth-child(4){left:68%;top:82%;animation-delay:-12s;animation-duration:23s}
#scene-atmosphere i:nth-child(5){left:80%;top:15%;animation-delay:-5s}
#scene-atmosphere i:nth-child(6){left:91%;top:60%;animation-delay:-10s}
#scene-atmosphere i:nth-child(7){left:55%;top:95%;animation-delay:-14s}
#scene-atmosphere i:nth-child(8){left:7%;top:55%;animation-delay:-9s}
#scene-atmosphere[data-scene="1"]{opacity:.8}#scene-atmosphere[data-scene="2"],#scene-atmosphere[data-scene="5"]{opacity:.18}
@keyframes drift{0%{transform:translate3d(0,45px,0);opacity:0}20%,75%{opacity:.7}100%{transform:translate3d(50px,-110px,0);opacity:0}}
@keyframes chapter-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(max-width:650px){.search-dock{margin-top:0}#scene-atmosphere i:nth-child(n+5){display:none}.content-panel,.arrival-facts{border-radius:12px}}
@media(prefers-reduced-motion:reduce){#scene-atmosphere{display:none}.destination-background{transition:none}}
html.paused #scene-atmosphere{display:none}html.paused *:after{animation:none!important}

/* Keep the search centered over Earth, with the surprise action immediately below. */
#random-destination{position:absolute;top:calc(100% + 18px);left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:9px;white-space:nowrap;padding:10px 19px;min-height:44px;border:1px solid #d4efff40;border-radius:30px;background:#d4eeff0d;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:inset 0 1px 0 #ffffff20;color:#e6f5ff;font-size:13px;transition:background .2s ease,border-color .2s ease}
#random-destination span{font-size:20px;line-height:1}
#random-destination:hover{background:#d4eeff24;border-color:#d4efff80}
#random-destination:active{transform:translateX(-50%) scale(.97)}
#search-status:not(:empty){top:calc(100% + 66px)}
#results{top:calc(100% + 124px);max-height:min(300px,26vh)}

.safety-method{border-top:1px solid #c6eaff2b;padding-top:18px;margin-top:22px}.safety-method summary{font-size:13px;color:#c9e5f5;cursor:pointer}.safety-method p{margin-top:14px}#safety-body .safety-method p{font-size:12px}#safety-body>.source-note:first-child{margin-top:0;margin-bottom:18px}

.weather-dates{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0 14px}.weather-dates input{min-width:0;width:100%;color-scheme:dark}.weather-table{max-height:360px;overflow:auto}.weather-table table{width:100%;font-size:12px;border-collapse:collapse}.weather-table th{position:sticky;top:0;background:#102536;font-weight:500}.weather-table th,.weather-table td{padding:12px 8px;border-bottom:1px solid #c6eaff24;text-align:right;white-space:nowrap}.weather-table th:first-child,.weather-table td:first-child{text-align:left}#weather-range-form{max-width:380px}#weather-range-form .source-note{font-size:11px}.weather-table tr:hover{background:#bcecff0a}@media(max-width:650px){.weather-dates{gap:8px}.weather-table th,.weather-table td{padding:10px 5px}.weather-table{max-height:340px}}

/* Let the globe receive gestures while keeping the search controls interactive. */
#portal{pointer-events:none}#portal .search-dock{pointer-events:auto}#space{touch-action:none}#space.dragging{cursor:grabbing!important}body[data-state=flight] #portal .search-dock{pointer-events:none}
.arrival-clock{display:flex;align-items:flex-start;gap:13px;margin:0 0 30px;color:#d5e9f4}.clock-dot{width:6px;height:6px;background:#aeeaff;box-shadow:0 0 14px #aeeaff70;border-radius:50%;margin-top:7px}.arrival-clock>div{display:grid;grid-template-columns:auto 1fr;column-gap:18px;align-items:baseline}#arrival-time-label{font-size:12px;color:#b1c9d8;grid-column:1/-1}#arrival-time{font-size:38px;letter-spacing:-.04em;font-variant-numeric:tabular-nums;line-height:1.5}#arrival-date{font-size:12px;color:#b1c9d8}.arrival-message{margin-bottom:20px}.guide-heading{display:flex;gap:12px;align-items:baseline;justify-content:space-between;flex-wrap:wrap}.guide-heading h3{margin-bottom:8px}.guide-kind{font-size:10px;color:#aedce9;letter-spacing:.02em}.guide-status{font-size:12px;color:#c8e3ed;padding-bottom:18px;border-bottom:1px solid #b0defa24;line-height:1.6}.country-context{margin-top:18px;border-top:1px solid #b0defa20;padding-top:12px}.country-context summary{color:#a7bdcb;font-size:12px;cursor:pointer}.country-context[open] summary{margin-bottom:14px}.country-context p{color:#a7bdcb}.destination-background.image-ready{animation:photo-arrival 1.5s ease both}@keyframes photo-arrival{from{opacity:.05}to{opacity:.8}}@media(max-width:650px){#arrival-time{font-size:30px}.arrival-clock{margin-bottom:20px}.arrival-clock>div{column-gap:12px}.guide-heading{gap:4px}.guide-kind{margin-bottom:12px}}

/* Landing wave is visual only; all destination controls remain available. */
.landing-wave{position:absolute;left:50%;top:50%;border:2px solid #cef6ff;border-radius:50%;opacity:0;pointer-events:none;z-index:2;transform:translate(-50%,-50%);box-shadow:0 0 35px #b4eeff33,inset 0 0 35px #b4eeff22}
@media(prefers-reduced-motion:reduce){.landing-wave{display:none}}

/* Content can shrink inside grids without losing long names or source links. */
.slide > *, .currency-row > *, .weather-dates > * { min-width: 0; }
.content-panel, .arrival-facts, .source-note { overflow-wrap: anywhere; }
#flight { padding: 24px; text-align: center; }
#flight-name { max-width: 100%; overflow-wrap: anywhere; }

/* One content scroller, with space reserved for navigation and device insets. */
@media (max-width: 760px), (max-height: 600px) {
  header {
    padding: max(12px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) 8px max(20px, env(safe-area-inset-left));
  }
  .wordmark { font-size: 19px; min-height: 44px; }
  .wordmark svg { width: 24px; }
  .header-actions button { min-height: 44px; }
  #portal {
    height: 100dvh; overflow-y: auto;
    padding: calc(76px + env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));
  }
  .search-dock { width: min(590px, 100%); margin: auto; }
  #search-form { padding: 6px; gap: 8px; }
  #search-form > svg { margin-left: 8px; width: 18px; }
  #query { font-size: 16px; height: 48px; }
  #search-button { width: 44px; height: 44px; }
  #random-destination { position: static; transform: none; margin: 16px auto 0; }
  #random-destination:active { transform: scale(.97); }
  #search-status:not(:empty) { position: static; margin-top: 12px; }
  #results { position: relative; top: auto; margin-top: 12px; max-height: min(300px, 40dvh); }
  #journey {
    height: 100dvh; display: grid;
    grid-template-rows: auto auto minmax(0, 1fr) auto;
    padding: calc(68px + env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));
    gap: 8px;
  }
  .journey-top, #chapters, .journey-bottom { position: relative; inset: auto; min-width: 0; }
  .journey-top { gap: 16px; font-size: 11px; }
  .text-button { font-size: 13px; min-height: 44px; }
  #coordinates { max-width: 45%; text-align: right; }
  #chapters { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 12px; }
  #chapters button { min-height: 44px; font-size: 12px; }
  #slides { min-height: 0; min-width: 0; position: relative; z-index: 1; }
  .slide { inset: 0; display: block; padding: 16px 2px 24px; overscroll-behavior-y: contain; scroll-padding-block: 16px; }
  .slide-intro { margin-bottom: 24px; }
  .slide-intro h2 { font-size: clamp(32px, 6vw, 48px); margin-bottom: 16px; }
  .slide-intro > p { max-width: none; font-size: 15px; }
  #destination-title { font-size: clamp(38px, 10vw, 64px); margin-bottom: 16px; }
  .arrival-message { font-size: 19px; margin-bottom: 20px; }
  .arrival-copy { margin-bottom: 24px; }
  .arrival-clock > div { display: flex; flex-wrap: wrap; gap: 0 12px; }
  #arrival-time-label { flex-basis: 100%; }
  .arrival-facts, .content-panel { padding: 20px; max-height: none; overflow: visible; }
  .fact-title { margin-bottom: 20px; }
  #facts { gap: 20px 12px; }
  .journey-cta { min-height: 44px; gap: 24px; }
  .journey-bottom { align-items: center; gap: 12px; }
  .journey-bottom > div:first-child { min-width: 0; flex: 1; }
  #photo-credit { font-size: 11px; max-height: 48px; overflow-y: auto; margin-top: 0; }
  #slide-counter { display: block; font-size: 11px; overflow-wrap: anywhere; }
  .slide-controls { gap: 8px; flex-shrink: 0; }
  .slide-controls button { width: 44px; height: 44px; }
  #progress { display: none; }
  .temperature { font-size: 68px; }
  .form-control, .form-select { font-size: 16px; max-width: 100%; }
  .currency-row { grid-template-columns: minmax(0, 1fr) 44px minmax(0, 1fr); gap: 8px; }
  .money-input { font-size: 32px; }
  .holiday-list { max-height: none; overflow: visible; }
  dialog { padding: 28px 22px; max-width: calc(100% - 32px); }
  .dialog-close { min-width: 44px; min-height: 44px; }
  body[data-state=flight] header { opacity: 0; }
}
@media (min-width: 600px) and (max-height: 600px) {
  #chapters { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
@media (max-width: 380px) {
  .weather-dates { grid-template-columns: minmax(0, 1fr); }
  #facts { grid-template-columns: minmax(0, 1fr); }
}
