:root{font-family:Arial,Helvetica,sans-serif;color:#f1efe6;--accent:#e3c585;--ink:#142126;--line:#e7eee024}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#a8b9bc}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;border:0;background:none}button:focus-visible,a:focus-visible{outline:2px solid #e4cc98;outline-offset:5px}button:hover{color:#fff}a{color:inherit;text-decoration:none}button:disabled{cursor:wait;opacity:.5}[hidden]{display:none!important}#world{position:fixed;inset:0;width:100%;height:100%;outline:none}body:after{content:'';position:fixed;inset:0;pointer-events:none;background:linear-gradient(#0e232e38,transparent 20%,transparent 78%,#112c3433);z-index:1}header{position:fixed;inset:0 0 auto;z-index:8;display:flex;align-items:center;justify-content:space-between;padding:27px 36px;pointer-events:none}.brand{display:flex;gap:14px;align-items:center;font-size:36px;font-weight:700;letter-spacing:-7px;line-height:1;pointer-events:auto}.brand>span{color:#e4c58e;font-size:27px;margin-left:-8px}.brand>div{font-size:12px;letter-spacing:2.3px;font-weight:500;margin-left:5px}.brand small{display:block;font-size:8px;letter-spacing:2px;margin-top:8px;color:#e0e7e1b3}.top-actions{display:flex;align-items:center;gap:23px;pointer-events:auto;font-size:9px;letter-spacing:1.3px}.top-actions button{font-size:9px;letter-spacing:1px;padding:10px 0;text-shadow:0 1px 8px #102736}.top-actions button:last-child{border:1px solid #ffffff55;border-radius:50%;width:25px;height:25px;padding:0;font-size:13px}.weather{display:flex;align-items:center;gap:10px}.weather>span{border-left:1px solid #ffffff45;padding-left:12px;font-size:14px}.weather i{height:7px;width:7px;background:#f2d39b;border-radius:50%;box-shadow:0 0 10px #ffddaa66}#welcome{position:fixed;inset:0;z-index:3;background:linear-gradient(90deg,#12292bd9 0%,#10282b82 28%,transparent 62%)}.intro{position:absolute;left:6.4vw;top:18%;width:340px}.eyebrow{font-size:9px;letter-spacing:2.3px;font-weight:500;color:#dce3d8b0}.intro>.eyebrow{display:flex;align-items:center;gap:12px}.eyebrow>span{height:1px;width:25px;background:#c8bd94}.intro h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(70px,7.5vw,110px);line-height:.88;letter-spacing:-5px;font-weight:400;margin:25px 0 22px}.intro h1 em{font-weight:400;color:#dfc99f}.intro-copy{font-size:14px;line-height:1.7;color:#d1dcd5;letter-spacing:.2px}.hero-caption{font-size:8px;letter-spacing:1.8px;border-top:1px solid var(--line);margin:25px 0 12px;padding-top:17px;display:flex;justify-content:space-between}.hero-caption span{color:#a8b7b2}#hero-choices{display:flex;gap:8px}#hero-choices button{width:65px;height:63px;border:1px solid #cbdacc33;display:grid;place-items:center;position:relative;transition:background .2s,border-color .2s}#hero-choices button.selected{background:#e0c58f20;border-color:#e0c58f;color:#f1d69e}#hero-choices svg{width:38px;height:38px}#hero-choices small{position:absolute;right:5px;bottom:4px;font-size:7px;opacity:.6}#hero-detail{height:46px;font-size:10px;line-height:1.7;margin:13px 0;color:#b7c9c4}#hero-detail strong{display:block;color:#f1efe6;font-size:13px;font-weight:500}.primary{width:100%;border:1px solid #e2ca97;background:#e6c992;color:#23302e!important;padding:17px 20px;display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:600;letter-spacing:.4px}.primary:hover{background:#f6dfb1}.primary>span{font-size:22px;line-height:12px}.entry-links{display:flex;gap:23px;font-size:10px;color:#bcc9c3;margin-top:18px;align-items:center}.entry-links button{padding:0}.place-caption{position:absolute;right:4.5vw;bottom:100px;text-align:right;text-shadow:0 2px 14px #12293277}.place-caption>span{font-size:8px;letter-spacing:2.5px}.place-caption h2{font-family:Georgia,serif;font-size:27px;font-weight:400;line-height:1.4;margin:14px 0}.place-caption p{font-size:8px;letter-spacing:1.8px}.coordinates{position:absolute;bottom:28px;left:36px;font-size:8px;letter-spacing:1.2px;color:#dce5dfaa}.coordinates span{margin-left:22px;font-size:7px}.journey{position:absolute;left:36px;top:112px;border-left:1px solid #ecdfb46b;padding:0 0 0 15px;text-shadow:0 1px 10px #14242d}.journey>strong{display:block;font-size:18px;font-weight:400;letter-spacing:.3px;margin-top:9px}.journey p{font-size:10px;color:#e1e9dcba}.journey .eyebrow{font-size:8px}.journey .chip{display:inline-block;width:34px;border-bottom:2px solid #e4ebdc4d;color:#e4ebdc88;font-size:8px;margin:10px 9px 0 0;padding-bottom:5px}.journey .chip.found{color:#f0d29b;border-color:#f0d29b}#hud{position:fixed;inset:0;z-index:3;pointer-events:none}#hud button{pointer-events:auto}.map-wrap{position:absolute;left:34px;bottom:72px;width:260px}.map-wrap button{padding:0;width:100%;background:#102a31b8;backdrop-filter:blur(12px);border:1px solid #dbe4d333;position:relative;display:block}#radar{width:100%;height:auto;display:block}.map-n{position:absolute;top:10px;right:12px;font-size:9px;color:#e9d4a6}.map-title{font-size:8px;letter-spacing:1.7px;position:absolute;bottom:10px;left:12px;right:12px;text-align:left}.map-title>span{float:right;color:#c5d9d1}.flight-panel{position:absolute;right:36px;bottom:80px;width:245px;background:linear-gradient(90deg,transparent,#102a3138);text-shadow:0 1px 10px #17303944}.hero-line{display:flex;gap:9px;align-items:center}.hero-line svg{width:26px;height:26px;color:var(--accent)}#active-hero{font-size:12px;flex:1}#mode{font-size:7px;letter-spacing:1px;color:#e0e7ddb3}.telemetry{display:flex;gap:28px;margin:10px 0}.telemetry>div{display:flex;align-items:baseline;gap:7px}.telemetry strong{font-size:35px;font-weight:300;font-variant-numeric:tabular-nums;letter-spacing:-1px}.telemetry div:nth-child(2) strong{font-size:25px}.telemetry small{font-size:7px;letter-spacing:1px}.meter{height:2px;background:#fff3}.meter>i{display:block;width:0;background:var(--accent);height:100%;transition:width .1s}#active-help{font-size:9px;line-height:1.8;color:#e3e9e0c9}#jarvis{border-top:1px solid #b4ece529;margin-top:16px;padding-top:11px}#jarvis>span{font-size:7px;letter-spacing:2px;color:#abe7e2}#jarvis p{font-size:9px;color:#d1e4de;line-height:1.6;margin:6px 0}.bottom-controls{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);display:flex;gap:18px;white-space:nowrap;font-size:9px;color:#e1e7dfc7}kbd{font-family:inherit;font-size:8px;border:1px solid #dbe5dc4f;background:#1b383a29;border-radius:3px;padding:3px 5px;margin-right:5px;color:#f3efdf}.performance{position:absolute;right:36px;bottom:28px;display:flex;align-items:center;gap:14px;font-size:8px;color:#e0e9df99}.performance button{font-size:7px;letter-spacing:1px}#crosshair{position:absolute;left:50%;top:50%;width:16px;height:16px;border:1px solid #faf6e455;border-radius:50%;transform:translate(-50%,-50%);display:grid;place-items:center}#crosshair i{width:2px;height:2px;border-radius:50%;background:#fff}#crosshair.target{border-color:#e4cf9d;box-shadow:0 0 12px #e7d5a04a}#anchor-hint{position:absolute;left:50%;top:calc(50% + 24px);transform:translateX(-50%);font-size:8px;letter-spacing:1px;color:#f0d3a3}#look-hint{position:absolute;top:90px;left:50%;transform:translateX(-50%);font-size:10px;background:#1c343d91;border:1px solid #ccd9d329;padding:9px 15px;border-radius:2px;backdrop-filter:blur(8px)}.landmark-label{position:absolute;transform:translate(-50%,-100%);font-size:8px;letter-spacing:1.5px;text-shadow:0 1px 10px #082426;white-space:nowrap;text-align:center;padding-bottom:22px}.landmark-label:after{content:'';position:absolute;bottom:0;left:50%;height:16px;width:1px;background:#e9dbc5b0}.landmark-label b{font-size:8px;display:inline-grid;place-items:center;width:22px;height:22px;border:1px solid #f2dfb6aa;transform:rotate(45deg);margin-bottom:12px}.landmark-label b>span{transform:rotate(-45deg)}.landmark-label strong{font-weight:500;display:block}.landmark-label small{display:block;font-size:8px;letter-spacing:.5px;color:#eee2ceaa;margin-top:6px}#toast{position:fixed;z-index:15;bottom:72px;left:50%;transform:translate(-50%,12px);padding:12px 21px;max-width:70vw;font-size:11px;line-height:1.6;text-align:center;background:#1a333de8;border:1px solid #e9cc943d;backdrop-filter:blur(12px);opacity:0;transition:opacity .25s,transform .25s;pointer-events:none}#toast.show{opacity:1;transform:translate(-50%,0)}.modal{position:fixed;inset:0;z-index:20;background:#102329a8;backdrop-filter:blur(14px);display:grid;place-items:center;padding:25px}.modal-card{background:#163039f2;border:1px solid #afc4bd36;box-shadow:0 30px 100px #0c242954;padding:38px;width:430px;max-width:100%;max-height:90vh;overflow:auto}.modal-card h2{font-family:Georgia,serif;font-size:34px;font-weight:400;margin:14px 0 18px;letter-spacing:-.6px}.modal-card>p{font-size:12px;color:#bfcfc8;line-height:1.9;margin-bottom:24px}.modal-options{display:flex;flex-direction:column;margin:18px 0}.modal-options button{font-size:12px;padding:13px 0;text-align:left;border-bottom:1px solid #d4ded51c}.small-link{font-size:10px;color:#bacac1}.wide{width:770px}.modal-heading{display:flex;justify-content:space-between;align-items:start}.close{font-size:26px;color:#becac4;padding:0 5px}.controls-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}.controls-grid h3{font-size:13px;font-weight:500;color:#e2cba1;margin:0 0 17px}.controls-grid p{font-size:11px;line-height:2;color:#d4dfd7}.controls-grid p>b{font-weight:500;color:#f2ecdc}.credits{border-top:1px solid #cfdbce20;padding-top:20px;margin-top:20px;font-size:10px;color:#b7cbc3;line-height:1.8}.credits strong{font-weight:500;color:#dedfd2}.credits>div{display:flex;gap:20px;font-size:9px}.map-card{width:960px}.map-card h2{font-size:30px}.map-card>canvas{width:100%;height:auto;background:#102b32;border:1px solid #c0d1c324}.destinations{display:grid;grid-template-columns:repeat(4,1fr);margin-top:18px;gap:10px}.destinations>button{border:1px solid #c1d3c42e;padding:15px;text-align:left}.destinations>button:hover{border-color:#d5ba81;background:#d5ba810a}.destinations span{font-size:9px;color:#d6bd8c;display:block;margin-bottom:12px}.destinations strong{font-size:11px;display:block;font-weight:500}.destinations small{font-size:8px;color:#b9cac2;margin-top:8px;display:block}.map-card>p{font-size:10px;margin-bottom:0}#loading{position:fixed;inset:0;z-index:50;background:#142c33;display:flex;flex-direction:column;align-items:center;justify-content:center}.load-logo{font-size:50px;font-weight:700;letter-spacing:-7px}.load-logo>span{color:#d8bd89}#loading>p{font-family:Georgia,serif;font-size:24px;margin:30px 0 23px}.load-line{width:210px;height:1px;background:#d7dcca29;overflow:hidden}.load-line:after{content:'';display:block;height:1px;width:80px;background:#d6c094;animation:load 1.4s infinite ease-in-out}@keyframes load{from{transform:translateX(-80px)}to{transform:translateX(220px)}}#load-status{font-size:9px;letter-spacing:1px;color:#9bb6ae;margin-top:18px}#photo-hint{position:fixed;z-index:5;bottom:24px;left:50%;transform:translateX(-50%);font-size:9px;background:#1931376b;padding:10px 16px;color:#dbe6de99}body.photo header,body.photo #hud{display:none!important}body.photo:after{display:none}.attribution{position:absolute;bottom:8px;left:36px;font-size:7px;color:#c4d1ca77;pointer-events:auto}
@media(max-height:760px){.intro{top:16%;width:300px}.intro h1{font-size:77px;margin:20px 0 16px}.intro-copy{font-size:12px}.hero-caption{margin-top:17px;padding-top:12px}#hero-choices button{height:52px;width:57px}#hero-choices svg{height:30px;width:30px}.primary{padding:14px 18px}.place-caption{bottom:80px}.map-wrap{width:220px}.bottom-controls{gap:11px}}
@media(max-width:900px){header{padding:20px}.brand>div{font-size:10px}.top-actions{gap:13px}.weather{display:none}.intro{left:5vw;top:16%}.place-caption{right:30px}.place-caption h2{font-size:21px}.coordinates{left:20px}.flight-panel{right:20px;width:210px}.map-wrap{left:20px;width:200px}.journey{left:20px}.bottom-controls span:nth-child(n+4){display:none}.performance{right:20px}.performance>span{display:none}}
@media(max-width:640px){.intro{width:270px}.intro h1{font-size:72px}.place-caption{display:none}.coordinates span{display:none}.map-wrap{width:155px;bottom:85px}.flight-panel{width:165px;bottom:85px}.telemetry{gap:12px}.telemetry strong{font-size:27px}.telemetry div:nth-child(2) strong{font-size:20px}#mode{display:none}.journey{top:90px}.journey>strong{font-size:15px}.top-actions{gap:12px}.top-actions #sound{display:none}.controls-grid{grid-template-columns:1fr}.modal-card{padding:24px}.destinations{grid-template-columns:1fr 1fr}.bottom-controls{bottom:25px}.performance{display:none}#look-hint{top:75px;max-width:80vw;white-space:nowrap;font-size:8px}.journey{top:120px}#jarvis{display:none}}

/* Opaque support keeps telemetry readable over pale facades and bright sky. */
header{background:linear-gradient(#132c356b,transparent);padding-bottom:37px}
.journey{background:#17313be0;padding:15px 18px;border:1px solid #d9e1d329;border-left:2px solid #d6bd8a;text-shadow:none;box-shadow:0 8px 30px #132a3320}.journey p{color:#d2ddd5}.journey .eyebrow{color:#c9d8cf}.journey>strong{font-size:17px}
.flight-panel{background:#18313bcc;padding:16px 19px;border:1px solid #d7e3d32e;width:275px;text-shadow:none}.landmark-label{text-shadow:0 1px 3px #082426,0 0 8px #082426}
@media(max-width:900px){.flight-panel{width:245px}}
@media(max-width:640px){.flight-panel{width:185px;padding:12px}.journey{padding:10px}}
/* Keep photo controls clear of the hosting toolbar at the lower-right edge. */
.performance{top:112px;bottom:auto;background:#18313bd9;border:1px solid #d7e3d32e;padding:8px 10px;color:#d5dfd8}

.map-title b{font-weight:500;display:inline-block;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}.performance button[aria-pressed="true"]{color:#f5d692}.performance{gap:12px}.performance button{padding:5px 2px}

.destinations{grid-template-columns:repeat(3,minmax(0,1fr))}.map-card{width:min(960px,calc(100vw - 50px));min-width:0;max-height:90vh;overflow-y:auto}.landmark-label strong{max-width:210px;white-space:normal;line-height:1.5}
@media(max-height:700px){.map-card{padding:22px}.map-card h2{margin:10px 0 15px}.map-card>canvas{height:34vh;object-fit:contain}.map-card .destinations{margin-top:12px;gap:7px}.map-card .destinations>button{padding:10px}.map-card .destinations span{margin-bottom:6px}.map-card>p{margin-top:10px;line-height:1.5}}

/* Touch controls share the existing gold/ink palette and leave the view open. */
:root{--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px)}
button:focus-visible,a:focus-visible{outline:2px solid #f0d39b;outline-offset:4px}
body[data-game-state="playing"] #world,#move-pad,[data-input-action],#pause-button{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.touch-only,.touch-help{display:none}
#photo-hint{display:flex;align-items:center;gap:16px;color:#f1efe6;background:#17313be8;border:1px solid #d9e1d329;padding:6px 12px;bottom:calc(16px + var(--safe-bottom))}
#photo-exit{min-height:44px;font-size:13px;padding:8px}
.view-distance{border-top:1px solid var(--line);padding:14px 0 22px;font-size:12px;color:#d1dcd5;display:flex;align-items:center;justify-content:space-between;gap:12px}
.view-distance>div{display:flex;align-items:center;gap:12px}
.view-distance button{width:48px;min-height:48px;border:1px solid #c1d3c44d;font-size:24px}
#zoom-level{min-width:48px;text-align:center;font-variant-numeric:tabular-nums}
@supports(height:100dvh){body,#world,#welcome,#hud,.modal{height:100dvh}#world,#welcome,#hud,.modal{bottom:auto}.modal-card{max-height:calc(100dvh - 32px - var(--safe-top) - var(--safe-bottom))}}

.touch-input header{padding:calc(8px + var(--safe-top)) calc(16px + var(--safe-right)) 8px calc(16px + var(--safe-left));min-height:60px;background:linear-gradient(#132c35dd,#132c3500)}
.touch-input .brand{min-height:44px;min-width:48px;font-size:32px}
.touch-input .brand>div,.touch-input .weather,.touch-input .top-actions #sound{display:none}
.touch-input .top-actions{gap:8px}
.touch-input .top-actions button{min-width:44px;min-height:44px;font-size:11px;padding:8px}
.touch-input .top-actions button:last-child{width:44px;height:44px;font-size:18px}
.touch-input #quality{border:1px solid #d9e1d329;background:#17313be8;letter-spacing:.5px}
.touch-input[data-game-state="playing"] header{width:auto;right:calc(128px + var(--safe-right))}
.touch-input #welcome{overflow-y:auto;overscroll-behavior-y:contain;touch-action:pan-y pinch-zoom;padding:0 var(--safe-right) var(--safe-bottom) var(--safe-left)}
.touch-input .intro{position:relative;top:auto;left:auto;width:min(340px,calc(100% - 40px));margin:calc(80px + var(--safe-top)) 20px 24px}
.touch-input .intro h1{font-size:76px}
.touch-input .intro-copy{font-size:16px}
.touch-input .hero-caption{font-size:11px}
.touch-input #hero-detail{height:auto;min-height:50px;font-size:13px}
.touch-input #hero-detail strong{font-size:16px}
.touch-input #hero-choices button{width:64px;height:60px;min-height:44px}
.touch-input .primary{min-height:48px;font-size:16px}
.touch-input .entry-links{flex-wrap:wrap;gap:4px 20px;font-size:13px;margin-top:8px}
.touch-input .entry-links>*{display:flex;align-items:center;min-height:44px}
.touch-input .place-caption{display:none}
.touch-input .coordinates{position:static;margin:0 20px 20px;font-size:10px}
.touch-input .coordinates span{display:none}

#play-toolbar{position:absolute;top:calc(64px + var(--safe-top));left:calc(16px + var(--safe-left));right:calc(16px + var(--safe-right));display:flex;gap:8px}
#play-toolbar button{flex:1;min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;font-size:14px;background:#17313bea;border:1px solid #d9e1d33d}
#play-toolbar button>span{font-size:18px;color:#e1c691}
#play-toolbar #pause-button{position:fixed;top:calc(8px + var(--safe-top));right:calc(16px + var(--safe-right));width:104px;min-width:104px;min-height:48px;flex:none}
.touch-input .flight-panel{top:calc(124px + var(--safe-top));bottom:auto;left:calc(16px + var(--safe-left));right:calc(16px + var(--safe-right));width:auto;padding:10px 12px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}
.touch-input .hero-line{display:grid;grid-template-columns:26px minmax(0,1fr);gap:2px 8px}
.touch-input .hero-line>span:first-child{grid-row:1/3}
.touch-input #active-hero{font-size:14px;white-space:nowrap}
.touch-input #mode{display:block;grid-column:2;font-size:10px;letter-spacing:.3px}
.touch-input .telemetry{margin:0;gap:12px}
.touch-input .telemetry>div{display:block}
.touch-input .telemetry strong,.touch-input .telemetry div:nth-child(2) strong{font-size:22px;display:block;letter-spacing:0}
.touch-input .telemetry small{font-size:8px;letter-spacing:.5px}
.touch-input .meter,.touch-input #active-help,.touch-input #jarvis,.touch-input .map-wrap,.touch-input .performance,.touch-input .bottom-controls,.touch-input #look-hint{display:none}
.touch-input .journey{top:calc(202px + var(--safe-top));left:calc(16px + var(--safe-left));max-width:calc(100% - 32px - var(--safe-left) - var(--safe-right));padding:8px 10px;background:#17313bcf}
.touch-input .journey .eyebrow,.touch-input #discovery-chips{display:none}
.touch-input .journey>strong{font-size:14px;margin:0}
.touch-input .journey p{font-size:11px;margin:5px 0 0;line-height:1.4}
.touch-input .attribution{left:calc(16px + var(--safe-left));bottom:calc(3px + var(--safe-bottom));font-size:8px;min-height:12px}
.touch-input .keyboard-only{display:none}
.touch-input .touch-only{display:inline}
.touch-input #anchor-hint{font-size:10px;letter-spacing:.5px;background:#17313bd9;padding:5px 8px}
.touch-input #toast{bottom:calc(218px + var(--safe-bottom));max-width:calc(100% - 32px - var(--safe-left) - var(--safe-right));width:max-content;font-size:13px;padding:10px 14px}

#touch-controls{position:absolute;inset:0;pointer-events:none}
.move-control{position:absolute;left:calc(16px + var(--safe-left));bottom:calc(28px + var(--safe-bottom));width:136px;text-align:center}
#move-pad{position:relative;display:block;width:136px;height:136px;padding:0;border-radius:50%;border:1px solid #e1d3ad66;background:#17313bbd;box-shadow:0 3px 20px #0c24292e}
.move-ring{position:absolute;inset:18px;border:1px solid #d9e1d329;border-radius:50%}
.move-thumb{position:absolute;left:50%;top:50%;width:48px;height:48px;margin:-24px 0 0 -24px;border:1px solid #e6cc95;background:#ddc18a4d;border-radius:50%;transform:translate(var(--move-x,0px),var(--move-y,0px));pointer-events:none}
.pad-caption{display:block;margin-top:8px;font-size:10px;letter-spacing:1.5px;color:#e5e7d9;text-shadow:0 1px 5px #102a31}
.action-control{position:absolute;right:calc(16px + var(--safe-right));bottom:calc(28px + var(--safe-bottom));display:grid;grid-template-columns:repeat(2,68px);gap:8px}
.action-control button{min-height:54px;min-width:44px;padding:6px 3px;border:1px solid #d9e1d35c;background:#17313beb;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:14px;line-height:1.1}
.action-control button small{font-size:9px;text-transform:uppercase;letter-spacing:1px;color:#baccc3}
.action-control #touch-primary{border-color:#dfc28b;background:#6e5b38db}
.action-control button[aria-pressed="true"]{border-color:#f7dba1;background:#e2c58e;color:#182e35}
.action-control button[aria-pressed="true"] small{color:#31454a}
.look-caption{position:absolute;left:calc(16px + var(--safe-left));bottom:calc(198px + var(--safe-bottom));width:136px;font-size:11px;line-height:1.4;text-align:center;color:#eff0e4;text-shadow:0 1px 4px #102a31}

.touch-input .modal{padding:calc(16px + var(--safe-top)) calc(16px + var(--safe-right)) calc(16px + var(--safe-bottom)) calc(16px + var(--safe-left));touch-action:pan-y pinch-zoom}
.touch-input .modal-card{width:min(770px,100%);padding:24px 20px;max-height:calc(100% - 2px);overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.touch-input #pause .modal-card{width:min(440px,100%)}
.touch-input .modal-card h2{font-size:30px}
.touch-input .modal-card>p,.touch-input .controls-grid p,.touch-input .touch-help p{font-size:16px;line-height:1.6}
.touch-input .modal-options button{min-height:48px;font-size:16px;padding:12px 0}
.touch-input .close{min-width:44px;min-height:44px;font-size:28px}
.touch-input .small-link,.touch-input .credits a{display:inline-flex;align-items:center;min-height:44px;font-size:13px}
.touch-input .touch-help{display:block;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:24px}
.touch-input .touch-help h3,.touch-input .controls-grid h3{font-size:18px;font-weight:500;color:#e2cba1}
.touch-input .controls-grid{grid-template-columns:1fr;gap:20px}
.touch-input .credits{font-size:13px}
.touch-input .credits>div{flex-wrap:wrap;gap:4px 16px}
.touch-input .destinations{grid-template-columns:repeat(2,minmax(0,1fr))}
.touch-input .destinations>button{min-height:72px;padding:12px}
.touch-input .destinations strong{font-size:14px;line-height:1.3}
.touch-input .destinations small{font-size:11px;line-height:1.4}
.touch-input .map-card>canvas{max-height:30vh;object-fit:contain}
.touch-input #photo-hint{max-width:calc(100% - 32px - var(--safe-left) - var(--safe-right));width:max-content}
.touch-input #photo-exit{min-height:48px;font-size:16px}
.touch-input #photo-exit kbd{display:none}

@media(orientation:landscape) and (max-height:600px){
  .touch-input header{width:calc(100% - 216px - var(--safe-right));padding-bottom:4px}
  .touch-input[data-game-state="playing"] header{right:calc(276px + var(--safe-right))}
  #play-toolbar{top:calc(8px + var(--safe-top));left:auto;right:calc(136px + var(--safe-right));gap:6px}
  #play-toolbar button{min-width:58px;min-height:44px;padding:8px;font-size:13px;gap:5px}
  #play-toolbar button>span{display:none}
  .touch-input .flight-panel{top:calc(68px + var(--safe-top));right:auto;width:260px;padding:8px 10px}
  .touch-input .journey{top:calc(68px + var(--safe-top));left:auto;right:calc(16px + var(--safe-right));max-width:190px;padding:8px}
  .touch-input .journey>strong{font-size:13px}.touch-input .journey p{font-size:10px}
  .touch-input #welcome .intro{display:grid;grid-template-columns:180px minmax(240px,320px);gap:0 32px;width:max-content;max-width:calc(100% - 40px);margin-top:calc(72px + var(--safe-top))}
  .touch-input .intro>.eyebrow{grid-column:1;grid-row:1}.touch-input .intro h1{grid-column:1;grid-row:2/5;font-size:68px;margin:18px 0}.touch-input .intro-copy{grid-column:1;grid-row:5/7;margin:0}
  .touch-input .hero-caption,.touch-input #hero-choices,.touch-input #hero-detail,.touch-input #enter,.touch-input .entry-links{grid-column:2}
  .touch-input .hero-caption{grid-row:1;margin:0 0 10px;padding-top:0;border:0}.touch-input #hero-choices{grid-row:2}.touch-input #hero-detail{grid-row:3;min-height:40px;margin:8px 0}.touch-input #enter{grid-row:4}.touch-input .entry-links{grid-row:5/7}
  .touch-input .coordinates{display:none}
  .touch-input #toast{bottom:calc(16px + var(--safe-bottom));max-width:calc(100% - 360px - var(--safe-left) - var(--safe-right));font-size:12px;padding:8px 10px}
  .look-caption{display:none}
}
@media(prefers-reduced-motion:reduce){.touch-input button,.touch-input #toast{transition:none}}
