:root{font-family:'DM Sans','Manrope',Arial,Helvetica,sans-serif;color:#f3f0e7;background:#121d23;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}html,body,#app,#stage{margin:0;width:100%;height:100%;overflow:hidden}button,select,input{font:inherit}button{cursor:pointer}button:focus-visible,select:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid #f5cc85;outline-offset:3px}#stage{position:absolute;inset:0;background:#aab0ab}#stage canvas{display:block;width:100%;height:100%;touch-action:none}
.museum-ui{position:absolute;inset:0;pointer-events:none;user-select:none;overflow:hidden}.museum-ui button,.museum-ui select,.museum-ui input,.museum-ui a,.about-dialog{pointer-events:auto}.eyebrow{font-size:9px;letter-spacing:2.3px;font-weight:800;line-height:1.4}.eyebrow.gold{color:#d7b783}.eyebrow.warm{color:#efd8b2}.topbar{position:absolute;top:0;left:0;right:0;height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 46px;background:linear-gradient(180deg,rgba(13,24,31,.8) 0%,rgba(14,28,31,.32) 72%,transparent);z-index:10}.topbar-brand{display:flex;gap:13px;align-items:center}.brand-symbol{font-size:38px;font-weight:300;color:#e1c399;line-height:1}.brand-name{font-size:11px;letter-spacing:2.4px;font-weight:800;margin-top:5px}.topbar-right{display:flex;align-items:center;gap:25px}.edition-tag{font-size:9px;letter-spacing:2px;font-weight:800;color:#e9e1d5;border:1px solid rgba(243,241,229,.28);padding:10px 15px}.icon-button,.plain-icon{display:grid;place-items:center;background:none;border:0;color:#f5eee1;padding:6px}.icon-button{border:1px solid rgba(255,255,255,.25);width:39px;height:39px;border-radius:50%}.icon-button:hover,.plain-icon:hover{background:rgba(255,255,255,.1)}svg{width:19px;height:19px}
.hero-copy{position:absolute;left:49px;top:18%;width:380px;color:#fff9ec;text-shadow:0 2px 20px rgba(22,26,22,.28);z-index:4}.vertical-rule{width:2px;height:36px;background:#efc991;margin-bottom:28px}.hero-copy h1{font-size:clamp(45px,5.1vw,84px);font-weight:800;letter-spacing:-4.2px;line-height:.94;margin:15px 0 10px}.hero-copy h1 span{font-weight:400}.hero-subtitle{font-size:16px;font-weight:700;letter-spacing:5.8px;margin:0 0 23px}.hero-subtitle i{font-style:normal;color:#f7be77}.hero-description{font-size:13px;line-height:1.9;max-width:260px;color:#f3e8d5;margin:0}.hero-index{font-size:9px;letter-spacing:1.65px;font-weight:800;color:#ffe7c5;display:flex;align-items:center;gap:11px;margin-top:29px;white-space:nowrap}.hero-index .line{display:block;width:30px;height:1px;background:#ffe1b1}.small-dot{font-size:6px}
.insight-panel{position:absolute;top:129px;right:36px;width:318px;max-height:calc(100% - 290px);overflow:auto;background:rgba(18,28,32,.92);backdrop-filter:blur(22px);border:1px solid rgba(231,201,155,.2);box-shadow:0 20px 70px rgba(0,0,0,.24);border-radius:2px;padding:25px 27px 20px;z-index:8;transform:translateX(calc(100% + 60px));opacity:0;transition:transform .47s ease,opacity .32s ease;pointer-events:none}.insight-panel.visible{transform:translateX(0);opacity:1;pointer-events:auto}.panel-head{display:flex;align-items:center;justify-content:space-between}.panel-number{color:rgba(224,213,196,.32);font-size:48px;letter-spacing:-2px;font-weight:800;margin:28px 0 2px}.insight-panel h2{font-family:'Manrope',sans-serif;font-size:23px;line-height:1.26;margin:0;color:#fff1db;font-weight:700}.panel-rule{width:38px;height:2px;background:#d7ad79;margin:22px 0}.insight-panel p{font-size:12px;line-height:1.9;color:#cdd0ca;margin:0}.historical-note{padding:15px 17px;background:rgba(233,201,148,.075);border-left:2px solid #c99d64;margin-top:26px}.note-label{font-size:9px;letter-spacing:1.7px;color:#d9bc90;font-weight:800;margin-bottom:8px}.historical-note p{font-size:11px;color:#d4c3aa}.panel-nav{display:flex;align-items:center;justify-content:space-between;margin-top:25px;gap:6px}.panel-nav button{border:0;color:#e7d4b7;background:transparent;font-size:9px;letter-spacing:1.2px;font-weight:700;padding:7px 0}.panel-nav button:hover{color:white}
.hotspot-layer{position:absolute;inset:0;z-index:5;pointer-events:none}.hotspot{position:absolute;display:flex;align-items:center;gap:8px;background:transparent;color:#f9efd9;border:0;padding:0;transform:translate(-12px,-50%);transition:opacity .2s;filter:drop-shadow(0 2px 7px #121714);pointer-events:auto}.hotspot-core{width:26px;height:26px;border:1px solid rgba(251,241,212,.9);border-radius:50%;background:rgba(28,37,37,.82);display:grid;place-items:center;font-size:9px;letter-spacing:.5px;font-weight:800;box-shadow:0 0 0 4px rgba(21,35,35,.13)}.hotspot-caption{font-size:9px;letter-spacing:.8px;background:rgba(23,31,30,.78);border:1px solid rgba(243,228,204,.24);border-radius:2px;padding:7px 10px;white-space:nowrap;opacity:0;transition:opacity .2s}.hotspot:hover .hotspot-caption,.hotspot.active .hotspot-caption{opacity:1}.hotspot:hover .hotspot-core,.hotspot.active .hotspot-core{background:#c9a36d;color:#1a2223;border-color:#f1d6a3}.hotspot.distant .hotspot-core{width:20px;height:20px;font-size:8px}.hotspot.distant .hotspot-caption{display:none}
.viewport-bottom-left{position:absolute;left:49px;bottom:143px;display:flex;align-items:end;gap:22px;z-index:4}.compass{width:42px;display:flex;flex-direction:column;align-items:center;color:#fff1d7;font-size:9px;font-weight:800;line-height:1.1;letter-spacing:1px;text-shadow:0 1px 5px #232b23}.compass-needle{font-size:28px;line-height:32px;font-weight:400;color:#f1d1a4}.viewport-hint{font-size:9px;font-weight:800;letter-spacing:1.25px;color:#fcf0d9;padding-bottom:8px;text-shadow:0 2px 7px #24221e}.viewport-hint span{margin:0 9px;color:#fad8a1}
.toolbar-wrap{position:absolute;left:50%;transform:translateX(-50%);width:calc(100% - 96px);max-width:1400px;bottom:26px;z-index:9}.toolbar-label{font-size:9px;letter-spacing:2px;font-weight:800;color:#f8e7ca;margin:0 0 12px 4px;text-shadow:0 2px 8px #242928}.toolbar-label span{color:#f0d4a7;opacity:.7}.toolbar{display:flex;align-items:stretch;gap:0;min-height:82px;background:rgba(18,29,33,.95);box-shadow:0 22px 45px rgba(9,18,20,.30);border:1px solid rgba(235,216,178,.17);backdrop-filter:blur(23px);padding:12px 14px;border-radius:3px}.tool-block{display:flex;flex-direction:column;justify-content:center;padding:0 17px;gap:9px;min-width:0}.tiny-label{display:flex;justify-content:space-between;font-size:9px;color:#c9aa7f;font-weight:800;letter-spacing:1.2px;white-space:nowrap}.tiny-label span{color:#f1e3d0;letter-spacing:0}.tool-block select{appearance:none;min-width:120px;border:0;background:#26353a url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='11' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23edd5ae' stroke-width='2' d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center;color:#efe5d3;padding:11px 26px 11px 11px;font-weight:700;font-size:11px;border-radius:2px}.tool-block select:hover{background-color:#394747}.tool-divider{flex:0 0 1px;background:rgba(255,241,211,.14);margin:6px 5px}.tool-toggle{display:flex;align-items:center;justify-content:center;gap:8px;flex-direction:column;background:transparent;color:#ded4c4;border:1px solid transparent;min-width:106px;padding:5px 8px;font-size:9px;font-weight:800;letter-spacing:1px;white-space:nowrap}.tool-toggle .tool-icon{color:#d0b181;transition:transform .2s}.tool-toggle:hover{background:rgba(227,198,151,.07);color:#fff}.tool-toggle.active{background:rgba(191,146,94,.19);border-color:rgba(221,172,109,.4);color:#ffe8c5}.tool-toggle.active .tool-icon{color:#f9cb90}.time-block{min-width:170px;flex:1}.time-block input{width:100%;min-width:90px;accent-color:#d5ab76;cursor:pointer}.weather-block{min-width:135px}.tool-icon-button{display:flex;align-items:center;justify-content:center;flex-direction:column;min-width:64px;background:transparent;border:0;color:#d1b388;gap:2px}.tool-icon-button small{font-size:8px;letter-spacing:1px;font-weight:800;color:#ddd1ba}.tool-icon-button:hover,.tool-icon-button.active{background:rgba(191,146,94,.19);color:#fff}.mobile-tabs{display:none}
.toast{position:absolute;bottom:141px;left:50%;transform:translate(-50%,10px);opacity:0;background:rgba(13,28,33,.90);color:#f7e1c3;border:1px solid rgba(230,194,146,.25);font-size:11px;letter-spacing:.5px;padding:11px 19px;pointer-events:none;transition:opacity .2s,transform .2s;z-index:10;text-align:center}.toast.active{opacity:1;transform:translate(-50%,0)}
.about-dialog{max-width:620px;width:calc(100vw - 32px);max-height:85vh;overflow:auto;background:#19262a;color:#ebe6d9;border:1px solid #746147;padding:31px 37px;box-shadow:0 25px 110px #050e11b5;user-select:text}.about-dialog::backdrop{background:#091216d5;backdrop-filter:blur(7px)}.dialog-head{display:flex;justify-content:space-between;align-items:center}.about-dialog h2{font-size:43px;letter-spacing:-1.5px;line-height:1.0;margin:18px 0 26px}.about-dialog h2 em{font-weight:400;color:#c3a47b}.about-dialog h3{font-size:12px;text-transform:uppercase;letter-spacing:2px;color:#e4bf8b;margin:30px 0 11px}.about-dialog p,.about-dialog li{font-size:13px;line-height:1.9;color:#cad1ce}.about-dialog a{color:#f0ca8e}.about-dialog ul{padding-left:22px}.about-dialog kbd{display:inline-block;border:1px solid #7c7669;background:#263238;color:#f7e3bc;padding:0 5px;border-radius:3px}.dialog-foot{margin-top:34px;border-top:1px solid #465052;padding-top:16px;color:#b7ad98;font-size:9px;letter-spacing:1.4px;display:flex;justify-content:space-between}.dialog-foot span{color:#d5a76b}
.loading{position:absolute;inset:0;z-index:50;background:#132226;display:grid;place-items:center;transition:opacity .8s ease,visibility .8s}.loading.is-hidden{opacity:0;visibility:hidden;pointer-events:none}.loading-inner{text-align:center}.loading-mark{font-size:49px;color:#d7b07c}.loading h1{font-size:45px;letter-spacing:7px;color:#f6e8c9;margin:12px 0}.loading p{font-size:12px;color:#c6bda9;letter-spacing:.4px}.loading-track{height:2px;background:#354a4a;margin-top:28px;width:260px}.loading-progress{height:100%;background:#d6ab6b;animation:load 1.3s infinite ease-in-out}@keyframes load{0%{width:4%}75%,100%{width:100%}}
@media(min-width:1600px){.hero-copy{top:22%}.insight-panel{top:160px;max-height:calc(100% - 320px)}}
@media(max-width:1300px){.topbar{padding:0 28px}.hero-copy{left:30px;top:16%;width:310px}.hero-copy h1{font-size:52px}.insight-panel{right:24px;width:287px}.toolbar-wrap{width:calc(100% - 32px)}.tool-block{padding:0 9px}.tool-toggle{min-width:87px;letter-spacing:.3px}.toolbar{padding:10px}.viewport-bottom-left{left:32px}.viewport-hint{display:none}}
@media(max-width:1000px){.hero-copy{top:107px;left:26px}.hero-copy h1{font-size:42px;letter-spacing:-2px}.hero-copy .vertical-rule{height:17px;margin-bottom:15px}.hero-description{display:none}.hero-index{display:none}.insight-panel{top:180px;max-height:calc(100% - 330px);width:267px}.toolbar{overflow-x:auto}.tool-block{flex:0 0 auto}.time-block{min-width:160px}.viewport-bottom-left{bottom:136px}}
@media(max-width:680px){.topbar{height:65px;padding:0 18px}.brand-symbol{font-size:28px}.topbar-brand{gap:8px}.eyebrow{font-size:7px;letter-spacing:1.6px}.brand-name{font-size:9px;letter-spacing:1.3px}.edition-tag{display:none}.hero-copy{top:88px;left:18px;width:215px}.hero-copy .vertical-rule{display:none}.hero-copy h1{font-size:38px;margin:9px 0 7px;letter-spacing:-2px}.hero-subtitle{font-size:10px;letter-spacing:3px}.hero-copy .eyebrow{font-size:8px}.viewport-bottom-left{left:17px;bottom:73px}.compass{transform:scale(.8);transform-origin:bottom left}.toolbar-wrap{display:none;position:absolute;bottom:53px;left:10px;right:10px;transform:none;width:auto;max-height:calc(100% - 170px);overflow:auto}.show-controls .toolbar-wrap{display:block}.toolbar-label{display:none}.toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:9px;gap:4px;overflow:visible}.tool-block{min-height:60px;padding:8px}.view-block,.time-block{grid-column:span 2}.tool-block select{width:100%}.tool-toggle{min-height:65px;min-width:0;border:1px solid rgba(255,255,255,.065)}.tool-divider{display:none}.tool-icon-button{height:60px}.mobile-tabs{display:flex;position:absolute;z-index:11;bottom:0;left:0;right:0;background:rgba(16,27,33,.96);height:52px;border-top:1px solid rgba(231,208,171,.23);padding:8px;gap:8px}.mobile-tabs button{display:flex;align-items:center;justify-content:center;gap:8px;flex:1;background:#29383d;color:#f0debf;border:1px solid #455153;font-size:10px;font-weight:800;letter-spacing:1px}.mobile-tabs button svg{height:15px;width:15px}.insight-panel{z-index:8;left:10px;right:10px;bottom:63px;top:auto;width:auto;max-height:50vh;overflow:auto;padding:17px 21px;transform:translateY(calc(100% + 80px))}.insight-panel.visible{transform:translateY(0)}.panel-number{font-size:25px;margin:8px 0 2px}.insight-panel h2{font-size:18px}.panel-rule{margin:12px 0}.historical-note{margin-top:13px;padding:9px 12px}.panel-nav{margin-top:12px}.insight-panel p{line-height:1.7}.hotspot-caption{display:none}.hotspot-core{width:24px;height:24px}.toast{bottom:63px;max-width:90vw;min-width:190px}.about-dialog{padding:20px}.about-dialog h2{font-size:34px}.dialog-foot{display:block}.dialog-foot span{display:block;margin-top:7px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
