:root{--iv:#f0e9dd;--g:#d1aa50;--ser:var(--font-editorial);--sans:var(--font-interface)}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#120e0a;color:var(--iv);font-family:var(--sans)}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}#stage{position:fixed;inset:0}canvas{display:block;width:100%;height:100%;touch-action:none}
header{position:fixed;z-index:30;top:0;left:0;right:0;height:72px;padding:0 20px;display:flex;align-items:center;background:linear-gradient(#090604dd,#09060400);pointer-events:none}.logo,nav{pointer-events:auto}.logo{font:500 28px var(--ser);letter-spacing:.13em}.logo b{color:var(--g)}.logo small{display:block;font:500 6px var(--sans);letter-spacing:.24em}nav{margin-left:auto;display:flex;gap:22px}nav a{font-size:8px;letter-spacing:.17em}
.title{position:fixed;z-index:20;left:20px;top:92px;text-shadow:0 2px 14px #000}.title small{font-size:7px;letter-spacing:.21em}.title h1{font:400 38px/.9 var(--ser);margin:9px 0 5px;transition:opacity .35s ease}.title span{font-size:7px;letter-spacing:.18em;color:#d2b46b;transition:opacity .35s ease}.title.traveling h1,.title.traveling span{opacity:0}
.controls{position:fixed;z-index:20;left:18px;bottom:18px;background:#080604d5;border:1px solid #ffffff28;padding:9px 11px}.controls div{font-size:7px;letter-spacing:.13em;padding:5px 0}.controls b{display:inline-grid;place-items:center;width:19px;height:19px;border:1px solid #ffffff45;margin-right:7px;color:var(--g)}
.navigator{position:fixed;z-index:20;left:50%;transform:translateX(-50%);bottom:18px;display:none;background:#080604df;border:1px solid #ffffff25;padding:8px;gap:12px}.navigator button{display:flex;gap:7px;align-items:center;opacity:.7;border:1px solid transparent;background:none;color:var(--iv);padding:2px;text-align:left;cursor:pointer}.navigator button.active{opacity:1;border-color:var(--g)}.navigator button:focus-visible{outline:2px solid var(--iv);outline-offset:2px}.navigator img{width:42px;height:29px;object-fit:cover}.navigator span{font-size:6px}.navigator small{display:block;font:400 7px var(--ser);max-width:62px}
.direction-pad{position:fixed;z-index:25;right:16px;bottom:134px;display:grid;grid-template-columns:repeat(3,44px);grid-template-rows:repeat(3,44px);gap:2px;filter:drop-shadow(0 2px 8px #0008)}.direction-pad button{border:1px solid #d1aa5070;background:#080604dc;color:var(--iv);font:400 21px var(--sans);cursor:pointer}.direction-pad button:hover,.direction-pad button:focus-visible{background:#d1aa50;color:#120e0a;outline:2px solid var(--iv);outline-offset:2px}.direction-pad button:disabled{opacity:.35;cursor:not-allowed}.move-up{grid-column:2;grid-row:1}.move-left{grid-column:1;grid-row:2}.move-right{grid-column:3;grid-row:2}.move-down{grid-column:2;grid-row:3}
.map{position:fixed;z-index:20;right:16px;bottom:18px;width:126px;background:#080604dc;border:1px solid #ffffff30;padding:9px}.map h3{font:400 12px var(--ser);text-align:center;margin:0 0 7px}.plan{position:relative;height:78px;border:1px solid #ffffff3d}.dot{position:absolute;width:9px;height:9px;border:1px solid #bbb;border-radius:50%;transform:translate(-50%,-50%)}.dot.active{background:var(--g);border-color:var(--g);box-shadow:0 0 0 3px #d1aa5030}.d0{left:20%;top:18%}.d1{left:50%;top:50%}.d2{left:20%;top:50%}.d3{left:80%;top:50%}.d4{left:80%;top:18%}
.inspect{position:fixed;z-index:50;inset:0;background:#090705f7;display:none;grid-template-rows:auto 1fr auto;padding:18px}.inspect.open{display:grid}.ihead{display:flex}.iclose{margin-left:auto;border:0;background:none;font-size:34px}.iart{display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:none}.iart img{max-width:94vw;max-height:67vh;width:auto;height:auto;user-select:none;touch-action:none;will-change:transform}.info{max-width:820px;margin:auto;width:100%}.info h2{font:400 36px/.9 var(--ser);margin:7px 0}.meta,.icode{font-size:7px;letter-spacing:.16em}.actions{display:flex;gap:10px;margin-top:14px}.actions a{border:1px solid #ffffff48;padding:12px 14px;font-size:7px;letter-spacing:.16em}.actions .primary{background:var(--iv);color:#111}
.loading{position:fixed;z-index:60;inset:0;background:#120e0a;display:grid;place-items:center;transition:.5s}.loading.done{opacity:0;visibility:hidden}.loading div{text-align:center}.loading strong{display:block;font:400 42px var(--ser)}.loading span{font-size:7px;letter-spacing:.22em}
.exhibition-fallback:not([hidden]){position:fixed;z-index:70;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;background:#120e0a;padding:24px;text-align:center}.exhibition-fallback strong{font:400 32px var(--ser)}.exhibition-fallback a{border:1px solid #ffffff48;padding:12px 14px;font-size:9px;letter-spacing:.16em}
@media(max-width:799px){.navigator{display:flex;left:0;right:0;bottom:0;transform:none;gap:8px;padding:9px 12px calc(9px + env(safe-area-inset-bottom));width:100%;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--g) #080604}.navigator button{flex:0 0 122px;min-height:70px;scroll-snap-align:center;border:1px solid #ffffff2a;padding:5px;gap:7px;opacity:.72}.navigator button.active{border-color:var(--g);opacity:1}.navigator img{width:48px;height:48px;flex:none}.navigator span{font-size:8px;line-height:1.3}.navigator small{font-size:10px;max-width:58px;line-height:1.05;margin-top:4px}.controls{bottom:100px;left:12px;padding:6px 8px}.controls div{font-size:6px;padding:3px 0}.controls b{width:16px;height:16px;margin-right:5px}.map{display:none}.direction-pad{right:10px;bottom:110px}.title{top:96px}.title h1{font-size:34px}}
@media(min-width:800px){header{height:80px;padding:0 36px}.title{left:36px;top:105px}.title h1{font-size:50px}.controls{left:30px;bottom:28px}.map{right:28px;bottom:28px;width:150px}.plan{height:95px}.navigator{display:flex;bottom:28px}.direction-pad{right:34px;bottom:185px}.inspect{padding:28px}.info h2{font-size:48px}}
