:root{color-scheme:dark;font-family:Arial,"PingFang SC","Microsoft YaHei",sans-serif;color:#edf0eb;background:#080e15;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible{outline:2px solid #f5b52b;outline-offset:4px}#app{height:100dvh;min-height:560px;overflow:hidden;position:relative;background:radial-gradient(ellipse at 52% 45%,#233440,#0a111a 68%)}#scene{position:absolute;inset:0}canvas{display:block;touch-action:none}header{position:absolute;top:28px;left:32px;right:32px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.brand{display:flex;gap:11px;align-items:center}.badge{width:40px;height:44px;background:#f4b531;clip-path:polygon(0 0,100% 0,100% 74%,50% 100%,0 74%);color:#111923;font-size:30px;font-weight:900;text-align:center;padding-top:3px}.brand b{font-size:23px;font-style:italic;letter-spacing:.06em}.brand small{display:block;font-size:12px;color:#a2adb5;margin-top:3px;letter-spacing:.13em}.edition{font-size:12px;letter-spacing:.19em;color:#94a3af}.edition span{display:inline-block;background:#f2b32b;color:#141a20;padding:6px;margin-left:10px;font-weight:800}.intro{position:absolute;top:110px;left:34px;pointer-events:none}.eyebrow{color:#eab347;font-size:12px;letter-spacing:.18em}h1{font-size:28px;font-weight:500;margin:12px 0;color:#f0f1e9;letter-spacing:.03em}.intro p{font-size:14px;color:#9eadb8}.tools{position:absolute;top:105px;right:30px;display:flex;flex-direction:column;gap:8px}.tools button{background:#111d28cf;border:1px solid #40505c;border-radius:5px;padding:10px 14px;font-size:13px;min-height:40px}.tools button:hover,.tools button[aria-pressed=true]{border-color:#e9b53f;color:#f9c456}nav{position:absolute;bottom:58px;left:50%;transform:translateX(-50%);display:flex;gap:4px;border:1px solid #53606c75;background:#0b1520e8;border-radius:10px;padding:6px;backdrop-filter:blur(18px);white-space:nowrap;box-shadow:0 8px 40px #0006}nav button{padding:14px 20px;background:transparent;border:0;border-radius:6px;font-size:14px;color:#a9b6c1}nav button:hover{color:#ffe0a0;background:#263139}nav button.active{background:#edb331;color:#181c20;font-weight:700}footer{position:absolute;bottom:22px;left:32px;right:32px;display:flex;justify-content:space-between;color:#83929f;font-size:12px;letter-spacing:.04em;pointer-events:none}#labels{position:absolute;inset:0;pointer-events:none}.zone-label{position:absolute;left:0;top:0;background:#101e28dd;border:1px solid #87959a66;border-radius:5px;padding:7px 11px;white-space:nowrap;font-size:13px;pointer-events:auto;box-shadow:0 4px 20px #0004;transition:opacity .3s}.zone-label:before{content:"";display:inline-block;width:5px;height:5px;background:#f3b02d;margin-right:7px}.zone-label:hover{border-color:#f3b02d;color:#ffd986}.zone-label.selected{border-color:#efb431}#detail{position:absolute;top:112px;left:34px;max-width:285px;padding:24px;background:#0d1722e8;border:1px solid #47545e;border-left:3px solid #edb331;border-radius:6px;backdrop-filter:blur(16px)}#detail h2{font-size:25px;margin:12px 0}#detail-title{font-size:17px;color:#e2e7eb}#detail-desc{font-size:14px;line-height:1.8;color:#9dafbc}#back{background:transparent;color:#f3bc4b;border:0;padding:10px 0;font-size:14px}.track{width:210px;height:3px;background:#39414a;margin-top:12px;overflow:hidden}.track i{display:block;width:5%;height:100%;background:#efb331;transition:width .5s}#loading{position:absolute;inset:0;background:#0b1420ed;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;transition:opacity .6s;z-index:10}#loading.done{opacity:0;pointer-events:none}.loader-mark{font-size:54px;font-weight:900;font-style:italic;color:#efb331}#loading strong{font-size:20px;font-weight:500}#progress{font-size:14px;color:#9dafbc}#error{position:absolute;top:25%;left:10%;right:10%;padding:24px;background:#281814;border:1px solid #ecaf3f;z-index:11;line-height:1.8}body.focused .intro{display:none}@media(max-width:700px){header{top:19px;left:18px;right:18px}.edition{font-size:10px}.brand b{font-size:20px}.intro{left:20px;top:90px}h1{font-size:22px}.intro p{font-size:12px}.tools{top:auto;bottom:146px;right:16px;flex-direction:row;gap:5px}.tools button{font-size:12px;padding:9px}nav{bottom:55px;width:calc(100% - 24px);max-width:500px;display:grid;grid-template-columns:repeat(5,1fr);padding:5px;gap:2px}nav button{padding:13px 3px;font-size:12px;white-space:normal;line-height:1.5}footer{left:18px;right:18px;font-size:10px;bottom:22px}#detail{top:88px;left:18px;max-width:240px;padding:16px}#detail h2{font-size:22px;margin:9px 0}#detail-desc{margin-bottom:3px}.zone-label{font-size:11px;padding:6px 8px}.badge{width:33px;height:38px;font-size:26px}#app{min-height:580px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* BADGER brand UI: original logo, charcoal surfaces and orange-yellow accents. */
:root{--brand:#f4a91b;--ink:#111214;--panel:#16181bed;--muted:#b1b3b6;background:#0b0c0e;color:#f7f5ef}
#app{background:radial-gradient(ellipse at 52% 44%,#2b2d30,#101214 65%,#0b0c0e)}
header{top:22px;left:28px;right:28px;align-items:flex-start}.brand{gap:18px;align-items:center}.brand-logo{width:94px;height:94px;overflow:hidden;background:#fff;border:1px solid #fcfcfc;box-shadow:5px 5px 0 #f4a91b}.brand-logo img{display:block;width:100%;height:100%;object-fit:contain}.brand-copy{display:flex;flex-direction:column;gap:7px}.brand-copy b{font-size:20px;letter-spacing:.1em;font-style:normal;font-weight:600}.brand-copy small{order:-1;margin:0;font-size:11px;letter-spacing:.12em;color:var(--muted)}.edition{padding-top:8px;color:#b1b3b6;font-size:11px}.edition span{background:var(--brand);color:#151515}.intro{top:146px;left:30px}.eyebrow{color:var(--brand);font-size:12px;letter-spacing:.12em}h1{font-size:27px;font-weight:600;margin:9px 0}.intro p{color:var(--muted);font-size:14px}
.tools{top:110px;right:28px;gap:7px}.tools button{background:var(--panel);border-color:#4a4b4d;border-radius:2px;font-size:14px;min-height:42px;transition:background .2s,border-color .2s}.tools button:hover,.tools button[aria-pressed=true]{color:#171717;background:var(--brand);border-color:var(--brand)}
nav{border-color:#66615a;border-top:2px solid var(--brand);background:#121417f2;border-radius:3px;padding:5px;gap:4px;box-shadow:0 12px 35px #0008}nav button{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:110px;padding:10px 16px;border-radius:1px;color:#c5c6c8;font-size:14px;text-align:left}nav .nav-index{font-family:ui-monospace,monospace;font-size:11px;letter-spacing:.06em;color:#999b9e}nav button.active{background:var(--brand);color:#141414}nav button.active .nav-index{color:#513b12}nav button:hover:not(.active){background:#303134;color:#ffca6e}
.zone-label{background:#15171ae8;border-color:#6b655a;border-radius:2px;color:#f2f0eb}.zone-label:before{background:var(--brand);transform:rotate(45deg)}.zone-label.selected{border-color:var(--brand)}.zone-label:hover{color:#ffca6e;border-color:var(--brand)}
#detail{top:147px;left:30px;background:var(--panel);border-color:#5b5850;border-left:3px solid var(--brand);border-radius:2px}#detail-title{color:#eeeae3}#detail-desc{color:var(--muted)}#back{color:var(--brand);min-height:44px}button:focus-visible{outline-color:#ffca6e}footer{color:#a5a5a6}
#loading{background:#101113f5}.loader-mark{width:130px;height:130px;box-shadow:6px 6px 0 var(--brand);background:#fff;margin-bottom:8px}.loader-mark img{width:100%;height:100%;display:block;object-fit:contain}.track{background:#3c3c3d}.track i{background:var(--brand)}#progress{color:var(--muted)}
@media(max-width:700px){header{top:17px;left:18px;right:18px}.brand{gap:12px}.brand-logo{width:68px;height:68px;box-shadow:3px 3px 0 var(--brand)}.brand-copy b{font-size:16px;letter-spacing:.04em}.brand-copy small{font-size:9px;letter-spacing:.035em}.edition{font-size:9px;max-width:105px;text-align:right;line-height:1.5;padding-top:4px}.edition span{margin-left:5px;padding:4px}.intro{top:110px;left:20px}h1{font-size:23px}.intro p{font-size:13px}.tools{top:auto;bottom:150px;right:16px}.tools button{font-size:12px;padding:8px 10px}nav{bottom:52px;max-width:540px;gap:2px}nav button{min-width:0;align-items:center;gap:5px;text-align:center;font-size:12px;padding:9px 3px;min-height:68px}nav .nav-index{font-size:10px}#detail{top:110px;left:18px;max-width:250px;padding:17px}.zone-label{font-size:11px}footer{font-size:10px}}
@media(max-width:410px){.edition{max-width:76px;font-size:8px}.brand-copy small{font-size:8px}.brand-copy b{font-size:15px}nav button[data-zone="fm403"] span:last-child{font-size:10px;white-space:nowrap}}
/* Independent indoor visit and accessible case modal. */
body.inside .intro,body.inside #labels,body.inside #detail,body.inside .tools,body.inside nav,body.inside footer{display:none}body.inside .edition{visibility:hidden}body.inside header{z-index:2}.room-caption{position:absolute;left:28px;top:144px;pointer-events:none}.room-caption h1{font-size:24px}.room-caption p{color:#b9b4aa;font-size:13px}.room-actions{position:absolute;right:28px;top:28px;display:flex;gap:8px;z-index:3}.room-actions button,.case-nav button{padding:12px 16px;border:1px solid #726044;background:#161616ec;color:#ead7b4;border-radius:2px;min-height:44px}.room-actions #leave-room{background:#edaa2e;color:#19150c;border-color:#edaa2e}.case-nav{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);display:flex;gap:8px;z-index:3;white-space:nowrap}.case-nav button:hover{border-color:#f4a91b;color:#f4a91b}#case-labels{position:absolute;inset:0;pointer-events:none}.case-hotspot{position:absolute;left:0;top:0;pointer-events:auto;background:#171614ed;color:#ffcc76;border:1px solid #b88a45;border-radius:2px;padding:9px 12px;font-size:13px;min-height:40px;white-space:nowrap}.case-hotspot:hover{background:#eca62b;color:#141414}#portal-veil{position:absolute;inset:0;background:radial-gradient(ellipse,#3b2b15,#100f0d 70%);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;z-index:20;transition:opacity .2s;color:#edbe72;letter-spacing:.12em}#portal-veil.visible{opacity:1;pointer-events:auto}#case-dialog{width:min(520px,calc(100% - 32px));max-height:85dvh;overflow:auto;background:#191815;color:#eee8dc;border:1px solid #907143;border-top:3px solid #ecab38;padding:32px;box-shadow:0 20px 100px #000b}#case-dialog::backdrop{background:#0009;backdrop-filter:blur(5px)}#case-close{position:absolute;right:10px;top:8px;background:transparent;border:0;color:#d7c9b1;font-size:28px;width:44px;height:44px}#case-dialog h2{font-size:26px;margin:16px 0 10px}#case-client{font-size:17px;color:#e2d5bd}#case-type{font-size:12px;color:#c59a54}.case-placeholder{height:150px;border:1px dashed #66543a;margin:24px 0;display:flex;flex-direction:column;gap:10px;align-items:center;justify-content:center;background:repeating-linear-gradient(135deg,#252017 0px,#252017 1px,#1c1a16 1px,#1c1a16 16px);color:#c9b58e}.case-placeholder small{font-size:12px;color:#968a76}#case-description{line-height:1.8;color:#c1b9ab;font-size:14px}.case-footnote{font-size:12px;color:#8e887d;border-top:1px solid #3c362b;padding-top:16px}@media(max-width:700px){body.inside .brand-logo{width:48px;height:48px}body.inside .brand-copy{display:none}.room-actions{top:20px;right:16px;gap:6px}.room-actions button{font-size:12px;padding:9px 11px}.room-caption{left:18px;top:95px}.room-caption h1{font-size:22px}.case-nav{bottom:22px;gap:5px;width:calc(100% - 32px)}.case-nav button{flex:1;padding:10px 4px;font-size:12px}.case-hotspot{font-size:10px;padding:7px 6px;min-height:36px}#case-dialog{padding:25px}#case-dialog h2{font-size:22px}}

#portal-veil{visibility:hidden}#portal-veil.visible{visibility:visible}.room-caption{top:auto;bottom:98px}.room-caption h1{font-size:20px}.room-caption p{max-width:155px;line-height:1.6}@media(max-width:700px){.room-caption{top:95px;bottom:auto}.room-caption p{max-width:none}.room-caption h1{font-size:22px}}

/* Keep the world visible while indoor detail loads. */
#portal-veil{inset:auto;top:130px;left:50%;transform:translateX(-50%);padding:12px 20px;background:#191713ec;border:1px solid #856332;box-shadow:0 8px 30px #0005;font-size:13px;white-space:nowrap;transition:opacity .18s}#portal-veil.visible{pointer-events:none}.room-caption{bottom:26px}.room-caption p{max-width:none}@media(max-width:700px){.room-caption{top:95px;bottom:auto}#portal-veil{top:200px}}
/* The physical factory entrance leads down into the existing scene. */
#factory-ui{position:absolute;inset:0;pointer-events:none;z-index:5}
.factory-caption{position:absolute;left:28px;bottom:38px;max-width:530px;padding:24px 26px;background:linear-gradient(105deg,rgba(16,17,15,.91),rgba(16,17,15,.55));border-left:2px solid #e4b34f;pointer-events:auto}
.factory-caption h1{font-size:clamp(22px,3vw,34px);line-height:1.35;margin:12px 0;max-width:460px}.factory-caption p{font-size:14px;color:#d4cebc;margin:0 0 20px}
#enter-base{padding:14px 20px;border:1px solid #e5b553;color:#191916;background:#e5b553;font-weight:700;cursor:pointer}
#factory-door{position:absolute;pointer-events:auto;transform:translate(-50%,-100%);white-space:nowrap;padding:9px 13px;background:rgba(29,26,18,.9);border:1px solid #e4b34f;color:#f3cf7e;cursor:pointer;box-shadow:0 0 15px #dfa22a20}
#return-factory{position:absolute;right:24px;top:100px;z-index:6;padding:10px 13px;background:#171814dd;border:1px solid #746448;color:#e3d6b6;cursor:pointer}
#entry-transition{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);padding:12px 20px;z-index:12;background:#161813dd;border:1px solid #655b43;color:#f0d6a0;white-space:nowrap}
body:not(.factory-mode) #factory-ui{display:none}.factory-mode .intro,.factory-mode #labels,.factory-mode .tools,.factory-mode nav,.factory-mode footer,.factory-mode #detail{display:none!important}
.descending .factory-caption,.descending #factory-door{display:none!important}.inside #return-factory{display:none}
@media(max-width:700px){.factory-caption{left:18px;right:18px;bottom:24px;padding:18px;max-width:none}.factory-caption h1{font-size:22px}.factory-caption p{font-size:12px}#return-factory{top:82px;right:16px;font-size:12px}}
