[hidden]{display:none!important}
/* The scroll position drives the book: loading textures must not move it. */
body{overflow-anchor:none}
.book-loading #book-canvas{opacity:0}
.book-loading .book-current,.book-loading .book-navigation{visibility:hidden}
.book-chapter{position:relative;background:#191612}
.book-chapter:not(.book-ready){padding-top:110px}
.book-stage{position:sticky;top:0;width:100%;height:100svh;min-height:550px;overflow:hidden;background:#191612;isolation:isolate;outline-offset:-5px}
.book-photograph,.book-room,#book-canvas{position:absolute;inset:0;width:100%;height:100%}
.book-photograph{z-index:0;overflow:hidden}.book-photograph img{width:100%;height:100%;object-fit:cover;filter:blur(28px) brightness(.7);transform:scale(1.12)}
#book-canvas{z-index:1;display:block;touch-action:pan-y}
.book-room{z-index:2;pointer-events:none;will-change:opacity}
.book-room img{width:100%;height:100%;object-fit:cover;object-position:50% 73.5%;transform-origin:50% 50%;will-change:transform}
.book-stage:after{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(#0005,transparent 17%,transparent 85%,#0009)}
.book-heading{position:absolute;top:112px;left:var(--gutter);right:var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:24px;z-index:3;pointer-events:none;color:white}
.book-heading h2{font-size:clamp(38px,4.3vw,66px);font-weight:500;letter-spacing:-.065em;margin:0;line-height:1}
.book-heading>span{font-size:12px;letter-spacing:.12em;color:#ffffff9c}
.book-hotspot{position:absolute;left:65%;top:65%;transform:translate(-50%,-50%);z-index:4;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:1px solid #ffffff30;background:#f5f5f0ee;backdrop-filter:blur(12px);color:#171715;cursor:pointer;box-shadow:0 3px 20px #0003;transition:background .3s,color .3s;opacity:0;visibility:hidden}
.book-hotspot span{font-size:28px;font-weight:300;line-height:1;transition:transform .4s var(--ease)}
.book-hotspot:hover{background:var(--red);color:white}.book-hotspot:hover span{transform:rotate(90deg)}
.book-hotspot:focus-visible{outline:2px solid white;outline-offset:5px}
.book-bottom{position:absolute;bottom:25px;left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;align-items:end;gap:24px;z-index:3;pointer-events:none;color:white}
.book-current{min-width:230px}.book-current>span{font-size:12px;color:#ffffff9c;font-variant-numeric:tabular-nums;letter-spacing:.06em}.book-current h3{font-size:21px;font-weight:500;letter-spacing:-.04em;margin:9px 0 0}
.book-instruction{font-size:14px;color:#ffffffb0;margin:0 0 12px;letter-spacing:-.01em}.book-navigation{display:flex;gap:8px;pointer-events:auto}.book-navigation button{width:46px;height:46px;display:grid;place-items:center;border:1px solid #ffffff3b;background:#ffffff12;color:white;backdrop-filter:blur(12px);border-radius:50%;font-size:20px;cursor:pointer;transition:background .25s,color .25s}.book-navigation button:hover:not(:disabled){background:white;color:#191919}.book-navigation button:disabled{opacity:.28;cursor:default}
.book-ready .book-fallback{display:none}.book-chapter .book-fallback{background:var(--paper)}
/* Give the automatic exit a complete section to land on at every screen size. */
.book-chapter.book-ready + .contact{min-height:calc(100svh - 84px);display:flex;flex-direction:column;justify-content:center}
@media(max-width:760px){.book-chapter.book-ready + .contact{min-height:calc(100svh - 72px)}}
.contact{background:#000;color:#fff;border-top-color:#202020}
.contact h2{font-size:clamp(40px,7.2vw,112px);line-height:1.05;letter-spacing:-.06em;max-width:18ch;margin-inline:auto;text-wrap:balance}
.contact .contact-button{background:#fff;border-color:#fff;color:#111}
.contact .contact-button .button-arrow{background:#0000000d}
.contact .contact-button:hover{background:var(--red);border-color:var(--red);color:#fff}
.contact .contact-button:hover .button-arrow{background:#ffffff24}
.contact .contact-instagram{background:transparent;border-color:#ffffff40;color:#fff}
.contact .contact-instagram .button-arrow{background:#ffffff12}
.contact .contact-instagram:hover{background:#191919;border-color:#ffffff70;color:#fff}
.footer{background:#000;color:#fff;border-top-color:#202020}
.footer>span{color:#999}
.contact-portrait{width:min(280px,100%);margin:48px auto 0}
.contact-portrait img{display:block;width:100%;height:auto;border-radius:5px}
@media(max-width:760px){.contact-portrait{width:min(240px,100%);margin-top:36px}}
.book-instagram{position:absolute;inset:0;z-index:5;pointer-events:none;color:#fff;background:linear-gradient(transparent 80%,#130e094d)}
.book-instagram-copy{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);width:min(740px,calc(100% - 40px));display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:18px;padding:15px 18px;border:1px solid #ffffff20;border-radius:20px;background:#1c1916db;backdrop-filter:blur(24px);box-shadow:0 12px 38px #0003}
.book-instagram h2{font-size:23px;font-weight:500;line-height:1.15;letter-spacing:-.045em;margin:0 0 5px}
.book-instagram p{font-size:13px;line-height:1.2;color:#ffffff9c;margin:0}
.book-instagram a{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:48px;padding:12px 22px;border-radius:12px;background:#e52620;color:white;font-size:15px;font-weight:500;text-decoration:none;pointer-events:auto;transition:background .2s,transform .2s}
.book-instagram a:hover{background:#c41b17;transform:translateY(-1px)}.book-instagram a:focus-visible,.book-instagram button:focus-visible{outline:2px solid white;outline-offset:4px}.book-instagram a span{font-size:22px;line-height:1}
#book-return{width:44px;height:44px;border:1px solid #ffffff26;border-radius:50%;background:#ffffff0b;color:white;font-size:21px;cursor:pointer;pointer-events:auto;transition:background .2s}#book-return:hover{background:#ffffff20}
@media(max-width:520px){.book-instagram-copy{width:calc(100% - 24px);bottom:18px;padding:12px;gap:11px;grid-template-columns:38px 1fr auto;border-radius:17px}.book-instagram h2{font-size:16px;max-width:150px}.book-instagram p{font-size:12px}.book-instagram a{font-size:13px;padding:10px 13px;min-height:44px;gap:9px}#book-return{width:38px;height:38px;font-size:19px}}
.nav.in-book{color:white;background:#19161265;box-shadow:none}.nav.in-book .nav-contact{background:#ffffff0f;border-color:#ffffff30}.nav.in-book .nav-contact:hover{color:white}
@media(max-width:760px){.book-heading{top:100px;align-items:start}.book-heading h2{font-size:42px}.book-heading>span{font-size:12px;letter-spacing:.08em;max-width:95px;line-height:1.6;text-align:right}.book-bottom{bottom:22px;align-items:center}.book-current{min-width:0;max-width:65%}.book-current h3{font-size:21px}.book-instruction{display:none}.book-navigation button{width:44px;height:44px}.book-hotspot{width:42px;height:42px}.book-hotspot span{font-size:25px}.book-stage{min-height:520px}}
@media(max-height:600px){.book-stage{min-height:0}.book-heading{top:84px}.book-heading h2{font-size:32px}.book-bottom{bottom:20px}.book-instruction{display:none}.book-current h3{font-size:18px}}
html[data-motion="reduced"] .book-hotspot span,html[data-motion="reduced"] .book-navigation button{transition:none}html[data-motion="reduced"] .book-room{display:none}html[data-motion="reduced"] .book-room img{will-change:auto}
