:root{--bg:#111d20;--panel:rgba(16,27,29,.85);--fg:#edebe4;--gold:#dfbc7c;--dim:#9ca8a6;--line:rgba(224,218,189,.2);--ui:'Manrope',system-ui,-apple-system,Segoe UI,sans-serif;--serif:'Cormorant Garamond',Georgia,serif;}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#101b1c;color:var(--fg);font-family:var(--ui)}button{font-family:inherit;cursor:pointer}button:focus-visible{outline:2px solid #ffd896;outline-offset:4px}button:disabled{cursor:not-allowed;opacity:.3}
#app{position:relative;width:100%;height:100%;height:100dvh;overflow:hidden;isolation:isolate;background:var(--bg)}#world{width:100%;height:100%;display:block;outline:none;cursor:grab;touch-action:none}#world:active{cursor:grabbing}
.vignette{position:absolute;pointer-events:none;inset:0;background:linear-gradient(90deg,rgba(9,21,24,.95) 0%,rgba(9,21,24,.84) 10%,rgba(9,21,24,.25) 36%,transparent 58%,rgba(7,16,18,.10) 82%,rgba(9,20,22,.34)),linear-gradient(0deg,rgba(10,18,21,.88),transparent 20%,transparent 77%,rgba(10,18,21,.52));z-index:1}
.grain{pointer-events:none;position:absolute;inset:0;z-index:2;opacity:.1;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.55' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E")}
.topbar{z-index:14;position:absolute;top:0;left:0;right:0;min-height:100px;display:flex;justify-content:space-between;align-items:center;padding:30px 5.0vw;border-bottom:1px solid rgba(239,233,212,.09);pointer-events:none}
.identity{display:flex;gap:13px;align-items:center;pointer-events:auto}.identity-mark{border:1px solid rgba(218,180,115,.65);height:38px;width:38px;display:grid;place-items:center;transform:rotate(45deg);color:var(--gold);font-size:19px}.identity-mark span{transform:rotate(-45deg)}.identity-copy{display:flex;flex-direction:column;gap:4px}.identity-copy strong{font-size:12px;letter-spacing:.15em;font-weight:800}.identity-sup{font-size:10px;font-weight:500;letter-spacing:.10em;color:var(--gold)}.identity-copy small{font-size:9px;letter-spacing:.28em;color:#adbab7;font-weight:700}
.top-actions{display:flex;gap:11px;pointer-events:auto}.top-button{background:rgba(17,30,31,.7);border:1px solid rgba(245,238,209,.29);color:var(--fg);border-radius:2px;min-width:45px;height:38px;padding:0 13px;font-size:11px;font-weight:800;letter-spacing:.08em}.top-button:hover{border-color:var(--gold);color:var(--gold)}.icon-action{font-size:17px}
.eyebrow-strip{z-index:5;position:absolute;top:125px;left:5vw;display:flex;align-items:center;gap:14px;font-size:9px;letter-spacing:.25em;color:#dfddcd;font-weight:800}.location-dot{width:5px;height:5px;border-radius:50%;background:var(--gold);box-shadow:0 0 12px var(--gold)}.strip-rule{height:1px;width:29px;background:var(--gold);opacity:.7}
.hero{z-index:4;position:absolute;left:5vw;top:50%;transform:translateY(-41%);width:min(420px,33vw);pointer-events:none}.hero button{pointer-events:auto}.exhibit-index{font-size:10px;letter-spacing:.22em;margin-bottom:45px;color:#c5c5bd}.exhibit-index span{color:var(--gold);padding-left:9px}.overline{font-size:10px;font-weight:800;letter-spacing:.25em;color:var(--gold);margin:0 0 19px}.hero h1{font-family:var(--serif);font-size:clamp(58px,5.7vw,110px);font-weight:500;line-height:.79;letter-spacing:-.055em;margin:0 0 33px;color:#f4f0e3;text-shadow:0 8px 20px #050b0c66}.hero h1 em{color:var(--gold);font-weight:500;font-style:italic;letter-spacing:-.055em}.hero-rule{width:75px;height:1px;background:var(--gold);margin:0 0 27px}.hero-description{max-width:365px;font-size:13px;line-height:1.9;color:#d0d5ce;margin:0 0 30px;font-weight:500}.hero-buttons{display:flex;align-items:center;gap:22px}.cta{min-height:45px;padding:0 19px;background:#c9a66a;border:1px solid #c9a66a;color:#172325;font-size:10px;letter-spacing:.15em;font-weight:800;transition:all .25s}.cta:hover{background:#e6c88f;transform:translateY(-1px)}.cta>span:first-child{font-size:16px;margin-right:9px;vertical-align:-1px}.text-button{color:#e0d8ca;border:0;background:transparent;font-size:11px;white-space:nowrap}.text-button:hover{color:var(--gold)}.curatorial{margin-top:40px;display:flex;gap:10px;max-width:350px;align-items:flex-start;font-size:10px;line-height:1.7;color:#9ba9a6}.curatorial-marker{display:grid;place-items:center;border:1px solid #a6a694;border-radius:100%;width:18px;height:18px;flex:none;font-family:Georgia,serif;font-style:italic}
.control-panel{z-index:8;position:absolute;top:calc(50% - 190px);right:4.1vw;width:195px;padding:21px 18px;background:rgba(9,22,24,.66);border:1px solid rgba(232,215,185,.15);backdrop-filter:blur(15px);box-shadow:0 10px 50px #0002}.panel-label{font-size:9px;color:var(--gold);font-weight:800;letter-spacing:.19em;margin:0 0 12px}.panel-action{background:none;border:0;border-bottom:1px solid rgba(226,221,191,.095);padding:12px 0;display:flex;align-items:center;gap:11px;width:100%;color:#dadbd2;text-align:left;font-size:11px;transition:color .2s}.panel-action:hover{color:var(--gold)}.panel-icon{width:15px;text-align:center;font-size:16px;color:var(--gold)}.panel-state{margin-left:auto;font-size:9px;font-weight:700;letter-spacing:.1em;color:#8fa29f}.panel-separator{height:20px}.action-emphasis{color:#f8dca4}
.artifact-panel{position:absolute;z-index:12;left:auto;right:4.1vw;top:50%;transform:translateY(-45%) translateX(24px);width:min(330px,calc(100vw - 32px));background:rgba(14,26,28,.96);box-shadow:0 18px 90px #0009;border:1px solid rgba(226,206,159,.28);padding:27px 27px 24px;opacity:0;transition:opacity .3s,transform .3s;backdrop-filter:blur(20px)}.artifact-panel.open{opacity:1;transform:translateY(-45%) translateX(0)}.artifact-panel[hidden]{display:none}.artifact-topline{display:flex;justify-content:space-between;align-items:center;gap:10px}.artifact-category{color:var(--gold);font-size:9px;letter-spacing:.17em;font-weight:800;line-height:1.8}.close-x{font-weight:300;font-family:var(--ui);font-size:27px;line-height:1;border:none;color:#ddd3bf;background:transparent;cursor:pointer}.close-x:hover{color:var(--gold)}.artifact-rule{border-top:1px solid var(--line);margin:17px 0 19px}.artifact-panel h2{font-family:var(--serif);font-size:36px;line-height:1.0;font-weight:600;margin:0 0 17px}.artifact-panel p{font-size:12px;line-height:1.85;color:#c9ceca;margin:0}.artifact-tag{display:flex;align-items:center;gap:8px;margin:22px 0 12px;color:#d7b67a;font-size:9px;letter-spacing:.08em;font-weight:800}.artifact-panel .artifact-note{font-size:10px;line-height:1.8;color:#a5b0ac}.next-object{border:1px solid var(--line);background:transparent;color:var(--gold);letter-spacing:.15em;font-size:10px;font-weight:800;margin-top:25px;padding:13px 17px;width:100%;display:flex;justify-content:space-between;align-items:center}.next-object:hover{background:#d3af7318}.next-object span{font-size:17px}
.bottom-bar{position:absolute;z-index:10;bottom:0;left:0;right:0;height:76px;display:grid;grid-template-columns:1.05fr 1.2fr .7fr;align-items:center;gap:15px;padding:0 5vw;border-top:1px solid rgba(241,236,210,.15);background:linear-gradient(90deg,rgba(11,21,23,.92),rgba(11,21,23,.56));backdrop-filter:blur(9px)}.bottom-left,.bottom-right,.bottom-center{display:flex;align-items:center}.bottom-left{gap:10px;color:#a8b7b4;font-size:9px;letter-spacing:.08em;line-height:1.6;font-weight:700}.pulse{width:5px;height:5px;border-radius:100%;flex-shrink:0;background:#e4be80;box-shadow:0 0 13px #dbba80;animation:pulse 2.6s infinite}@keyframes pulse{50%{box-shadow:0 0 3px #dbba80;opacity:.48}}.bottom-center{gap:20px;justify-content:center}.jump{color:#c7c7bf;border:0;background:transparent;padding:8px 0;white-space:nowrap;font-size:10px;letter-spacing:.08em;transition:color .2s}.jump.active,.jump:hover{color:var(--gold)}.jump span{font-size:9px;font-weight:800;margin-left:3px}.bottom-right{justify-content:flex-end;gap:20px;white-space:nowrap}#btn-snapshot{border:0;background:none;color:#bcbdb5;font-size:16px}#btn-snapshot span{font-size:9px;letter-spacing:.11em;font-weight:800}#btn-snapshot:hover{color:var(--gold)}.bottom-badge{font-size:9px;letter-spacing:.1em;color:#bdac90}
#hotspot-layer{position:absolute;z-index:7;inset:0;pointer-events:none;overflow:hidden}.hotspot{position:absolute;pointer-events:auto;transform:translate(-50%,-50%);border:none;border-radius:50%;background:transparent;height:32px;width:32px;padding:0;display:grid;place-items:center;cursor:pointer}.hotspot-core{position:relative;z-index:2;width:8px;height:8px;display:block;background:#f8ddb0;border:1px solid #342c21;border-radius:100%;box-shadow:0 0 15px 5px #ebbd754d}.hotspot-outer{position:absolute;width:24px;height:24px;border:1px solid #f6daa498;border-radius:100%;animation:hotspotPulse 3.5s ease-in-out infinite}@keyframes hotspotPulse{0%,100%{transform:scale(.88);opacity:.9}50%{transform:scale(1.25);opacity:.35}}.hotspot:hover .hotspot-core,.hotspot.selected .hotspot-core{background:#fff;box-shadow:0 0 15px 5px #ffcc75}.hotspot.selected .hotspot-outer{border-color:#fdf2d8;animation:none;transform:scale(1.36)}
#toast{position:absolute;z-index:40;left:50%;top:115px;transform:translateX(-50%) translateY(-20px);font-size:11px;line-height:1.5;pointer-events:none;padding:11px 19px;background:#132728e8;border:1px solid #8b7947a8;color:#f1dfb9;opacity:0;transition:all .25s;max-width:90vw;text-align:center}#toast.visible{opacity:1;transform:translateX(-50%) translateY(0)}
.modal-backdrop{position:absolute;z-index:50;inset:0;display:grid;place-items:center;background:#061215c9;backdrop-filter:blur(12px);padding:22px}.modal-backdrop[hidden]{display:none}.modal{position:relative;width:min(560px,95vw);background:#142628;border:1px solid #89734e77;padding:37px 42px;box-shadow:0 30px 80px #0007}.modal>.close-x{position:absolute;top:17px;right:18px}.modal h2{font:500 44px/.95 var(--serif);margin:15px 0 16px}.modal p{color:#bac8c2;line-height:1.8;font-size:12px}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;padding-top:24px;margin-top:24px;border-top:1px solid var(--line)}.help-grid strong{color:var(--gold);font-size:10px;letter-spacing:.17em}.modal .credits-small{font-size:9px;letter-spacing:.1em;color:#9c998b;margin:18px 0 0}
#loading-screen{position:absolute;z-index:100;inset:0;background:#0d1a1b;color:#ddc69f;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;letter-spacing:.27em;font-size:10px;font-weight:800;transition:opacity .58s ease}#loading-screen.done{opacity:0;pointer-events:none}.loading-sigil{font-size:54px;font-weight:400;color:var(--gold);animation:loadSpin 12s linear infinite}@keyframes loadSpin{to{transform:rotate(360deg)}}.loading-bar{width:180px;height:1px;background:#8c795d55;overflow:hidden}.loading-bar i{display:block;width:100%;height:100%;background:#d5b776;transform-origin:left;animation:bar 1.2s ease-out both}@keyframes bar{from{transform:scaleX(0)}to{transform:scaleX(1)}}#loading-screen small{font-size:8px;letter-spacing:.22em;color:#8fa19b}#webgl-error{position:absolute;inset:0;z-index:110;background:#121c1b;color:#e6c9a4;display:grid;place-items:center;padding:10vw;text-align:center;font-size:18px}#webgl-error[hidden]{display:none}
@media (min-width:1500px){.hero{width:440px}.vignette{background:linear-gradient(90deg,rgba(9,21,24,.95),rgba(9,21,24,.77) 13%,rgba(9,21,24,.08) 44%,transparent 70%,rgba(7,16,18,.2)),linear-gradient(0deg,rgba(10,18,21,.83),transparent 18%,transparent 75%,rgba(10,18,21,.5))}}
@media (max-width:1190px){.control-panel{right:3vw;width:172px}.hero{left:4vw;width:320px}.hero h1{font-size:65px}.hero-description{font-size:12px}.bottom-bar{padding:0 3vw}.bottom-center{gap:12px}.jump span{font-size:8px}.bottom-left{font-size:8px}.artifact-panel{right:3vw}}
@media (max-width:950px){.topbar{min-height:76px;padding:20px 25px}.eyebrow-strip{top:92px;left:25px;font-size:8px}.hero{left:25px;top:46%;transform:translateY(-50%);width:280px}.hero h1{font-size:56px}.exhibit-index{margin-bottom:30px}.hero-description{font-size:11px;line-height:1.8}.curatorial{font-size:9px;margin-top:22px}.hero-buttons{flex-wrap:wrap;gap:12px}.control-panel{width:147px;right:15px;padding:14px 12px;top:23%}.panel-action{font-size:10px;padding:9px 0}.bottom-bar{grid-template-columns:1fr;justify-items:center;height:68px}.bottom-left,.bottom-right{display:none}.bottom-center{gap:25px}.artifact-panel{top:50%;right:22px;width:290px}.artifact-panel h2{font-size:31px}}
@media (max-width:650px){.topbar{min-height:72px;padding:13px 18px}.identity-mark{width:31px;height:31px}.identity-copy strong{font-size:9px}.identity-copy small{font-size:7px;letter-spacing:.16em}.identity-sup{font-size:8px}.top-actions{gap:6px}.top-button{min-width:32px;height:33px;padding:0 8px}.eyebrow-strip{top:85px;left:19px;gap:8px;font-size:7px;letter-spacing:.14em}.strip-rule{width:15px}.vignette{background:linear-gradient(180deg,#081516cc,rgba(7,21,22,.2) 24%,transparent 45%,rgba(8,20,22,.65) 75%,#091719 100%)}.hero{left:19px;top:108px;transform:none;width:calc(100vw - 38px);max-width:340px}.exhibit-index{display:none}.hero .overline{font-size:8px;margin:0 0 11px}.hero h1{font-size:clamp(47px,12vw,70px);line-height:.76;margin:0 0 17px}.hero-rule{display:none}.hero-description{max-width:285px;font-size:10px;line-height:1.57;margin-bottom:14px}.hero-buttons .cta{min-height:35px;padding:0 10px;font-size:8px}.text-button{font-size:9px}.curatorial{margin-top:12px;font-size:8px;max-width:290px}.control-panel{top:auto;bottom:92px;right:10px;width:auto;max-width:calc(100vw - 20px);display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px;padding:7px;background:#08191c8c;backdrop-filter:blur(10px)}.panel-label,.panel-separator{display:none}.panel-action{border:1px solid #d5bc8b40;width:33px;height:33px;padding:0;display:grid;place-items:center;font-size:0}.panel-icon{font-size:16px}.panel-state{display:none}.control-panel .action-emphasis{border-color:#e7bf75ad}.bottom-bar{height:65px;padding:0 8px}.bottom-center{gap:7px;width:100%;justify-content:space-between}.jump{font-size:8px;letter-spacing:0}.jump span{display:block;margin-left:0;margin-top:3px;font-size:7px}.hotspot{width:26px;height:26px}.hotspot-outer{width:18px;height:18px}.hotspot-core{width:6px;height:6px}.artifact-panel{bottom:73px;top:auto;right:11px;left:11px;transform:translateY(18px);width:auto;padding:19px 22px}.artifact-panel.open{transform:translateY(0)}.artifact-panel h2{font-size:30px}.artifact-panel p{font-size:11px;line-height:1.6}.artifact-note{display:none}.artifact-panel .artifact-tag{margin:12px 0}.artifact-panel .next-object{margin-top:12px;padding:9px 11px}.artifact-rule{margin:11px 0}.modal{padding:28px 20px}.help-grid{gap:14px}.modal h2{font-size:36px}}
@media (max-width:400px){.identity-sup{display:none}.identity-copy small{font-size:6px}.hero-description{max-width:260px}.control-panel{bottom:78px}.bottom-bar{height:59px}.bottom-center{gap:4px}.jump span{font-size:6px}.artifact-panel{bottom:64px}.hero{top:103px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
