:root{color-scheme:dark;--cream:#fbefd8;--gold:#e6bc78;--ink:#2d241c;--line:#dcc6a53d}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;color:var(--cream);background:#201610;font:1rem/1.5 Georgia,'Iowan Old Style',serif}a{color:inherit}button{font:inherit;color:inherit;cursor:pointer}a,button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{min-height:44px;border:1px solid var(--line);background:#291d14df;padding:9px 14px;border-radius:4px}button:disabled{opacity:.35;cursor:default}a:focus-visible,button:focus-visible{outline:3px solid #ffe0a2;outline-offset:4px}a:hover,button:hover{color:#fff7e4}.interior{position:fixed;inset:0;background:#34241a url('interior.webp') center/cover no-repeat;z-index:-1}.sp-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;background:linear-gradient(#130d09ed,#130d097a,transparent);position:relative;z-index:5}.exit-link{display:flex;align-items:center;gap:7px;text-decoration:none;font: .875rem Arial,sans-serif;min-height:44px}.brand{font-size:clamp(1.1rem,2.5vw,1.8rem);text-decoration:none;line-height:1.1;text-align:center}.brand i{color:var(--gold);font-weight:400}.languages{display:flex;flex-shrink:0}.languages button{border:0;background:transparent;padding:8px;min-width:40px;font:.875rem Arial,sans-serif;color:#bfb3a2}.languages [aria-pressed=true]{color:#fff1d8;text-decoration:underline;text-underline-offset:7px}.eyebrow{font:.75rem/1.5 Arial,sans-serif;letter-spacing:.15em;color:var(--gold)}.room-nav{padding:20px}.room-nav nav{display:flex;gap:10px;flex-wrap:wrap}.room-link{text-decoration:none;display:flex;align-items:center;gap:10px;padding:12px 15px;min-height:48px;background:linear-gradient(100deg,#302014ed,#1b130ded);border:1px solid #d6b47880;border-radius:3px;box-shadow:0 4px 20px #0005;font-size:1rem;line-height:1.25}.room-link:after{content:'›';color:var(--gold);font-size:1.4rem;margin-left:auto}.room-num{font:.75rem Arial,sans-serif;color:var(--gold)}.room-count{font:.75rem Arial,sans-serif;opacity:.7}.room-heading{padding:20px;text-shadow:0 2px 15px #000}h1{font-weight:400;font-size:clamp(1.7rem,4vw,3rem);line-height:1.1;margin:5px 0}.stage{position:relative;height:400px}.stage canvas{width:100%;height:100%;display:block;touch-action:pan-y}.hotspots{position:absolute;inset:0;pointer-events:none}.book-hotspot{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;display:flex;align-items:center;justify-content:center;width:46px;height:46px;min-height:46px;background:#2b2017e6;border:1px solid #e3c391bc;color:#fff0ce;border-radius:4px;box-shadow:0 2px 12px #0008;text-decoration:none;font:.875rem Arial,sans-serif}.book-hotspot:hover{background:#6f4c26}.room-controls{display:flex;justify-content:space-between}.room-controls button{font:2rem Georgia;width:44px;padding:0;background:#1b140cad;border-color:#b7a28660}.dock{text-align:center;padding:16px}.dock p{margin:0 0 10px}.dock-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.dock-actions button{font:.875rem/1.35 Arial,sans-serif}.secret-entry{color:#e9c995}.dock-meta{display:flex;justify-content:center;align-items:center;gap:14px;margin-top:10px;font:.75rem Arial,sans-serif;color:#e1caa5}.mode-button{min-height:32px;padding:5px 10px;font:.75rem Arial,sans-serif;background:transparent}.mode-notice{font:.75rem/1.4 Arial,sans-serif;color:#ddc7aa;max-width:44ch;margin:7px auto 0!important}.mode-notice:empty{display:none}.book-drawer{background:#f9f3e8;color:var(--ink);margin:20px;border-radius:14px 14px 0 0}.drawer-header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:18px 20px;border-bottom:1px solid #dfd2bf}.drawer-header h2{font-size:1.2rem;font-weight:400;line-height:1.25;margin:0}.drawer-header button{background:transparent;color:var(--ink);border:1px solid #d4c4ae;flex-shrink:0;font:.875rem Arial,sans-serif}.drawer-scroll{padding:22px}.book-room{margin-bottom:32px}.book-room h2,#secret-panel h2{font-size:1.7rem;line-height:1.25;font-weight:400;margin:4px 0 10px}.book-room .eyebrow,#secret-panel .eyebrow{color:#866038;margin:0}.room-blurb{font-style:italic;color:#776750}.book-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 25px}.book-link{display:flex;gap:12px;padding:16px 0;min-height:64px;border-bottom:1px solid #ddceba;text-decoration:none;line-height:1.45}.book-link:hover{color:#896132}.book-number,.book-open{color:#926934;font:.75rem/2 Arial,sans-serif}.book-open{margin-left:auto}.secret-objects{display:flex;flex-wrap:wrap;gap:10px}.secret-objects button{background:#eee2d0;color:#48341f;border-color:#cdb58e}#secret-note{border-left:2px solid #987749;padding:14px 20px;background:#efe5d4;font-style:italic}.book-drawer a:focus-visible,.book-drawer button:focus-visible{outline-color:#83541b}
/* Enhancement makes the room itself the viewport; the untouched reader has its own stylesheet. */
body.enhanced{height:100svh;height:100dvh;overflow:hidden}.enhanced .sp-header{position:fixed;inset:0 0 auto;padding-top:max(12px,env(safe-area-inset-top));padding-inline:max(16px,env(safe-area-inset-left))}.enhanced .sp-layout{height:100%;isolation:isolate}.enhanced .stage{position:fixed;inset:0;height:100%;width:100%;border:0;border-radius:0;background:#251b13;z-index:-1}.enhanced .stage:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(#130e0870,transparent 28%,transparent 70%,#130e08b8)}.enhanced .hotspots{z-index:1}.enhanced .room-heading{position:absolute;top:80px;left:6%;right:6%;padding:12px 0;pointer-events:none}.room-heading .eyebrow{margin:0}.enhanced .room-nav{position:absolute;inset:0;padding:0;pointer-events:none}.enhanced .room-nav>.eyebrow{position:absolute;top:95px;width:100%;text-align:center;margin:0;font-size:.75rem}.enhanced .room-link{position:absolute;pointer-events:auto;max-width:44%;min-width:160px;padding:14px 18px;font-size:clamp(1rem,2vw,1.45rem);border-top:2px solid #e6bd78}.enhanced .room-link:nth-child(1){top:25%;left:5%}.enhanced .room-link:nth-child(2){top:43%;left:11%}.enhanced .room-link:nth-child(3){top:48%;right:8%}.enhanced .room-link:nth-child(4){top:29%;right:4%}.enhanced .room-link:nth-child(5){top:68%;right:5%}.enhanced .room-count{display:none}.enhanced .dock{position:fixed;bottom:0;left:0;right:0;padding:24px 16px max(14px,env(safe-area-inset-bottom));background:linear-gradient(transparent,#171009d9 38%,#171009f7);z-index:3;pointer-events:none}.dock>*{pointer-events:auto}.enhanced .dock>p:first-child{font-size:1rem;text-shadow:0 1px 5px #000}.enhanced .room-controls{position:fixed;top:52%;left:10px;right:10px;pointer-events:none}.room-controls button{pointer-events:auto}.enhanced .book-drawer{display:none;position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,720px);max-height:76dvh;margin:0;z-index:20;box-shadow:0 -12px 80px #0006;overflow:hidden}.enhanced .book-drawer.is-open{display:flex;flex-direction:column}.drawer-scroll{overflow:auto;overscroll-behavior:contain;min-height:0;padding-bottom:max(24px,env(safe-area-inset-bottom))}.sheet-backdrop{position:fixed;inset:0;background:#100c0890;z-index:19}.enhanced[data-view=lobby] .stage,.enhanced[data-view=lobby] .room-heading,.enhanced[data-view=lobby] .room-controls,.enhanced[data-view=lobby] #return-rooms,.enhanced[data-view=lobby] .dock-meta,.enhanced[data-view=lobby] .mode-notice{display:none}.enhanced:not([data-view=lobby]) .room-nav,.enhanced:not([data-view=lobby]) #secret-entry{display:none}.enhanced[data-view=lobby] .dock{padding-top:44px}.enhanced[data-view=lobby] .interior{z-index:-1}.enhanced .lite-atmosphere{position:absolute;inset:0;background:linear-gradient(#20170a88,#20170a66),url('interior.webp') center/cover}.stage[data-period=night] .lite-atmosphere{filter:brightness(.45) saturate(.65)}body.is-leaving .sp-layout,body.is-leaving .interior{opacity:0;transition:opacity .16s ease}.enhanced .stage[data-mode=catalog] .hotspots{display:none}.enhanced .stage canvas{animation:arrive .35s ease-out}@keyframes arrive{from{opacity:.3}to{opacity:1}}
@media(max-width:640px){.book-list{grid-template-columns:1fr}.brand{max-width:9ch;font-size:1.25rem}.sp-header{gap:8px}.enhanced .room-link{font-size:1rem;min-width:0;max-width:49%;padding:12px 10px;gap:7px}.enhanced .room-num{display:none}.enhanced .room-link:nth-child(1){left:3%;top:26%}.enhanced .room-link:nth-child(2){left:3%;top:44%;max-width:48%}.enhanced .room-link:nth-child(3){right:3%;top:55%;max-width:48%}.enhanced .room-link:nth-child(4){right:3%;top:33%;max-width:44%}.enhanced .room-link:nth-child(5){right:3%;top:70%}.enhanced .room-heading{top:86px}.enhanced .room-heading h1{font-size:1.7rem;max-width:80%}.dock-actions{gap:8px}.dock-actions button{padding:10px 12px}.dock-meta{margin-top:6px}.enhanced .dock{padding-top:16px}.enhanced .room-controls{left:6px;right:6px}.drawer-scroll{padding:18px}.drawer-header{padding:12px 18px}}
@media(max-width:350px){.sp-header .brand{font-size:1.05rem}.languages button{min-width:34px}.enhanced .room-link{font-size:.9375rem}.enhanced .dock>p:first-child{font-size:.875rem}.dock-actions button{font-size:.8125rem;padding:9px}.enhanced .room-nav>.eyebrow{top:84px}.enhanced .room-heading{top:70px}.mode-notice{max-width:36ch}}
@media(max-height:500px) and (orientation:landscape){.brand{max-width:none}.enhanced .room-nav>.eyebrow{top:65px}.enhanced .room-link{padding:7px 12px;min-height:44px;font-size:1rem}.enhanced .room-link:nth-child(1){top:25%;left:4%}.enhanced .room-link:nth-child(2){top:45%;left:10%}.enhanced .room-link:nth-child(3){top:46%;right:8%}.enhanced .room-link:nth-child(4){top:24%;right:5%}.enhanced .room-link:nth-child(5){top:65%;right:5%}.enhanced .dock{padding:10px;left:25%;right:25%;background:linear-gradient(transparent,#171009e6)}.enhanced .dock>p:first-child{font-size:.8125rem;margin-bottom:4px}.enhanced .dock-actions{flex-wrap:nowrap;gap:5px}.dock-actions button{font-size:.75rem;padding:5px 8px}.enhanced .room-heading{top:60px;left:4%}.enhanced .room-heading h1{font-size:1.4rem}.enhanced .room-heading .eyebrow{display:none}.mode-notice,.dock-meta{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Text enlargement keeps navigation readable and allows ordinary scrolling. */
body.enhanced.large-text{height:auto;overflow:auto}.large-text .sp-header{position:sticky;flex-wrap:wrap;background:#20170ee8}.large-text .sp-layout{height:auto}.large-text .room-nav{position:relative;padding:24px;pointer-events:auto}.large-text .room-nav>.eyebrow{position:static;text-align:left;margin:0 0 16px}.large-text .room-nav nav{display:flex;flex-direction:column}.large-text .room-nav .room-link{position:static;max-width:none;width:100%;font-size:1rem}.large-text .room-heading{position:relative;top:auto;left:auto;right:auto;padding:18px}.large-text .stage{position:relative;inset:auto;height:75vh;min-height:480px;z-index:0}.large-text .dock{position:relative;left:auto;right:auto;padding:24px 18px;background:#20170ee8}.large-text .room-controls{display:none}.large-text .book-drawer{max-height:88dvh}.large-text .brand{max-width:none}.large-text .drawer-header{flex-wrap:wrap}.large-text .room-heading h1{max-width:none}.large-text .room-link .room-num{display:none}
@media(max-height:500px) and (orientation:landscape){.enhanced .room-heading{top:105px;left:10px;right:auto;width:112px}.enhanced .room-heading h1{font-size:1.05rem;max-width:none;overflow-wrap:anywhere}.enhanced .room-controls{display:none}.enhanced .room-link:nth-child(5){top:65%;right:2%;max-width:23%;font-size:.9375rem}}
@media(max-width:350px) and (min-height:501px){.enhanced .room-link:nth-child(5){top:66%}}
@media(max-width:350px) and (min-height:501px){.enhanced .room-link:nth-child(3){top:53%}}
.large-text .room-link>span{min-width:0;overflow-wrap:anywhere}.large-text .sp-header .brand{min-width:0;max-width:100%;overflow-wrap:anywhere}.large-text .dock-actions button{max-width:100%;overflow-wrap:anywhere}.large-text .drawer-header h2{overflow-wrap:anywhere}
/* Lobby title must remain readable over the bright arched window. */
.enhanced[data-view=lobby] .room-nav>.eyebrow{left:50%;width:auto;transform:translateX(-50%);padding:7px 14px;border:1px solid #e7c78a;background:#1b120bd9;color:#fff3dc;border-radius:999px;font-size:clamp(.75rem,2vw,.9rem);font-weight:700;letter-spacing:.1em;line-height:1.25;text-shadow:0 1px 4px #000;white-space:nowrap;box-shadow:0 4px 18px #0006}
@media(max-width:380px){.enhanced[data-view=lobby] .room-nav>.eyebrow{max-width:92%;white-space:normal;padding:7px 11px}}
