@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap');
:root{--ink:#eee9dc;--muted:#a8ad9f;--gold:#d0b578;--deep:#101c17;--panel:rgba(18,29,24,.91)}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden;background:#1b3023;color:var(--ink);font-family:'DM Sans',sans-serif}#view{position:absolute;inset:0;width:100%;height:100%;display:block}.topbar{position:absolute;inset:0 0 auto;height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 34px;background:linear-gradient(180deg,rgba(10,18,14,.84),transparent)}.brand{display:flex;align-items:center;gap:12px}.brand-mark{color:var(--gold);font-size:27px}.brand strong{display:block;font-size:13px;letter-spacing:.2em;font-weight:600}.brand small,.flight,.eyebrow,.section-heading,.panel-foot,.footer-note{font-family:'DM Mono',monospace;letter-spacing:.11em}.brand small{font-size:9px;color:#b5b6a7;display:block;margin-top:4px}.flight{font-size:10px;display:flex;gap:13px;align-items:center;color:#d6d5c9}.flight i{height:13px;width:1px;background:#8d9284}.live,.dot{height:6px;width:6px;border-radius:100%;background:#c3d394;box-shadow:0 0 11px #b2cf81}.panel{position:absolute;left:26px;top:98px;bottom:28px;width:304px;padding:26px 23px 16px;background:var(--panel);border:1px solid rgba(223,212,181,.15);backdrop-filter:blur(13px);border-radius:3px;display:flex;flex-direction:column;box-shadow:0 20px 60px #10191255}.eyebrow{font-size:9px;color:var(--gold)}h1{font:500 34px/1.08 'Playfair Display',serif;margin:15px 0 11px;letter-spacing:-.035em}h1 em{color:#d5bd87}.intro{font-size:12px;line-height:1.6;color:#bbc0b3;margin:0 0 20px}.place-card{display:flex;align-items:center;gap:12px;background:rgba(220,210,179,.07);padding:11px;border-left:2px solid var(--gold)}.place-icon{font-size:22px;color:var(--gold)}.place-card strong,.place-card small{display:block}.place-card strong{font-size:12px;font-weight:600}.place-card small{font-size:10px;color:var(--muted);margin-top:3px}.separator{height:1px;background:#e6decb20;margin:18px 0 15px}.section-heading{font-size:9px;color:#b7baaa;display:flex;justify-content:space-between;margin-bottom:8px}.section-heading span{color:var(--gold)}.places{overflow:auto;display:grid;grid-template-columns:1fr 1fr;gap:3px 8px;padding-right:2px}.places::-webkit-scrollbar{width:2px}.places::-webkit-scrollbar-thumb{background:#97845b}.place-button{background:transparent;border:0;text-align:left;color:#c6cabc;padding:8px 5px;font:11px 'DM Sans',sans-serif;cursor:pointer;display:flex;gap:8px;align-items:center;transition:.2s}.place-button:hover,.place-button.active{color:#f2dfad;background:#ffffff0d}.place-button b{font:9px 'DM Mono',monospace;color:#aa9a72;font-weight:400}.panel-foot{margin-top:auto;padding-top:14px;border-top:1px solid #e6decb20;color:#a7ad9e;font-size:8px;display:flex;align-items:center;gap:8px;white-space:nowrap}.panel-foot .dot{background:#d0b578;box-shadow:none}.compass{position:absolute;right:34px;top:105px;border:1px solid #ede3c544;background:#14231b66;border-radius:50%;width:46px;height:46px;display:grid;place-items:center;color:#eee2c4;font:9px 'DM Mono',monospace}.needle{position:absolute;height:15px;width:1px;top:7px;background:linear-gradient(#e3c883 50%,#c2c8ba 50%);transform:rotate(25deg)}.compass span{position:absolute;top:6px;color:#c9b579;font-size:8px}.help{position:absolute;right:28px;bottom:24px;background:#15231dcc;border:1px solid #eee3c522;padding:10px 12px;display:flex;align-items:center;gap:5px;border-radius:3px;transition:opacity .2s}.help.hidden{opacity:0;pointer-events:none}.key{min-width:19px;height:19px;display:grid;place-items:center;border:1px solid #d9d5c540;border-radius:2px;font:9px 'DM Mono',monospace;color:#eee7d3}.key.tall{min-width:20px}.key.mouse{font-size:14px}.help label{font:8px 'DM Mono',monospace;color:#b9bdaf;margin:0 8px 0 2px;letter-spacing:.04em}.help-toggle{display:none}.crosshair{position:absolute;left:50%;top:50%;width:19px;height:19px;opacity:.6;pointer-events:none}.crosshair i{position:absolute;background:#f5edcf}.crosshair i:first-child{height:1px;width:19px;top:9px}.crosshair i:last-child{width:1px;height:19px;left:9px}.footer-note{position:absolute;bottom:18px;left:350px;color:#e9e4d2a3;font-size:8px;letter-spacing:.08em}@media(max-width:720px){.panel{left:12px;top:78px;bottom:12px;width:min(275px,calc(100vw - 24px));padding:20px 17px 13px;transition:transform .25s}.panel.closed{transform:translateX(calc(-100% - 16px))}.topbar{padding:0 17px;height:64px}.brand small{font-size:7px}.flight{font-size:8px;gap:7px}.compass{right:17px;top:80px;width:38px;height:38px}.help{right:12px;bottom:12px;flex-wrap:wrap;max-width:calc(100vw - 24px);justify-content:flex-end;padding:7px}.help label{font-size:7px;margin-right:4px}.footer-note{display:none}.help-toggle{display:block;position:absolute;bottom:78px;right:17px;width:28px;height:28px;color:#ede3ca;background:#14231bcc;border:1px solid #eee3c544;border-radius:50%}.crosshair{left:auto;right:25px;top:51%}}

.overview{position:absolute;right:26px;top:96px;width:254px;padding:11px;background:rgba(18,29,24,.84);border:1px solid rgba(223,212,181,.2);backdrop-filter:blur(10px);border-radius:3px;box-shadow:0 14px 35px #10191255}.overview-head{display:flex;justify-content:space-between;align-items:center;color:#d7cfb5;font:9px 'DM Mono',monospace;letter-spacing:.12em;padding:0 2px 6px}.overview-head small{color:#d0b578}.overview svg{display:block;width:100%;height:174px;background:#26392c;border:1px solid #eee3c51a}.map-boundary{fill:#596b43;stroke:none}.map-edge{fill:none;stroke:#d3c496;stroke-width:1.5;vector-effect:non-scaling-stroke}.map-path{fill:none;stroke:#d2bd91;stroke-width:1;opacity:.78;vector-effect:non-scaling-stroke}.map-water{fill:none;stroke:#6baaa0;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;opacity:.88;vector-effect:non-scaling-stroke}.map-pond{fill:#6baaa0;stroke:#a7c4ab;stroke-width:1;vector-effect:non-scaling-stroke}.map-place{cursor:pointer;outline:none}.map-place circle{fill:#d8c99f;stroke:#28382a;stroke-width:1.5;vector-effect:non-scaling-stroke;transition:fill .15s}.map-place text{fill:#f3ead1;font:6px 'DM Mono',monospace;text-anchor:middle;dominant-baseline:central;pointer-events:none}.map-place:hover circle,.map-place:focus circle,.map-place.active circle{fill:#e7a962;stroke:#fff0c1}.drone-marker{pointer-events:none;filter:drop-shadow(0 0 3px #f5dca0)}.drone-marker circle{fill:#f5dca0;stroke:#31412c;stroke-width:1.5;vector-effect:non-scaling-stroke}.drone-marker path{fill:#f5dca0;stroke:#31412c;stroke-width:.8;vector-effect:non-scaling-stroke}.overview-foot{display:flex;align-items:center;gap:6px;padding:8px 2px 0;color:#b8bdad;font:8px 'DM Mono',monospace}.overview-foot i{width:7px;height:7px;border-radius:50%;background:#f5dca0;box-shadow:0 0 7px #f5dca077}.overview-foot span{color:#8c9788}
@media(max-width:720px){.overview{right:12px;top:126px;width:174px;padding:7px}.overview svg{height:124px}.overview-head{font-size:8px}.overview-foot{font-size:6px;gap:4px}}
@media(min-width:721px){.compass{right:294px}}
@media(max-width:720px){.panel{z-index:4}.overview{z-index:3;width:clamp(110px,35vw,174px)}.compass{z-index:5}.help,.help-toggle{z-index:6}}
.needle{transform:rotate(0deg)}
.map-place.map-anchor circle{stroke:#f0b76f;stroke-width:2.5}
.map-water{stroke-width:2.3}

.tour-card{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 9px;margin-top:12px;background:rgba(208,181,120,.09);border:1px solid rgba(208,181,120,.2)}.tour-card>div:first-child{min-width:0}.tour-kicker{display:block;color:var(--gold);font:8px 'DM Mono',monospace;letter-spacing:.1em;margin-bottom:4px}.tour-card strong{display:block;font-size:10px;font-weight:500;color:#e6e2d4}.tour-actions{display:flex;gap:4px;flex:none}.tour-actions button{border:1px solid #d0b57866;background:#d0b5781c;color:#f2dfad;border-radius:2px;padding:6px 9px;font:10px 'DM Sans',sans-serif;cursor:pointer}.tour-actions button:hover:not(:disabled){background:#d0b57844}.tour-actions button:disabled{opacity:.38;cursor:default}.tour-actions #tour-next{font-size:18px;line-height:10px;padding:4px 9px}

.map-lake,.map-smallpond{fill:#6baaa0;stroke:#a7c4ab;stroke-width:1;vector-effect:non-scaling-stroke}

.overview-tools{display:flex;align-items:center;gap:10px}.overview-tools button{border:0;background:transparent;color:#d0b578;font:15px 'DM Sans',sans-serif;line-height:12px;cursor:pointer;padding:2px 4px}.overview-tools button:hover{color:#fff0c1}.overview.expanded{z-index:10;position:fixed;top:50%;right:auto;left:50%;transform:translate(-50%,-50%);width:min(740px,calc(100vw - 24px));padding:16px;background:rgba(18,29,24,.98);box-shadow:0 0 0 100vmax #07110bcc,0 25px 80px #0009}.overview.expanded svg{height:min(72vh,650px)}.overview.expanded .map-place circle{r:2.8}

.detail-separator{margin:12px 0 11px}.details{max-height:150px}.details .place-button{padding:6px 5px;font-size:10px;line-height:1.2}.panel{overflow-y:auto}.places{overflow:visible;flex-shrink:0}

.footer-note a{color:inherit;text-decoration:underline;text-underline-offset:2px;pointer-events:auto}

.detail-preview{margin-top:12px;padding:11px;background:#d0b57812;border:1px solid #d0b57844}.detail-preview>div{display:flex;gap:6px}.detail-preview button{background:#d0b578;color:#16271c;border:0;border-radius:2px;padding:8px;font:600 10px 'DM Sans',sans-serif;cursor:pointer}.detail-preview button:hover{background:#ebd4a2}.detail-preview a{display:block;margin-top:9px;font-size:9px;color:#bdc6b6}.panel-foot{margin-top:14px;flex-shrink:0}.footer-note{bottom:65px;max-width:480px;line-height:1.6}

.detail-preview>div{flex-wrap:wrap}

#view{touch-action:none;outline:none;cursor:grab}#view.looking{cursor:grabbing}.help{flex-wrap:wrap;max-width:calc(100vw - 370px)}.help small{flex-basis:100%;text-align:right;font-size:9px;color:#c5cbbb}.help .key{padding:0 4px}#precision-toggle[aria-pressed="true"]{background:#c6ddb0}@media(max-width:720px){.help{max-width:calc(100vw - 24px)}}

.detail-preview .speed-control{display:flex;align-items:center;gap:7px;margin-top:13px;padding-top:11px;border-top:1px solid #d0b57833}.speed-control span{font:9px 'DM Mono',monospace;color:#c9c7b2;margin-right:auto}.detail-preview .speed-control button{background:#d0b57818;color:#eadbb4;border:1px solid #d0b57866;min-width:37px}.detail-preview .speed-control button[aria-pressed="true"]{background:#d0b578;color:#16271c;border-color:#f2dfad}#speed-readout{display:block;color:#e3dfd0;font-size:10px;margin-top:9px}#speed-note{display:block;font-size:9px;color:#bac4b3;margin-top:5px;line-height:1.5}

/* Checkpoint 21: high-contrast drone position and matching legend. */
.drone-marker{filter:drop-shadow(0 1px 2px #19221b);pointer-events:none}
.drone-marker path{fill:#ef2929;stroke:#fff;stroke-width:1.5;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.drone-marker circle{fill:#ef2929;stroke:none}
.overview-foot i{width:10px;height:10px;background:#ef2929;border:1px solid #fff;box-shadow:0 0 0 1px #762222}

/* Quiet projected spheres. The click target is larger than the visible dot. */
.flight-markers{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}
.flight-marker{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;border:0;padding:0;background:transparent;color:white;cursor:pointer;width:20px;height:20px;display:grid;place-items:center;--dot-size:8px;--dot-saturation:70%;--dot-opacity:.8}
.flight-marker[hidden]{display:none}
.marker-symbol{display:block;width:var(--dot-size);height:var(--dot-size);border-radius:50%;opacity:var(--dot-opacity);background:radial-gradient(circle at 32% 27%,hsl(3 var(--dot-saturation) 66%),hsl(3 var(--dot-saturation) 49%) 57%,hsl(3 var(--dot-saturation) 35%));pointer-events:none}
.marker-name{position:absolute;bottom:25px;left:50%;transform:translateX(-50%);white-space:nowrap;background:#10271fe8;padding:5px 8px;border-radius:3px;font:11px 'DM Sans',sans-serif;opacity:0;pointer-events:none}
.flight-marker:hover,.flight-marker:focus-visible{z-index:1100!important}
.flight-marker:hover .marker-name,.flight-marker:focus-visible .marker-name{opacity:1}
.flight-marker:focus-visible{outline:1px solid #ffe091;outline-offset:2px;border-radius:50%}
.topbar,.panel,.overview,.compass,.help,.help-toggle,.footer-note{z-index:2}.overview.expanded{z-index:10}

/* Checkpoint 41: landscape touch flight, safe areas and retractable overlays. */
.mobile-toolbar,#mobile-sticks,#rotate-prompt,.mobile-instructions,#mobile-notice{display:none}
html,body{overscroll-behavior:none}#app{height:100dvh}
.mobile-flight .help,.mobile-flight .help-toggle,.mobile-flight .brand,.mobile-flight .compass,.mobile-flight .footer-note,.mobile-flight .crosshair{display:none!important}
.mobile-flight .mobile-toolbar{display:flex;position:absolute;z-index:30;top:max(8px,env(safe-area-inset-top));left:max(10px,env(safe-area-inset-left));gap:8px}
.mobile-toolbar button{width:40px;height:40px;border:1px solid #e7e9d733;border-radius:50%;background:#10271f99;color:#f1eddf;font:20px system-ui;touch-action:manipulation;cursor:pointer}
.mobile-toolbar button:focus-visible{outline:2px solid #f2d88e;outline-offset:2px}.mobile-toolbar button[aria-pressed=true]{background:#42634bee}
.mobile-flight .topbar{height:50px;padding:0 max(12px,env(safe-area-inset-right)) 0 195px;pointer-events:none;justify-content:flex-end;z-index:2}.mobile-flight .flight{font-size:9px;gap:7px}.mobile-flight #flight-state{max-width:36vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mobile-flight .panel{display:none;position:absolute;z-index:20;left:max(8px,env(safe-area-inset-left));top:56px;bottom:max(8px,env(safe-area-inset-bottom));width:min(330px,calc(100vw - 32px));padding:16px;transform:none;overscroll-behavior:contain;touch-action:pan-y;background:#13271bf5;box-shadow:0 8px 30px #0006}
.mobile-flight.mobile-panel-open .panel{display:flex}.mobile-flight .panel button,.mobile-flight .panel .place-button{min-height:44px;font-size:12px}.mobile-flight .panel a{font-size:12px;padding:5px 0}.mobile-flight .mobile-instructions{display:block}.mobile-instructions p{font-size:12px;line-height:1.5}.mobile-flight .panel .eyebrow,.mobile-flight .panel h1,.mobile-flight .panel .intro{display:none}.mobile-flight .panel .place-card{flex-shrink:0}.mobile-flight .panel .detail-preview{flex-shrink:0}
.mobile-flight .overview{display:none;z-index:20;position:absolute;top:56px;right:max(8px,env(safe-area-inset-right));left:auto;bottom:max(8px,env(safe-area-inset-bottom));width:min(360px,70vw);transform:none;padding:10px;background:#13271bf5;box-shadow:0 8px 30px #0006}
.mobile-flight.mobile-map-open .overview{display:block}.mobile-flight .overview svg{height:calc(100% - 42px)}.mobile-flight #map-expand{display:none}.mobile-flight .overview-head{font-size:10px}.mobile-flight .overview-foot{font-size:8px}
.mobile-flight #mobile-sticks{display:block;position:absolute;inset:0;z-index:4;pointer-events:none}
.flight-stick{position:absolute;bottom:max(18px,env(safe-area-inset-bottom));width:clamp(100px,24vh,144px);height:clamp(100px,24vh,144px);border:1px solid #f3f2d64d;border-radius:50%;background:radial-gradient(circle,#112c2222 35%,#112c2244);pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.stick-left{left:max(22px,env(safe-area-inset-left))}.stick-right{right:max(22px,env(safe-area-inset-right))}.stick-knob{position:absolute;left:50%;top:50%;width:38%;height:38%;border-radius:50%;border:1px solid #f2ecd28c;background:#c9d6c34d;transform:translate(-50%,-50%);pointer-events:none}.flight-stick.active{border-color:#f2ecd2b3;background:#112c2255}.flight-stick.active .stick-knob{background:#d8dfb47a}.stick-caption{position:absolute;top:-18px;left:50%;transform:translateX(-50%);white-space:nowrap;font:8px 'DM Mono',monospace;color:#fff9dcbb;pointer-events:none}
.mobile-flight.mobile-panel-open #mobile-sticks,.mobile-flight.mobile-map-open #mobile-sticks{display:none}
.mobile-flight .flight-marker{width:32px;height:32px;touch-action:manipulation}.mobile-flight .flight-marker:hover:not(:focus-visible) .marker-name{opacity:0}
.mobile-flight #mobile-notice:not(:empty){display:block;position:absolute;z-index:60;left:50%;top:60px;transform:translateX(-50%);max-width:min(430px,85vw);padding:10px 14px;border-radius:8px;background:#12271fee;color:#f5eedb;font-size:12px;text-align:center;pointer-events:none}
.mobile-flight.mobile-portrait #rotate-prompt{display:flex;position:absolute;inset:0;z-index:40;background:#10241bef;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:28px}.mobile-portrait #rotate-prompt>span{font-size:64px;color:#d0b578}.mobile-portrait #rotate-prompt h2{font:28px Georgia;margin:14px}.mobile-portrait #rotate-prompt p{font-size:15px;line-height:1.6;max-width:280px}.mobile-portrait #rotate-prompt button{background:#d0b578;color:#14251b;border:0;border-radius:5px;padding:14px;font-size:14px;min-height:44px}.mobile-portrait .mobile-toolbar,.mobile-portrait #mobile-sticks{visibility:hidden}
@media(prefers-reduced-motion:reduce){.panel{transition:none}}
.mobile-flight.mobile-panel-open .flight-marker,.mobile-flight.mobile-map-open .flight-marker,.mobile-flight.mobile-portrait .flight-marker{pointer-events:none}

/* Checkpoint 53: one speed control replaces the mobile stop button. */
.mobile-toolbar{align-items:center}
.mobile-toolbar #mobile-speed{width:44px;height:44px;flex-shrink:0;font:500 16px 'DM Mono',monospace;font-variant-numeric:tabular-nums;letter-spacing:-.8px;border-color:#e7e9d766;transition:background-color .15s,border-color .15s}
.mobile-toolbar #mobile-speed[data-factor="2"]{background:#496149cc;border-color:#d5d5ae88}
.mobile-toolbar #mobile-speed[data-factor="4"]{background:#6a623ccc;border-color:#e4cd8faa}
.mobile-toolbar #mobile-speed:active{background:#78805bdd}
.mobile-speed-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* Checkpoint 54: mobile-only welcome/help, desktop panel remains intact. */
.mobile-guide{display:none}
.mobile-flight .panel > :not(.mobile-guide){display:none!important}
.mobile-flight .panel{width:min(600px,calc(100vw - max(8px,env(safe-area-inset-left)) - max(8px,env(safe-area-inset-right))));top:max(60px,calc(env(safe-area-inset-top) + 52px));bottom:auto;max-height:calc(100dvh - max(60px,calc(env(safe-area-inset-top) + 52px)) - max(8px,env(safe-area-inset-bottom)));padding:14px 18px;background:#202e27f5;border-color:#d0b57833;overflow-y:auto}
.mobile-flight .mobile-guide{display:block;flex:none;outline:none;width:100%}
.mobile-guide-header .mobile-guide-eyebrow{font:10px/1.2 'DM Mono',monospace;letter-spacing:.13em;color:#d0b578}
.mobile-guide-header h2{font:500 30px/1.02 'Playfair Display',Georgia,serif;letter-spacing:-.03em;color:#eee9dc;margin:7px 0}
.mobile-guide-header h2 em{color:#d5bd87;font-weight:500}
.mobile-guide-header p{font:12px/1.3 'DM Sans',sans-serif;color:#bbc0b3;margin:0}
.mobile-guide-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px;margin:12px 0 0;padding:10px 0 0;border-top:1px solid #d0b57830}
.mobile-guide-controls > div{position:relative;padding-left:30px;min-width:0}
.mobile-guide-controls dt{font-size:12px;line-height:1.2;font-weight:600;color:#eee9dc}
.mobile-guide-controls dd{font-size:11px;line-height:1.3;color:#c0c7ba;margin:3px 0 0}
.guide-icon{position:absolute;left:0;top:0;width:24px;text-align:center;font:19px/1.1 system-ui;color:#d5bd87}
.guide-icon.guide-marker{color:#ed655b;font-size:14px;top:2px}
.guide-icon.guide-speed{font:500 15px/1.3 'DM Mono',monospace}
.mobile-guide-footer{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;margin:10px 0 0;font:10px/1.3 'DM Sans',sans-serif;color:#bbc0b3}
.mobile-guide-footer b{font:16px/1 system-ui;color:#d5bd87;vertical-align:middle;margin-right:3px}
@media(max-height:420px){
 .mobile-flight .panel{padding:10px 14px}
 .mobile-guide-header h2{font-size:26px;margin:5px 0}
 .mobile-guide-header p{font-size:11px}
 .mobile-guide-controls{gap:7px 16px;margin-top:9px;padding-top:8px}
 .mobile-guide-controls dt{font-size:11px}
 .mobile-guide-controls dd{margin-top:2px}
 .mobile-guide-footer{margin-top:8px}
}
@media(max-height:360px){
 .mobile-flight .panel{padding:8px 12px}
 .mobile-guide-header .mobile-guide-eyebrow{font-size:8px}
 .mobile-guide-header h2{font-size:22px;line-height:1;margin:4px 0}
 .mobile-guide-header p{font-size:10px;line-height:1.2}
 .mobile-guide-controls{gap:6px 14px;margin-top:7px;padding-top:6px}
 .mobile-guide-controls dd{font-size:10px;line-height:1.2}
 .mobile-guide-controls dt{font-size:10px}
 .mobile-guide-footer{font-size:9px;margin-top:7px;gap:4px 12px}
}

/* Checkpoint 55: desktop historical reading panel. */
body:not(.mobile-flight) .panel{width:min(360px,32vw);padding:24px;scrollbar-width:thin}
.desktop-story{width:100%;min-width:0}.desktop-story h1{font-size:clamp(38px,4vw,54px);margin:18px 0}.desktop-story .intro{margin-bottom:24px}
.history-title{font-family:Georgia,serif;font-size:25px;line-height:1.16;color:#eee9dc;margin:0 0 16px}
.history-figure{margin:0 0 18px}.history-figure img{display:block;width:100%;max-height:230px;object-fit:contain;background:#18281f;border-radius:3px}
.history-credit,.history-source{font-size:10px;line-height:1.5;color:#b8bdac}.history-credit{margin-top:6px}.history-credit a,.history-source a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.history-copy p{font-size:14px;line-height:1.65;color:#d4d7ca;margin:0 0 14px}.history-source{border-top:1px solid #ffffff20;padding-top:12px}.history-unavailable{padding:18px;background:#ffffff08;font-size:12px;line-height:1.5}
.history-map{width:100%;height:180px;background:#23382b;border-radius:3px}
@media(max-height:700px){body:not(.mobile-flight) .panel{top:84px;padding:18px}.desktop-story h1{font-size:38px;margin:12px 0}.history-figure img{max-height:170px}}

/* Checkpoint 58 — all new UI styles are scoped to desktop mode. */
body:not(.mobile-flight) .desktop-story{flex-shrink:0}
body:not(.mobile-flight) .desktop-actions{position:sticky;top:-24px;z-index:3;display:grid;grid-template-columns:1fr 1fr 1.2fr 1fr;gap:7px;padding:10px 0;margin:0 0 16px;background:#17271ff5;border-bottom:1px solid #d0b57833;backdrop-filter:blur(12px)}
body:not(.mobile-flight) .desktop-actions button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:65px;padding:9px 5px;border:1px solid #d0b57844;border-radius:9px;background:#ffffff06;color:#ece6d5;cursor:pointer;transition:background .18s,border-color .18s}
body:not(.mobile-flight) .desktop-actions button>span:first-child,body:not(.mobile-flight) .desktop-actions strong{font:500 24px/1 Georgia,serif;color:#e1c68c}
body:not(.mobile-flight) .desktop-actions button>span:last-child{font:500 10px/1.2 'DM Sans',sans-serif;text-align:center;color:#e0dfd2}
body:not(.mobile-flight) .desktop-actions button:hover{background:#d0b57820;border-color:#d0b578bb}
body:not(.mobile-flight) .desktop-actions button:focus-visible,body:not(.mobile-flight) #help-toggle:focus-visible{outline:2px solid #e5cc92;outline-offset:3px}
body:not(.mobile-flight) .desktop-action-status{font-size:11px;line-height:1.45;color:#d4c18d;margin:0 0 14px}
body:not(.mobile-flight) .desktop-action-status:empty{display:none}
body:not(.mobile-flight) .desktop-help{left:auto;right:26px;bottom:65px;width:calc(100vw - 438px);max-width:890px;display:block;padding:16px 18px;background:#13241eed;border:1px solid #d0b57838;border-radius:14px;box-shadow:0 12px 40px #0003;backdrop-filter:blur(12px)}
body:not(.mobile-flight) .desktop-help-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:13px;font-size:10px;color:#bdc5b5}
body:not(.mobile-flight) .desktop-help-head>span:first-child{letter-spacing:.17em;color:#dbc18a;font-family:'DM Mono',monospace}
body:not(.mobile-flight) .desktop-help-moves{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
body:not(.mobile-flight) .desktop-help-moves>div{display:flex;flex-direction:column;gap:8px}
body:not(.mobile-flight) .desktop-keyset{display:flex;gap:4px}
body:not(.mobile-flight) .desktop-help kbd,body:not(.mobile-flight) #help-toggle kbd{display:inline-flex;align-items:center;justify-content:center;min-width:23px;height:24px;padding:0 5px;background:#ffffff0b;border:1px solid #d7d7b838;border-bottom-width:2px;border-radius:5px;font:11px 'DM Mono',monospace;color:#f0e6cc}
body:not(.mobile-flight) .desktop-help-moves b{display:block;font-size:12px;font-weight:500;color:#f0eadb}
body:not(.mobile-flight) .desktop-help-moves small{display:block;margin-top:4px;font-size:10px;line-height:1.5;color:#b8c2b3}
body:not(.mobile-flight) .desktop-help-shortcuts{display:flex;flex-wrap:wrap;gap:8px 16px;padding-top:12px;margin-top:12px;border-top:1px solid #ffffff14;font-size:10px;color:#d1d7c9}
body:not(.mobile-flight) .desktop-help-shortcuts>span{display:flex;align-items:center;gap:6px}
body:not(.mobile-flight) .desktop-help-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 18px;margin-top:12px;font-size:10px;line-height:1.4;color:#b5c0b0}
body:not(.mobile-flight) .desktop-help-bottom i{display:inline-block;width:6px;height:6px;margin-right:5px;border-radius:50%;background:#e35a51;box-shadow:0 0 8px #e35a5140}
body:not(.mobile-flight) #help-toggle{display:flex;align-items:center;gap:9px;right:26px;bottom:22px;width:auto;height:32px;padding:0 11px;border-radius:20px;font:11px 'DM Sans',sans-serif;background:#15271fef;border:1px solid #d0b57844;color:#dfd9c7;cursor:pointer}
body:not(.mobile-flight) #help-toggle kbd{height:21px;min-width:20px;font-size:10px}
body:not(.mobile-flight) .footer-note{left:410px;bottom:24px;max-width:calc(100vw - 620px);font-size:7px;line-height:1.5}
@media(max-width:1150px){body:not(.mobile-flight) .desktop-help{width:calc(100vw - 32vw - 70px);padding:13px}body:not(.mobile-flight) .desktop-help-moves{gap:9px}body:not(.mobile-flight) .desktop-help-shortcuts{gap:6px 10px}body:not(.mobile-flight) .footer-note{left:calc(32vw + 45px);max-width:calc(68vw - 245px)}}
@media(max-height:700px){body:not(.mobile-flight) .desktop-actions{top:-18px}body:not(.mobile-flight) .desktop-help{padding:10px 13px}body:not(.mobile-flight) .desktop-help-head{margin-bottom:8px}body:not(.mobile-flight) .desktop-help-moves small{display:none}body:not(.mobile-flight) .desktop-help-shortcuts{margin-top:9px;padding-top:8px}body:not(.mobile-flight) .desktop-help-bottom{margin-top:8px}}
body:not(.mobile-flight) .desktop-help-moves small{text-align:left}
@media(prefers-reduced-motion:reduce){body:not(.mobile-flight) .desktop-actions button{transition:none}}

/* Compact language controls share the existing toolbar on both layouts. */
.mobile-toolbar #mobile-language{width:40px;height:40px;font:500 13px system-ui;flex-shrink:0}
body:not(.mobile-flight) .desktop-actions #desktop-language strong{font:500 18px/1 system-ui}

/* Installed app: keep system safe areas and the existing landscape controls. */
[hidden]{display:none!important}
body:not(.mobile-flight).no-fullscreen .desktop-actions{grid-template-columns:repeat(3,1fr)}
.pwa-install{font:inherit;font-size:11px;color:#dfc58c;background:transparent;border:1px solid #d0b57840;border-radius:6px;padding:7px 10px;cursor:pointer}
.mobile-guide-footer .pwa-install{font-size:inherit;padding:4px 8px}
.pwa-install:focus-visible,#pwa-dialog button:focus-visible,#pwa-update button:focus-visible{outline:2px solid #dfc58c;outline-offset:3px}
#pwa-dialog{box-sizing:border-box;width:min(460px,calc(100vw - 40px));max-height:calc(100dvh - 32px);overflow:auto;padding:24px;border:1px solid #d0b57866;border-radius:16px;background:#17271f;color:#eee9dc;box-shadow:0 20px 80px #0008;font:15px/1.55 'DM Sans',sans-serif;touch-action:pan-y}
#pwa-dialog::backdrop{background:#07100dc9}
#pwa-dialog h2{font:500 28px/1.1 Georgia,serif;margin:6px 30px 16px 0;color:#e0c48a}
#pwa-install-note{font-size:12px;color:#bec7bb}
.pwa-close{position:absolute;right:12px;top:12px;border:0;background:transparent;color:#eee9dc;font-size:20px;cursor:pointer;padding:8px}
.pwa-startup{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;background:#14241c;color:#eee9dc;text-align:center;font:14px/1.5 system-ui}
.pwa-startup h2{font:34px Georgia,serif;color:#dfc58c;margin:0}.pwa-startup p{max-width:380px;margin:0}
.pwa-startup button,#pwa-update button{border:1px solid #d0b57880;border-radius:7px;padding:8px 12px;background:#243b2e;color:#eee9dc;cursor:pointer;font:inherit}
#pwa-update{position:fixed;z-index:100;bottom:max(12px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);max-width:calc(100vw - 30px);width:max-content;box-sizing:border-box;display:flex;align-items:center;gap:12px;padding:12px;background:#14241cf5;border:1px solid #d0b57877;border-radius:12px;color:#eee9dc;font:12px/1.4 system-ui;box-shadow:0 5px 25px #0005}
#pwa-update .pwa-dismiss{border-color:transparent;background:transparent}
@media(max-height:450px){#pwa-dialog{padding:16px 24px;font-size:13px}#pwa-dialog h2{font-size:24px;margin-bottom:10px}#pwa-dialog p{margin:8px 0}}
@media(max-width:600px){#pwa-update{flex-wrap:wrap;gap:8px}#pwa-update span{flex-basis:100%}}

/* Mobile entrance: same distance cues and hit target as all landmark spheres. */
.mobile-flight .flight-marker[data-landmark="entrada"] .marker-symbol{background:radial-gradient(circle at 32% 27%,hsl(212 var(--dot-saturation) 72%),hsl(212 var(--dot-saturation) 54%) 57%,hsl(212 var(--dot-saturation) 36%))}
.mobile-flight #mobile-home{display:grid;place-items:center;color:#8fc7ff;flex-shrink:0}
.mobile-flight .topbar{padding-left:310px}
.mobile-flight .flight{min-width:0}
.mobile-flight #flight-state{min-width:0;flex:1}
.mobile-flight #altitude{white-space:nowrap}
@media(max-width:650px){.mobile-flight .mobile-toolbar{gap:5px}.mobile-flight .topbar{padding-left:290px}.mobile-flight .flight{gap:4px;font-size:8px}}
