#room-entry{position:fixed;inset:0;margin:0;padding:0;border:0;width:100%;height:100%;max-width:none;max-height:none;background:#172328;color:#dce5df;overflow:hidden;font-family:'Segoe UI',Arial,sans-serif}#room-entry::backdrop{background:#142128}body.room-active #desktop{visibility:hidden}.room-fallback{position:absolute;inset:0;background:#1d2d34 url('/static/img/desktop/midnight.svg') center/cover}.room-fallback:after{content:'';position:absolute;inset:0;background:#070c1680}#room-canvas{position:absolute;inset:0;opacity:0;transition:opacity 1.2s}#room-canvas.is-ready{opacity:1}#room-canvas canvas{display:block;width:100%;height:100%;outline:none}.room-vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,#071013db,transparent 38%,transparent 75%,#0c161947),linear-gradient(90deg,#0b181e4f,transparent 45%),radial-gradient(ellipse at 55% 43%,transparent 35%,#07111666 100%)}.room-header{position:absolute;top:32px;left:39px;right:39px;display:flex;justify-content:space-between;align-items:center}.room-brand{display:flex;align-items:center;gap:13px;text-decoration:none;font-size:13px;letter-spacing:.16em;font-weight:600}.room-monogram{height:34px;width:37px;border:1px solid #cdd7d672;display:grid;place-content:center;font:italic 23px Georgia;letter-spacing:-.04em}.room-brand small{display:block;font:7px monospace;letter-spacing:.19em;margin-top:5px;color:#a2b4b6}.room-skip{background:#12252b38;border:1px solid #b6cacc3d;color:#cad9d9;font-size:10px;padding:10px 13px;letter-spacing:.025em}.room-skip span{margin-left:22px}.room-skip:hover{background:#e2efec18}.room-location{position:absolute;top:113px;left:40px;font:8px monospace;letter-spacing:.16em;color:#b7c7c4}.room-dot{display:inline-block;width:5px;height:5px;background:#b4cfbd;border-radius:50%;box-shadow:0 0 7px #afcdb588;margin-right:8px}.room-divider{margin:0 9px;color:#738889}.room-caption{position:absolute;bottom:135px;left:40px;pointer-events:none}.room-eyebrow{font:8px monospace;letter-spacing:.18em;margin-bottom:18px;color:#a8bdb8}.room-caption h1{font:normal clamp(30px,3.5vw,53px)/1.07 Georgia,'Times New Roman',serif;letter-spacing:-.035em;margin:0;color:#e1e7dc;text-shadow:0 2px 18px #07151b7a}.room-caption h1 em{font-weight:normal;color:#a9bab2}.room-caption>p:last-child{font-size:10px;color:#a0b5b5;letter-spacing:.035em;margin:18px 0 0}.room-bottom{position:absolute;left:40px;right:40px;bottom:30px;display:flex;align-items:center;justify-content:space-between;padding-top:23px;border-top:1px solid #b7c9c429;gap:20px}.room-coordinate{font:8px monospace;letter-spacing:.12em;color:#a4b7b3}.room-coordinate b{font-weight:normal;color:#657d7d;display:block;margin-top:6px}.room-hint{font:8px monospace;letter-spacing:.08em;color:#9db3b1}.room-enter{display:flex;align-items:center;gap:45px;padding:13px 17px;border:1px solid #c8dad273;background:#b4cbc010;color:#dde5db;font-size:11px;letter-spacing:.025em}.room-enter span{font-size:17px;color:#a5c2b5}.room-enter:hover{background:#c5d8d21f;border-color:#d4e2dd}.pc-hotspot{position:absolute;left:55%;top:49%;transform:translate(-50%,-50%);background:none;border:0;color:#d4e9de;display:flex;align-items:center;gap:9px;padding:14px;opacity:.86;transition:opacity .2s;font:8px monospace;letter-spacing:.15em;white-space:nowrap}.hotspot-cross{font:19px monospace;width:25px;height:25px;display:grid;place-content:center;border:1px solid #cce4da80;border-radius:50%;background:#14292888;box-shadow:0 0 15px #cfeae826}.pc-hotspot>span+span{background:#152a30cf;border:1px solid #d6e3df40;padding:7px 10px}.pc-hotspot small{margin-left:10px}.pc-hotspot:hover{opacity:1}.room-transition{position:absolute;inset:0;opacity:0;background:#142329;pointer-events:none;display:grid;place-content:center;transition:opacity .45s}.room-transition>span{text-align:center;font:21px Georgia;letter-spacing:.2em;color:#d0e0db}.room-transition small{display:block;font:7px monospace;letter-spacing:.25em;margin-top:16px;color:#97afaa}.room-leaving .room-caption,.room-leaving .room-header,.room-leaving .room-bottom,.room-leaving .room-location,.room-leaving .pc-hotspot{opacity:0;transition:opacity .3s;pointer-events:none}.room-leaving.is-fading .room-transition{opacity:1}
@media(max-width:640px){.room-header{top:24px;left:22px;right:22px}.room-brand{gap:9px;font-size:11px}.room-brand small{font-size:6px}.room-monogram{height:31px;width:32px;font-size:21px}.room-skip{font-size:9px;padding:9px}.room-skip span{margin-left:9px}.room-location{left:23px;top:98px;font-size:7px}.room-caption{left:23px;bottom:142px}.room-caption h1{font-size:35px}.room-eyebrow{font-size:7px;margin-bottom:13px}.room-caption>p:last-child{font-size:9px;line-height:1.6;max-width:260px;margin-top:13px}.room-bottom{left:23px;right:23px;bottom:23px;gap:12px;padding-top:18px}.room-coordinate{font-size:6px;letter-spacing:.04em}.room-hint{display:none}.room-enter{gap:20px;font-size:10px;padding:11px 12px}.pc-hotspot{font-size:7px}.room-vignette{background:linear-gradient(0deg,#071013ee,transparent 48%,transparent 80%,#0c161944),radial-gradient(ellipse,transparent 40%,#07111666)} }
@media(max-height:560px){.room-caption{bottom:100px}.room-caption h1{font-size:28px}.room-eyebrow,.room-caption>p:last-child{display:none}.room-header{top:19px}.room-location{top:78px}.room-bottom{bottom:17px;padding-top:13px}.room-hint{display:none}}

#room-entry:focus{outline:none}

/* Show real loading work, while the desktop remains immediately available. */
#room-canvas{transition:opacity .45s}
.room-loader{position:absolute;inset:0;z-index:4;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 42%,#17232a 0%,#0b1119 62%,#080d13 100%);text-align:center}
.room-loader-content{width:min(300px,calc(100vw - 64px));padding-bottom:25px}
.room-loader img{display:block;width:60px;height:60px;object-fit:contain;margin:0 auto 22px;mix-blend-mode:screen}
.room-loader-brand{font:26px Didot,"Bodoni MT","Times New Roman",serif;letter-spacing:-.025em;color:#e0e5e6}
.room-loader p{min-height:32px;margin:15px 0 20px;font:11px/1.5 var(--system-font);color:#9dabb5}
.room-loader-track{height:2px;width:126px;margin:0 auto;overflow:hidden;background:#9aafbc25}
.room-loader-track i{display:block;height:100%;width:42%;background:linear-gradient(90deg,transparent,#abc8ba,transparent);animation:room-loading-sweep 1.2s ease-in-out infinite}
.room-header,.room-bottom{z-index:5}
.room-bottom{border-top:0}
.is-loading .room-location,.is-loading .room-caption,.is-loading .pc-hotspot,.is-loading #room-object-hotspots{visibility:hidden;pointer-events:none}
@keyframes room-loading-sweep{from{transform:translateX(-110%)}to{transform:translateX(350%)}}
@media(prefers-reduced-motion:reduce){.room-loader-track i{animation:none;width:100%;opacity:.65}#room-canvas{transition:none}}

/* The entrance keeps its text secondary to the environment. */
.room-caption{bottom:125px}.room-caption h1{font-family:"Segoe UI",Arial,sans-serif;font-size:clamp(24px,2.25vw,34px);font-weight:400;letter-spacing:-.025em}.room-caption>p:last-child{margin-top:10px;font-size:11px}.room-brand small{letter-spacing:.13em}@media(max-width:640px){.room-caption{bottom:129px}.room-caption h1{font-size:26px}.room-caption>p:last-child{font-size:10px}}

.room-monogram{object-fit:contain;width:42px;height:42px;border:0;mix-blend-mode:screen}
.room-brand{font-family:var(--system-font);letter-spacing:.12em;font-weight:400}
.room-caption h1{font-family:Didot,"Bodoni MT","Times New Roman",serif;font-size:clamp(32px,3.3vw,49px);letter-spacing:-.055em}
.room-caption>p:last-child{font-family:var(--system-font);font-size:10px;color:#b8c5cf}
.room-vignette{background:linear-gradient(0deg,#040710e6,transparent 37%,transparent 70%,#04071066),radial-gradient(ellipse at 56% 54%,transparent 23%,#04071030 55%,#03050cba 100%)}
.room-transition{background:#101b28;transition:opacity .4s}
.room-transition>span{font-family:Didot,"Bodoni MT","Times New Roman",serif;letter-spacing:-.015em;font-size:27px}
.room-transition img{display:block;width:86px;height:86px;object-fit:contain;margin:0 auto 17px;mix-blend-mode:screen}
.room-transition small{font:12px var(--system-font);letter-spacing:0;margin-top:10px;color:#acbfd0}
@media(max-width:640px){.room-monogram{width:34px;height:34px}.room-caption h1{font-size:35px}.room-caption>p:last-child{font-size:10px}}

.room-actions{display:flex;align-items:center;gap:8px}@media(max-width:640px){.room-actions{gap:6px}.room-actions .room-skip{padding:8px;font-size:9px}}

/* Objects are selected in the scene. Markers appear on hover or keyboard focus. */
.room-object-hotspot{position:absolute;transform:translate(-50%,-50%);display:grid;place-items:center;width:36px;height:36px;border:0;background:none;color:#dceddd;padding:7px;cursor:pointer;z-index:2}
.room-object-hotspot>span{display:grid;place-items:center;width:21px;height:21px;border:1px solid #ffffff50;background:#11151b45;border-radius:50%;font:16px var(--system-font);box-shadow:inset 0 1px 0 #ffffff35,0 2px 8px #0003;text-shadow:0 1px 2px #000;opacity:0;transition:opacity .15s}
.room-object-hotspot small{position:absolute;bottom:36px;white-space:nowrap;pointer-events:none;opacity:0;transform:translateY(3px);transition:opacity .15s,transform .15s;background:#11151b55;border:1px solid #ffffff30;border-radius:9px;padding:5px 8px;font:11px var(--system-font)}
.room-object-hotspot:hover small,.room-object-hotspot:focus-visible small{opacity:1;transform:none}
.room-object-hotspot:hover>span,.room-object-hotspot:focus-visible>span{opacity:1;background:#ffffff21;color:#fff;box-shadow:inset 0 1px 0 #ffffff66,0 2px 12px #0003}
.room-object-hotspot[aria-pressed=false]>span{color:#c1c7cf;background:#11151b55}
.room-object-panel{position:absolute;top:110px;right:40px;width:278px;z-index:6;isolation:isolate;border:1px solid #ffffff36;border-radius:20px;background:linear-gradient(135deg,#ffffff18,#ffffff03 42%,#ffffff0a),#0b0e122e;color:#f1f3f5;box-shadow:0 20px 60px #0005,inset 0 1px 0 #ffffff4d,inset 1px 0 0 #ffffff12,inset 0 -1px 0 #ffffff0d;-webkit-backdrop-filter:blur(18px) saturate(.65);backdrop-filter:blur(18px) saturate(.65);font:12px/1.5 var(--system-font);text-shadow:0 1px 3px #0009}
.room-object-panel>header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #ffffff14;color:#f1f3f5}
#room-panel-close{width:28px;height:28px;border:1px solid #ffffff24;border-radius:50%;background:#ffffff09;color:#eef1f4;font-size:20px;line-height:1;box-shadow:inset 0 1px 0 #ffffff1a}.room-object-panel>section{padding:17px}.room-object-panel p{color:#d5d9de;margin:0 0 17px}.room-panel-primary{width:100%;display:flex;align-items:center;justify-content:space-between;border:1px solid #ffffff45;border-radius:12px;background:linear-gradient(180deg,#ffffff1f,#ffffff07);padding:11px 13px;color:#fff;font:12px var(--system-font);box-shadow:inset 0 1px 0 #ffffff26,0 3px 10px #0002;text-shadow:0 1px 2px #0006}.room-panel-primary:hover{background:linear-gradient(180deg,#ffffff30,#ffffff12)}
.room-book-cover{width:152px;min-height:192px;margin:2px auto 21px;padding:16px 14px 15px 19px;display:flex;flex-direction:column;gap:16px;border:1px solid #8d9c794f;border-left:6px solid #152721;background:linear-gradient(115deg,#3e594633,#203c30 20%,#173128);box-shadow:5px 7px 0 #d3d0b4,8px 10px 15px #0007;transform:rotate(-4deg);color:#d9d8b9}
.room-book-cover small{font:7px var(--system-font);letter-spacing:.12em}.room-book-cover strong{font:22px/1.05 Georgia,serif;font-weight:400}.room-book-cover i{width:43px;height:43px;border:1px solid #b3c19890;border-radius:50%;align-self:center;box-shadow:inset 8px 0 0 #b3c19820}.room-book-cover>span{font-size:8px;letter-spacing:.06em}
.room-sound-presets{display:flex;flex-direction:column;gap:5px;margin-bottom:20px}.room-sound-presets button{font:12px var(--system-font);padding:9px 12px;text-align:left;color:#e2e5e9;border:1px solid #ffffff18;background:#ffffff03;border-radius:10px;text-shadow:0 1px 2px #0006;transition:background .18s,border-color .18s}.room-sound-presets button:hover{background:#ffffff10;border-color:#ffffff38}.room-sound-presets button[aria-pressed=true]{border-color:#ffffff55;background:linear-gradient(135deg,#ffffff21,#ffffff09);color:#fff;box-shadow:inset 2px 0 0 #ffffffb3,inset 0 1px 0 #ffffff1f}.room-volume{display:grid;grid-template-columns:1fr auto;gap:9px;font-size:11px;color:#d8dde2;margin-bottom:18px}.room-volume input{grid-column:1/-1;width:100%;accent-color:#e0e5eb;margin:0}.room-volume output{color:#f3f5f7}
#room-sound-status{display:block;font-size:10px;line-height:1.4;color:#d0d6dd;margin-top:12px;min-height:28px}.room-object-notice{position:absolute;bottom:149px;right:40px;font:11px var(--system-font);color:#e3e7ed;text-shadow:0 1px 4px #000;pointer-events:none}
.room-leaving #room-object-hotspots,.room-leaving .room-object-panel,.room-leaving .room-object-notice{opacity:0;pointer-events:none;transition:opacity .2s}
@media(max-width:640px){.room-caption{bottom:129px}.room-caption h1{font-size:29px}.room-object-panel{top:102px;right:22px;width:min(278px,calc(100vw - 44px));max-height:calc(100dvh - 265px);overflow:auto}.room-object-notice{bottom:140px;left:22px;right:auto}.room-object-hotspot{width:40px;height:40px}}
@media(max-height:570px){.room-object-panel{top:80px;max-height:calc(100dvh - 170px);overflow:auto}.room-caption{bottom:100px}.room-object-notice{bottom:121px}}

/* Physical power-down is visible as the room returns. */
.room-shutdown #room-canvas{transition:opacity .14s}
.room-shutdown .room-loader{background:#05080b}
@media(prefers-reduced-motion:reduce){#room-canvas,.room-object-hotspot>span,.room-object-hotspot small{transition:none}}

/* Keep pointer hits on individual keycaps; the projected control remains tabbable. */
.room-object-hotspot[data-room-object=keyboard]{pointer-events:none}
.room-object-hotspot[data-room-object=keyboard]:focus-visible{pointer-events:auto}


/* Neutral glass floats above the room; its tint comes from the scene beneath. */
#room-entry .room-enter,
#room-entry .hotspot-cross,
#room-entry .pc-hotspot>span+span,
#room-entry .room-object-hotspot>span,
#room-entry .room-object-hotspot small{
  -webkit-backdrop-filter:blur(12px) saturate(.6);
  backdrop-filter:blur(12px) saturate(.6);
  color:#f0f3f7;
}
#room-entry .room-enter,
#room-entry .hotspot-cross,
#room-entry .pc-hotspot>span+span{
  background:linear-gradient(140deg,#ffffff18,#ffffff03 55%,#ffffff0b),#1014192e;
  border:1px solid #ffffff40;
  box-shadow:inset 0 1px 0 #ffffff4a,inset 0 -1px 0 #ffffff0d,0 6px 22px #0003;
  text-shadow:0 1px 3px #0009;
}
#room-entry .room-enter{border-radius:18px;transition:background .18s,border-color .18s}
#room-entry .room-enter span{color:#e0e6ee}
#room-entry .room-enter:hover{background:linear-gradient(140deg,#ffffff26,#ffffff08);border-color:#ffffff73}
#room-entry .pc-hotspot>span+span{border-radius:10px}
#room-entry .pc-hotspot{color:#eef2f5}
#room-panel-close:hover{background:#ffffff1a;border-color:#ffffff55}
#room-entry button:focus-visible,#room-entry input:focus-visible{outline:2px solid #edf2f8;outline-offset:4px}
.room-volume input{appearance:none;-webkit-appearance:none;height:22px;background:transparent;cursor:pointer}
.room-volume input::-webkit-slider-runnable-track{height:5px;border-radius:8px;background:#ffffff29;box-shadow:inset 0 1px 2px #0005,0 1px 0 #ffffff12}
.room-volume input::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:16px;height:16px;margin-top:-5.5px;border:1px solid #ffffffa6;border-radius:50%;background:linear-gradient(135deg,#fff,#c5ced8);box-shadow:0 2px 8px #0005,inset 0 1px 0 #fff}
.room-volume input::-moz-range-track{height:5px;border-radius:8px;background:#ffffff29;box-shadow:inset 0 1px 2px #0005}
.room-volume input::-moz-range-progress{height:5px;border-radius:8px;background:#ffffff55}
.room-volume input::-moz-range-thumb{width:14px;height:14px;border:1px solid #ffffffa6;border-radius:50%;background:linear-gradient(135deg,#fff,#c5ced8);box-shadow:0 2px 8px #0005}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .room-object-panel{background:linear-gradient(135deg,#30353be8,#10151be8)}
  #room-entry .room-enter,#room-entry .pc-hotspot>span+span,#room-entry .room-object-hotspot small{background:#171c24df}
}
@media(prefers-reduced-transparency:reduce){
  .room-object-panel{background:#171c24;-webkit-backdrop-filter:none;backdrop-filter:none}
  #room-entry .room-enter,#room-entry .hotspot-cross,#room-entry .pc-hotspot>span+span,#room-entry .room-object-hotspot>span,#room-entry .room-object-hotspot small{background:#20262f;-webkit-backdrop-filter:none;backdrop-filter:none}
}
@media(prefers-reduced-motion:reduce){.room-sound-presets button,#room-entry .room-enter{transition:none}}
