:root{font-family:Inter,'Segoe UI',Arial,sans-serif;color:#e9e6dc;--cream:#eee3cf;--muted:#a6abb0;--gold:#e4b67b;--night:0;--ui:#101a21;--stroke:rgba(239,226,205,.16)}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:#111b22}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid #f4be7f;outline-offset:3px}.app{position:relative;min-height:100vh;min-height:100dvh;overflow:hidden;background:radial-gradient(ellipse at 65% 44%,#d4c7b2 0%,#97a6ac 52%,#748c9b 100%)}
.world{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(2,10,22,calc(var(--night)*.9)) 0%,rgba(7,19,30,calc(var(--night)*.68)) 60%,rgba(11,27,36,calc(var(--night)*.6)) 100%),linear-gradient(160deg,#516f8d 0%,#a3b0b5 31%,#d6c9b4 64%,#b1a990 100%);transition:background .5s ease}.world:after{content:'';pointer-events:none;position:absolute;inset:0;background:linear-gradient(0deg,rgba(6,14,19,.60),transparent 25%,transparent 60%,rgba(12,22,31,.22));z-index:3}.world canvas{width:100%;height:100%;display:block;position:absolute;inset:0;cursor:grab;touch-action:none;outline:none}.world canvas.dragging{cursor:grabbing}.sky-grain{pointer-events:none;position:absolute;inset:0;opacity:.06;background:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(255,255,255,.24) 4px);mix-blend-mode:soft-light}
.site-header{position:absolute;z-index:10;top:0;left:0;right:0;display:flex;align-items:flex-start;gap:16px;padding:34px clamp(18px,3vw,55px) 0;pointer-events:none}.monogram{border:1px solid rgba(255,226,171,.75);width:59px;height:62px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--cream);background:rgba(17,30,39,.53)}.monogram>span{font-family:Georgia,serif;font-size:29px;line-height:29px}.monogram small{font-size:8px;letter-spacing:2px;color:var(--gold);padding-top:3px}.header-copy{min-width:0;text-shadow:0 1px 12px rgba(0,0,0,.27)}.eyebrow{font-size:9px;letter-spacing:2.8px;font-weight:700;color:#f1c592}.header-copy .eyebrow{color:#f6d6ab}.middle-dot{font-size:9px;padding:0 5px}.edition{opacity:.72;margin-left:10px}.header-copy h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(32px,3.1vw,55px);line-height:1.10;letter-spacing:1px;margin:4px 0 0;color:#fff2db}.header-copy h1 span{color:#f0bd81;font-size:.6em;vertical-align:4px}.header-copy p{font-size:12px;letter-spacing:.3px;opacity:.91;margin:8px 0}.header-actions{margin-left:auto;display:flex;align-items:center;gap:9px;pointer-events:auto}.header-actions button,.live-pill{height:37px;background:rgba(16,27,35,.72);color:#f8edde;border:1px solid var(--stroke);border-radius:4px;padding:0 13px;font-size:11px;backdrop-filter:blur(16px)}.live-pill{display:flex;align-items:center;gap:9px;font-weight:700;letter-spacing:1.2px;font-size:9px;white-space:nowrap}.live-dot,.live-indicator{width:7px;height:7px;display:inline-block;border-radius:50%;background:#b6e7bf;box-shadow:0 0 12px #69db85}.header-actions #language{font-weight:700;letter-spacing:.1em}.header-actions button:hover,.tool-panel button:hover,.heritage-panel button:hover,#resetBtn:hover{background:rgba(180,135,93,.3)}
.tool-panel{position:absolute;z-index:10;right:clamp(17px,3vw,54px);top:clamp(148px,20vh,205px);width:min(285px,calc(100vw - 34px));background:rgba(13,24,32,.86);backdrop-filter:blur(25px);border:1px solid rgba(241,210,164,.20);box-shadow:0 12px 50px rgba(2,8,15,.28);padding:20px 23px 14px}.panel-topline,.info-eyebrow{display:flex;justify-content:space-between;align-items:center;color:#e1b88a;font-size:10px;font-weight:700;letter-spacing:2px}.tag{font-size:8px;color:#c2c6c2;letter-spacing:1px;border:1px solid #647176;padding:5px 7px}.field{border-top:1px solid rgba(255,255,255,.1);padding:18px 0 14px;margin-top:15px}.field+.field{margin-top:2px}.field-last{padding-bottom:19px}.field-top{display:flex;justify-content:space-between;align-items:center;font-size:12px;margin-bottom:14px}.field-top label{font-size:12px}.time-readout{color:#f5cb9c;font-family:'Courier New',monospace;font-size:16px}.tiny-value{color:#b5c5c5;font-size:9px;letter-spacing:1.4px;font-weight:700}.field input[type=range]{width:100%;accent-color:#e9b477;cursor:pointer}.range-labels{display:flex;justify-content:space-between;color:#9ca7a9;font-family:'Courier New',monospace;font-size:9px;margin-top:8px}.segmented{display:flex;border:1px solid #4e5b5b;background:rgba(0,0,0,.15);border-radius:4px;padding:3px;gap:3px}.segmented button{flex:1;background:transparent;border:0;border-radius:3px;color:#b7c1c3;padding:9px 6px;font-size:11px}.segmented button[aria-pressed=true]{background:#c99567;color:#192028;font-weight:700}.micro-action{border:0;background:transparent;color:#e4bc93;padding:8px 0 0;font-size:10px;letter-spacing:.2px}.micro-action.active{color:#b6e7bf}.action-glyph{font-size:15px;margin-right:6px}.wide-action{width:100%;background:rgba(228,178,118,.12);border:1px solid rgba(228,178,118,.51);color:#f4c793;padding:11px;border-radius:4px;font-size:11px;letter-spacing:.7px}.sensorline{padding-top:12px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:1px;color:#a5b1b1}.sensorline>div{display:flex;gap:8px;align-items:center}.sensorline #fps{font-family:monospace}
.heritage-panel{position:absolute;z-index:10;left:clamp(17px,3vw,54px);bottom:84px;width:min(372px,calc(100vw - 34px));padding:22px 25px 20px;background:rgba(12,24,32,.86);border:1px solid rgba(241,210,164,.22);backdrop-filter:blur(26px);box-shadow:0 10px 38px rgba(0,0,0,.23)}.info-eyebrow{font-size:9px;color:#deb27a}.info-eyebrow #stopCount{font-family:'Courier New',monospace;color:#e2ddcc}.info-main{display:flex;gap:15px;margin-top:17px}.info-index{font-size:23px;color:#e5b680;line-height:1.1}.info-main h2{font-family:Georgia,serif;font-size:25px;line-height:1.1;font-weight:400;margin:0 0 10px;color:#f9ecd7}.info-main p{font-size:12px;line-height:1.62;color:#b8c3c2;margin:0;max-height:105px;overflow:auto}.heritage-actions{display:flex;gap:7px;align-items:center;margin:17px 0 0 37px}.heritage-actions button{background:rgba(255,255,255,.065);border:1px solid rgba(239,226,205,.2);color:#f6e6d2;min-height:34px;border-radius:3px}.heritage-actions button:first-child,.heritage-actions button:last-child{width:38px;font-size:20px}.heritage-actions #nextStop{flex:1;display:flex;justify-content:space-between;align-items:center;padding:0 14px;font-size:11px}.heritage-actions #nextStop span:last-child{font-size:18px}
#hotspotLayer{position:absolute;inset:0;pointer-events:none;z-index:4}.hotspot{position:absolute;display:none;align-items:center;gap:6px;transform:translate(-14px,-14px);pointer-events:auto;border:0;background:transparent;color:white;padding:0;filter:drop-shadow(0 2px 4px #111);font-size:10px}.hotspot-pin{width:29px;height:29px;border-radius:50%;background:rgba(20,32,37,.82);border:1px solid rgba(253,220,168,.94);display:flex;align-items:center;justify-content:center;color:#fff0cd;font-family:monospace;box-shadow:0 0 0 4px rgba(200,164,116,.12)}.hotspot-name{white-space:nowrap;background:rgba(18,29,37,.79);padding:7px 10px;border:1px solid rgba(249,226,187,.13);border-radius:2px}.hotspot:hover .hotspot-pin,.hotspot.selected .hotspot-pin{background:#d7aa77;color:#111a21;box-shadow:0 0 0 6px rgba(225,186,130,.25)}.hotspot:not(.selected) .hotspot-name{opacity:0;transition:opacity .15s}.hotspot:hover .hotspot-name,.hotspot.selected .hotspot-name{opacity:1}.corner-grid{position:absolute;z-index:5;left:clamp(17px,3vw,54px);top:154px;display:flex;flex-direction:column;gap:5px;color:#fff4df;text-shadow:0 1px 7px #152c3d;font-family:monospace;font-size:9px;letter-spacing:1.7px;opacity:.8;pointer-events:none}
.footer-bar{position:absolute;z-index:10;left:0;bottom:0;right:0;min-height:48px;padding:0 clamp(18px,3vw,55px);display:flex;justify-content:space-between;align-items:center;background:rgba(12,23,30,.91);border-top:1px solid rgba(239,218,187,.13);color:#c5c5be;font-size:9px;letter-spacing:1.25px}.footer-left,.footer-right{display:flex;align-items:center;gap:12px}.footer-right{font-family:monospace;letter-spacing:1px}.footer-right #dayBadge{color:#edc592}.footer-right button{color:#f4d5ac;background:transparent;border:1px solid #4d5559;padding:6px 12px;border-radius:3px;font-size:10px}.sep{opacity:.35}
.help-overlay{position:absolute;z-index:20;inset:0;background:rgba(4,11,16,.75);backdrop-filter:blur(11px);display:grid;place-items:center;padding:20px}.help-overlay[hidden]{display:none}.help-card{background:#14212a;border:1px solid #6c6257;width:min(660px,100%);max-height:calc(100dvh - 40px);overflow:auto;padding:clamp(24px,4vw,43px);box-shadow:0 35px 110px #0008;position:relative}.close-help{position:absolute;right:22px;top:18px;background:transparent;color:#edd9bb;border:0;font-size:27px}.help-card h2{font-family:Georgia,serif;font-size:clamp(27px,4vw,42px);font-weight:400;line-height:1.1;color:#f4e7ce;max-width:480px;margin:14px 0 20px}.help-lead,.help-columns p,.help-card>p{font-size:13px;color:#a9b6b7;line-height:1.75}.help-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px;border-block:1px solid #3e4a50;padding:20px 0;margin:20px 0}.help-small-heading{color:#dfb783;font-size:10px;letter-spacing:2px;font-weight:bold}.source-note a{color:#efc48c}.help-footer{display:flex;justify-content:space-between;color:#9bafb0;font-size:9px;letter-spacing:1px;border-top:1px solid #3e4a50;margin-top:22px;padding-top:15px}
.loading-screen{position:absolute;z-index:50;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#111c25;color:#e7d7bd;transition:opacity .6s ease,visibility .6s ease}.loading-screen.gone{opacity:0;visibility:hidden;pointer-events:none}.loading-icon{height:99px;width:95px;border:1px solid #b88d5d;display:flex;justify-content:center;align-items:center;flex-direction:column;color:#f2ca94;font:53px Georgia,serif;margin-bottom:29px}.loading-icon span{font:10px monospace;letter-spacing:4px}.loading-screen h2{font:24px Georgia,serif;margin:13px 0}.loading-screen p{font-size:12px;color:#94a4ae}.load-progress{margin-top:22px;width:160px;height:2px;background:#3b4d56;overflow:hidden}.load-progress span{display:block;width:55%;height:100%;background:#ddad7b;animation:load 1.2s ease-in-out infinite alternate}@keyframes load{from{transform:translateX(-100%)}to{transform:translateX(220%)}}.loading-screen.failed .load-progress{display:none}
@media(max-width:900px){.site-header{padding:18px 18px 0}.header-copy h1{font-size:31px}.edition{display:none}.header-actions .live-pill{display:none}.tool-panel{top:125px;right:18px;width:236px;padding:15px 16px 10px}.heritage-panel{left:18px;bottom:58px;width:330px}.corner-grid{top:133px;left:18px}.footer-bar{padding:0 18px}.footer-left .sep,.footer-left span:last-child{display:none}}
@media(max-width:620px){.header-actions{gap:5px}.header-actions .help-button{font-size:0;padding:0 9px}.header-actions .help-button:after{content:'?';font-size:15px}.site-header{gap:9px}.monogram{width:39px;height:45px}.monogram>span{font-size:22px}.monogram small{font-size:7px}.header-copy .eyebrow{font-size:8px;letter-spacing:1px}.header-copy h1{font-size:25px;margin-top:3px}.header-copy p{font-size:10px;max-width:220px;line-height:1.35}.tool-panel{right:10px;top:106px;width:170px;padding:11px 12px;background:rgba(13,24,32,.85)}.tool-panel .panel-topline{font-size:8px}.tool-panel .tag{display:none}.field{padding:10px 0 8px;margin-top:8px}.field-top{font-size:10px;margin-bottom:8px}.field-top label{font-size:10px}.time-readout{font-size:12px}.field+.field{margin-top:0}.segmented button{font-size:10px;padding:7px 3px}.range-labels{font-size:7px}.sensorline{font-size:8px}.heritage-panel{left:10px;right:10px;bottom:53px;width:auto;padding:13px 15px 12px}.info-main{margin-top:9px;gap:8px}.info-main h2{font-size:20px;margin-bottom:5px}.info-main p{font-size:10px;line-height:1.5;max-height:57px}.info-index{font-size:17px}.heritage-actions{margin:8px 0 0 25px}.heritage-actions button{min-height:29px}.corner-grid{display:none}.footer-bar{min-height:44px;font-size:8px;padding:0 11px}.footer-left span:first-child{display:none}.footer-right{width:100%;justify-content:space-between}.hotspot-name{font-size:9px}.hotspot:not(.selected) .hotspot-name{display:none}.help-columns{grid-template-columns:1fr;gap:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
