:root{color-scheme:dark;--ink:#202a24;--forest:#17271f;--cream:#eeeae0;--parchment:#f0eee7;--line:#d9d5c8;--gold:#ae8854;--goldLight:#cfb582;--muted:#72796f;--body:'DM Sans','Segoe UI',Arial,sans-serif;--display:Georgia,'Times New Roman',serif}
*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;width:100%;overscroll-behavior:none}body{font-family:var(--body);background:#13211b;color:var(--cream);-webkit-font-smoothing:antialiased}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid #d4a25e;outline-offset:3px}#app{height:100dvh;min-height:640px;display:flex;overflow:hidden}.viewer{position:relative;flex:1;min-width:0;height:100%;overflow:hidden;background:radial-gradient(circle at 60% 48%,#25332a,#101b16)}#stage{width:100%;height:100%;display:block;cursor:grab;touch-action:none;outline:none}#stage:active{cursor:grabbing}.stage-grain{pointer-events:none;position:absolute;inset:0;z-index:3;opacity:.2;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.65' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.19' filter='url(%23noise)'/%3E%3C/svg%3E")}.stage-top{position:absolute;z-index:5;left:0;right:0;top:0;display:flex;justify-content:space-between;align-items:center;padding:29px 36px}.museum-mark{display:flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.22em;color:#e5e3d8}.mark-icon{color:var(--goldLight);font-size:28px;line-height:1;transform:rotate(-16deg)}.mark-title{font-weight:400;white-space:nowrap}.mark-title b{font-weight:800}.mark-bar{height:17px;width:1px;background:#637168;margin:0 9px}.mark-small{font-size:9px;color:#899b8e;letter-spacing:.17em}.top-actions{display:flex;align-items:center;gap:9px}.connection{font-size:9px;letter-spacing:.15em;color:#91aa9c;white-space:nowrap;margin-right:14px}.connection i{display:inline-block;background:#9bb290;width:5px;height:5px;border-radius:50%;box-shadow:0 0 10px #a0c99e;margin-right:8px;vertical-align:middle}.square-button{background:rgba(26,37,31,.52);border:1px solid rgba(190,177,144,.25);color:#e3dccc;width:34px;height:34px;font-size:17px;border-radius:50%;display:grid;place-items:center;transition:.2s}.square-button:hover{background:rgba(189,156,91,.2);border-color:rgba(205,174,111,.8)}.stage-caption{position:absolute;top:103px;left:42px;display:flex;gap:13px;align-items:center;white-space:nowrap;font-size:9px;letter-spacing:.17em;color:#b7b9ad;z-index:4}.chapter-index{color:#d8b581}.thin-line{width:32px;height:1px;background:#a49670}.headline{position:absolute;left:49px;top:175px;z-index:4;pointer-events:none;filter:drop-shadow(0 2px 6px #17231975)}.eyebrow{display:flex;gap:10px;align-items:center;color:#b4bfac;letter-spacing:.22em;font-weight:700;font-size:9px;white-space:nowrap}.tiny-gold-diamond{display:inline-block;background:#b38e56;width:7px;height:7px;transform:rotate(45deg)}.headline h1{font-family:var(--display);font-weight:400;color:#f1e8d3;font-size:clamp(42px,5.5vw,84px);letter-spacing:-.072em;line-height:.94;margin:25px 0 11px}.headline h1 em{font-weight:400;color:#d5b888}.headline p{font-family:var(--display);font-size:clamp(16px,1.8vw,26px);color:#dcd5c2;margin:0;letter-spacing:.015em;font-style:italic}.underline-accent{width:49px;height:2px;background:#b99862;margin-top:26px}.hotspot-layer{pointer-events:none;position:absolute;inset:0;z-index:6}.hotspot{pointer-events:auto;position:absolute;z-index:7;transform:translate(-50%,-50%);border:1px solid rgba(248,221,165,.8);background:rgba(19,36,27,.65);color:#f8e8be;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 5px #bea46a18,0 0 18px #c49c5557;transition:background .2s,box-shadow .2s,opacity .25s}.hotspot::before{content:'';position:absolute;inset:-8px;border:1px solid #c0aa7952;border-radius:50%;animation:markerPulse 3s ease-in-out infinite}.hotspot:hover,.hotspot.active{background:#b28b4f;color:#121d17;box-shadow:0 0 0 5px #bea46a42,0 0 22px #c49c55a6}.hotspot.disabled{display:none}.hotspot-number{font-size:9px;font-weight:800;letter-spacing:.025em}.hotspot-core{width:3px;height:3px;border-radius:50%;background:#edddad;position:absolute;bottom:-8px;left:calc(50% - 1.5px)}@keyframes markerPulse{0%,100%{transform:scale(.95);opacity:.25}60%{transform:scale(1.2);opacity:.55}}.stage-bottom{position:absolute;bottom:0;left:0;right:0;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:30px 38px;color:#abb9a9;font-size:9px;letter-spacing:.15em}.gesture-help,.stage-footer-right{display:flex;align-items:center;gap:14px}.gesture-icon{font-size:24px;color:#c7a978;line-height:1}.gesture-separator{height:12px;width:1px;background:#70807475}.stage-footer-right{font-family:monospace;color:#a5ae9e}.loading{position:absolute;inset:0;z-index:12;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;background:#12231c;color:#d9d1b4;letter-spacing:.19em;text-align:center;font-size:11px;transition:opacity .7s,visibility .7s}.loading.hidden{opacity:0;visibility:hidden;pointer-events:none}.loading-mark{font-size:55px;color:#b5975f;animation:loadRotate 7s linear infinite}.loading small{font-size:10px;letter-spacing:.08em;color:#8a9b8b}.loading p{max-width:320px;font-size:14px;letter-spacing:normal}.loader-track{width:140px;height:1px;background:#607060}.loader-track i{display:block;width:45%;height:100%;background:#c6a46b;animation:loadingSlide 1.4s ease-in-out infinite}@keyframes loadingSlide{0%{transform:translateX(0)}50%{transform:translateX(170%)}100%{transform:translateX(0)}}@keyframes loadRotate{to{transform:rotate(360deg)}}.context-toast{position:absolute;bottom:90px;left:50%;transform:translate(-50%,8px);pointer-events:none;background:#e6dfd0;color:#243227;padding:12px 20px;font-size:12px;opacity:0;transition:.3s;z-index:12}.context-toast.visible{opacity:1;transform:translate(-50%,0)}
/* Curator's control panel */
.side-panel{position:relative;flex:0 0 394px;width:394px;height:100%;color:var(--ink);background:var(--parchment);border-left:1px solid #d7d3c8;display:flex;flex-direction:column;z-index:8;box-shadow:-13px 0 55px #08130d43}.panel-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:#c7c0ae transparent;scrollbar-width:thin}.panel-header{padding:33px 31px 27px;border-bottom:1px solid #d7d1c5}.section-id{font-weight:800;font-size:10px;letter-spacing:.2em;color:#93866f}.section-id span{margin:0 10px;color:#a8a293}.country-line{margin-top:22px;font-family:var(--display);font-size:21px;letter-spacing:.04em;color:#293a2f}.country-line .star{font-size:19px;color:#a9895a;margin-right:8px}.dot-sep{margin:0 7px;color:#bbac8d}.panel-header p{font-size:9px;letter-spacing:.2em;color:#879087;margin:10px 0 0}.curator-section{padding:29px 31px 27px;border-bottom:1px solid var(--line)}.section-number{font-size:10px;font-weight:800;letter-spacing:.10em;color:#b29562;margin-bottom:19px}.section-number span{font-size:10px;font-weight:800;letter-spacing:.16em;color:#626e62;margin-left:10px}.curator-section h2{font-family:var(--display);font-size:40px;font-weight:400;line-height:1.07;letter-spacing:-.055em;margin:0 0 17px;color:#25372c}.curator-section h2 em{color:#ad8852}.curator-section p{font-size:12px;line-height:1.82;color:#647167;margin:0 0 12px}.curator-section .source-note{font-size:10px;line-height:1.6;color:#9b886c;border-left:2px solid #bd996a;padding-left:10px;margin:20px 0 0}.panel-section{padding:26px 31px;border-bottom:1px solid var(--line)}.control-label{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:9px;font-weight:800;letter-spacing:.14em;color:#57685a;margin:21px 0 13px}.control-label>span{color:#ac8c5e;font-size:9px;letter-spacing:.08em}.mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.mode{background:#e9e6dd;border:1px solid #d6d1c6;color:#6c7669;padding:14px 8px;display:flex;align-items:center;justify-content:center;gap:9px;font-size:9px;letter-spacing:.11em;font-weight:800;transition:.25s;min-height:51px}.mode-icon{font-size:20px;font-weight:400;line-height:1;color:#a89977}.mode.active{color:#e7e6d9;background:#26382b;border-color:#273e2c}.mode.active .mode-icon{color:#d9bc89}.mode:hover:not(.active){background:#ddd9cb}.mode-explainer{margin-top:13px;min-height:33px;color:#8c8f82;font-size:10px;line-height:1.7}.range-label{margin:19px 0 11px}.range-input{appearance:none;width:100%;height:2px;background:#d0cbbf;outline:none;display:block;margin:0 0 4px;cursor:pointer;accent-color:#b18f57}.range-input::-webkit-slider-thumb{appearance:none;width:12px;height:12px;background:#a7814b;border:3px solid #eeeae0;border-radius:50%;box-shadow:0 0 0 1px #a7814b}.range-input::-moz-range-thumb{width:8px;height:8px;background:#b18f57;border:2px solid #eeeae0;box-shadow:0 0 0 1px #a7814b;border-radius:50%}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-top:21px;margin-top:19px;border-top:1px solid #dad7cf}.toggle-row strong{display:block;font-size:9px;letter-spacing:.09em;color:#4b5f50}.toggle-row small{display:block;font-size:10px;color:#9a9a8c;margin-top:5px}.switch{display:inline-flex;position:relative;flex-shrink:0;width:39px;height:22px;cursor:pointer}.switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.switch>span{width:39px;height:22px;background:#c6c5b9;border-radius:50px;transition:.2s}.switch>span:after{content:'';position:absolute;top:3px;left:3px;background:#fff;width:16px;height:16px;border-radius:50%;box-shadow:0 1px 3px #0002;transition:.2s}.switch input:checked+span{background:#3a5944}.switch input:checked+span:after{transform:translateX(17px)}.camera-row{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.view-button{height:37px;border:1px solid #d4d1c7;background:#e6e4db;color:#768175;font-size:9px;letter-spacing:.09em;font-weight:800;transition:.15s}.view-button:hover{background:#d5d2c8}.view-button.selected{border-color:#2b4a32;background:#314d38;color:#e5dfcc}.detail-section{background:#e9e7de;padding-bottom:24px}.detail-meta{font-size:9px;color:#a18b65;font-weight:800;letter-spacing:.12em}.detail-section h3{font-family:var(--display);font-size:27px;font-weight:400;letter-spacing:-.025em;margin:12px 0 9px;color:#2d3e31}.detail-section p{font-size:11px;line-height:1.8;color:#677267;margin:0;min-height:70px}.detail-material{display:flex;align-items:center;gap:8px;font-size:10px;color:#84775c;margin:16px 0}.material-chip{width:8px;height:8px;border-radius:50%;background:linear-gradient(140deg,#e2c178,#976639);border:1px solid #a27e49}.detail-nav{display:flex;gap:9px;align-items:center;justify-content:flex-end}.detail-nav button{border:1px solid #bebaa9;background:transparent;width:30px;height:30px;color:#3e543f;font-size:16px;transition:.2s}.detail-nav button:hover{background:#d6d1c4}.detail-nav span{font-size:9px;letter-spacing:.1em;color:#9b947f;margin:0 6px}.pulse{animation:pulseDetail .4s ease-out}@keyframes pulseDetail{from{box-shadow:inset 3px 0 #b59055}to{box-shadow:inset 0 0 #b59055}}.compact-note{font-size:11px;line-height:1.85;color:#737e6e}.external-ref{display:inline-block;margin-top:10px;color:#4a634d;border-bottom:1px solid #b8bca9;text-decoration:none;font-weight:800;font-size:9px;letter-spacing:.13em;padding-bottom:6px}.external-ref:hover{color:#9b7646}.panel-bottom{flex-shrink:0;padding:17px 27px 16px;background:#e9e6dc;border-top:1px solid #d4d0c6}.save-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.capture-btn{display:flex;align-items:center;justify-content:space-between;width:100%;height:44px;padding:0 14px;border:none;background:#233a2c;color:#e4ddc5;font-size:9px;letter-spacing:.075em;font-weight:800;transition:.2s;white-space:nowrap}.capture-btn.secondary{background:#d5d0c1;color:#344f3a;border:1px solid #c2baa9}.capture-btn.secondary span{color:#775e3c}.capture-btn:disabled{opacity:.55;cursor:progress}.capture-btn:hover{background:#38533b}.capture-btn span{font-size:17px;font-weight:400;color:#cfb17e}.build-meta{display:flex;justify-content:space-between;gap:6px;margin-top:12px;color:#919687;font-size:8px;letter-spacing:.08em}.help-dialog{background:#f0ede2;border:1px solid #a78b60;color:#29392e;padding:31px;max-width:460px;width:calc(100vw - 30px);box-shadow:0 20px 70px #0009}.help-dialog::backdrop{background:#07170ec9;backdrop-filter:blur(5px)}.modal-header{display:flex;justify-content:space-between;align-items:center;color:#aa8758;font-size:10px;font-weight:800;letter-spacing:.17em}.modal-header button{background:transparent;border:none;color:#4b5a4e;font-size:17px}.help-dialog h2{font:normal 41px var(--display);margin:20px 0}.help-dialog p{color:#6b7569;font-size:13px;line-height:1.7}.help-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:11px 18px;border-top:1px solid #cbc7b8;border-bottom:1px solid #cbc7b8;padding:18px 0;margin:22px 0}.help-grid span{font-size:11px;color:#758073}.help-grid strong{font-size:11px;color:#304a36}.modal-action{background:#314a38;color:#fff;border:none;padding:14px 19px;font-size:10px;letter-spacing:.14em;width:100%;font-weight:800}
@media(max-width:1250px){.side-panel{flex-basis:358px;width:358px}.panel-header,.curator-section,.panel-section{padding-left:25px;padding-right:25px}.headline{left:35px}.headline h1{font-size:60px}.stage-top{padding-left:25px;padding-right:25px}.stage-caption{left:30px}.mark-small{display:none}.stage-bottom{padding-left:24px;padding-right:24px}.gesture-help{gap:8px}}
@media(max-width:1050px){.side-panel{flex-basis:337px;width:337px}.headline h1{font-size:53px}.headline{top:160px}.connection{display:none}.stage-footer-right{display:none}.gesture-help{font-size:8px}}
@media(max-width:850px){html,body{height:auto;overflow:auto;overscroll-behavior:auto}#app{height:auto;min-height:100dvh;display:flex;flex-direction:column;overflow:visible}.viewer{height:68vh;min-height:510px;flex:none}.side-panel{width:100%;height:auto;flex:none;box-shadow:none}.panel-scroll{max-height:none;overflow:visible}.panel-header{padding:24px}.curator-section,.panel-section{padding:25px}.panel-bottom{position:relative}.headline{top:144px;left:24px}.headline h1{font-size:59px}.stage-caption{top:91px;left:25px}.stage-top{padding:23px 20px}.stage-bottom{padding:23px}.gesture-help{font-size:8px}.panel-scroll{display:grid;grid-template-columns:1fr 1fr}.panel-header,.curator-section{grid-column:span 1;border-right:1px solid #d7d1c5}.panel-section{grid-column:span 1;border-right:1px solid #d7d1c5}.panel-section:last-child{grid-column:span 2}.mode-grid{gap:7px}}
@media(max-width:600px){.viewer{height:63vh;min-height:470px}.headline{top:143px;left:20px}.headline h1{font-size:49px}.headline p{font-size:18px}.eyebrow{font-size:8px;letter-spacing:.12em}.stage-caption{font-size:7px;gap:8px;top:84px;left:20px}.thin-line{width:13px}.stage-top{padding:17px}.museum-mark{gap:5px}.mark-icon{font-size:21px}.mark-title{font-size:10px;letter-spacing:.11em}.mark-bar{display:none}.stage-bottom{padding:17px}.gesture-help .gesture-separator,.gesture-help span:nth-last-child(1){display:none}.gesture-help{font-size:8px}.panel-scroll{display:block}.panel-header,.curator-section,.panel-section{border-right:none}.curator-section h2{font-size:35px}.mode-grid{grid-template-columns:repeat(2,1fr)}.side-panel{width:100%}.connection{display:none}.hotspot{width:25px;height:25px}.hotspot-number{font-size:8px}.stage-grain{opacity:.12}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
