/* A small, working lobby: an existing room and an existing free chapter. */
.hm-motion-home .bookshop-freeze { display:none; }
.hm-arrival-layout { display:grid; grid-template-columns:minmax(0,1fr) 390px; align-items:center; gap:clamp(32px,5vw,90px); width:100%; max-width:1480px; margin:auto; padding:86px 5.5% 136px; }
.hm-arrival-layout .ng-arrival-copy { padding:0; margin:0; min-width:0; }
.hm-arrival-layout .ng-arrival-copy h1 { font-size:clamp(3.4rem,5.7vw,5.5rem); }
.hm-lobby-scene { position:relative; padding:22px; color:#eee7d8; background:linear-gradient(150deg,#142d26f0,#0e211de8); border:1px solid #dfc69e65; box-shadow:0 24px 70px #0004; border-radius:3px; }
.hm-lobby-scene * { box-sizing:border-box; }
.hm-scene-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-bottom:18px; border-bottom:1px solid #dfc69e38; font:10px/1.5 Arial,sans-serif; letter-spacing:1.7px; color:#dfc69e; }
.hm-motion-toggle { background:none; border:1px solid #dfc69e60; padding:8px 10px; min-height:36px; color:#e9dfcc; cursor:pointer; font:11px/1.3 Arial,sans-serif; letter-spacing:0; border-radius:2px; }
.hm-motion-toggle[hidden] { display:none; }
.hm-door-link { display:grid; grid-template-columns:144px minmax(0,1fr); align-items:center; gap:23px; padding:24px 0; color:inherit; text-decoration:none; }
.hm-door-frame { position:relative; height:246px; width:144px; display:block; perspective:750px; border:7px solid #68523a; border-bottom-width:5px; background:#071712; box-shadow:inset 0 0 0 2px #bd9c60,0 8px 20px #0005; }
.hm-door-frame>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:44% 50%; opacity:.95; }
.hm-door-leaf { position:absolute; inset:0; display:block; background:linear-gradient(100deg,#2d4638,#142b23 65%,#20372d); border:2px solid #b49666; transform-origin:0 50%; transform:rotateY(-8deg); transition:transform 650ms cubic-bezier(.2,1.3,.3,1); box-shadow:4px 0 12px #0008; backface-visibility:hidden; }
.hm-door-link:hover .hm-door-leaf,.hm-door-link:focus-visible .hm-door-leaf { transform:rotateY(-30deg); }
.hm-door-link.hm-door-opening .hm-door-leaf { transform:rotateY(-78deg); }
.hm-door-plaque { position:absolute; left:25%; right:25%; top:25px; display:block; padding:8px 4px; border:1px solid #d7bc82; background:#d7bd88; color:#233126; font:22px/1 Georgia,serif; text-align:center; box-shadow:0 2px 8px #0004; }
.hm-door-plaque small { display:block; margin-top:8px; font:10px/1 Arial,sans-serif; letter-spacing:2px; }
.hm-door-panel { position:absolute; inset:103px 15px 20px; border:1px solid #b5986255; box-shadow:inset 0 0 0 5px #0001; }
.hm-door-key { position:absolute; right:3px; top:104px; width:43px; display:block; color:#f0cd89; transform-origin:27% 50%; transition:transform 400ms cubic-bezier(.2,1.4,.3,1); filter:drop-shadow(0 2px 1px #0005); }
.hm-door-key svg { display:block; width:100%; height:auto; }
.hm-door-link:hover .hm-door-key,.hm-door-link:focus-visible .hm-door-key,.hm-door-link.hm-door-opening .hm-door-key { transform:rotate(-35deg); }
.hm-door-caption>span,.hm-book-link>span:last-child>span { display:block; }
.hm-kicker { font:9px/1.7 Arial,sans-serif; letter-spacing:1.35px; color:#dfc69e; }
.hm-door-caption>strong { display:block; margin:14px 0; font:normal 30px/1.12 Georgia,serif; letter-spacing:-.7px; }
.hm-door-caption>span:not(.hm-kicker):not(.hm-link-label),.hm-book-link>span:last-child>span:not(.hm-kicker):not(.hm-link-label) { color:#c4cebf; font:12px/1.75 Arial,sans-serif; }
.hm-link-label { display:block; margin-top:17px; font:12px/1.5 Arial,sans-serif; color:#efce98; }
.hm-link-label>span { margin-left:8px; }
.hm-book-link { display:grid; grid-template-columns:76px minmax(0,1fr); gap:23px; align-items:center; padding-top:24px; border-top:1px solid #dfc69e38; text-decoration:none; color:inherit; perspective:800px; }
.hm-book-cover { position:relative; display:block; width:76px; height:108px; border:1px solid #d3c3a1; border-left:5px solid #736a50; background:#ede6d6; box-shadow:4px 4px 0 #c6bba0,7px 9px 14px #0005; transform:rotate(-6deg) rotateY(-12deg); transition:transform 550ms cubic-bezier(.2,1.3,.3,1),box-shadow 550ms; }
.hm-book-cover>img { width:100%; height:100%; display:block; object-fit:cover; opacity:.45; }
.hm-book-cover>span { position:absolute; left:8px; right:6px; top:23px; color:#26382d; font:normal 14px/1.1 Georgia,serif; }
.hm-book-cover>span>em { font-size:20px; }
.hm-book-link:hover .hm-book-cover,.hm-book-link:focus-visible .hm-book-cover { transform:translateY(-6px) rotate(-2deg) rotateY(0); box-shadow:4px 6px 0 #c6bba0,8px 14px 20px #0006; }
.hm-book-link>span:last-child>strong { display:block; margin:8px 0; font:normal 24px/1.15 Georgia,serif; }
.hm-book-link .hm-link-label { margin-top:12px; }
.hm-lobby-scene a:focus-visible,.hm-lobby-scene button:focus-visible { outline:2px solid #f4d2a2; outline-offset:6px; }
.hm-arrival-layout~.ng-garden-label { top:22px; bottom:auto; font-size:12px; }
.hm-reader { position:fixed; inset:0; width:min(820px,calc(100% - 40px)); max-height:calc(100svh - 48px); margin:auto; padding:0; border:1px solid #d0b57f; border-radius:3px; background:#f1eadb; color:#23342b; box-shadow:0 30px 100px #0007; overflow:auto; overscroll-behavior:contain; }
.hm-reader::backdrop { background:#06160ede; backdrop-filter:blur(5px); }
.hm-reader:not([open]) { display:none; }
.hm-reader[open] { animation:hm-open-book 430ms cubic-bezier(.16,1,.3,1) both; }
.hm-reader-bar { position:sticky; top:0; z-index:1; display:flex; justify-content:space-between; align-items:center; gap:20px; padding:14px 24px; background:#173026; color:#e9d9b8; font:10px/1.6 Arial,sans-serif; letter-spacing:1px; }
.hm-reader-bar button,.hm-reader-footer button { min-height:44px; background:none; border:1px solid #cdb7888a; border-radius:2px; color:inherit; padding:8px 14px; cursor:pointer; font:12px/1.4 Arial,sans-serif; white-space:nowrap; }
.hm-reader-bar button span { font-size:20px; padding-left:10px; }
.hm-reader-heading { padding:45px 50px 15px; }
.hm-reader-heading>p:first-child { font:11px/1.6 Arial,sans-serif; letter-spacing:1.5px; color:#715b37; }
.hm-reader-heading h2 { margin:18px 0 16px; color:#23342b; font:normal 44px/1.1 Georgia,serif; letter-spacing:-1px; }
.hm-reader-heading>p:last-child { font:12px/1.7 Arial,sans-serif; color:#615d50; }
.hm-reader-content { padding:0 50px 20px; }
.hm-reader-content .meat-book__prose { background:transparent; border:0; padding:0; margin:0; max-width:none; color:#29332b; font:18px/1.85 Georgia,serif; }
.hm-reader-content .meat-book__prose p { margin:1.2em 0; }
.hm-reader-content .meat-book__chapter-number,.hm-reader-content .meat-book__prose h4 { display:none; }
.hm-reader-content .meat-book__voices { margin-top:20px; }
.hm-reader-footer { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px; padding:25px 50px 35px; border-top:1px solid #99744244; font:13px/1.6 Arial,sans-serif; }
.hm-reader a { color:#3f583e; text-decoration:underline; text-underline-offset:4px; }
.hm-reader a:focus-visible,.hm-reader button:focus-visible { outline:2px solid #97743a; outline-offset:4px; }
.hm-reader-bar button:focus-visible { outline-color:#f4d2a2; }
body.hm-reading { overflow:hidden; }
@keyframes hm-open-book { from { opacity:0; transform:translateY(18px) scale(.96); } to { opacity:1; transform:none; } }
@media(max-width:1050px) {
  .hm-arrival-layout { grid-template-columns:minmax(0,1fr) 340px; gap:30px; }
  .hm-lobby-scene { padding:18px; }
  .hm-door-link { grid-template-columns:124px minmax(0,1fr); gap:18px; }
  .hm-door-frame { width:124px; height:224px; }
  .hm-door-caption>strong { font-size:26px; }
  .hm-arrival-layout .ng-arrival-copy h1 { font-size:clamp(3.2rem,5.8vw,4rem); }
}
@media(max-width:800px) {
  .hm-arrival-layout { display:block; padding:280px 24px 116px; }
  .hm-arrival-layout .ng-arrival-copy { padding:0; }
  .hm-arrival-layout .ng-arrival-copy h1 { font-size:clamp(2.4rem,9vw,3.7rem); }
  .hm-lobby-scene { margin-top:36px; max-width:560px; padding:20px; }
  .hm-door-link { grid-template-columns:110px minmax(0,1fr); gap:24px; padding:22px 0; }
  .hm-door-frame { width:110px; height:183px; }
  .hm-door-plaque { top:15px; padding:6px 4px; font-size:18px; }
  .hm-door-plaque small { font-size:8px; margin-top:5px; }
  .hm-door-panel { inset:79px 12px 17px; }
  .hm-door-key { top:80px; width:34px; }
  .hm-door-caption>strong { font-size:30px; margin:10px 0; }
  .hm-book-link { grid-template-columns:68px minmax(0,1fr); gap:24px; padding-top:21px; }
  .hm-book-cover { width:68px; height:98px; }
  .hm-arrival-layout~.ng-garden-label { top:195px; right:24px; }
  .hm-reader { width:calc(100% - 24px); max-height:calc(100svh - 24px); }
  .hm-reader-bar { padding:10px 16px; gap:12px; letter-spacing:.4px; }
  .hm-reader-heading { padding:32px 24px 15px; }
  .hm-reader-heading h2 { font-size:34px; }
  .hm-reader-content { padding:0 24px 15px; }
  .hm-reader-content .meat-book__prose { font-size:17px; line-height:1.8; }
  .hm-reader-footer { padding:24px; }
}
@media(max-width:360px) {
  .hm-arrival-layout { padding-left:20px; padding-right:20px; }
  .hm-lobby-scene { padding:16px; }
  .hm-door-link { grid-template-columns:94px minmax(0,1fr); gap:16px; }
  .hm-door-frame { width:94px; height:170px; }
  .hm-door-caption>strong { font-size:25px; }
  .hm-kicker { font-size:8px; letter-spacing:.8px; }
  .hm-book-link { gap:18px; }
  .hm-reader-bar>span { max-width:120px; }
}
html[data-hotel-motion="off"] { scroll-behavior:auto; }
html[data-hotel-motion="off"] .hm-door-leaf,html[data-hotel-motion="off"] .hm-door-key,html[data-hotel-motion="off"] .hm-book-cover { transition:none !important; transform:none !important; }
html[data-hotel-motion="off"] .hm-reader { animation:none; }
html[data-hotel-motion="off"] .ng-door-visual>img,html[data-hotel-motion="off"] .ng-button { transition:none !important; transform:none !important; }
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .hm-door-leaf,.hm-door-key,.hm-book-cover { transition:none !important; transform:none !important; }
  .hm-reader[open] { animation:none !important; }
  .ng-door-visual>img,.ng-button { transition:none !important; transform:none !important; }
}
