*{box-sizing:border-box}body{margin:0;background:#24251f;color:#f4efdf;font-family:Arial,sans-serif}#stage{position:fixed;inset:0}canvas{display:block;width:100%;height:100%;touch-action:none}header,footer{position:fixed;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:25px 4%;pointer-events:none}header{top:0;background:linear-gradient(#111a,transparent);font-size:12px;letter-spacing:.09em}header div{text-align:center}header span{display:block;font-size:9px;letter-spacing:.18em;margin-top:9px;color:#dfdfca}a,button{pointer-events:auto;color:inherit;text-decoration:none}button{font:inherit;background:#191d19b8;border:1px solid #dfdfca55;border-radius:2px;padding:12px 18px;cursor:pointer;min-height:44px}button:hover{background:#46493c}button:focus-visible,a:focus-visible{outline:2px solid #fff;outline-offset:4px}footer{bottom:0;background:linear-gradient(transparent,#111c);padding-top:45px}footer small{font-size:10px;letter-spacing:.15em}h1{font:400 clamp(20px,3vw,34px)/1.3 Georgia,serif;margin:8px 0}nav{display:flex;gap:8px}#loading{position:fixed;top:47%;width:100%;text-align:center;background:#24251fe8;padding:20px}dialog{border:0;padding:24px;background:#161b17;color:#eee;width:100vw;height:100dvh;max-width:none;max-height:none}dialog::backdrop{background:#111}dialog[open]{display:flex;flex-direction:column;align-items:center;gap:16px}dialog button{align-self:flex-end}dialog img{min-height:0;flex:1;max-width:100%;width:100%;object-fit:contain}dialog p{margin:0;font-family:Georgia,serif}@media(max-width:600px){header{padding:18px 5%;gap:8px}header div{font-size:10px}header span{font-size:7px}header button{padding:8px;font-size:10px}footer{padding:30px 5% 22px;flex-direction:column;align-items:flex-start;gap:10px}nav{align-self:flex-end}h1{font-size:22px}nav button{padding:10px 16px}}

.view-controls{position:fixed;right:4%;top:108px;display:flex;gap:6px}.view-controls button{font-size:12px;background:#202623a8;backdrop-filter:blur(12px)}#motion[aria-pressed="true"]{border-color:#e2d6a6;background:#535c4d}@media(max-width:600px){.view-controls{top:90px;right:5%}.view-controls button{padding:8px 11px}}

.move-pad{position:fixed;left:4%;bottom:140px;display:grid;grid-template-columns:repeat(3,42px);gap:4px}.move-pad button{padding:0;background:#1b211b88;backdrop-filter:blur(8px);font-size:18px;touch-action:none}.move-pad button:first-child{grid-column:2}.move-pad button:nth-child(2){grid-column:1}.move-pad button:active{background:#8a8b7799}@media(max-width:600px){.move-pad{left:5%;bottom:160px;grid-template-columns:repeat(3,38px)}}

#joystick{position:fixed;left:max(28px,env(safe-area-inset-left));bottom:130px;width:112px;height:112px;border:1px solid #e8e5d54d;border-radius:50%;background:#1d251e66;backdrop-filter:blur(12px);touch-action:none;user-select:none;display:grid;place-items:center;z-index:4}#joystick.active{border-color:#ebe9d6a0;background:#29342c88}.stick-cross{color:#eee6;font-size:36px;font-weight:200}#stick{position:absolute;width:46px;height:46px;border:1px solid #e6e2d899;border-radius:50%;background:radial-gradient(circle at 35% 25%,#dedbd3,#92998f);box-shadow:0 5px 15px #0005;pointer-events:none}#joystick:focus-visible{outline:2px solid white;outline-offset:5px}#rotate-gate{display:none;position:fixed;inset:0;background:#19211f;z-index:20;align-items:center;justify-content:center;flex-direction:column;padding:28px;text-align:center;color:#eee9dc}#rotate-gate h2{font-size:21px;font-weight:400;word-break:keep-all}#rotate-gate p{font-size:13px;line-height:1.7;color:#c3c7bd;word-break:keep-all}.phone-symbol{font-size:70px;color:#c8cdbd}#landscape-start{margin-top:22px}

@media(orientation:landscape) and (max-height:600px){header{padding:12px max(22px,env(safe-area-inset-right));font-size:10px}header span{margin-top:4px}header button{min-height:36px;padding:8px 12px}.view-controls{top:68px;right:max(22px,env(safe-area-inset-right))}.view-controls button{min-height:36px;padding:8px 12px}#joystick{bottom:max(24px,env(safe-area-inset-bottom));width:104px;height:104px}footer{padding:20px 24px 18px 158px;flex-direction:row;align-items:flex-end;gap:12px}footer h1{font-size:20px;max-width:35vw}footer small{font-size:8px}nav button{padding:8px 12px;min-height:40px}nav{gap:5px}}

.series-controls{position:fixed;top:108px;left:4%;display:flex;align-items:center;gap:10px;z-index:5}.series-controls select{max-width:280px;min-height:44px;padding:10px 34px 10px 14px;color:#f4efdf;background:#30382ee6;border:1px solid #dfdfca55;border-radius:2px;font:inherit;font-size:13px}.series-controls button{padding:5px 12px}.series-controls button:disabled{opacity:.3;cursor:default}#series-pages:not([hidden]){display:flex;align-items:center;gap:7px}#set-page{color:#fff;text-shadow:0 1px 3px #000}@media(orientation:landscape) and (max-height:600px){.series-controls{top:68px;left:max(22px,env(safe-area-inset-left));gap:5px}.series-controls select{font-size:11px;min-height:36px;max-width:190px}.series-controls button{min-height:36px;padding:5px 8px}}

header div span{display:none}#space-select{display:block;pointer-events:auto;margin:7px auto 0;max-width:220px;background:#2b342dd9;color:#f3efdf;border:1px solid #ddd5;border-radius:2px;padding:7px 24px 7px 12px;font:inherit;font-size:12px;min-height:32px}@media(orientation:landscape) and (max-height:600px){#space-select{margin-top:4px;padding:4px 20px 4px 8px;font-size:10px;min-height:28px}.series-controls,.view-controls{top:78px}}

#joystick{display:none}body.free-walk #joystick{display:grid}#walk[aria-pressed=true]{background:#535c4d}nav #next{background:#ece8dc;color:#29312b;border-color:#ece8dc}nav button{white-space:nowrap}#motion{display:none}body.free-walk #motion{display:block}@media(orientation:landscape) and (max-height:600px){body:not(.free-walk) footer{padding-left:24px}.view-controls{gap:4px}.view-controls button{padding:7px 9px}nav button{font-size:12px}}

.time-controls{position:fixed;left:50%;top:108px;transform:translateX(-50%);display:flex;gap:3px;background:#202b2ab3;padding:3px;border-radius:3px}.time-controls button{font-size:12px;padding:8px 14px;border:0;min-height:38px;background:transparent}.time-controls button[aria-pressed=true]{background:#e5ddc8;color:#28332f}@media(orientation:landscape) and (max-height:600px){.time-controls{top:auto;bottom:78px}.time-controls button{padding:5px 12px;min-height:32px}}

/* Right-thumb movement, with the artwork controls kept clear to its left. */
#joystick{left:auto;right:max(28px,env(safe-area-inset-right))}
@media(orientation:landscape) and (max-height:600px){body.free-walk footer{padding-left:max(24px,env(safe-area-inset-left));padding-right:158px}body.free-walk footer h1{max-width:30vw}}

/* A quiet viewing surface with secondary controls inside a single settings panel. */
header{display:grid;grid-template-columns:1fr auto 1fr;z-index:6}
header>#back{justify-self:start}header>div{grid-column:2}
.view-controls{top:25px;right:4%;z-index:8;align-items:flex-start}
#room-settings{position:relative;pointer-events:auto}
#room-settings summary{list-style:none;cursor:pointer;min-height:44px;padding:12px 16px;font-size:12px;line-height:18px;background:#202623d9;border:1px solid #dfdfca55;border-radius:2px;backdrop-filter:blur(12px)}
#room-settings summary::-webkit-details-marker{display:none}
#room-settings summary:focus-visible{outline:2px solid #fff;outline-offset:4px}
#room-settings[open] summary{border-color:#eee5ad99;background:#384136}
.settings-panel{position:absolute;right:0;top:calc(100% + 10px);width:286px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 100px);overflow-y:auto;padding:22px;background:#202720f5;border:1px solid #dbddce33;box-shadow:0 18px 45px #0005;border-radius:4px;color:#eee9db;backdrop-filter:blur(20px)}
.settings-panel h2{margin:0 0 20px;font-size:15px;font-weight:400;letter-spacing:.04em}
.settings-panel .series-controls{position:static;display:flex;align-items:stretch;flex-direction:column;gap:10px;margin-bottom:18px}
.settings-panel label,.settings-panel h3{font-size:11px;font-weight:400;letter-spacing:.04em;color:#bec6b6;margin:0}
.settings-panel .series-controls select{width:100%;max-width:none;font-size:12px}
.settings-panel #series-pages{justify-content:space-between}
.settings-panel>#overview,.settings-panel>#motion{width:100%;text-align:left;margin:6px 0;font-size:12px}
#motion{display:none!important}body.free-walk .settings-panel>#motion{display:block!important}
.settings-panel #settings-light:has(.time-controls){margin-top:18px;padding-top:18px;border-top:1px solid #dfdfca25}
.settings-panel .time-controls{position:static;transform:none;margin-top:10px;display:flex;background:#1116;width:100%}
.settings-panel .time-controls button{flex:1;padding:8px 10px;font-size:12px;min-height:38px}
@media(orientation:landscape) and (max-height:600px){
 header{padding:12px max(22px,env(safe-area-inset-right));grid-template-columns:1fr auto 1fr}
 .view-controls{top:16px;right:max(22px,env(safe-area-inset-right))}
 #room-settings summary,.view-controls>#fullscreen{min-height:36px;padding:7px 10px;font-size:11px;line-height:20px}
 .settings-panel{top:calc(100% + 8px);max-height:calc(100dvh - 76px);padding:18px}
 .settings-panel .series-controls{position:static;gap:8px}
 .settings-panel .time-controls{position:static;margin-top:10px}
}
@media(max-width:600px) and (orientation:portrait){.view-controls{top:90px;right:5%}}

.environment-credit{font-size:10px;line-height:1.8;color:#b1bcaa;margin:20px 0 0;padding-top:16px;border-top:1px solid #dfdfca25}.environment-credit a{text-decoration:underline;text-underline-offset:3px}
.settings-panel .time-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.settings-panel .time-controls button{padding:8px 3px;min-width:0}.settings-panel .time-controls button:first-child{grid-column:1/-1}

#exhibition-screen{position:fixed;inset:0;overflow:hidden}
/* A landscape exhibition on portrait phones, without a rotation gate. */
body.virtual-landscape #exhibition-screen{inset:auto;left:100vw;top:0;width:100dvh;height:100dvw;transform-origin:0 0;transform:rotate(90deg)}
body.virtual-landscape #viewer{position:fixed;inset:auto;top:0;left:100vw;width:100dvh;height:100dvw;transform-origin:0 0;transform:rotate(90deg);margin:0}
body.virtual-landscape #loading{top:43%}
body.virtual-landscape header{padding:12px 22px;grid-template-columns:1fr auto 1fr;gap:12px;font-size:10px}
body.virtual-landscape #space-select{font-size:11px;min-height:30px;margin-top:4px;padding:4px 22px 4px 10px}
body.virtual-landscape .view-controls{top:14px;right:22px;gap:5px}
body.virtual-landscape #room-settings summary,body.virtual-landscape #fullscreen{padding:7px 10px;min-height:36px;font-size:11px}
body.virtual-landscape .settings-panel{width:280px;max-width:calc(100dvh - 40px);max-height:calc(100dvw - 80px);padding:18px}
body.virtual-landscape footer{padding:38px 150px 18px 22px;flex-direction:row;align-items:end;gap:12px}
body.virtual-landscape footer h1{font-size:20px;max-width:30dvh}
body.virtual-landscape footer small{font-size:8px}
body.virtual-landscape footer nav{align-self:auto;gap:5px}
body.virtual-landscape nav button{font-size:12px;padding:8px 12px;min-height:40px}
body.virtual-landscape #joystick{width:100px;height:100px;right:24px;bottom:24px}
body.virtual-landscape #viewer img{max-height:calc(100dvw - 110px)}

/* Let the model's floor and indirect light remain visible behind the controls. */
body[data-space="light"] header{background:none;color:#343d37;text-shadow:0 1px 12px #fff8}
body[data-space="light"] footer{background:none;color:#303c34}
body[data-space="light"] footer small{color:#566158}
footer{background:linear-gradient(transparent,#10161044)}
footer h1{font-family:"Noto Serif KR","AppleMyungjo",Georgia,serif;font-weight:400;font-size:clamp(20px,2.4vw,29px)}
nav button{transition:background .2s,border-color .2s}
header>div{letter-spacing:.15em;font-size:11px}
footer nav button{color:#eee9dc}
footer nav #next{color:#29312b}

/* Room choice belongs to the exhibition, including its virtual landscape. */
#space-select{cursor:pointer;display:flex;align-items:center;justify-content:center;gap:16px;background:#252c26d9;border-color:#eee9dc55;padding:8px 16px;color:#eee9dc;text-shadow:none;min-width:132px}
#space-select[aria-expanded=true]{background:#eee9dc;color:#28332b}
.space-picker[hidden]{display:none}
.space-picker{position:absolute;inset:0;z-index:30;display:grid;place-items:center;padding:20px;background:#101913b8;backdrop-filter:blur(18px);color:#eee9dc;text-shadow:none;letter-spacing:0;pointer-events:auto}
.space-picker-panel{width:min(100%,1040px);max-height:100%;overflow-y:auto;background:#202720f5;padding:30px 32px 22px;border:1px solid #dce1d124;box-shadow:0 28px 90px #0005}
.space-picker-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}
.space-picker h2{font:400 30px/1.3 "Noto Serif KR","AppleMyungjo",Georgia,serif;margin:0}
.space-picker-close{border:0;padding:8px 0;min-height:36px;font-size:12px;color:#c8cdbf;background:transparent}
.space-picker-courts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.space-picker-court{display:block;min-width:0;opacity:.78;transition:opacity .2s}
.space-picker-court:hover,.space-picker-court:focus-visible,.space-picker-court[aria-current]{opacity:1}
.space-picker-court img{display:block;width:100%;height:auto;aspect-ratio:5/3;object-fit:cover;filter:saturate(.85)}
.space-picker-court>div{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:17px 0 15px;border-bottom:1px solid #eee9dc33}
.space-picker-court[aria-current]>div{border-bottom-color:#eee9dc}
.space-picker h3{font:400 23px/1.4 "Noto Serif KR","AppleMyungjo",Georgia,serif;margin:0;white-space:nowrap}
.space-picker-court span{font-size:10px;color:#bac2b2;white-space:nowrap}
.space-picker-bottom{display:flex;justify-content:flex-end;padding-top:22px}
.space-picker-exit{padding:8px 0;font-size:13px;border-bottom:1px solid #eee9dc66}
@media(max-height:600px){.space-picker{padding:14px 24px}.space-picker-panel{padding:18px 24px 12px}.space-picker-heading{margin-bottom:16px}.space-picker h2{font-size:24px}.space-picker-courts{gap:18px}.space-picker-court img{aspect-ratio:2.3}.space-picker-court>div{padding:10px 0}.space-picker h3{font-size:20px}.space-picker-bottom{padding-top:8px}}
body.virtual-landscape .space-picker{padding:14px 24px}
body.virtual-landscape .space-picker-panel{padding:18px 24px 12px}
body.virtual-landscape .space-picker-heading{margin-bottom:16px}
body.virtual-landscape .space-picker h2{font-size:24px}
body.virtual-landscape .space-picker-courts{gap:18px}
body.virtual-landscape .space-picker-court img{aspect-ratio:2.3}
body.virtual-landscape .space-picker-court>div{padding:10px 0}
body.virtual-landscape .space-picker h3{font-size:20px}
body.virtual-landscape .space-picker-bottom{padding-top:8px}
@media(prefers-reduced-motion:reduce){.space-picker-court{transition:none}}

/* Controls settle in only once the physical entrance has been crossed. */
header,footer,.view-controls,#joystick{transition:opacity .45s ease}
body.arriving header,body.arriving footer,body.arriving .view-controls,body.arriving #joystick{opacity:0;pointer-events:none}
body.arriving header *,body.arriving footer *,body.arriving .view-controls *{pointer-events:none!important}
@media(prefers-reduced-motion:reduce){header,footer,.view-controls,#joystick{transition:none}}

/* Brief curatorial notes stay with each room image, in the same landscape. */
.space-picker-court{padding-bottom:16px;border-bottom:1px solid #eee9dc33}
.space-picker-court[aria-current]{border-bottom-color:#eee9dc}
.space-picker-court>div,.space-picker-court[aria-current]>div{border-bottom:0;padding-bottom:0}
.space-picker-description{margin:12px 0 0;font:400 12.5px/1.75 Arial,"Apple SD Gothic Neo",sans-serif;letter-spacing:0;color:#c8cebf;word-break:keep-all;overflow-wrap:normal;text-wrap:pretty}
:lang(ja) .space-picker-description{word-break:normal}
@media(max-height:600px){.space-picker-description{font-size:12px;line-height:1.6;margin-top:8px}.space-picker-court{padding-bottom:12px}.space-picker-panel{padding-top:16px}.space-picker-heading{margin-bottom:12px}}
body.virtual-landscape .space-picker-description{font-size:12px;line-height:1.6;margin-top:8px}
body.virtual-landscape .space-picker-court{padding-bottom:12px}
body.virtual-landscape .space-picker-panel{padding-top:16px}
body.virtual-landscape .space-picker-heading{margin-bottom:12px}

.space-picker-panel{display:flex;flex-direction:column;overflow:hidden}
.space-picker-heading,.space-picker-bottom{flex:none}
.space-picker-courts{min-height:0;overflow-y:auto;overscroll-behavior:contain;align-items:start}
.space-picker-court>div{flex-wrap:wrap;row-gap:3px}
@media(max-height:340px){
 .space-picker-panel{padding:12px 24px 8px}.space-picker-heading{margin-bottom:8px}.space-picker h2{font-size:21px}
 .space-picker-court img{aspect-ratio:3.6}.space-picker-court>div{padding-top:6px}.space-picker-court{padding-bottom:6px}.space-picker-bottom{padding-top:4px}
}
@media(max-width:340px){
 body.virtual-landscape .space-picker-panel{padding:12px 24px 8px}body.virtual-landscape .space-picker-heading{margin-bottom:8px}body.virtual-landscape .space-picker h2{font-size:21px}
 body.virtual-landscape .space-picker-court img{aspect-ratio:3.6}body.virtual-landscape .space-picker-court>div{padding-top:6px}body.virtual-landscape .space-picker-court{padding-bottom:6px}body.virtual-landscape .space-picker-bottom{padding-top:4px}
}

:lang(en) .space-picker-court>div{flex-direction:column;align-items:flex-start;gap:3px}

/* Artwork inspection keeps the actual catalog dimensions separate from staging. */
#viewer{padding:20px 28px;background:#151b18;overflow:hidden;margin:0}
#viewer[open]{display:flex;align-items:stretch;gap:16px}
.art-view-toolbar{display:flex;justify-content:space-between;flex:none;gap:20px}
.art-zoom-controls{display:flex;gap:8px}.art-zoom-controls button:disabled{opacity:.35;cursor:default}
.art-view-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,280px);gap:32px;min-height:0;flex:1}
.art-viewport{position:relative;min-height:0;min-width:0;overflow:hidden;touch-action:none;background:#1e2620}
.art-sheet{position:absolute;left:50%;top:50%;display:flex;align-items:center;transform-origin:center;will-change:transform;user-select:none}
#viewer .art-sheet img{flex:none;max-width:none;max-height:none;object-fit:fill;min-height:0;user-select:none}
.art-information{overflow:auto;padding:16px 0 24px;overscroll-behavior:contain}
#viewer h2{font:400 28px/1.25 Georgia,serif;margin:10px 0 25px;overflow-wrap:anywhere}
#viewer .art-panel-count{font:11px/1.5 Arial,sans-serif;letter-spacing:.12em;color:#b9c2b6}
.art-information dl{margin:24px 0;border-top:1px solid #ffffff25;padding-top:18px}.art-information dt{color:#aeb8ae;font-size:11px;margin:15px 0 6px}.art-information dd{margin:0;font-size:14px;line-height:1.6}
.art-information h3{font:400 12px/1.5 Arial,sans-serif;color:#aeb8ae;margin-top:28px}
#viewer .art-description{font:14px/1.85 Arial,sans-serif;white-space:pre-line;color:#d4d9d0}
.art-panel-select{display:flex;gap:5px;flex-wrap:wrap}.art-panel-select button{padding:7px 10px;min-height:36px;font-size:12px}.art-panel-select [aria-pressed=true]{background:#d8dcce;color:#202820}
@media(max-height:500px){#viewer{padding:10px 18px;gap:8px}#viewer h2{font-size:22px;margin:5px 0 15px}.art-view-body{grid-template-columns:minmax(0,1fr) 220px;gap:20px}.art-information{padding-top:0}}
body.virtual-landscape #viewer{padding:10px 18px;gap:8px}body.virtual-landscape .art-view-body{grid-template-columns:minmax(0,1fr) 220px;gap:20px}body.virtual-landscape #viewer h2{font-size:22px;margin:5px 0 15px}body.virtual-landscape .art-information{padding-top:0}body.virtual-landscape #viewer .art-sheet img{max-height:none}

/* Artwork stays in its room while the camera settles into a close view. */
#immersive-information{pointer-events:auto;max-width:740px;animation:inspection-in .6s ease both}
#immersive-information[hidden]{display:none}.immersive-meta{font:13px/1.6 Arial,sans-serif;margin:8px 0;color:inherit}
.inspecting-artwork footer{padding-top:25px}
.inspecting-artwork h1{font-size:25px}
#immersive-information details{font:13px/1.7 Arial,sans-serif;max-width:590px}#immersive-information details p{max-height:90px;overflow:auto;white-space:pre-line}
.immersive-panels{display:inline-flex;gap:5px;margin:4px 12px 0 0}.immersive-panels button,.immersive-close{padding:5px 9px;min-height:32px;font-size:11px}.immersive-panels [aria-pressed=true]{background:#e4e8dd;color:#273229}
body.inspecting-artwork footer{background:linear-gradient(transparent,rgba(20,27,23,.9));color:#f4efdf!important}
body.virtual-landscape.inspecting-artwork footer h1{font-size:18px;margin:2px 0}body.virtual-landscape .immersive-meta{font-size:11px;margin:3px 0}
body.virtual-landscape #immersive-information{max-width:calc(100dvh - 270px)}body.virtual-landscape .immersive-panels button,body.virtual-landscape .immersive-close{padding:3px 7px;min-height:28px;font-size:10px}
@keyframes inspection-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){#immersive-information{animation:none}}

body.capture-view header,body.capture-view footer,body.capture-view .view-controls,body.capture-view #joystick{visibility:hidden!important}

body[data-space="corridor"] header{background:linear-gradient(#0b142188,transparent);color:#eef1f6;text-shadow:0 1px 6px #0008}
body[data-space="corridor"] footer{color:#eef1f6;background:linear-gradient(transparent,#0b142155)}
body[data-space="corridor"] footer small{color:#c3cbd6}

/* Brief desktop orientation cue, above the caption and outside the artwork centre. */
.keyboard-guide{position:fixed;left:4%;bottom:122px;z-index:5;display:flex;align-items:center;gap:13px;color:#e7edf4;font:12px/1.4 Arial,sans-serif;letter-spacing:.03em;pointer-events:none;opacity:0;transition:opacity .35s ease;text-shadow:0 1px 8px #0008}
.keyboard-guide[hidden]{display:none}.keyboard-guide.is-visible{opacity:.9}
.keyboard-guide-keys{display:grid;grid-template:repeat(2,23px)/repeat(3,25px);gap:3px}
.keyboard-guide kbd{display:grid;place-items:center;border:1px solid currentColor;border-bottom-width:2px;border-radius:3px;background:#18212b22;font:14px/1 Arial,sans-serif}
.keyboard-guide .up{grid-area:1/2}.keyboard-guide .left{grid-area:2/1}.keyboard-guide .down{grid-area:2/2}.keyboard-guide .right{grid-area:2/3}
body[data-space="light"] .keyboard-guide{color:#455149;text-shadow:0 1px 6px #fff8}
body.capture-view .keyboard-guide,body.choosing-space .keyboard-guide{display:none}
@media(hover:none),(pointer:coarse),(max-width:900px){.keyboard-guide{display:none}}
@media(prefers-reduced-motion:reduce){.keyboard-guide{transition:none}}


/* Current exhibition list is the primary control; viewing options stay secondary. */
.settings-panel{width:350px}
.exhibited-work-list{display:flex;flex-direction:column;gap:4px}
.exhibited-work-list>button{display:grid;grid-template-columns:86px 1fr;gap:14px;align-items:center;width:100%;text-align:left;padding:12px 0;border:0;border-bottom:1px solid #dfdfca25;border-radius:0;background:transparent;color:inherit;white-space:normal}
.exhibited-work-list>button:hover,.exhibited-work-list>button[aria-current="true"]{background:#ffffff0b}
.art-list-thumb{display:flex;gap:2px;height:58px;align-items:center;justify-content:center;overflow:hidden}
.art-list-thumb img{min-width:0;max-width:100%;max-height:58px;object-fit:contain;flex:0 1 auto}
.exhibited-work-list strong{display:block;font-size:13px;font-weight:400;line-height:1.45}
.exhibited-work-list small{display:block;color:#bdc5b6;font-size:10px;line-height:1.5;margin-top:5px}
.viewing-options{margin-top:20px}
#room-settings .viewing-options>summary{background:none;border:0;padding:10px 0;min-height:40px;color:#bdc5b6;backdrop-filter:none;font-size:11px}
.viewing-options #overview,.viewing-options #motion{width:100%;margin-top:8px;font-size:12px}
body.virtual-landscape .settings-panel{width:320px}

.court-time-buttons{display:flex;justify-content:center;gap:4px;margin-top:8px;pointer-events:auto}
.court-time-buttons button{font-size:11px;padding:8px 14px;min-height:36px;background:#202623d9;border:1px solid #dfdfca45;color:#eee9db}
.court-time-buttons button[aria-pressed="true"]{background:#eee9db;color:#252925}
@media(max-height:500px){.court-time-buttons{margin-top:5px}.court-time-buttons button{min-height:30px;padding:5px 12px}}

/* Time of day: a compact pill switch, distinct from the rectangular court picker. */
.court-time-buttons{width:max-content;margin:10px auto 0;padding:4px;gap:2px;border:1px solid #eee9db42;border-radius:999px;background:#202623e8}
.court-time-buttons button{min-width:52px;min-height:32px;padding:6px 13px;border:0;border-radius:999px;background:transparent;color:#eee9dbad;transition:background-color .35s,color .35s,box-shadow .35s}
.court-time-buttons button[aria-pressed="true"]{background:#eee9db;color:#252925;box-shadow:0 2px 6px #0003}
.court-time-buttons button:focus-visible{outline:2px solid #eee9db;outline-offset:2px}
@media(max-height:500px){.court-time-buttons{margin-top:6px;padding:3px}.court-time-buttons button{min-height:28px;padding:5px 12px}}
@media(prefers-reduced-motion:reduce){.court-time-buttons button{transition:none}}

.near-exit{position:absolute;left:50%;bottom:110px;transform:translateX(-50%);z-index:25;padding:12px 23px;background:#343b34ed;border:1px solid #eee9db70;color:#f1eddf;font-size:13px;cursor:pointer}
.near-exit[hidden]{display:none}
@media(max-height:500px){.near-exit{bottom:78px;padding:9px 18px}}

.museum-destinations{background:#242922;color:#f0eee5;border:1px solid #888c7a;padding:30px;min-width:260px}.museum-destinations::backdrop{background:#10140f88}.museum-destinations h2{font-size:22px;font-weight:400;margin:0 0 20px}.museum-destinations button{display:block;width:100%;padding:14px;border:0;border-bottom:1px solid #80867450;text-align:left;color:inherit;background:none}.museum-destinations button:hover{background:#ffffff10}

body[data-space="museum"]:not([data-court="dream"]) .court-time-buttons{display:none}

/* Direct court navigation stays beneath the current room name. */
.museum-court-links{display:flex;justify-content:center;gap:6px;margin:8px auto 0;pointer-events:auto;letter-spacing:0}
.museum-court-links button{min-height:36px;padding:7px 12px;font-size:11px;white-space:nowrap;background:#28302be8;border-color:#eee9dc55;color:#eee9dc}
.museum-court-links button[hidden]{display:none}
#space-select:disabled{cursor:default;opacity:1;padding:8px 16px}
@media(max-height:600px){.museum-court-links{gap:4px;margin-top:5px}.museum-court-links button{min-height:32px;padding:6px 10px;font-size:10px}}
body.virtual-landscape .museum-court-links button{min-height:32px;padding:6px 10px;font-size:10px}
/* Current location is primary; destination shortcuts are lighter and compact. */
.museum-court-links{gap:5px;margin-top:6px}
.museum-court-links button{min-height:28px;padding:5px 11px;font-size:10px;background:#e7e6dbde;border-color:#f3f0e459;color:#354039}
.museum-court-links button:hover{background:#f5f2e8;color:#222d25}
@media(max-height:600px){.museum-court-links button{min-height:26px;padding:4px 10px;font-size:10px}}
body.virtual-landscape .museum-court-links button{min-height:26px;padding:4px 10px;font-size:10px}

/* One persistent row; the current room stays in its original position. */
body[data-space="museum"] #space-select{display:none}
.museum-court-links{flex-wrap:nowrap;gap:4px;margin:7px auto 0}
.museum-court-links button{min-height:30px;padding:6px 11px;font-size:11px}
.museum-court-links button[aria-current="location"]{background:#28302bf2;color:#fffaf0;border-color:#eee9dc99;box-shadow:inset 0 -2px 0 #eee9dc;cursor:default}
.museum-court-links button:focus-visible{outline:2px solid #eee9dc;outline-offset:2px}
@media(max-height:600px){.museum-court-links{margin-top:4px}.museum-court-links button{min-height:28px;padding:5px 9px;font-size:10px}}

#loading{inset:0;z-index:30;display:grid;place-items:center;background:#242923;}
#loading[hidden]{display:none}
.arrival-loader{width:min(280px,70vw);text-align:center;font-size:14px;letter-spacing:.02em}
.arrival-loader p{margin:24px 0 20px}.arrival-loader small{display:block;margin-top:10px;font-variant-numeric:tabular-nums;color:#cbcbbd}
.arrival-loader progress{display:block;width:100%;height:3px;border:0;appearance:none;background:#ffffff24;border-radius:2px}
.arrival-loader progress::-webkit-progress-bar{background:#ffffff24;border-radius:2px}.arrival-loader progress::-webkit-progress-value{background:#e9e6d5;transition:width .35s;border-radius:2px}
.loading-ring{display:block;width:32px;height:32px;margin:auto;border:1px solid #ffffff25;border-top-color:#eee9dc;border-radius:50%;animation:loading-turn 1.6s linear infinite}
@keyframes loading-turn{to{transform:rotate(360deg)}}
body.virtual-landscape #loading{top:0}
@media(prefers-reduced-motion:reduce){.loading-ring{animation:none}.arrival-loader progress::-webkit-progress-value{transition:none}}

/* Ordered viewing opens only when requested, retaining the existing art route. */
#sequence-start{background:#eee9dc;color:#29312b;border-color:#eee9dc}
#sequence-start[hidden],#sequence-controls[hidden]{display:none}
#sequence-controls{display:flex;gap:6px;align-items:center;pointer-events:auto}
#sequence-controls button{min-width:48px;min-height:44px;padding:8px 14px;font-size:21px;line-height:1}
#sequence-stop{color:#eee9dc;background:#252c27e6}
@media(max-height:500px){#sequence-start{font-size:12px;padding:9px 14px}#sequence-controls button{min-width:44px;min-height:40px;padding:7px 12px}}

/* A short pause between courts keeps ordered viewing local to each hanging. */
.next-court-dialog{width:min(560px,92vw);height:auto;max-height:90dvh;margin:auto;padding:24px;background:#eee9dc;color:#29312b;border:1px solid #77786c;overflow:auto}
.next-court-dialog[open]{display:flex;align-items:stretch;gap:20px}
.next-court-dialog::backdrop{background:#101510b8}
.next-court-dialog h2{font:400 21px/1.5 Georgia,serif;margin:0}
.next-court-dialog>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.next-court-dialog button{align-self:stretch;background:#29312b;color:#eee9dc;min-height:46px}
.next-court-dialog>button{background:transparent;color:#29312b;border-color:#77786c}
#sequence-controls button:disabled{opacity:.38;cursor:wait}
#sequence-controls[aria-busy=true]{position:relative}

/* A passive gesture guide, never a separate camera control or touch target. */
#look-guide{display:none;position:fixed;left:max(24px,env(safe-area-inset-left));bottom:150px;width:100px;z-index:4;pointer-events:none;user-select:none;text-align:center;color:#eee9dc;text-shadow:0 1px 4px #000b}
body.free-walk #look-guide{display:grid;justify-items:center;gap:5px}
#look-guide svg{width:42px;height:42px;fill:none;stroke:#f2eee5;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 1px #000d)}
#look-guide-label{font-size:11px;line-height:1.5;white-space:pre-line}
body[data-court=light] #look-guide,body[data-court=lobby] #look-guide{color:#35423a;text-shadow:0 1px 5px #fff9}
.pad-label{position:absolute;bottom:12px;left:0;right:0;text-align:center;font-size:11px;line-height:1.2;color:#f4efdf;pointer-events:none;text-shadow:0 1px 4px #0008}
body.arriving #look-guide{opacity:0}body.capture-view #look-guide{visibility:hidden!important}
@media(orientation:landscape) and (max-height:600px){#look-guide{bottom:92px;left:max(24px,env(safe-area-inset-left));width:100px}}
body.virtual-landscape #look-guide{left:24px;bottom:92px;width:100px}
/* Compact single-track player, away from the movement pad. */
.garden-media{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);z-index:25;display:flex;align-items:center;gap:8px;max-width:calc(100% - 260px);padding:5px 10px;border:1px solid #d8d8c344;background:#202623e8;color:#eeeade;pointer-events:auto}
.garden-media-title{font:10px/1.4 sans-serif;white-space:nowrap}.garden-media button{padding:4px;min-width:28px;min-height:28px;background:none;border:0;color:inherit;font-size:14px;cursor:pointer}.garden-media input{width:55px;accent-color:#eeeade}.garden-media audio{display:none}
#room-settings .more-artworks,#room-settings .more-time{margin:0;border:0;padding:0}#room-settings .more-artworks>summary,#room-settings .more-time>summary{display:list-item;padding:12px 0;background:none;border:0;border-bottom:1px solid #ffffff26;color:#eeeade;font-size:14px;cursor:pointer}#room-settings .more-artwork-content{padding-top:12px}.more-time-buttons{display:flex;gap:8px;padding-top:12px}.more-time-buttons button{flex:1;min-height:40px}.more-time-buttons button[aria-pressed=true]{background:#eeeade;color:#252925}
@media(max-width:600px){.garden-media{max-width:calc(100% - 32px)}.garden-media-title{font-size:10px}.garden-media input{width:45px}}
body.virtual-landscape .garden-media{max-width:calc(100% - 320px);bottom:7px}
body.capture-view .garden-media{visibility:hidden}

/* The player is a quiet text control; volume opens only on request. */
.garden-media{background:transparent;border:0;padding:0 4px;gap:6px;color:#dddccf;text-shadow:0 1px 3px #0009;opacity:.78}
.garden-media:hover,.garden-media:focus-within{opacity:1}.garden-media button{font-size:12px;min-height:32px;min-width:32px}.garden-media-options{position:relative}.garden-media-options>summary{display:grid;place-items:center;list-style:none;width:32px;min-height:32px;font-size:12px;cursor:pointer}.garden-media-options>summary::-webkit-details-marker{display:none}.garden-media-tray{position:absolute;bottom:38px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;background:#252925ed;padding:8px 12px;border:1px solid #dedbce33;color:#eeeade;text-shadow:none}.garden-media-tray input{height:24px;accent-color:#a9ae9e}
body[data-court=lobby] .garden-media,body[data-court=light] .garden-media{color:#4b5449;text-shadow:0 1px 3px #fff8}

.garden-media.garden-media-light{color:#5b6257;text-shadow:0 1px 2px #ffffff80}

/* In-scene animated controls: no panel, no blocking instructions. */
#room-settings .controls-demo-open{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid #ffffff26;padding:12px 0;background:none;border-radius:0;font-size:14px}
.gesture-hints{position:absolute;left:4%;bottom:115px;z-index:6;display:flex;align-items:flex-end;gap:30px;pointer-events:none;color:#eeeade;text-shadow:0 1px 4px #0009;font:11px/1.4 Arial,sans-serif;opacity:.8}
.gesture-hints[hidden]{display:none}.gesture-hints>div{display:grid;justify-items:center;gap:7px}.gesture-keys{display:grid;grid-template:repeat(2,20px)/repeat(3,23px);gap:3px}.gesture-keys kbd{font:12px Arial,sans-serif;border:1px solid currentColor;border-radius:3px;display:grid;place-items:center;background:#ffffff08}.gesture-keys .up{grid-area:1/2;animation:gesture-key 2.8s infinite}.gesture-keys .left{grid-area:2/1}.gesture-keys .down{grid-area:2/2}.gesture-keys .right{grid-area:2/3;animation:gesture-key 2.8s 1.4s infinite}
.gesture-hints svg{width:88px;height:52px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.gesture-trail{opacity:.35;stroke-dasharray:3 4}.gesture-mouse-shape,.gesture-finger{animation:gesture-drag 2.8s ease-in-out infinite}.gesture-click{fill:currentColor;animation:gesture-key 2.8s infinite}.gesture-touch-ring{opacity:.35}.gesture-touch{display:none}.gesture-is-touch .gesture-move,.gesture-is-touch .gesture-mouse{display:none}.gesture-is-touch .gesture-touch{display:block}
body[data-court=lobby] .gesture-hints,body[data-court=light] .gesture-hints{color:#465045;text-shadow:0 1px 3px #fffa}
body.controls-demo #look-guide{opacity:0}body.controls-demo #joystick:not(.active) #stick{animation:gesture-stick 2.8s ease-in-out infinite}
body.capture-view .gesture-hints{display:none}body.virtual-landscape .gesture-hints{left:30px;bottom:90px}
@media(max-height:600px){.gesture-hints{left:28px;bottom:90px}}
@keyframes gesture-drag{0%,12%,90%,100%{transform:translateX(0)}38%{transform:translateX(-17px)}68%{transform:translateX(17px)}}
@keyframes gesture-key{0%,12%,75%,100%{background:transparent;opacity:.7}25%,55%{background:#bfc8b7;opacity:1}}
@keyframes gesture-stick{0%,12%,90%,100%{transform:translate(0,0)}38%{transform:translate(0,-19px)}68%{transform:translate(16px,-10px)}}
@media(prefers-reduced-motion:reduce){.gesture-hints *,body.controls-demo #joystick #stick{animation:none!important}}

/* Seven-key piano is the quiet play/pause control. */
.garden-media .garden-piano{width:44px;min-width:44px;min-height:36px;padding:6px 5px;background:transparent;border:0;display:grid;place-items:center;opacity:.7}.garden-media .garden-piano:hover,.garden-media .garden-piano.is-playing{opacity:1}.garden-piano svg{display:block;width:34px;height:18px}.piano-white{fill:#ece9df;stroke:#60675c;stroke-width:.55}.piano-black{fill:#333b32;stroke:#222b23;stroke-width:.3}.is-playing .piano-white:nth-child(3n+1){animation:piano-key-press 3.8s ease-in-out infinite}.is-playing .piano-white:nth-child(3n+2){animation:piano-key-press 4.7s ease-in-out infinite}
@keyframes piano-key-press{0%,15%,45%,100%{fill:#ece9df}25%,33%{fill:#9ca593}}
@media(prefers-reduced-motion:reduce){.garden-piano *{animation:none!important}}
