.room{background:var(--night);height:100dvh;position:relative;overflow:hidden}.room canvas{touch-action:none;cursor:grab;outline:none;width:100%;height:100%;display:block;position:absolute;inset:0}.room canvas:active{cursor:grabbing}.room-veil{background:var(--night);pointer-events:none;position:absolute;inset:0}.room-veil[hidden]{display:none}.room-status,.room-hint{color:var(--paper-dim);background:var(--glass);border:1px solid var(--rule);pointer-events:none;backdrop-filter:blur(6px);border-radius:3px;margin:0;padding:.3rem .7rem;font-size:.85rem;font-style:italic;position:absolute;left:1.1rem}.room-status{bottom:5.2rem}.room-hint{bottom:3.2rem}.room-status[hidden]{display:none}.room-toggle{z-index:3;cursor:pointer;border:1px solid var(--hairline);background:var(--glass);color:var(--gilt);font:.75rem var(--mono);backdrop-filter:blur(10px);transition:color .2s var(--ease), border-color .2s var(--ease);border-radius:999px;padding:.34rem .95rem;position:absolute;top:5rem;right:1.1rem}.room-toggle:hover{color:var(--lamp);border-color:var(--lamp)}.room-panel{z-index:2;background:var(--glass);border:1px solid var(--hairline);backdrop-filter:blur(12px);border-radius:4px;width:min(26rem,100% - 2rem);padding:1.1rem 1.2rem 1.2rem;font-size:.95rem;line-height:1.45;position:absolute;top:7.6rem;bottom:3rem;right:1.1rem;overflow-y:auto;box-shadow:0 18px 50px #00000080}.room-panel[hidden]{display:none}.room-panel h1{font:400 1.8rem/1.1 var(--display);color:var(--paper);margin:0}.room-panel h2{font:.75rem var(--mono);color:var(--gilt);margin:1.3rem 0 .5rem;font-weight:400}.room-panel .where{color:var(--paper-dim);margin:.3rem 0 0;font-style:italic}.crumb{font:.75rem var(--mono);color:var(--paper-dim);margin:0 0 .6rem}.crumb a{color:inherit;border-bottom:1px solid #0000;text-decoration:none}.crumb a:hover{color:var(--lamp);border-bottom-color:var(--lamp)}.crumb [aria-current]{color:var(--gilt)}.crumb-sep{color:var(--hairline);margin:0 .35em}.room-panel ul{margin:0;padding:0;list-style:none}.room-panel li{margin:0 0 .5rem}.room-panel .k{color:var(--paper-dim);text-transform:capitalize}.room-panel .src{color:var(--paper-dim);font-size:.8rem}.room-panel .src a{color:inherit}.room-panel a.report{font:.75rem var(--mono);color:var(--paper-dim);opacity:.6;transition:opacity .2s var(--ease), color .2s var(--ease);text-decoration-style:dotted}.room-panel a.report:hover{opacity:1;color:var(--lamp)}.room-hall{grid-template-columns:8rem 1fr;gap:.3rem .6rem;margin:0;display:grid}.room-hall dt{color:var(--paper-dim)}.room-hall dd{margin:0}.room-hall .basis{font:.75rem var(--mono);color:var(--gilt);border:1px solid #c9a9618c;border-radius:3px;margin:0 .2rem;padding:.04rem .45rem;font-style:normal;display:inline-block;transform:rotate(-3deg)}.room-shelves .card{background:linear-gradient(160deg, #f2e8d0, var(--paper));color:var(--ink);border:1px solid #c9a961a6;border-radius:3px;padding:.6rem .8rem;box-shadow:0 6px 18px #00000059}.room-shelves .card .src{color:var(--paper-dim-ink)}.room-shelves .card a{color:var(--paper-link)}.room-controls{z-index:3;flex-wrap:wrap;gap:.45rem;max-width:calc(100% - 9rem);display:flex;position:absolute;top:5rem;left:1.1rem}.room-controls button{cursor:pointer;background:var(--glass);border:1px solid var(--hairline);min-height:34px;color:var(--paper);font:inherit;backdrop-filter:blur(10px);transition:color .2s var(--ease), border-color .2s var(--ease);border-radius:999px;padding:.34rem .95rem;font-size:1rem}.room-controls button:hover{color:var(--lamp);border-color:var(--lamp)}.room-controls button[aria-pressed=true]{background:var(--gilt);color:var(--ink);border-color:var(--gilt)}.room-place{z-index:3;cursor:pointer;border:1px solid var(--gilt);background:var(--gilt);color:var(--ink);font:.75rem var(--mono);transition:transform .15s var(--ease), filter .2s var(--ease);border-radius:999px;padding:.48rem 1.4rem;position:absolute;bottom:4.6rem;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #00000073}.room-place:hover{filter:brightness(1.08)}.room-place:active{transform:translate(-50%)scale(.98)}.room-place[hidden],.room-estimated[hidden]{display:none}.room-estimated{z-index:3;font:.75rem var(--mono);color:var(--paper-dim);background:#110d09d9;border:1px dashed #c9a96180;border-radius:3px;margin:0;padding:.22rem .65rem;font-style:normal;position:absolute;top:7.6rem;right:1.1rem}.room-badge{z-index:3;font:.75rem var(--mono);color:var(--ember);border:1px dashed var(--ember);background:#110d09d9;border-radius:3px;margin:0;padding:.22rem .65rem;font-style:normal;position:absolute;top:7.6rem;left:1.1rem;transform:rotate(-4deg)}.room-local{z-index:3;letter-spacing:.14em;color:var(--paper-dim);background:var(--leaf);border:1px solid var(--rule);border-radius:3px;margin:0;padding:.3rem .7rem;font-size:12px;position:absolute;bottom:1.1rem;left:1.1rem}.room-local a{color:var(--lamp)}.room-shelves button[data-action=find]{cursor:pointer;border:1px solid var(--hairline);min-width:44px;min-height:44px;color:var(--paper);font:inherit;transition:color .2s var(--ease), border-color .2s var(--ease);background:0 0;border-radius:999px;margin-right:.5rem;padding:.25rem .9rem;font-size:1rem}.room-shelves button[data-action=find]:hover{color:var(--lamp);border-color:var(--lamp)}.room-shelves button[data-action=find]:focus-visible,.room-book button:focus-visible,.room-book a:focus-visible{outline:2px solid var(--lamp);outline-offset:2px}.room-shelves li[data-shelf]{flex-wrap:wrap;align-items:center;gap:.25rem .55rem;display:flex}.room-shelves li[data-shelf] a{color:var(--lamp)}[data-spine-title]{z-index:4;pointer-events:none;max-width:18rem;color:var(--paper);background:var(--glass);border:1px solid var(--hairline);backdrop-filter:blur(8px);border-radius:3px;margin:0;padding:.3rem .7rem;font-size:.95rem;font-style:italic;position:absolute}.room-book{box-sizing:border-box;width:min(34rem,100vw - 2rem);max-height:calc(100dvh - 2rem);color:var(--ink);background:linear-gradient(165deg, #f2e8d0, var(--paper));border:1px solid var(--gilt);border-radius:4px;padding:1.3rem 1.5rem;overflow-y:auto;box-shadow:0 24px 60px #0000008c}.room-book::backdrop{background:#0503029e}.room-book-body{align-items:flex-start;gap:1.2rem;display:flex}.room-book-cover{transform-origin:0;background-position:50%;background-size:cover;border:1px solid #00000073;border-radius:2px 4px 4px 2px;flex:0 0 6.4rem;height:9.6rem;margin-top:.2rem;transform:perspective(420px)rotateY(-9deg);box-shadow:5px 0 0 -1.5px #eadfbf,9px 0 0 -3.5px #d9cba2,13px 0 0 -6px #efe6cb,0 16px 26px #0006}.room-book-cover:not(.is-open){transition:transform .8s var(--ease);transform:perspective(420px)rotateY(-84deg)}.room-book-info{flex:1;min-width:0}.room-book h2{font:400 1.5rem/1.15 var(--display);color:var(--ink);margin:0 0 .4rem}.room-book-by{color:var(--paper-dim-ink);margin:0 0 .5rem;font-style:italic}.room-book-why{margin:0 0 .5rem;line-height:1.45}.room-book-ed{color:var(--paper-dim-ink);margin:0 0 .5rem;font-size:.9rem}.room-book-holder{margin:0 0 .4rem;font-size:.92rem}.room-book-lic{color:var(--paper-dim-ink);text-transform:none;letter-spacing:.04em;margin:0 0 .6rem}.room-book-actions{flex-wrap:wrap;align-items:center;gap:.2rem 1rem;margin-top:.7rem;display:flex}.room-book a{min-height:44px;color:var(--paper-link);text-underline-offset:3px;line-height:44px;text-decoration:underline;display:inline-block}.room-book button{cursor:pointer;border:1px solid var(--oak-light);min-width:44px;min-height:44px;color:var(--ink);font:inherit;transition:border-color .2s var(--ease);background:0 0;border-radius:999px;padding:.3rem 1.1rem;font-size:1rem;display:inline-block}.room-book button:hover{border-color:var(--gilt)}@media (width<=700px){.room-book-cover{flex-basis:4.6rem;height:7rem}}@media (prefers-reduced-motion:reduce){.room-book-cover{transition:none!important}}@media (width<=700px){.room-panel{height:55%;top:auto;left:1rem}.room-hint{display:none}.room-controls button,.room-place{min-height:44px}.room-badge,.room-estimated{top:8.6rem}.room-controls,.room-toggle{top:5.4rem}}.rules-card{z-index:4;text-align:center;background:linear-gradient(165deg, #f2e8d0, var(--paper));width:min(24rem,100% - 2rem);color:var(--ink);border:1px solid var(--gilt);border-radius:4px;padding:.9rem 1.1rem;position:absolute;bottom:8.2rem;left:50%;transform:translate(-50%);box-shadow:0 18px 50px #00000080}.rules-card .rules-title{color:var(--paper-link);margin:0 0 .3rem}.rules-card .rules-body{margin:0 0 .7rem;font-style:italic}.rules-card .btn{color:var(--paper-link);border-color:#5a3a1e80;margin:0 auto}.story{margin-top:1rem}.story h2{font:.75rem var(--mono);color:var(--gilt);margin:0 0 .5rem;font-weight:400}.story-hint{color:var(--paper-dim);margin:0 0 .6rem;font-style:italic}.story-list{gap:.55rem;display:grid}.story-beat{border-left:2px solid var(--rule);transition:border-color .3s var(--ease), background-color .3s var(--ease);background:#0b080659;border-radius:0 3px 3px 0;padding:.6rem .8rem}.story-beat[data-on=true]{border-left-color:var(--lamp);background:#c9a9611a}.story-year{color:var(--gilt);margin:0 0 .25rem}.story-text{margin:0;line-height:1.4}.story-quote{color:var(--paper-dim);margin:.35rem 0 0;font-size:.85rem;font-style:italic}.story-src{color:var(--paper-dim);margin-top:.3rem;font-size:.78rem;display:inline-block}[data-voice-consent][hidden]{display:none!important}.room:has(#room-tour) .rules-card{display:none}@media (width<=700px){.rules-card{bottom:11.5rem}}
