/*! © Arnaud Ricci. Tous droits réservés. */
:root{
 --panel-bg:rgba(10,14,21,.82);--panel-border:rgba(255,255,255,.12);
 --txt:#dfe7ee;--txt-dim:#a4b2c0;--accent:#ffb400;--muted:#7a8998;
 color-scheme:dark
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;overflow:hidden;background:#111920;color:var(--txt);font:13px "Segoe UI",system-ui,sans-serif}
button,input,select{font:inherit}
button,select{color:inherit;cursor:pointer}
button{background:transparent;border:1px solid var(--panel-border);border-radius:6px;padding:8px 11px;transition:background .15s,color .15s}
button:hover{background:#ffffff12;color:#fff}
button:focus-visible,select:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
button:disabled{opacity:.4;cursor:not-allowed}
[hidden]{display:none!important}
a{color:#e8c78b}
#viewer{position:absolute;inset:0;outline:none;touch-action:none}
#viewer:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
canvas{display:block}
#viewer canvas{touch-action:none}
#viewer canvas:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
.topbar{position:absolute;z-index:10;top:16px;left:20px;right:20px;pointer-events:none;display:flex;align-items:center}
.brand{display:inline-flex;align-items:center;gap:12px;padding:8px 14px 8px 8px;text-decoration:none;background:#0005;border-radius:9px;color:#fff;pointer-events:auto;white-space:nowrap;font-size:26px;font-weight:800;letter-spacing:.32em}
.brand img{width:34px;height:34px;border-radius:8px;flex:none}
.brand-wordmark{display:flex;align-items:baseline;gap:4px}
.brand strong{color:#FD5312;font-weight:800}
.brand small{font-size:inherit;font-weight:800;letter-spacing:.04em;margin-left:7px}
.crossnav{display:inline-flex;align-items:center;gap:7px;margin-left:10px;padding:8px 13px;flex:none;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:8px;color:var(--txt);text-decoration:none;font-size:12px;font-weight:600;letter-spacing:.06em;white-space:nowrap;pointer-events:auto}
.crossnav::before{content:"🏙";font-size:14px;letter-spacing:0}
.crossnav:hover{border-color:var(--accent);color:#fff}
.crossnav-short{display:none}
.place-search{position:absolute;left:50%;top:0;transform:translateX(-50%);display:flex;align-items:center;gap:5px;width:270px;padding:7px 12px;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:8px;pointer-events:auto}
.place-search-icon{display:block;flex:0 0 20px;width:20px;height:20px;color:var(--accent)}
select{max-width:100%;padding:7px;background:#151e29;border:0;border-radius:4px}
.place-field{display:flex;align-items:center;gap:5px;width:100%;min-width:0}
.place-heading,#place-toggle{display:none}
.place-search select{width:100%;min-width:0;background:transparent;outline-offset:0}
select option{background:#121a24;color:var(--txt)}
.place-search option{background:#121a24}
#map-controls{position:absolute;top:88px;left:20px;z-index:22;display:flex;align-items:center;gap:6px}
#map-controls>button,.language-picker>button{height:35px;background:var(--panel-bg)}
#panel-toggle{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:600;letter-spacing:.08em}
.language-picker{position:relative}
#lang-btn{min-width:44px;font-size:11px}
#lang-menu{position:absolute;top:42px;left:0;min-width:126px;background:#151b23;border:1px solid var(--panel-border);border-radius:7px;box-shadow:0 8px 24px #0006;padding:4px}
#lang-menu button{display:block;width:100%;border:0;text-align:left}
#lang-menu button[aria-checked=true]{color:var(--accent);background:#ffb40012}
#walk-btn{display:grid;place-items:center;width:42px;padding:5px}
#walk-btn.on{background:var(--accent);color:#17150e;border-color:var(--accent)}
.walking-mode #viewer canvas{cursor:grab}.walking-mode #viewer canvas:active{cursor:grabbing}
#vr-btn{width:42px;padding:5px;font-size:17px;line-height:1}
#vr-btn.on{background:#3aa0ff40;border-color:#3aa0ff99}
#vr-btn.na,#vr-btn:disabled{opacity:.35;cursor:not-allowed}
#panel{position:absolute;z-index:20;left:20px;top:132px;bottom:122px;width:272px;display:flex;flex-direction:column;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:9px;backdrop-filter:blur(12px);box-shadow:0 8px 32px #0002}
.panel-head{padding:10px 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--panel-border);font-size:12px;font-weight:600}
.panel-head button{border:0;padding:0 3px;font-size:20px;color:var(--txt-dim)}
.scroll{overflow-y:auto;padding:14px 14px 12px;scrollbar-width:thin;scrollbar-color:#ffffff24 transparent}
.ctl-row{display:flex;flex-direction:column;gap:8px;margin:0 0 9px}
.ctl-row>label{font-size:12px;color:var(--txt)}
.chips{display:flex;flex-wrap:wrap;gap:5px}
.chip{padding:5px 9px;border:1px solid #ffffff26;border-radius:6px;background:#ffffff05;color:var(--txt-dim);font-size:11px;white-space:nowrap}
.chip[aria-pressed=true]{background:#9aa7b3;border-color:#9aa7b3;color:#111820;font-weight:600}
#chips-quality .chip{flex:1}
.section-title{display:flex;align-items:center;justify-content:space-between;margin:20px 0 9px;color:var(--accent);font-size:9px;letter-spacing:.12em;font-weight:700}
.small-tag{color:var(--txt-dim);font-size:7px;padding:3px 4px;border:1px solid #fff2;border-radius:3px;letter-spacing:.04em}
.layer{position:relative;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:35px;cursor:pointer;font-size:11.5px}
.layer>span:first-child{min-width:0}
.layer input{position:absolute;right:0;width:32px;height:24px;margin:0;opacity:0;cursor:pointer}
.switch{width:28px;height:15px;border-radius:9px;background:#38414c;flex:none;pointer-events:none}
.switch:after{content:"";display:block;width:11px;height:11px;border-radius:50%;background:#bec6ce;transform:translate(2px,2px);transition:transform .15s}
.layer input:checked+.switch{background:#a47106}
.layer input:checked+.switch:after{background:var(--accent);transform:translate(15px,2px)}
.layer input:focus-visible+.switch{outline:2px solid var(--accent);outline-offset:4px}
.layer.unavailable{opacity:.45;cursor:not-allowed}
.layer input:disabled{cursor:not-allowed}
.panel-note{margin:12px 0 10px;font-size:10px;line-height:1.65;color:var(--txt-dim)}
.quality-warning{margin:0 0 10px;color:#c5b78f}
.subtle{width:100%;padding:7px;color:var(--txt-dim);font-size:10px}
.panel-foot{padding:10px 14px;margin-top:auto;border-top:1px solid var(--panel-border);font-size:9px;color:var(--txt-dim)}
.panel-foot i{display:inline-block;width:5px;height:5px;background:#b7b383;border-radius:50%;margin-right:7px}
#day-card-close{position:absolute;top:6px;right:8px;z-index:1;border:0;background:none;font-size:22px;line-height:1;padding:2px 7px;color:var(--txt-dim)}
#day-card-close:hover{color:var(--txt)}
#day-card{position:absolute;z-index:9;right:20px;top:88px;width:272px;padding:18px 34px 18px 19px;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:9px;backdrop-filter:blur(12px);box-shadow:0 8px 32px #0002}
.eyebrow{font-size:9px;letter-spacing:.14em;color:var(--accent);font-weight:600}
.eyebrow b{font:inherit}
.eyebrow>span{color:var(--txt-dim);float:right;font-size:8px}
h1{margin:17px 0 10px;font-size:21px;line-height:1.3;font-weight:500;letter-spacing:-.03em}
#phase-copy{margin:0 0 16px;font-size:12px;line-height:1.7;color:var(--txt-dim)}
.activity{display:flex;align-items:center;gap:8px;font-size:10px;color:#c4cfb4}
.pulse{width:5px;height:5px;border-radius:50%;background:#abbf8a}
.interpretation{font-size:8px;line-height:1.5;color:var(--muted);margin:12px 0 0}
.point-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0 8px}
.point-controls button{min-width:38px;min-height:36px;font-size:18px}
#point-counter{font-size:10px;color:var(--txt-dim)}

.map-meta{position:absolute;bottom:116px;left:50%;transform:translateX(-50%);display:flex;gap:25px;font-size:9px;font-weight:600;letter-spacing:.09em;color:#f6f6e9;text-shadow:0 1px 4px #000;pointer-events:none;white-space:nowrap}
#scale{border:1px solid #fff9;border-top:0;padding:0 0 3px;text-align:center}
.timeline{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);width:min(1000px,calc(100vw - 156px));z-index:12;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:14px;backdrop-filter:blur(12px)}
.time-main{display:flex;align-items:center;gap:15px;padding:9px 14px 5px}
#play{width:32px;height:32px;padding:0;flex:none;background:var(--accent);color:#17150e;border:0;font-weight:700;font-size:15px}
.clock{width:60px;flex:none}
.clock output{display:block;font-size:23px;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.04em}
.clock>span{display:block;margin-top:4px;font-size:6px;letter-spacing:.12em;color:var(--txt-dim)}
.time-track{flex:1;min-width:0}
.time-caption{display:flex;justify-content:flex-end;color:var(--txt-dim);font-size:8px}
input[type=range]{width:100%;height:5px;margin:8px 0;accent-color:var(--accent);cursor:pointer;touch-action:none}
.ticks{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:8px;font-variant-numeric:tabular-nums}
.ticks button{padding:0;border:0;font-size:8px;color:var(--txt-dim)}
#speeds{flex:none;gap:4px}
#speeds .chip{padding:5px 7px;font-size:10px}
.timeline-foot{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:3px 12px;padding:6px 14px 7px;border-top:1px solid #ffffff0c;font-size:11px;line-height:1.45;color:var(--muted)}
.mobile-help{display:none}
.footer-links,.reference-links{display:flex;flex-wrap:wrap;gap:6px 12px}
.footer-links{align-items:center}
.footer-links button,.footer-links a{font-size:10px;color:#dcc49c;padding:2px 0;border:0;text-decoration:underline;min-height:22px}
#credits{max-height:calc(100dvh - 180px);overflow:auto}
#original-project details{margin:16px 0;border-top:1px solid var(--panel-border);padding-top:12px}
#original-project summary{cursor:pointer;color:var(--accent)}
#contributor-list,#partner-list{columns:2;padding-left:18px}
#contributor-list li,#partner-list li{break-inside:avoid;margin:5px 0}
#audio-state .panel-note{margin:4px 0 6px}
#audio-retry{font-size:11px;margin-bottom:6px}
#credits-toggle{position:absolute;z-index:21;right:20px;bottom:18px;width:40px;height:36px;background:var(--panel-bg);backdrop-filter:blur(12px);font-size:20px;padding:0}
#credits{position:absolute;right:20px;bottom:112px;z-index:24;width:min(360px,calc(100vw - 40px));padding:14px;background:var(--panel-bg);backdrop-filter:blur(12px);border:1px solid var(--panel-border);border-radius:9px;box-shadow:0 8px 24px #0006}
.credits-heading{display:flex;align-items:center;justify-content:space-between}
.credits-heading button{border:0;padding:0 6px;font-size:20px}
#credits p{font-size:11px;line-height:1.6;color:var(--txt-dim);overflow-wrap:anywhere}
.credits-links{display:flex;flex-wrap:wrap;gap:7px}
.credits-links button{font-size:11px}
#labels,#history-markers{position:absolute;inset:0;pointer-events:none;overflow:hidden}
#labels{z-index:5}#history-markers{z-index:6}
.map-label{position:absolute;left:0;top:0;will-change:transform;background:#111923;border:1px solid #ffffff15;border-radius:5px;padding:4px 8px;font-size:10px;white-space:nowrap;box-shadow:0 2px 5px #0003;color:#f3e8d7;pointer-events:auto}
.map-label:hover,.map-label:focus-visible,.map-label:active{background:#ffae55;color:#181b20;border-color:#ffae55;z-index:1}
.history-marker:hover,.history-marker:focus-visible{background:#ffae55;color:#181b20}
#passage{position:fixed;inset:0;z-index:999;display:grid;place-items:center;overflow:hidden;isolation:isolate;opacity:0;visibility:hidden;pointer-events:none;--passage-rgb:122,90,48;--passage-mid:#2a1e12;--passage-dark:#0d0a06;background:radial-gradient(ellipse at 50% 42%,rgb(var(--passage-rgb)) 0%,var(--passage-mid) 52%,var(--passage-dark) 100%)}
.passage-vortex{position:absolute;left:50%;top:50%;width:min(140vmax,1500px);aspect-ratio:1;transform:translate(-50%,-50%);pointer-events:none}
.passage-vortex::before,.passage-vortex::after{content:"";position:absolute;inset:0;border-radius:50%;background:repeating-conic-gradient(from 20deg,transparent 0deg 30deg,rgba(var(--passage-rgb),.12) 38deg,rgba(255,255,255,.25) 45deg,transparent 58deg 90deg);mask-image:radial-gradient(circle,transparent 12%,#000 30%,#000 48%,transparent 70%);-webkit-mask-image:radial-gradient(circle,transparent 12%,#000 30%,#000 48%,transparent 70%)}
.passage-vortex::after{inset:12%;background:repeating-radial-gradient(ellipse at 42% 48%,transparent 0 38px,rgba(255,255,255,.17) 39px 40px,transparent 42px 76px);opacity:.7}
html.passage .passage-vortex::before,#passage:target .passage-vortex::before,#passage.leaving .passage-vortex::before{animation:passage-swirl 14s linear infinite}
html.passage .passage-vortex::after,#passage:target .passage-vortex::after,#passage.leaving .passage-vortex::after{animation:passage-depth 9s ease-in-out infinite alternate}
.passage-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:22px;width:100%;text-align:center;padding:24px;box-sizing:border-box}
#passage b{font-size:clamp(30px,9vw,110px);font-weight:800;letter-spacing:.18em;margin-right:-.18em;color:#fff;text-shadow:0 6px 44px #000000a6;font-variant-numeric:tabular-nums}
.passage-meter{display:flex;flex-direction:column;align-items:center;gap:12px}
#passage-percent{font-size:clamp(24px,5vw,36px);font-weight:600;font-variant-numeric:tabular-nums;color:#fff;text-shadow:0 2px 14px #0009}
.passage-track{display:block;width:min(330px,72vw);height:5px;border-radius:6px;background:#ffffff26;overflow:hidden}
#passage i{display:block;width:0;height:100%;border-radius:inherit;background:#fff;box-shadow:0 0 14px #ffffff80;transition:width .35s ease-out}
#passage-detail{max-width:min(480px,84vw);min-height:2.8em;color:#ffffffe0;font-size:13px;line-height:1.4;text-shadow:0 2px 12px #000}
html.passage #passage,#passage:target{animation:passage-hold 26s linear forwards}
html.passage #passage.live,#passage.live:target{animation:none;opacity:1;visibility:visible}
html.passage #passage.done,#passage:target.done,#passage.live:target.done{animation:passage-out .75s ease-out forwards}
#passage.done .passage-vortex::before,#passage.done .passage-vortex::after{animation-play-state:paused}
#passage.leaving{--passage-rgb:29,78,119;--passage-mid:#0d1b2a;--passage-dark:#04060a;animation:passage-leave .65s ease-in forwards}
@keyframes passage-swirl{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes passage-depth{from{transform:rotate(-12deg) scale(.85)}to{transform:rotate(12deg) scale(1.15)}}
@keyframes passage-hold{0%,92%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden}}
@keyframes passage-out{from{opacity:1;visibility:visible}to{opacity:0;visibility:hidden}}
@keyframes passage-leave{from{opacity:0;visibility:visible}to{opacity:1;visibility:visible}}
@media(prefers-reduced-motion:reduce){#passage .passage-vortex::before,#passage .passage-vortex::after{animation:none!important}#passage i{transition:none}html.passage #passage.done,#passage:target.done{animation-duration:.01s}}

#loading{position:absolute;inset:0;z-index:30;display:grid;place-items:center;background:#0b131f;overflow:hidden}
#loading::before{content:'';position:absolute;inset:-4%;background:url(./assets/branding/loading-1850.webp) center/cover no-repeat;animation:load-kb 18s ease-in-out infinite alternate}
#loading::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#0d0a0640 0%,#0d0a0673 55%,#0d0a06e0 100%),radial-gradient(ellipse at 50% 45%,#0d0a0600 28%,#0d0a0699 100%)}
@keyframes load-kb{from{transform:scale(1)}to{transform:scale(1.07) translate(-1%,1%)}}
@media(prefers-reduced-motion:reduce){#loading::before{animation:none}}
#loading>div{position:relative;z-index:1;width:min(390px,86vw);padding:26px 32px 22px;border-radius:20px;background:#0b0805a6;border:1px solid #ffffff26;box-shadow:0 24px 60px #00000073,inset 0 1px 0 #ffffff14;backdrop-filter:blur(14px) saturate(1.15);-webkit-backdrop-filter:blur(14px) saturate(1.15)}
#loading h2{font-size:31px;font-weight:400;text-shadow:0 2px 12px #00000099}
#loading p:not(.eyebrow){font-size:12px;color:var(--txt-dim)}
progress{appearance:none;-webkit-appearance:none;width:100%;height:6px;border:none;border-radius:3px;
 background:#ffffff24;overflow:hidden;margin:20px 0 12px}
progress::-webkit-progress-bar{background:#ffffff24;border-radius:3px}
progress::-webkit-progress-value{background:linear-gradient(90deg,#ffd08a,var(--accent));border-radius:3px;
 box-shadow:0 0 10px #ffb40099;transition:width .25s ease-out}
progress::-moz-progress-bar{background:var(--accent);border-radius:3px}
#loading small{display:block;font-size:10px;color:var(--txt-dim)}
#retry{margin-top:18px}
#warning,#notice{position:absolute;bottom:122px;left:50%;transform:translateX(-50%);z-index:35;background:#372b15;color:#f2d6a2;border:1px solid #70542e;padding:12px;max-width:80%;border-radius:8px;font-size:11px}
dialog{width:min(620px,calc(100vw - 28px));max-height:85dvh;border:1px solid var(--panel-border);background:#101823;color:var(--txt);border-radius:12px;padding:28px;line-height:1.7;box-shadow:0 20px 70px #0009}
dialog::backdrop{background:#04080ec7;backdrop-filter:blur(5px)}
#gpu-lost{width:min(420px,calc(100vw - 28px));padding:18px 20px;top:74px;margin:0 auto;position:fixed;z-index:60}
#gpu-lost p{font-size:12.5px;line-height:1.55;color:var(--txt)}
.gpu-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}
.spacemouse-row{flex-direction:row!important;align-items:center;justify-content:space-between}
dialog h2{font-size:27px;line-height:1.25;font-weight:450;letter-spacing:-.03em}
dialog h3{color:#e3c58b;font-size:14px;margin-top:25px}
dialog p,dialog li{font-size:12px;color:#aebbc9}
dialog li{margin:12px 0}
dialog li span{display:block;font-size:11px;color:var(--txt-dim)}
dialog a{color:#ddc48f}
.close{float:right;font-size:24px;padding:0 9px;border:0}
.source-note{border-top:1px solid var(--panel-border);padding-top:18px;font-size:10px!important}
.welcome-biography{margin:22px 0;padding:0 0 12px;border-bottom:1px solid var(--panel-border)}
.welcome-biography h3{font-size:20px;line-height:1.35;margin:0 0 14px;color:#efc78b}
.welcome-biography p{font-size:13px;line-height:1.65;margin:12px 0}
.welcome-magnin-heading{display:flex;align-items:center;gap:16px}
.welcome-magnin-heading>div{min-width:0}
.welcome-portrait{display:block;width:88px;height:88px;flex:none;border-radius:6px;border:1px solid var(--panel-border)}
.welcome-magnin-heading h3{margin:0 0 8px}
.welcome-magnin-heading .portrait-credit{font-size:10px;line-height:1.5;margin:0}
@media(max-width:700px){.welcome-magnin-heading{gap:12px}.welcome-portrait{width:72px;height:72px}}
.welcome-language{display:flex;align-items:center;justify-content:flex-end;gap:12px;color:var(--txt-dim);font-size:11px}
.acceptance{display:flex;align-items:flex-start;gap:10px;margin:22px 0;font-size:12px;cursor:pointer}
.acceptance input{width:18px;height:18px;flex:none;margin-top:2px;accent-color:var(--accent)}
.primary,#vr-enter{background:var(--accent);color:#141a20;border-color:var(--accent)}
#visit-enter{width:100%;min-height:42px}
.welcome-progress{position:sticky;bottom:-28px;z-index:1;margin:14px -28px -28px;
 padding:12px 28px 14px;background:#101823;border-top:1px solid var(--panel-border)}
.welcome-progress progress{margin:0 0 6px}
.welcome-progress small{display:block;font-size:10.5px;color:var(--txt-dim);text-align:center}
.vr-mapping{display:grid;grid-template-columns:140px 1fr;gap:8px 16px;font-size:12px}
.vr-mapping dt{font-weight:600;color:#e3c58b}.vr-mapping dd{margin:0;color:var(--txt-dim)}
.vr-beta{padding:12px;border-left:3px solid var(--accent);background:#ffb40012;color:#f3d199!important}
#vr-error{color:#ffc5af}
#vr-help-close{margin-left:8px}
.xr-presenting #labels,.xr-presenting #history-markers{display:none}
.history-marker{position:absolute;display:flex;align-items:center;gap:6px;min-height:44px;padding:4px 8px 4px 4px;border-radius:20px;border:1px solid #efc46b;background:#151e2bed;color:#ffe0a0;pointer-events:auto;white-space:nowrap;box-shadow:0 3px 12px #0006}
.history-marker span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--accent);color:#111;font-weight:700}
.history-marker small{font-size:11px}
#history-index{padding:4px 0 10px}
.history-entry{display:block;min-height:40px;width:100%;text-align:left;border:0;border-bottom:1px solid #ffffff12;padding:8px 10px;color:#f2cc86;font-size:12px}
.history-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:22px 0}
.history-facts div{padding:14px;border-radius:8px;background:#1e2a3a}
.history-facts dt{font-size:23px;color:#ffcc66;line-height:1.2}
.history-facts dd{font-size:11px;color:#bac5d4;margin:8px 0 0}
.history-chronology{padding-left:20px}
.history-chronology li{padding-left:8px}
.history-chronology strong{color:#ead3a4}
.history-visit{min-height:40px;background:var(--accent);color:#131b28}
.history-note{font-size:11px!important;border-left:2px solid #b78a3a;padding-left:12px}
@media(max-width:1460px){
 .place-search{left:auto;right:0;transform:none;width:240px}
}
@media(max-width:1100px){
 .brand{font-size:20px;letter-spacing:.22em;gap:8px}
 #day-card{width:238px}
 #panel{width:254px}
 #speeds{max-width:132px}
 .time-main{gap:11px}
}
@media(max-width:700px){
 .topbar{top:10px;left:10px;right:10px}
 .brand{font-size:15px;letter-spacing:.18em;gap:6px;padding:8px}
 .brand img{width:25px;height:25px;border-radius:6px}
 .brand small{margin-left:2px}
 .crossnav{margin-left:6px;padding:8px 10px;font-size:11px;gap:5px}
 .crossnav::before{font-size:15px}
 .crossnav-long{display:none}
 .crossnav-short{display:inline}
 .place-search{display:none;top:94px;left:0;right:0;width:auto;max-height:calc(100dvh - 240px);overflow:auto;padding:12px;transform:none;background:#121a24;flex-direction:column}
 .place-search.is-open{display:flex}
 .place-heading{display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px;margin-bottom:8px}
 .place-heading button{border:0;font-size:22px;padding:0 7px}
 .place-field>span{display:none}
 #place-toggle{display:grid;place-items:center;width:40px;padding:5px}
 .place-search select{min-height:38px;background:#1d2935}
 .place-search select{font-size:11px;padding:5px}
 #map-controls{top:61px;left:10px}
 #panel{top:146px;left:10px;bottom:168px;width:min(290px,calc(100vw - 20px))}
 #day-card{top:146px;left:10px;right:10px;width:auto;padding:11px 36px 11px 14px}
 #day-card .eyebrow{font-size:7px;margin:0}
 #day-card h1{font-size:16px;margin:8px 0}
 #phase-copy{display:block;font-size:10px;line-height:1.5;margin-bottom:7px;max-height:60px;overflow:auto}
 .activity{font-size:9px}
 .interpretation{font-size:7px;margin-top:7px}
 .point-controls{margin:4px 0}
 .point-controls button{min-height:32px}
 body:has(#panel:not([hidden])) #day-card,
 body:has(.place-search.is-open) #day-card{display:none}
 .timeline{left:10px;right:10px;width:auto;transform:none;bottom:calc(10px + env(safe-area-inset-bottom))}
 .time-main{display:grid;grid-template-columns:30px 57px 1fr;gap:6px 10px;padding:8px 10px 5px}
 #play{width:30px;height:30px}
 .clock{width:57px}.clock output{font-size:22px}
 #speeds{grid-column:3;grid-row:1;justify-content:flex-end;max-width:none;gap:3px}
 #speeds .chip{font-size:9px;padding:5px 4px}
 .time-track{grid-row:2;grid-column:1/-1}
 .time-caption{display:none}
 .timeline-foot{font-size:10px;padding:6px 10px}
 .desktop-help{display:none}.mobile-help{display:block}
 .map-meta{bottom:calc(var(--timeline-space,140px) + 14px);left:10px;transform:none;gap:12px;font-size:7px}
 #credits-toggle{bottom:calc(var(--timeline-space,140px) + 8px);right:10px;height:36px;width:38px}
 #credits{right:10px;bottom:calc(var(--timeline-space,140px) + 50px);width:calc(100vw - 20px);max-height:calc(100dvh - var(--timeline-space,140px) - 120px)}
 #warning,#notice{bottom:calc(var(--timeline-space,140px) + 50px)}
 dialog{padding:20px}
 dialog h2{font-size:23px}
 .map-label{font-size:8px;padding:3px 5px}
 .history-marker small{display:none}
 .history-marker{padding:5px;min-width:44px}
 .history-facts dt{font-size:21px}
 .vr-mapping{grid-template-columns:110px 1fr}
}
@media(max-width:700px) and (max-height:650px){
 #day-card{max-height:130px;overflow:auto}
 #day-card .eyebrow,#day-card .activity,#day-card .interpretation{display:none}
 #phase-copy{max-height:42px}
 #panel{top:105px;bottom:162px}
 .place-search{top:88px;max-height:calc(100dvh - 240px)}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.loading-percent{display:block;font-size:24px;font-weight:600;font-variant-numeric:tabular-nums;color:#fff;margin:8px 0}
.welcome-progress .loading-percent{text-align:center;font-size:18px;margin:0 0 8px}
