@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@300;400;500;600;700;800&display=swap');
:root{color-scheme:dark;--ink:#eef1f8;--muted:#9a9dab;--line:rgba(255,255,255,.12);--accent:#b5a1ff}*{box-sizing:border-box}body{margin:0;background:#080a0f;color:var(--ink);font-family:'DM Sans',Arial,sans-serif;overflow:hidden}button,input{font:inherit}button{color:inherit;cursor:pointer;border:0;background:none}button:focus-visible,input:focus-visible{outline:2px solid #cabbff;outline-offset:4px}button:hover{color:white}button{transition:background .2s,color .2s}button[hidden],[hidden]{display:none!important}#venue{position:fixed;inset:0;width:100%;height:100%;touch-action:none}#identity{position:fixed;left:38px;top:30px;display:flex;align-items:center;gap:12px;pointer-events:none;font-size:11px;letter-spacing:2.7px;font-weight:700}#identity small{display:block;color:#878b9d;font-size:8px;letter-spacing:2px;margin-top:6px}.mark{font-size:31px;color:#b5a1ff}#utility{position:fixed;right:30px;top:28px;display:flex;gap:10px}#utility button{width:37px;height:37px;border:1px solid var(--line);border-radius:50%;background:#0d1016a6;font-size:20px}#intro{position:fixed;top:24%;left:4.5%;max-width:360px;pointer-events:none;transition:opacity .5s,transform .5s;text-shadow:0 2px 24px #000}#intro.dismissed{opacity:0;transform:translateX(-20px);visibility:hidden}.eyebrow{color:#9a8dbb;font-size:9px;letter-spacing:2px;font-weight:600}h1{font-family:Manrope,Arial,sans-serif;font-size:clamp(38px,4vw,64px);line-height:1.12;font-weight:400;letter-spacing:-2.5px;margin:20px 0}h1 em{font-style:normal;color:#b9a4ff}#intro p{font-size:12px;line-height:1.9;color:#aeb1be}#intro button{pointer-events:auto}#intro .textbutton{font-size:12px;padding:15px 0;font-weight:600;display:flex;gap:50px;align-items:center}#intro .textbutton span{font-size:22px;color:#b8a4ff}.introline{height:1px;background:linear-gradient(90deg,#ffffff33,transparent);margin:12px 0 16px}#intro small{font-size:10px;color:#777d8d}#sceneCaption{position:fixed;bottom:113px;left:38px;pointer-events:none}#sceneCaption span{font-size:9px;letter-spacing:2px;color:#c3c7d4;display:block}#sceneCaption small{display:block;font-size:10px;color:#7f8595;margin-top:7px}#lighting{position:fixed;right:35px;bottom:115px;width:180px;padding:15px;background:rgba(13,16,23,.75);border:1px solid #ffffff0d;border-radius:12px;backdrop-filter:blur(12px)}#lighting>span{font-size:8px;letter-spacing:2px;color:#a3a7b6}.swatches{display:flex;gap:10px;margin:14px 0}.swatches button{width:21px;height:21px;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 4px #0003}.swatches .chosen{outline:1px solid white;outline-offset:3px}#lighting label{display:flex;gap:9px;align-items:center}input[type=range]{width:115px;height:3px;accent-color:#b6a4ff}output{font-size:9px;color:#a1a5b2}#lighting small{display:block;font-size:9px;color:#727989;margin-top:10px}#dock{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);display:flex;align-items:center;gap:7px;padding:9px;border:1px solid #ffffff20;border-radius:17px;background:rgba(15,18,26,.94);box-shadow:0 12px 60px #0008;backdrop-filter:blur(25px);white-space:nowrap}#dock>button{padding:12px 15px;font-size:11px;color:#b8bdca;border-radius:9px}#dock button:hover{background:#ffffff0c}#dock button span{margin-left:10px;color:#858d9d}.packageSwitch{padding:4px;background:#070a10;border-radius:10px;display:flex;gap:3px}.packageSwitch button{padding:11px 17px;font-size:11px;border-radius:7px;color:#969bab}.packageSwitch button.active{background:#2a263b;color:#e1d7ff;box-shadow:inset 0 0 0 1px #bca5ff2c}.divider{height:22px;width:1px;background:var(--line);margin:0 6px}#viewMenu{position:fixed;bottom:104px;left:50%;transform:translateX(-50%);width:210px;border:1px solid var(--line);padding:8px;background:#121620f5;border-radius:12px;backdrop-filter:blur(20px)}#viewMenu button{display:block;width:100%;text-align:left;padding:11px 13px;font-size:12px;border-radius:6px}#viewMenu button:hover{background:#ffffff0c}#hotspots{position:fixed;inset:0;pointer-events:none}.hotspot{position:absolute;pointer-events:auto;width:25px;height:25px;transform:translate(-50%,-50%);border:1px solid #c7b5ff99;background:#181525c9;border-radius:50%;color:#e2d9ff;font-size:12px;box-shadow:0 0 15px #a183ff20;display:grid;place-items:center;padding:0}.hotspot:hover{background:#7562a2;scale:1.18}.hotspot.optional{border-color:#e4b47599;color:#f3c991}.hotspot.selected{background:#b49ae7;color:#131018}#hoverLabel{position:fixed;pointer-events:none;font-size:10px;background:#131720ee;border:1px solid #ffffff26;padding:8px 12px;border-radius:5px;display:none;z-index:8}#detail{position:fixed;right:28px;top:86px;bottom:110px;width:350px;overflow-y:auto;padding:30px 25px;background:#11151ef2;border:1px solid #ffffff1c;border-radius:16px;backdrop-filter:blur(24px);box-shadow:0 15px 60px #0007;z-index:15}.close{position:absolute;right:12px;top:10px;font-size:25px;width:32px;height:32px;color:#949aaa;border-radius:50%}.close:hover{background:#ffffff10}#detail h2{font-family:Manrope,Arial,sans-serif;letter-spacing:-.8px;font-size:27px;line-height:1.2;font-weight:500;margin:15px 0}#detail h3{font-size:10px;text-transform:uppercase;letter-spacing:1.3px;margin:23px 0 10px;color:#afb3c5}#detail p{font-size:12px;line-height:1.8;color:#9ea6b8}.detailStat{display:flex;gap:12px;align-items:center;padding:15px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:20px 0}.detailStat b{font-size:31px;font-weight:400;color:#c7b3ff}.detailStat span{font-size:11px;color:#9ca4b7}.path{border-left:2px solid #a68bd4;padding:3px 0 3px 13px;font-size:11px;color:#c1c5d1;line-height:1.9}.note{padding:12px;background:#ffffff04;border:1px solid #ffffff0a;border-radius:8px;font-size:10px!important;color:#a3a5b5!important}.mini{background:#2d263e;color:#d1bdf4;border:1px solid #a385cc33;padding:10px 13px;border-radius:7px;font-size:11px;margin:8px 6px 0 0}.mini:hover{background:#443655}.badge{display:inline-block;padding:5px 8px;border:1px solid #c7b1f033;border-radius:4px;font-size:8px;color:#beacdf;letter-spacing:1px}.badge.extra{color:#d6b17b;border-color:#d6b17b33}#modal{position:fixed;inset:0;background:#030509b9;backdrop-filter:blur(12px);z-index:30;display:grid;place-items:center;padding:24px}#modal>section{position:relative;width:min(880px,96vw);max-height:87vh;overflow:auto;background:#11151e;border:1px solid #ffffff22;border-radius:18px;padding:35px 38px;box-shadow:0 20px 100px #0008}#modal h2{font-family:Manrope,Arial,sans-serif;font-size:33px;font-weight:400;letter-spacing:-1px;margin:12px 0}#modal p{font-size:12px;color:#a0a9b9;line-height:1.8}.inventory{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:22px}.inventory button{text-align:left;background:#181e2a;border:1px solid #ffffff0b;border-radius:9px;padding:14px;display:grid;grid-template-columns:30px 1fr;gap:4px 10px}.inventory button:hover{background:#252b3b}.inventory b{grid-row:span 2;color:#b9a0ef;font-size:17px;font-weight:400}.inventory span{font-size:12px}.inventory small{font-size:9px;color:#7f899f}table{border-collapse:collapse;width:100%;margin:25px 0;font-size:12px}td,th{text-align:left;padding:13px 10px;border-bottom:1px solid #ffffff0d;line-height:1.6}th{color:#c9b5f7;font-weight:500}td:first-child{color:#929caf;width:33%}td{color:#d1d6e0}.modalActions{display:flex;flex-wrap:wrap;gap:8px}.sources{font-size:10px;line-height:1.8;color:#8794a9;overflow-wrap:anywhere}.sources li{margin-bottom:12px}#tourBar{position:fixed;left:50%;bottom:107px;transform:translateX(-50%);background:#181c29f5;border:1px solid #ffffff1c;border-radius:10px;display:flex;align-items:center;gap:15px;padding:8px 10px;z-index:20}#tourBar span{font-size:10px;color:#b5b9cc}#tourBar button{font-size:12px;padding:5px}#toast{position:fixed;top:85px;left:50%;transform:translateX(-50%);background:#181e2beb;border:1px solid #ffffff22;border-radius:10px;padding:13px 18px;font-size:12px;opacity:0;pointer-events:none;transition:opacity .3s;z-index:40}#loading{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#080a10;z-index:50;font-size:11px;color:#afb0c1;letter-spacing:2px;transition:opacity .5s}.loader{width:35px;height:35px;border:1px solid #ffffff15;border-top-color:#b6a0ed;border-radius:50%;animation:spin 1.5s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#fallback{position:fixed;top:22%;left:10%;max-width:600px}#fallback p{color:#a1a9bb;line-height:1.8}body.hasDetail #lighting{display:none}body.hasDetail #intro{opacity:0;visibility:hidden}#modal .close{position:sticky;float:right;top:0;margin-right:-20px}@media(min-width:1700px){#intro{left:6%;top:27%}}@media(max-width:900px){#intro{top:19%;left:25px;width:260px}#intro h1{font-size:43px}#intro p{font-size:11px}#identity{left:23px;top:23px}#dock{bottom:20px;gap:0;padding:6px}#dock>button{padding:12px 10px}.packageSwitch button{padding:10px}.divider{margin:0 3px}#lighting{right:22px;bottom:105px;width:165px}#detail{right:20px;width:320px}#sceneCaption{left:23px}}@media(max-width:600px){#identity{font-size:8px;letter-spacing:1.8px}#identity small{font-size:6px}.mark{font-size:25px}#utility{right:15px;top:22px}#utility button{width:30px;height:30px;font-size:17px}#intro{top:19%;left:22px;width:220px}#intro h1{font-size:39px}#intro p{font-size:10px}#intro .eyebrow{font-size:7px}#intro small{font-size:8px}#dock{width:calc(100% - 24px);bottom:14px;flex-wrap:wrap;justify-content:center;border-radius:13px;gap:2px}#dock>button{font-size:10px;padding:9px 11px}.packageSwitch{width:100%;justify-content:center}.packageSwitch button{flex:1}.divider{display:none}#lighting{bottom:135px;right:15px;width:147px;padding:11px}#lighting .swatches{gap:8px}#lighting .swatches button{width:18px;height:18px}#lighting input{width:85px}#sceneCaption{bottom:145px;left:17px;max-width:155px}#sceneCaption small{font-size:8px;line-height:1.7}#sceneCaption span{font-size:7px;letter-spacing:1px}#detail{top:75px;bottom:135px;right:12px;left:12px;width:auto;padding:23px}#detail h2{font-size:25px}#viewMenu{bottom:130px}#tourBar{bottom:129px;white-space:nowrap}body.hasDetail #tourBar{bottom:126px}#modal{padding:8px}#modal>section{padding:25px 18px;max-height:90vh}#modal h2{font-size:27px}.inventory{grid-template-columns:1fr}td,th{padding:9px 5px;font-size:10px}#toast{width:85%;font-size:10px;top:73px}.hotspot{width:23px;height:23px;font-size:10px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}.loader{animation:none}}

#identity{display:block}#identity img{display:block;width:170px;height:auto;max-height:58px;object-fit:contain;object-position:left center}#identity small{font-size:8px;letter-spacing:2px;margin-top:9px} @media(max-width:600px){#identity img{width:125px;max-height:43px}#identity small{font-size:6px;letter-spacing:1.5px}}

/* Each overlay reserves its own space; the intro and view caption never coexist. */
:root{--hud-bottom:112px;--panel-bottom:112px;--identity-bottom:120px}
#identity,#utility{z-index:12}
#dock{z-index:22;max-width:calc(100vw - 28px);bottom:max(20px,env(safe-area-inset-bottom))}
#intro{top:max(var(--identity-bottom),18vh);bottom:auto;max-height:calc(100dvh - max(var(--identity-bottom),18vh) - var(--hud-bottom) - 16px);overflow-y:auto;overscroll-behavior:contain;pointer-events:auto;padding-right:8px;scrollbar-width:thin}
#intro h1{font-size:clamp(34px,6.3vh,58px);margin:16px 0;line-height:1.1}
#intro p{margin:12px 0;font-size:12px;line-height:1.75}
#intro small{display:block;line-height:1.6;color:#a0a7b9}
#intro .introline{margin:6px 0 10px}
#intro .textbutton{padding:10px 0}
body.intro-open #sceneCaption,body.hasDetail #sceneCaption,body.menu-open #sceneCaption{display:none}
#sceneCaption{bottom:var(--hud-bottom);max-width:min(340px,calc(100vw - 250px));padding:12px 14px;background:#0b1019e8;border:1px solid #ffffff0f;border-radius:10px;z-index:10}
#sceneCaption span{line-height:1.5}#sceneCaption small{line-height:1.6;color:#a0a9bc}
#lighting{bottom:var(--hud-bottom);z-index:10}
#detail{top:max(var(--identity-bottom),86px);bottom:var(--panel-bottom);scrollbar-width:thin}
#tourBar,#viewMenu{bottom:var(--hud-bottom);max-width:calc(100vw - 32px)}
#tourBar{gap:10px;white-space:normal}#tourBar span{line-height:1.5;min-width:0}#tourBar button{flex-shrink:0}
#viewMenu{z-index:24;max-height:calc(100dvh - var(--hud-bottom) - var(--identity-bottom));overflow:auto}
#toast{top:var(--identity-bottom);max-width:calc(100vw - 36px);text-align:center;line-height:1.5}
@media(max-width:600px){
 :root{--hud-bottom:140px;--panel-bottom:140px;--identity-bottom:104px}
 #dock{bottom:max(14px,env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:calc(100% - 24px)}
 #dock .packageSwitch{grid-column:1/-1}#dock>button{white-space:normal;padding:10px 4px;line-height:1.4;min-width:0}#dock>button span{margin-left:3px}
 #intro{top:var(--identity-bottom);max-height:calc(100dvh - var(--identity-bottom) - var(--hud-bottom) - 16px);width:min(280px,calc(100vw - 44px));max-width:none}
 #intro h1{font-size:clamp(32px,6vh,42px)}
 body.intro-open #lighting{display:none}
 #sceneCaption{left:12px;max-width:calc(100vw - 185px);padding:10px}
 #sceneCaption small{font-size:9px}#sceneCaption span{font-size:8px}
 #detail{top:var(--identity-bottom);bottom:var(--panel-bottom)}
 body.hasDetail #tourBar{bottom:var(--hud-bottom)}
}
@media(max-height:550px){
 #intro{top:var(--identity-bottom)}#intro h1{font-size:30px;margin:10px 0}
 #intro p{font-size:11px;line-height:1.5}#intro .introline,#intro>small{display:none}
 #identity{top:16px}#identity img{width:120px;max-height:40px}#identity small{font-size:6px;margin-top:5px}
 #utility{top:16px}#sceneCaption small,#lighting>small{display:none}
 #lighting{padding:10px}#lighting .swatches{margin:10px 0}
}

body.menu-open #lighting{display:none}
