
:root{color-scheme:dark;--ivory:#f0e7d7;--muted:#a2aeb1;--muted2:#77838a;--gold:#dcaf73;--hair:rgba(239,230,210,.17);--bg:#091018;font-family:Manrope,'Segoe UI',sans-serif;scrollbar-color:#8f7654 #0c141d}
*{box-sizing:border-box}html,body,#app{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background:#091018;color:var(--ivory)}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible{outline:2px solid #dbb476;outline-offset:4px}#scene{display:block;position:fixed;inset:0;width:100%;height:100%;touch-action:none;outline:none}.grade{position:fixed;inset:0;z-index:1;background:linear-gradient(90deg,rgba(5,10,17,.83) 0%,rgba(5,10,17,.26) 35%,transparent 59%),linear-gradient(0deg,rgba(5,10,17,.91) 0%,rgba(5,10,17,.13) 28%,transparent 61%),radial-gradient(ellipse at 50% 42%,transparent 50%,rgba(4,9,16,.25) 99%);pointer-events:none}.grain{position:fixed;inset:0;z-index:2;opacity:.17;pointer-events:none;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='.8' numOctaves='3' seed='11' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.28'/%3E%3C/svg%3E")}
.topbar{position:fixed;left:0;right:0;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:29px 40px 26px;border-bottom:1px solid rgba(238,221,202,.12);background:linear-gradient(180deg,rgba(6,11,17,.55),transparent)}.brand{display:flex;align-items:center;gap:13px}.brand-mark{font-family:Georgia,serif;font-size:38px;line-height:1;color:#d2aa75;transform:rotate(-15deg)}.brand-text{font-size:9px;line-height:1.54;letter-spacing:.27em;font-weight:500;color:#dccbb5}.brand-text strong{font-weight:700;letter-spacing:.20em}.top-center{position:absolute;left:50%;transform:translateX(-50%);font-size:9px;letter-spacing:.27em;font-weight:700;color:#c4b5a0;white-space:nowrap}.top-center span{color:var(--gold);padding:0 11px}.top-actions{display:flex;align-items:center;gap:22px}.top-link{border:0;background:transparent;font-size:10px;letter-spacing:.17em;font-weight:700;transition:color .22s}.top-link:hover{color:var(--gold)}.tiny-plus{font-size:20px;font-weight:400;vertical-align:-1px;margin-left:4px;color:var(--gold)}
.hero{position:fixed;left:clamp(24px,4.5vw,76px);top:23%;z-index:10;max-width:355px;pointer-events:none}.eyebrow{display:flex;align-items:center;gap:12px;color:var(--gold);font-size:9px;letter-spacing:.24em;font-weight:700}.eyebrow i{width:27px;height:1px;background:#bb9365}.hero h1{font-family:'Playfair Display',Georgia,serif;font-weight:400;line-height:1.07;letter-spacing:-.045em;font-size:clamp(42px,5.1vw,76px);margin:22px 0}.hero h1 em{font-weight:400;color:#d7ae79}.hero p{font-family:'DM Sans',sans-serif;font-size:13px;line-height:1.85;max-width:306px;color:#bec5c1;letter-spacing:.006em}.hero-footer{display:flex;align-items:center;gap:11px;white-space:nowrap;margin-top:33px;font-size:8px;font-weight:700;letter-spacing:.12em;color:#ac9b89}.stroke{width:18px;height:1px;background:#9e8668}
.time-panel{position:fixed;right:39px;top:117px;width:236px;z-index:19;padding:18px 20px 14px;background:rgba(9,16,24,.77);border:1px solid rgba(240,219,183,.15);border-radius:2px;box-shadow:0 18px 55px #0005;backdrop-filter:blur(18px)}.time-title{font-size:9px;font-weight:700;letter-spacing:.23em;color:var(--gold);margin-bottom:15px}.light-switch{display:flex;gap:2px;background:#141d25;padding:3px;border:1px solid rgba(255,255,255,.09);margin-bottom:14px}.mode{display:flex;flex:1;justify-content:center;align-items:center;gap:5px;border:0;padding:10px 6px;background:transparent;color:#9babb1;font-size:8px;font-weight:700;letter-spacing:.05em;white-space:nowrap}.mode.active{background:#b89768;color:#121313;box-shadow:0 1px 8px #0008}.mode span:first-child{font-size:13px}.setting{width:100%;background:none;border:0;border-top:1px solid rgba(255,255,255,.1);min-height:37px;display:flex;align-items:center;justify-content:space-between;text-align:left;font-size:10px;color:#c3bdb1}.setting:hover{color:white}.switch{width:29px;height:15px;background:#3e4446;border-radius:10px;position:relative;transition:background .2s}.switch::after{content:'';position:absolute;width:11px;height:11px;left:2px;top:2px;border-radius:50%;background:#a1a4a2;transition:transform .2s,background .2s}.switch.on{background:#827254}.switch.on::after{transform:translateX(14px);background:#f1d5a2}
.hotspot-layer{position:fixed;inset:0;z-index:8;pointer-events:none}.hotspot-layer.hidden{display:none}.pin{position:absolute;left:0;top:0;display:flex;align-items:center;gap:8px;background:transparent;border:0;padding:0;pointer-events:auto;transform-origin:0 0;text-shadow:0 1px 8px #040809}.pin-pulse{position:absolute;top:-13px;left:-13px;width:42px;height:42px;border-radius:50%;border:1px solid rgba(232,185,111,.24);animation:pulse 3.5s ease-in-out infinite}.pin-core{display:grid;place-items:center;width:16px;height:16px;border-radius:50%;background:#dfb876;border:2px solid #1d2931;color:#1b1e1e;font-size:10px;box-shadow:0 0 0 3px #f4c88532,0 0 17px #e3b66f7b;transition:transform .2s}.pin:hover .pin-core,.pin.selected .pin-core{transform:scale(1.35);background:#ffdeb1}.pin-label{border:1px solid #e9c59350;background:#0b1219c9;backdrop-filter:blur(12px);color:#f0e3d0;display:flex;align-items:center;gap:8px;letter-spacing:.035em;font-size:10px;padding:8px 10px;white-space:nowrap;opacity:0;transform:translateX(-4px);transition:opacity .23s,transform .23s;pointer-events:none}.pin-label small{font-size:9px;color:var(--gold);letter-spacing:.1em}.pin:hover .pin-label,.pin.selected .pin-label{opacity:1;transform:translateX(0)}@keyframes pulse{0%,100%{transform:scale(.85);opacity:.22}50%{transform:scale(1.25);opacity:.8}}
.info-panel{position:fixed;z-index:25;right:39px;top:122px;max-height:calc(100vh - 260px);overflow-y:auto;width:min(340px,calc(100vw - 50px));background:linear-gradient(145deg,rgba(23,32,39,.97),rgba(9,16,22,.96));border:1px solid rgba(218,178,122,.33);padding:30px 29px 25px;box-shadow:0 25px 95px #0008;transform:translateX(calc(100% + 56px));opacity:0;pointer-events:none;transition:transform .42s ease,opacity .35s ease;backdrop-filter:blur(19px)}.info-panel.visible{transform:translateX(0);opacity:1;pointer-events:auto}.close-info{border:0;background:none;position:absolute;right:15px;top:12px;font-size:24px;line-height:1;color:#d2bda2}.info-index{font-size:9px;color:#c5a375;letter-spacing:.22em}.info-ornament{font-family:Georgia,serif;font-size:40px;color:#b88d57;margin:20px 0 -4px}.info-panel h2{font-family:'Playfair Display',Georgia,serif;font-size:32px;font-weight:400;line-height:1.18;margin:13px 0 19px;max-width:240px}.thin-rule{height:1px;background:linear-gradient(to right,var(--gold),transparent)}.info-panel p{font-family:'DM Sans',sans-serif;font-size:13px;line-height:1.85;color:#c6c7c3}.info-footnote{margin-top:20px;font-size:8px;line-height:1.7;letter-spacing:.2em;color:#9e978e}.info-controls{display:flex;gap:8px;margin-top:26px;flex-wrap:wrap}.primary-small,.secondary-small{border:1px solid #b89464;padding:13px 14px;font-size:9px;letter-spacing:.08em;font-weight:700;background:#c7a16d;color:#1b1d1d}.primary-small span{margin-left:9px;font-size:14px}.secondary-small{background:transparent;color:#e4cda9}.primary-small:hover{background:#f0ca8d}.secondary-small:hover{background:#ffffff12}
.bottom-cluster{position:fixed;bottom:clamp(19px,4vh,38px);left:clamp(24px,4.5vw,76px);right:clamp(24px,4.5vw,76px);z-index:18}.bottom-topline{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}.wayfinding{display:flex;align-items:center;gap:10px;font-size:10px;font-weight:700;letter-spacing:.18em;color:#d7bb91}.way-dot{height:5px;width:5px;background:#f0c783;border-radius:50%;box-shadow:0 0 12px #f1ba60}.instruction{font-size:9px;letter-spacing:.11em;color:#aaa9a3}.views{height:73px;display:flex;gap:1px;border-top:1px solid #e8d4ad4d;border-bottom:1px solid #e8d4ad4d;background:#101923ba;backdrop-filter:blur(14px)}.view{background:transparent;border:0;border-right:1px solid #e8d4ad36;flex:1;min-width:0;text-align:left;padding:15px 21px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;position:relative;transition:background .2s}.view:before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--gold);transform:scaleX(0);transition:transform .2s}.view.active:before,.view:hover:before{transform:scaleX(1)}.view.active{background:#cda66b14}.view b{color:#ad8d68;font-size:11px;font-weight:500;font-family:Georgia,serif}.view span{font-size:10px;color:#d7d3c8;letter-spacing:.13em;font-weight:700;white-space:nowrap}.view small{color:#a89171;font-size:16px}.view:hover span,.view.active span{color:#f9dba5}.icon-control{background:transparent;flex:0 0 62px;border:0;border-right:1px solid #e8d4ad36;font-size:20px;color:#d3b186;transition:background .2s}.icon-control:last-child{border:0}.icon-control:hover,.icon-control.active{background:#e5c07e24;color:white}.toast{position:fixed;z-index:26;left:50%;bottom:136px;transform:translate(-50%,10px);border:1px solid #d3ad7659;background:#101920ed;backdrop-filter:blur(12px);padding:11px 18px;font-size:11px;color:#f3dfc0;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}.toast.shown{opacity:1;transform:translate(-50%,0)}
.loading-screen{position:fixed;inset:0;z-index:80;background:radial-gradient(circle at 50% 42%,#20303b,#080f16 65%);display:grid;place-items:center;transition:opacity .75s ease}.loading-screen.fade{opacity:0;pointer-events:none}.loading-center{text-align:center;max-width:90vw}.loading-signet{width:104px;height:104px;border-radius:50%;border:1px solid #c4a77868;display:grid;place-items:center;margin:0 auto 28px;position:relative}.loading-signet:before{content:'';position:absolute;inset:8px;border:1px dotted #c3a3729c;border-radius:50%}.loading-signet span{font-size:47px;color:#dec190;font-family:Georgia}.micro{font-size:9px;font-weight:700;letter-spacing:.22em;color:#bfa779}.loading-center h2{font-family:'Playfair Display',Georgia,serif;font-size:clamp(29px,4vw,48px);font-weight:400}.loading-center h2 em{color:#dcb984;font-weight:400}.loading-progress{height:1px;width:250px;max-width:100%;margin:36px auto 14px;background:#6d6660}.loading-progress>div{width:0;height:1px;background:#f5ca87;transition:width .3s}.loading-status{font-size:10px;color:#aca99f;letter-spacing:.12em}
dialog{border:1px solid #9d825e;max-width:600px;width:min(600px,calc(100vw - 32px));background:#131f29;color:#e8dfd0;box-shadow:0 25px 150px #000b;padding:35px 38px 32px;max-height:85vh;overflow-y:auto}dialog::backdrop{background:#050910cf;backdrop-filter:blur(9px)}.dialog-head{display:flex;justify-content:space-between;align-items:center}.dialog-head button{border:none;background:none;font-size:28px;color:#e3b782}.dialog-head button:hover{color:white}dialog h2{font:400 43px/1.2 'Playfair Display',Georgia,serif;margin:31px 0 20px}dialog h2 em{font-weight:400;color:var(--gold)}dialog h3{font-size:11px;letter-spacing:.15em;color:var(--gold);margin-top:26px}dialog p{font-family:'DM Sans',sans-serif;font-size:13px;line-height:1.9;color:#c4c8c6}dialog a{display:block;color:#ebcf9d;padding:9px 0;font-size:11px;line-height:1.5;text-decoration:none;border-bottom:1px solid #ffffff18}dialog a:hover{text-decoration:underline}.dialog-foot{font-size:9px;color:#938a7d;letter-spacing:.15em;margin-top:28px}
@media(min-width:1600px){.hero{top:24%}.hero h1{font-size:86px}.hero p{font-size:14px;max-width:350px}.time-panel{width:252px}.view{padding:16px 28px}}
@media(max-width:1090px){.top-center{display:none}.hero{top:18%;max-width:310px}.hero h1{font-size:54px}.hero p{font-size:12px;max-width:230px}.time-panel{top:101px;right:23px}.view{padding:10px 12px;gap:5px}.view span{font-size:9px;letter-spacing:.06em}.instruction{display:none}.info-panel{top:105px;right:23px}}
@media(max-width:680px){.topbar{padding:19px 19px 15px}.brand-mark{font-size:29px}.brand-text{font-size:8px}.top-actions{gap:9px}.top-link{font-size:9px}.hero{top:106px;left:23px;max-width:230px}.eyebrow{font-size:8px}.hero h1{font-size:45px;margin:12px 0 8px}.hero p{max-width:200px;font-size:11px;line-height:1.5}.hero-footer{margin-top:12px;font-size:7px;gap:6px}.time-panel{right:15px;top:91px;width:155px;padding:11px 12px 8px}.time-title{font-size:8px;margin-bottom:9px}.light-switch{display:flex;flex-direction:column;gap:2px;padding:2px;margin-bottom:7px}.mode{font-size:8px;padding:5px 4px;justify-content:flex-start}.setting{font-size:9px;min-height:32px}.setting .switch{transform:scale(.8);transform-origin:right}.bottom-cluster{left:12px;right:12px;bottom:max(14px,env(safe-area-inset-bottom))}.bottom-topline{margin-bottom:11px}.wayfinding{font-size:8px}.views{height:62px}.view{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;padding:8px 9px}.view b{font-size:10px}.view span{font-size:7.5px;letter-spacing:.01em}.view small{display:none}.icon-control{flex-basis:37px;font-size:16px}.pin-label{display:none!important}.pin-pulse{width:32px;height:32px;left:-8px;top:-8px}.info-panel{top:auto;bottom:88px;right:12px;left:12px;width:auto;max-height:min(58vh,470px);padding:21px 22px 18px;transform:translateY(calc(100% + 110px))}.info-panel.visible{transform:translateY(0)}.info-panel h2{font-size:27px}.info-panel p{font-size:12px;line-height:1.65}.info-ornament{font-size:23px;margin:9px 0 0}.info-controls{margin-top:17px}.info-footnote{margin-top:15px}.toast{bottom:93px;font-size:10px;white-space:nowrap}dialog{padding:22px}}
@media(max-width:430px){.hero{top:91px;max-width:180px}.hero h1{font-size:38px}.hero p{font-size:10px}.hero-footer .stroke,.hero-footer span:first-child{display:none}.time-panel{top:85px;right:10px;width:135px}.time-title{font-size:7px}.setting{font-size:8px;min-height:30px}.light-switch{margin-bottom:5px}.mode{font-size:7px}.view span{font-size:7px}.view{padding:7px}.icon-control{flex-basis:33px}}
@media(max-height:610px) and (min-width:681px){.hero{top:19%}.hero h1{font-size:49px;margin:12px 0}.hero p{display:none}.hero-footer{margin-top:19px}.time-panel{top:90px;padding-top:9px}.bottom-cluster{bottom:12px}.views{height:56px}.info-panel{max-height:calc(100vh - 165px);top:90px;padding-top:20px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
