:root{color-scheme:dark;--bg:#101a22;--panel:#172730;--ink:#e9e6da;--muted:#a4b7bb;--accent:#b5d5c4;--line:#3d5158;--danger:#d98b88;font-family:"Yu Gothic UI","Meiryo",sans-serif;font-size:16px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);min-width:300px;background-image:radial-gradient(ellipse at 50% 30%,#23353d 0,transparent 65%)}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{min-height:46px;padding:11px 20px;border:1px solid #607775;background:#1d3039;color:var(--ink);cursor:pointer;border-radius:2px;transition:background .15s,border-color .15s}button:hover{background:#334b52;border-color:var(--accent)}button:disabled{opacity:.45;cursor:default}button.primary{color:#172a2a;background:var(--accent);border-color:var(--accent)}button.primary:hover{background:#d2e8d9}button.exit{border-left:4px solid var(--accent);background:#24443f}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #f3d7a0;outline-offset:4px}a{color:inherit}.shell{max-width:1280px;margin:auto;padding:0 44px}header{display:flex;gap:24px;align-items:center;padding:27px 0;border-bottom:1px solid var(--line)}.brand{text-decoration:none;font-family:Georgia,serif;font-size:36px;letter-spacing:-4px}.brand span{font-size:25px}.brand .brand-dot{font-size:38px;color:var(--accent);margin-left:5px}.header-title{font-size:14px;letter-spacing:.1em}.header-title small{display:block;font-size:9px;letter-spacing:.18em;color:var(--muted);margin-top:6px}header>button{margin-left:auto;background:transparent;font-size:13px}nav{display:flex;gap:0;align-items:center;justify-content:center;padding:24px 0;color:var(--muted);font-size:12px;letter-spacing:.13em}nav span{display:flex;align-items:center}nav span+span:before{content:"";width:40px;height:1px;background:var(--line);margin:0 18px}nav .active{color:var(--accent)}nav .active b{border-bottom:2px solid var(--accent);padding-bottom:5px}nav b{font-weight:400}main{outline:none}.eyebrow{font-size:11px;letter-spacing:.23em;color:var(--accent);margin:0 0 16px}.scene-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:7px 0 18px}h1,h2,h3,p{margin-top:0}h1,h2{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-weight:400;letter-spacing:.12em}h1{font-size:clamp(34px,5vw,62px);line-height:1.4}h2{font-size:27px;margin-bottom:0}p{line-height:1.9}.subtle{color:var(--muted);font-size:13px}.scene-meta{font-size:11px;color:var(--muted);letter-spacing:.13em;text-align:right}.title-layout{position:relative;min-height:520px;overflow:hidden;border:1px solid var(--line);background:#162831}.title-content{position:relative;z-index:3;width:57%;padding:48px 0 40px 42px;background:linear-gradient(90deg,#162831 75%,transparent)}.title-content>p{font-size:14px;color:#bac7c5;max-width:420px}.title-content h1{margin-bottom:16px}.title-room{position:absolute;inset:0 0 0 30%;opacity:.65}.title-room .room{height:100%;border:0}.title-content .settings{background:#14232bd9}.tag{display:inline-block;font-size:10px;letter-spacing:.15em;border:1px solid var(--line);padding:7px 10px;margin-bottom:22px}.settings{display:flex;flex-wrap:wrap;gap:12px 22px;margin:20px 0;font-size:13px}.settings label{display:flex;gap:8px;align-items:center;min-height:44px}.settings select{background:#12232b;border:1px solid var(--line);color:var(--ink);padding:8px;max-width:100%}.settings input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent)}.settings input[type=range]{width:95px;accent-color:var(--accent)}.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.room{height:clamp(320px,41vw,480px);position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 0,#7090953d,transparent 68%),#283c44;border:1px solid #586c70;isolation:isolate}.room:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,#12242c 5%,#29414c 70%);clip-path:polygon(0 0,25% 20%,25% 72%,0 100%);z-index:1}.room:after{content:"";position:absolute;inset:0;background:linear-gradient(250deg,#12242c,#34505a);clip-path:polygon(100% 0,75% 20%,75% 72%,100% 100%);z-index:1}.back-wall{position:absolute;inset:20% 25% 28%;border:1px solid #7f969b55;background:linear-gradient(#3b535b,#273f47);box-shadow:0 0 70px #b8d9ce0c}.floor{position:absolute;left:-30%;width:160%;height:66%;bottom:-30%;transform:perspective(340px) rotateX(54deg);transform-origin:50% 0;background:repeating-linear-gradient(90deg,transparent 0 119px,#93aea520 120px 121px),repeating-linear-gradient(0deg,#20343c 0 49px,#91aaa52a 50px 51px)}.door{position:absolute;left:45%;top:29%;width:10%;height:43%;background:#102329;border:2px solid #6a898a;box-shadow:0 0 14px #aacdc31a}.door:after{content:"◁";position:absolute;top:45%;left:35%;color:var(--accent);font-size:20px}.wall-label{position:absolute;top:25%;left:29%;font-size:9px;letter-spacing:.15em;color:#c7d7cf;z-index:2}.ceiling-light{position:absolute;top:9%;left:35%;width:30%;height:2px;background:#d1e4d3;box-shadow:0 4px 35px 7px #d2ecd127}.exhibit{position:absolute;z-index:3;bottom:14%;width:22%;height:67%;padding:0;border:0;background:none!important;border-radius:0;min-height:0}.exhibit.left{left:16%}.exhibit.right{right:16%}.pedestal{position:absolute;bottom:0;left:5%;width:90%;height:16%;background:linear-gradient(110deg,#9baca7,#60797c);clip-path:polygon(12% 0,88% 0,100% 22%,100% 100%,0 100%,0 22%)}.position-mark{position:absolute;bottom:14%;height:9%;left:20%;width:60%;border:1px dashed #c9e0bca1;transform:skewX(-18deg)}.human{position:absolute;left:32%;bottom:16%;width:36%;height:73%;transition:transform 1.2s ease;filter:drop-shadow(8px 8px 7px #08141977)}.human:before{content:"";position:absolute;width:44%;aspect-ratio:1;top:0;left:28%;background:linear-gradient(100deg,#9bb0ab,#4e696d);border-radius:46% 46% 43% 43%}.human:after{content:"";position:absolute;inset:21% 3% 0;background:linear-gradient(100deg,#819c98,#39545c);clip-path:polygon(30% 0,70% 0,89% 12%,100% 53%,85% 58%,73% 28%,79% 65%,70% 100%,52% 100%,50% 69%,46% 100%,29% 100%,22% 64%,26% 26%,12% 60%,0 54%,12% 13%)}.exhibit.displaced .human{transform:translateX(60%)}.exhibit-label{position:absolute;bottom:-30px;left:0;right:0;text-align:center;font-size:10px;letter-spacing:.18em;color:#bacac8}.girl{position:absolute;z-index:4;width:90px;height:180px;bottom:24%;right:30%;opacity:.85;transform-origin:bottom;pointer-events:none;filter:drop-shadow(0 0 18px #19202c)}.girl:before{content:"";position:absolute;left:24%;top:0;width:54%;height:37%;border-radius:48% 48% 20% 20%;background:#080f17}.girl:after{content:"";position:absolute;inset:28% 0 0;background:#080f17;clip-path:polygon(34% 0,67% 0,73% 18%,100% 68%,69% 72%,63% 100%,51% 100%,49% 73%,42% 100%,31% 100%,30% 73%,0 70%,27% 18%)}.girl.far{transform:scale(.5)}.girl.mid{transform:scale(1.15);right:17%}.girl.near{transform:scale(2.1);right:8%;opacity:.8}.guide{position:absolute;bottom:14px;right:16px;z-index:5;max-width:260px;padding:12px 18px;border:1px solid #738c8d55;background:#13232ce8;font-size:12px;line-height:1.7}.guide:before{content:"";position:absolute;right:8px;top:-24px;width:14px;height:26px;border-radius:50% 50% 10% 10%;background:#08121b}.room-caption{position:absolute;top:16px;left:18px;z-index:5;color:#ced9d3;font-size:10px;letter-spacing:.18em}.control-bar{border:1px solid var(--line);border-top:0;display:flex;justify-content:space-between;gap:24px;align-items:center;padding:22px 24px;background:#172830;min-height:110px}.control-copy{flex:1}.control-copy p{margin:0;font-size:14px}.control-copy small{display:block;color:var(--muted);margin-top:8px;font-size:11px}.control-bar .actions{justify-content:flex-end}.notice{font-size:12px;color:var(--muted);margin:18px 0;line-height:1.9}.owl{display:inline-grid;place-content:center;width:30px;height:30px;border:1px solid #8daca2;border-radius:50%;margin-right:10px;color:var(--accent)}footer{display:flex;justify-content:space-between;gap:15px;color:#849da2;font-size:9px;letter-spacing:.14em;padding:25px 0}.maintenance{position:absolute;left:70%;bottom:20%;z-index:6;font-size:12px;background:#20323c;overflow:hidden}.maintenance i{position:absolute;inset:0;background:#a8d7c455;transform:scaleX(var(--hold,0));transform-origin:left;pointer-events:none}.maintenance span{position:relative}.terminal{position:relative;z-index:5;margin:30px auto;width:min(560px,90%);background:#0d1d23;border:1px solid #7c9c92;padding:28px;box-shadow:0 10px 80px #0007}.terminal h3{font-size:17px;font-weight:400;color:var(--accent)}.terminal label{display:block;font-size:12px;margin:20px 0 8px}.terminal input{width:100%;background:#162b32;border:1px solid #5d797b;color:var(--ink);padding:13px;margin-bottom:15px}.sticky{display:inline-block;background:#d5ccaa;color:#34413e;padding:12px 18px;transform:rotate(-2deg);font-size:12px}.terminal p{font-size:13px}.screening-text{position:absolute;z-index:6;top:10%;left:8%;right:8%;text-align:center;padding:15px;background:#11232ce6;font-size:clamp(14px,2vw,22px);line-height:1.9}.released .human{animation:leave 3s ease-in forwards}.released .girl{opacity:.9}.hostile .room{border-color:#945c5c;background-color:#202c35}.hostile .room:before{filter:brightness(.65)}.hostile .room:after{filter:brightness(.7)}.hostile .room-caption{color:#d0a4a2}.noise{position:absolute;inset:0;z-index:8;pointer-events:none;opacity:.12;background:repeating-linear-gradient(0deg,transparent 0 4px,#aac8c4 5px 6px);mix-blend-mode:screen}.glitch{animation:glitch .6s ease-out}.playback{position:absolute;z-index:7;top:12%;left:22%;width:56%;padding:0 24px 28px;background:#16212bf5;border:1px solid #c57f7b;box-shadow:0 20px 70px #0008}.playback.front{left:27%;top:20%;z-index:8;transform:rotate(1deg)}.playback .window-bar{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #754e54;font-size:10px;letter-spacing:.1em;margin:0 -24px 18px;padding:0 0 0 16px}.window-bar button{border:0;border-left:1px solid #754e54;background:transparent;font-size:22px;min-width:48px}.playback h3{font-family:serif;font-weight:400;font-size:23px;margin:24px 0 12px}.play-icon{font-size:35px;color:#9d969c;margin-bottom:12px}.fake{background:#61434c;border-color:#c28a8d}.record{position:absolute;z-index:7;inset:9% 15%;padding:20px;background:#c5c5b5;color:#213438;box-shadow:0 10px 80px #0009;display:flex;flex-direction:column;align-items:center;justify-content:space-between}.record small{font-size:10px;letter-spacing:.15em}.record .archived-person{height:90px;width:100%;position:relative}.archived-person .human{height:100%;width:40px;left:calc(50% - 20px);bottom:0}.letter{position:relative;background:#e8e1c7;border:1px solid #8a8e80;padding:13px;font-family:serif;font-size:14px;margin:-25px 0 10px;text-align:center}.record button{background:#334b4d;width:100%}.temptation{position:absolute;z-index:6;inset:20% 13% auto;text-align:center}.temptation h3{font-family:serif;font-weight:400;font-size:clamp(20px,3vw,38px);text-shadow:2px 0 #b6606899}.temptation small{display:block;margin-top:14px;color:#c3a9ab}.chase-info{display:flex;justify-content:space-between;margin:12px 0;font-size:12px;color:var(--muted)}.timer{font-variant-numeric:tabular-nums;color:var(--accent)}.urgent .room{box-shadow:inset 0 0 0 2px #b86c6c}.urgent .timer{color:#e8a1a1}.sweep{position:absolute;z-index:9;width:100%;height:100%;inset:0;pointer-events:none;animation:sweep .8s ease-out forwards}.sweep .girl{transform:scale(2.5)}.end-card{text-align:center;padding:56px 24px;border:1px solid var(--line);background:radial-gradient(ellipse at top,#344e49,#17262e 70%)}.end-card h1{font-size:clamp(35px,6vw,66px);margin:24px 0}.end-card .actions{justify-content:center}.end-count{font-family:Georgia,serif;font-size:52px;color:var(--accent);margin:24px}.overlay{position:fixed;inset:0;background:#071017db;z-index:30;display:grid;place-items:center;padding:20px;backdrop-filter:blur(8px)}.dialog{background:#1a2c34;border:1px solid #698282;width:min(580px,100%);max-height:90dvh;overflow:auto;padding:30px}.dialog h2{margin-bottom:20px}.dialog p{font-size:14px}.dialog .settings{flex-direction:column}.dialog .actions{margin-top:24px}.failure .dialog{border-color:#b87e7e}.failure{animation:fade .4s ease-out}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}#debug{position:fixed;bottom:8px;left:8px;z-index:40;max-width:min(410px,95vw);padding:10px;background:#071218f5;border:1px solid #618a7c;font:11px monospace}#debug .actions{gap:4px}#debug button{padding:4px 8px;min-height:32px;font:11px sans-serif}#debug p{margin:8px 0}body.reduced *,body.reduced *:before,body.reduced *:after{animation:none!important;transition:none!important}.reduced .sweep{display:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}@keyframes leave{to{transform:translateX(150px);opacity:0}}@keyframes glitch{25%{transform:translate(2px,1px)}60%{transform:translate(-2px,0)}to{transform:none}}@keyframes sweep{from{transform:translateX(-90%);opacity:.9}to{transform:translateX(90%);opacity:0}}@keyframes fade{from{background:#000}to{background:#071017db}}@media(max-width:800px){.shell{padding:0 22px}.title-content{width:75%;padding:32px}.title-room{left:15%}nav span+span:before{width:16px;margin:0 9px}.control-bar{padding:18px;align-items:stretch;flex-direction:column;gap:16px}.control-bar .actions{justify-content:flex-start}.playback{left:12%;width:72%}.playback.front{left:17%}.scene-meta{font-size:10px}.room{height:390px}}@media(max-width:480px){.shell{padding:0 14px}header{padding:18px 0;gap:13px}.header-title{font-size:11px}.header-title small{font-size:7px;letter-spacing:.04em}header>button{padding:9px;font-size:11px}.brand{font-size:29px}.brand span{font-size:20px}nav{font-size:10px;padding:20px 0;letter-spacing:0}nav span+span:before{width:10px;margin:0 7px}.title-content{width:100%;padding:26px 22px;background:linear-gradient(90deg,#162831f5,#162831d9)}.title-content h1{font-size:38px}.title-room{left:0}.title-layout{min-height:590px}.scene-head{gap:8px}h2{font-size:22px}.scene-meta{max-width:110px;line-height:1.7}.room{height:360px}.girl.near{transform:scale(1.6);right:6%}.playback{left:5%;width:84%;padding:0 18px 22px}.playback.front{left:10%;top:22%}.playback .window-bar{margin:0 -18px 16px}.record{inset:9% 7%}.guide{max-width:220px;font-size:11px}.dialog{padding:22px}.terminal{padding:18px;margin:18px auto}.terminal p{line-height:1.6}.actions>button{flex-grow:1}.temptation{inset:22% 5% auto}footer{font-size:8px;letter-spacing:.02em}.exhibit-label{font-size:8px}.control-copy p{font-size:13px}}
.room.terminal-room{height:auto;min-height:510px}.terminal-room:before,.terminal-room:after{pointer-events:none}.terminal-room .terminal{margin:30px auto}

/* Six exhibits: odd IDs on the left, even IDs on the right, rear to front. */
.exhibit.slot{bottom:auto;min-width:48px;min-height:60px;touch-action:manipulation}
.slot.row-back{top:24%;width:16%;height:18%;z-index:2}
.slot.row-middle{top:44%;width:20%;height:18%;z-index:3}
.slot.row-front{top:64%;width:25%;height:21%;z-index:4}
.slot.row-back.left{left:27%}.slot.row-back.right{right:27%}
.slot.row-middle.left{left:19%}.slot.row-middle.right{right:19%}
.slot.row-front.left{left:8%}.slot.row-front.right{right:8%}
.slot .pedestal{bottom:20%;height:16%}
.slot .human{bottom:36%;height:64%;width:30%;left:35%}
.slot .position-mark{bottom:32%;height:9%}
.slot .exhibit-label{bottom:0;font-size:11px;line-height:18px;letter-spacing:.1em;color:#e1e9de;background:#12232bd9;border:1px solid #718b8455;left:12%;right:12%}
button.slot:hover{outline:1px solid #b5d5c499;outline-offset:3px}
.vacant .slot .human{display:none}
.vacant .slot .position-mark{opacity:.35}
.room .girl.far{right:43%;bottom:35%}
.room .maintenance{left:auto;right:5%;bottom:1%;padding:8px 14px;min-height:46px;font-size:12px;z-index:6;border-color:#a6c5b7}
.room .maintenance:after{content:"";position:absolute;right:35%;top:0;width:1px;height:5px;background:var(--accent)}
@media(max-width:480px){.slot .exhibit-label{font-size:10px}.room .maintenance{right:3%;font-size:11px;padding:8px 11px}}

/* Reference composition: generous center aisle and a strong foreground. */
.room:not(.terminal-room){height:clamp(420px,47vw,580px);background:radial-gradient(ellipse at 19% 8%,#b58e536b,transparent 35%),radial-gradient(ellipse at 81% 8%,#b58e5355,transparent 35%),linear-gradient(#655647,#393c3c)}
.room:not(.terminal-room):before{background:linear-gradient(110deg,#8a6b4b,#544b40);clip-path:polygon(0 0,33% 22%,33% 68%,0 100%)}
.room:not(.terminal-room):after{background:linear-gradient(250deg,#8a6b4b,#544b40);clip-path:polygon(100% 0,67% 22%,67% 68%,100% 100%)}
.room .back-wall{inset:22% 33% 30%;background:radial-gradient(ellipse at 50% 45%,#a2845b,#5b5143);border-color:#c4a67d55}
.room .door{top:39%;height:31%;left:46%;width:8%;background:#252820;border-color:#a98d64;box-shadow:0 0 26px #d4b27a44}
.room .floor{background:repeating-linear-gradient(90deg,transparent 0 119px,#e1bf8720 120px 121px),repeating-linear-gradient(0deg,#514c40 0 49px,#c0a67c2a 50px 51px)}
.room .ceiling-light{background:#f0d2a3;box-shadow:0 4px 40px 9px #e9b8753a}
.exhibit.slot{min-height:64px;transition:filter .2s}
.slot.row-back{top:29%;width:12%;height:40%;z-index:2}
.slot.row-middle{top:21%;width:18%;height:59%;z-index:3}
.slot.row-front{top:8%;width:24%;height:79%;z-index:4}
.slot.row-back.left{left:32%}.slot.row-back.right{right:32%}
.slot.row-middle.left{left:20%}.slot.row-middle.right{right:20%}
.slot.row-front.left{left:0}.slot.row-front.right{right:0}
.slot .pedestal{bottom:10%;height:9%;background:linear-gradient(120deg,#b39d79,#766750);box-shadow:0 0 14px #e6b96722}
.slot .position-mark{bottom:18%;border-color:#eed297b3}
.slot .human{height:73%;bottom:19%;width:35%;left:32.5%}
.slot .exhibit-label{bottom:0;left:8%;right:8%;color:#ede1cb;background:#282d2de8;border-color:#bba27d88;font-size:11px;line-height:1.5;padding:3px 0}
.exhibit-label small{display:block;font-size:10px;letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.name-art{background-image:url('assets/name-exhibits.png');background-size:300% 200%;background-repeat:no-repeat;background-color:#62513e}
.art-1{background-position:0% 0%}.art-2{background-position:50% 0%}.art-3{background-position:100% 0%}
.art-4{background-position:0% 100%}.art-5{background-position:50% 100%}.art-6{background-position:100% 100%}
.exhibit-art{position:absolute;left:6%;width:88%;aspect-ratio:1;bottom:20%;border:1px solid #c2a06a77;box-shadow:0 8px 24px #17130e66;transition:transform 1.2s ease}
.displaced .exhibit-art{transform:translateX(6%)}
button.slot:hover{outline:none;filter:brightness(1.15)}
button.slot:hover .pedestal{background:linear-gradient(120deg,#ead2a3,#b29465)}
button.slot:focus-visible{outline:3px solid #f3d7a0;outline-offset:2px}
.vacant .slot .exhibit-art{display:none}
.released .exhibit-art{animation:leave 3s ease-in forwards}
.hostile .room:not(.terminal-room){background:#252a2d}
.hostile .room:before,.hostile .room:after{filter:brightness(.5)}
.room .girl.far{right:44%;bottom:31%;opacity:.55}
.front-gallery{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(220px,.7fr);gap:32px;align-items:center;position:relative;min-height:400px;padding:28px 40px;background:radial-gradient(ellipse at 30% 20%,#907044,#292b29 75%);border:1px solid #a48b66}
.front-number{position:absolute;top:18px;left:20px;font-size:12px;letter-spacing:.16em;color:#f4e4c5;z-index:2}
.front-stage{position:relative;width:min(100%,470px);margin:auto;padding-bottom:20px}
.front-art{width:100%;aspect-ratio:1;border:1px solid #b99a6b88;box-shadow:0 16px 45px #100d0999;transition:transform 1.2s}
.front-gallery.displaced .front-art{transform:translateX(3%)}
.front-position{position:absolute;bottom:8px;left:8%;width:84%;height:6px;border:1px dashed #f0d8a2;transform:skewX(-15deg)}
.front-description h3{font-family:"Yu Mincho",serif;font-size:26px;font-weight:400;letter-spacing:.12em;line-height:1.6}
.front-description p{font-size:14px;color:#e1d6c0;line-height:1.9}
.front-navigation{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:18px 0;color:var(--muted);font-size:12px}
.front-placeholder{position:relative;height:360px;background:linear-gradient(#716f60,#3c504f);border:1px solid #b0ba9d}
.front-placeholder .human{height:80%;width:30%;left:35%;bottom:8%}

/* Spatial room: world coordinates, perspective camera, no flat-room zoom. */
.room.walk-room{height:clamp(480px,65vh,680px);background:radial-gradient(ellipse at center,#645343,#252c30);perspective:700px;perspective-origin:50% 50%;touch-action:none;cursor:grab;isolation:auto}
.room.walk-room:active{cursor:grabbing}
.room.walk-room:before,.room.walk-room:after{display:none}
.walk-world{position:absolute;left:50%;top:50%;width:0;height:0;transform-style:preserve-3d;will-change:transform;pointer-events:none}
.walk-world *{transform-style:preserve-3d;box-sizing:border-box}
.walk-floor{position:absolute;left:-700px;top:0;width:1400px;height:2060px;transform-origin:50% 0;transform:translateZ(-1800px) rotateX(90deg);background:repeating-linear-gradient(90deg,transparent 0 139px,#c4ac7933 140px 142px),repeating-linear-gradient(0deg,#514c40 0 139px,#a48d673d 140px 142px);border:2px solid #baa075}
.walk-ceiling{position:absolute;left:-700px;top:-380px;width:1400px;height:2060px;transform-origin:50% 0;transform:translateZ(-1800px) rotateX(90deg);background:repeating-linear-gradient(90deg,#5b5044 0 345px,#d6b681 346px 350px)}
.walk-wall{position:absolute;top:-380px;height:380px;border:2px solid #b2956c66;background:radial-gradient(ellipse at 50% 20%,#c19c65,#79644a 45%,#4b453b);backface-visibility:hidden}
.walk-back,.walk-front{left:-700px;width:1400px;transform:translateZ(-1800px)}
.walk-front{transform:translateZ(260px) rotateY(180deg)}
.walk-left,.walk-right{left:-1030px;width:2060px}
.walk-left{transform:translate3d(-700px,0,-770px) rotateY(90deg)}
.walk-right{transform:translate3d(700px,0,-770px) rotateY(-90deg)}
.walk-wall>span{position:absolute;top:55px;left:0;right:0;text-align:center;font-family:Georgia,serif;font-size:42px;letter-spacing:.13em;color:#ead2aa}
.walk-door{position:absolute;width:160px;height:240px;bottom:0;left:calc(50% - 80px);border:12px solid #6a5032;background:linear-gradient(#b99a6b,#373c34);box-shadow:0 0 55px #eac68f55}
.walk-door small{position:absolute;top:-45px;width:200px;left:-30px;text-align:center;font-size:18px;color:#f2dcad}
.walk-world .walk-exhibit.exhibit.slot{position:absolute;left:-110px;right:auto;top:-290px;bottom:auto;width:220px;height:290px;min-width:0;min-height:0;padding:0;border:0;background:none!important;transform:translate3d(var(--exhibit-x),0,var(--exhibit-z)) rotateY(var(--exhibit-angle));transform-origin:50% 100%;z-index:auto;pointer-events:auto;cursor:pointer;transition:none;filter:none}
.walk-world .walk-exhibit .exhibit-art{left:5%;bottom:26%;width:90%;aspect-ratio:1;box-shadow:0 0 28px #f0c27d30;border:2px solid #b79a69;background-color:#7e6344;backface-visibility:visible}
.walk-world .walk-exhibit .human{width:35%;height:72%;left:32.5%;bottom:26%;filter:none}
.walk-world .walk-exhibit .exhibit-label{bottom:0;left:4%;right:4%;font-size:15px;line-height:1.6;letter-spacing:.05em;padding:6px;background:#ede4d0;color:#283033;border:2px solid #85785d;transform:translateZ(4px)}
.walk-exhibit .exhibit-label small{font-size:13px}
.walk-world .walk-exhibit .position-mark{bottom:22%;height:7%;left:0;width:100%;border:2px dashed #e4c88c;transform:rotateX(45deg)}
.walk-plinth{position:absolute;left:-10%;width:120%;height:24px;bottom:19%;background:linear-gradient(100deg,#b8a17b,#756348);border-top:4px solid #f3d99b;box-shadow:0 0 28px #dfb16633;transform:translateZ(3px)}
.walk-world .walk-exhibit:hover .exhibit-art,.walk-world .walk-exhibit:focus-visible .exhibit-art{border-color:#fff0b5;box-shadow:0 0 32px #e6bb6c88}
.walk-world .walk-exhibit:hover{outline:none}
.walk-service{position:absolute;width:0;height:0;transform:translate3d(510px,-40px,-170px) rotateY(-28deg);pointer-events:auto}
.walk-service .walk-maintenance.maintenance{position:absolute;left:-75px;right:auto;top:-50px;bottom:auto;width:150px;height:65px;min-height:65px;font-size:14px;line-height:1.5;padding:10px;pointer-events:auto;cursor:pointer;background:#294c43}
.walk-topbar{position:absolute;left:16px;right:16px;top:14px;display:flex;align-items:start;justify-content:space-between;gap:12px;pointer-events:none}
.walk-topbar button{pointer-events:auto;background:#15232de8;font-size:12px}
.walk-badge{font-size:12px;letter-spacing:.1em;padding:12px 14px;background:#14232be8;border-left:2px solid #e3c997}
.walk-badge small{display:block;color:#bfc7be;font-size:10px;letter-spacing:0;margin-top:6px}
.walk-map{position:absolute;top:90px;right:17px;width:100px;height:120px;background:#102129dc;border:1px solid #b19b6b66;padding:8px;pointer-events:none}
.walk-map rect{fill:#bca57b}.walk-map .map-boundary{fill:none;stroke:#a2b1a1;stroke-width:1}.walk-map text{fill:#dedbc8;font-size:7px}.walk-map path{fill:#b3e4cd;stroke:#102c21;stroke-width:1}
.walk-crosshair{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:18px;font-weight:300;color:#f9edcf88;pointer-events:none;text-shadow:0 1px 4px #000}
.walk-nearby{position:absolute;left:18px;bottom:40px;width:min(320px,calc(100% - 185px));padding:13px;background:#102129e8;border:1px solid #b5a37b66;font-size:12px;line-height:1.8}
.walk-nearby>span{display:block;min-height:22px}.walk-nearby button{margin-top:8px;width:100%;font-size:13px;background:#294d43}.walk-nearby button small{display:inline-block;border:1px solid #95b2a5;padding:0 6px;margin-left:8px}
.walk-pad{position:absolute;right:18px;bottom:40px;display:grid;grid-template-columns:repeat(3,46px);gap:5px}
.walk-pad button{height:46px;padding:4px;font-size:23px;background:#12232be8;color:#e8d8b5;touch-action:none;user-select:none}
.walk-hint{position:absolute;bottom:12px;left:18px;right:18px;font-size:10px;color:#dfddc8;text-shadow:0 1px 4px #000;pointer-events:none}
.walk-stops{display:flex;flex-wrap:wrap;align-items:center;gap:7px;padding:12px 0;color:var(--muted);font-size:11px}.walk-stops>span{margin-right:5px}.walk-stops button{font-size:12px;padding:8px 12px;min-height:44px}

/* Volumetric exhibit furniture. Each face occupies its own 3D plane. */
.walk-box{position:absolute;left:50%;top:100%;width:0;height:0;pointer-events:none}
.walk-box .box-face{position:absolute;display:block;border:1px solid #b4a38730;backface-visibility:hidden;background-color:#5d5549;background-image:url('assets/stone-grain.svg');pointer-events:none}
.walk-box .face-front,.walk-box .face-back{width:var(--box-w);height:var(--box-h);left:calc(var(--box-w)/-2);top:calc(-1*var(--box-h))}
.walk-box .face-front{transform:translateZ(calc(var(--box-d)/2));background-color:#7c7160}
.walk-box .face-back{transform:translateZ(calc(var(--box-d)/-2)) rotateY(180deg);background-color:#4b463d}
.walk-box .face-left,.walk-box .face-right{width:var(--box-d);height:var(--box-h);left:calc(var(--box-d)/-2);top:calc(-1*var(--box-h))}
.walk-box .face-left{transform:translateX(calc(var(--box-w)/-2)) rotateY(-90deg);background-color:#625749}
.walk-box .face-right{transform:translateX(calc(var(--box-w)/2)) rotateY(90deg);background-color:#50493f}
.walk-box .face-top,.walk-box .face-bottom{width:var(--box-w);height:var(--box-d);left:calc(var(--box-w)/-2);top:calc(var(--box-d)/-2)}
.walk-box .face-top{transform:translateY(calc(-1*var(--box-h))) rotateX(90deg);background-color:#b1a18a}
.walk-box .face-bottom{transform:rotateX(-90deg);background-color:#302c26}
.stone-plinth .face-front,.stone-plinth .face-right,.stone-plinth .face-left{border-top:2px solid #e3c291;border-bottom:4px solid #28241f;background-image:linear-gradient(0deg,#0005,transparent 65%),url('assets/stone-grain.svg')}
.stone-plinth .face-top{background-image:radial-gradient(ellipse at 50% 50%,#0008,transparent 65%),url('assets/stone-grain.svg');box-shadow:inset 0 0 4px #eed6ab}
.walk-world .artwork-frame{top:calc(100% - 42px)}
.artwork-frame .box-face{background-color:#211e1a;border-color:#d9bb7e88;background-image:linear-gradient(105deg,#a78b55,#393126 12%,#191816 85%,#a68c5f)}
.artwork-frame .face-back{background:#37332b;border:8px solid #2b2822}
.walk-world .walk-exhibit .exhibit-art{bottom:42px;left:5%;width:90%;border:1px solid #ae9361;box-shadow:none;filter:brightness(var(--art-light,1));transform:translateZ(14px);transition:transform 1.2s ease}
.walk-world .walk-exhibit.displaced .exhibit-art{transform:translateZ(14px) translateX(6%)}
.walk-world .walk-exhibit .human{bottom:42px;height:72%;transform:translateZ(14px)}
.walk-world .walk-exhibit.displaced .human{transform:translateZ(14px) translateX(60%)}
.walk-world .glass-case{top:calc(100% - 30px)}
.glass-case .box-face{border:1px solid #d6ddc254;background:linear-gradient(110deg,transparent calc(var(--glass-glint,50%) - 15%),#ffe4b71c var(--glass-glint,50%),transparent calc(var(--glass-glint,50%) + 10%)),linear-gradient(90deg,#bfd8d606,transparent 60%);box-shadow:inset 0 0 1px #dfe7dc44;backface-visibility:visible}
.glass-case .face-top{background:linear-gradient(120deg,#ffffe11e,transparent 80%);border-color:#f6dfac88}
.glass-case .face-bottom{background:none;box-shadow:none;border:0}
.walk-world .walk-exhibit .exhibit-label{left:9%;right:9%;bottom:5px;font-size:13px;padding:5px 8px;text-align:left;background:linear-gradient(120deg,#eee6d4,#c4b9a0);border:1px solid #f0e1be;box-shadow:0 3px 7px #0006;transform:translateZ(122px) rotateX(-12deg);transform-origin:50% 100%}
.walk-world .walk-exhibit .label-support{position:absolute;left:48%;width:6px;height:65px;bottom:0;background:linear-gradient(90deg,#675c46,#dac9a0,#4b4438);transform:translateZ(122px)}
.walk-footprint{position:absolute;left:calc(50% - 147px);top:calc(100% - 111px);width:294px;height:222px;border:1px dashed #e2c98a88;transform:rotateX(90deg) translateZ(1px);pointer-events:none}
.walk-light-pool{position:absolute;left:-260px;top:-300px;width:520px;height:600px;background:radial-gradient(ellipse,#efbb733d 0,#dba45818 35%,transparent 68%);pointer-events:none}
.walk-contact-shadow{position:absolute;left:-200px;top:-155px;width:400px;height:310px;background:radial-gradient(ellipse,#080808ad 0,#0909098c 28%,#100d0955 45%,transparent 70%);pointer-events:none}
.walk-track,.walk-spotlight{position:absolute;width:0;height:0;pointer-events:none}
.walk-track .walk-box,.walk-spotlight .walk-box{left:0;top:0}
.track-beam .box-face,.light-housing .box-face{background-image:linear-gradient(90deg,#17191a,#454741,#17191a);background-color:#242522;border-color:#5f5c4d}
.walk-spotlight .light-lens{position:absolute;left:-10px;top:-10px;width:20px;height:28px;border-radius:6px;background:#ffe3a5;box-shadow:0 0 20px 8px #ffd19e55;transform:rotateX(90deg) translateZ(-12px)}
.walk-floor{border-color:#62513c;background:radial-gradient(ellipse at 50% 60%,#a88b6044,transparent 60%),repeating-linear-gradient(90deg,transparent 0 179px,#24231f6b 180px 181px),repeating-linear-gradient(0deg,transparent 0 179px,#24231f6b 180px 181px),url('assets/stone-grain.svg'),linear-gradient(90deg,#39352e,#72604a 50%,#39352e)}
.walk-ceiling{background:linear-gradient(90deg,#272a29,#49463f 50%,#272a29);border:1px solid #6d6350}
.walk-wall{border-color:#b19c7133;background-image:radial-gradient(ellipse at 50% 15%,#d8b77a44,transparent 55%),linear-gradient(0deg,#242723 0 5px,#453e31 6px 12px,transparent 13px),url('assets/stone-grain.svg'),linear-gradient(#655943,#b8a17d 45%,#655b48)}
.walk-left,.walk-right{background-size:550px 380px,100% 100%,128px 128px,100% 100%}
.walk-door{background:linear-gradient(90deg,#302c23,#c9ac78 25%,#ccb17d 75%,#292922);border-color:#443b2c;box-shadow:0 0 55px #eac68f38,inset 0 0 30px #e9c98955}
.door-reveal{position:absolute;inset:0;transform:translateZ(-30px);border:8px solid #685238;background:linear-gradient(#b99d6b,#625640);box-shadow:inset 0 0 22px #0008}
@media(max-width:480px){.room.walk-room{height:520px}.walk-map{width:78px;height:100px;top:83px;right:10px}.walk-topbar{left:10px;right:10px}.walk-badge{padding:10px;font-size:11px}.walk-nearby{left:10px;bottom:42px;width:calc(100% - 162px);padding:9px;font-size:10px}.walk-nearby button{padding:8px;font-size:11px}.walk-nearby button small{display:none}.walk-pad{right:10px;gap:3px;grid-template-columns:repeat(3,44px);bottom:42px}.walk-pad button{height:44px;min-height:44px}.walk-hint{font-size:9px;left:10px}.walk-stops{gap:5px}.walk-stops button{padding:8px 10px}.walk-world .walk-exhibit .exhibit-label small{display:block}}
@media(max-width:800px){.front-gallery{padding:28px;gap:22px;grid-template-columns:minmax(0,1fr) minmax(170px,.7fr)}.front-description h3{font-size:22px}}
@media(max-width:480px){.room:not(.terminal-room){height:560px}.slot.row-front{width:36%;height:25%;top:63%}.slot.row-middle{width:30%;height:24%;top:36%}.slot.row-back{width:24%;height:21%;top:12%}.slot.row-front.left{left:2%}.slot.row-front.right{right:2%}.slot.row-middle.left{left:15%}.slot.row-middle.right{right:15%}.slot.row-back.left{left:25%}.slot.row-back.right{right:25%}.slot .exhibit-label{font-size:10px}.slot .exhibit-label small{display:none}.front-gallery{display:block;padding:35px 22px 22px;min-height:0}.front-stage{max-width:330px}.front-description{margin-top:16px}.front-description h3{font-size:21px;margin-bottom:8px}.front-description p{margin-bottom:8px}.front-description .eyebrow{font-size:10px}.front-placeholder{height:280px}.front-navigation button{padding:10px 12px}}
