.lyric-hotspot{position:absolute;padding:0;background:none;border:0;perspective:500px;z-index:5}
.mini-book{display:flex;width:100%;height:100%;transform:skewX(-13deg) rotate(3deg);transform-origin:center bottom;transition:transform .2s;box-shadow:1px 3px 2px #24190d99}
.mini-book i{width:50%;height:100%;background:linear-gradient(90deg,#c7bba0,#e1d2b2 80%,#a89878);color:#4f4b39;display:grid;place-content:center;font:6px/1.5 Georgia;font-style:normal;text-align:center}
.mini-book i+i{background:linear-gradient(90deg,#b3a17f,#e2d3b2 25%,#cbbc9b)}
.lyric-hotspot:hover .mini-book,.lyric-hotspot:focus-visible .mini-book{transform:skewX(-13deg) rotate(3deg) scale(1.1)}
#lyric-dialog{width:min(1020px,94vw);max-width:none;max-height:96dvh;overflow:visible;border:0;background:transparent;box-shadow:none;color:#342f24;padding:40px 0 0}
#lyric-dialog::backdrop{background:#100f0ab5;backdrop-filter:blur(2px)}
.songbook-close{position:absolute;top:0;left:0;color:#efe6d1;font-size:12px;padding:6px 0}
.songbook-toolbar{display:flex;align-items:center;gap:12px;color:#e5dcc9;font-size:11px;margin-bottom:14px}
.songbook-toolbar label{white-space:nowrap}
.songbook-toolbar select{width:min(310px,60vw);padding:9px 12px;color:#ede4cf;background:#243629;border:1px solid #a39b7c;border-radius:3px;font-size:12px}
.songbook-counter{margin-left:auto;font-variant-numeric:tabular-nums}
.songbook-spread{position:relative;display:grid;grid-template-columns:1fr 1fr;height:min(640px,72dvh);border:8px solid #463526;border-radius:6px 11px 11px 6px;box-shadow:0 15px 60px #0009,0 4px 0 #9b8764,0 8px 0 #362b21;perspective:1800px;background:#e9dfc7;isolation:isolate}
.songbook-page{position:relative;min-width:0;overflow:auto;overscroll-behavior:contain;padding:34px 38px;background:#e9dfc7;color:#393528;scrollbar-width:thin;scrollbar-color:#b5a582 transparent}
.songbook-cover{background:linear-gradient(90deg,#daceb3,#eee4cc 8%,#e5d8ba 93%,#bcae91);display:flex;flex-direction:column;align-items:center;text-align:center}
.songbook-lyrics{background:linear-gradient(90deg,#b5a789,#e6dabe 7%,#eee4cf 94%,#d9ccb0)}
.songbook-kicker{font:9px Arial;letter-spacing:.18em;margin-bottom:20px}
.songbook-art{width:min(290px,90%);aspect-ratio:1;object-fit:cover;box-shadow:0 3px 8px #3b2e2022;flex-shrink:0}
.songbook-art-pending{background:#314b3a;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;color:#d3dbc4}
.songbook-art-pending img{width:35%;height:auto}
.songbook-art-pending span{font:10px Arial;letter-spacing:.06em}
.songbook-cover h2{font:clamp(23px,3vw,37px)/1.12 Georgia;margin-top:24px}
.songbook-number{font:8px Arial;letter-spacing:.15em;margin-top:16px;color:#766e56}
.songbook-lyrics h3{font:27px/1.2 Georgia;font-weight:normal;margin:0 0 23px}
.songbook-verse{font:15px/1.85 Georgia;white-space:pre-wrap;padding-bottom:35px}
.songbook-pending{color:#8b816b;font-style:italic;margin-top:50px}
.songbook-pending p+p{margin-top:12px}
.songbook-page-number{display:block;text-align:right;font:11px Georgia;color:#96866b}
.songbook-navigation{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:18px;color:#e8dfca}
.songbook-navigation button{font:12px Arial;border-bottom:1px solid #a89a7c;padding:7px 0}
.songbook-navigation button:disabled{opacity:.3;cursor:default}
.songbook-navigation>span{font:8px Arial;letter-spacing:.18em}
.songbook-turn{position:absolute;top:0;bottom:0;width:50%;z-index:3;transform-style:preserve-3d;pointer-events:none}
.turn-forward{left:50%;transform-origin:left center}
.turn-back{left:0;transform-origin:right center}
.songbook-turn .songbook-page{position:absolute;inset:0;backface-visibility:hidden;overflow:hidden;box-shadow:0 0 20px #2e201b22}
.songbook-turn .turn-rear{transform:rotateY(180deg)}
@media(max-width:640px){
 #lyric-dialog{width:96vw}
 .songbook-page{padding:22px 14px}
 .songbook-spread{height:66dvh;border-width:5px}
 .songbook-kicker{font-size:7px;letter-spacing:.1em}
 .songbook-art{width:100%}
 .songbook-cover h2{font-size:22px}
 .songbook-lyrics h3{font-size:20px}
 .songbook-verse{font-size:12px;line-height:1.75}
 .songbook-navigation>span{display:none}
 .songbook-art-pending span{font-size:8px;text-align:center}
}
/* The book lives on the piano; the camera moves up to its pages. */
.lyric-hotspot{aspect-ratio:850/586;filter:drop-shadow(0 3px 2px #21170dcc)}
.book-preview{position:absolute;left:0;top:0;width:850px;height:586px;transform-origin:0 0;pointer-events:none}
.book-preview .songbook-spread{width:850px;height:586px}
.book-reading .book-preview{visibility:hidden}
#lyric-dialog{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;overflow:hidden;background:transparent;box-shadow:none;border:0;animation:none}
#lyric-dialog::backdrop{background:transparent;backdrop-filter:none}
#lyric-dialog>.songbook-spread{position:absolute;left:var(--book-left);top:var(--book-top);width:var(--book-width);height:var(--book-height);margin:0}
.songbook-spread{border:5px solid #45362b;border-bottom-width:8px;border-radius:4px 12px 15px 5px;background:#d9c8a3;box-shadow:0 2px 0 #d5c4a1,0 5px 0 #a19173,0 7px 0 #deccaa,0 10px 0 #423226,3px 18px 18px #160f0cb0;transform:rotate(-1deg);container-type:inline-size}
.songbook-spread:after{content:'';position:absolute;z-index:4;left:49.8%;top:0;bottom:0;width:2px;background:#5b49344f;pointer-events:none;box-shadow:0 0 12px 3px #58412735}
.songbook-page{padding:7% 10% 6%;background-color:#e6d7b7;background-image:repeating-linear-gradient(9deg,#553b1710 0,transparent 1px,transparent 4px),radial-gradient(ellipse at 70% 15%,#fff5dc88,transparent 65%);color:#493e2d}
.songbook-cover{border-radius:1px 0 0 5px;background-image:linear-gradient(90deg,#b7a38630,transparent 8%,transparent 88%,#69513755),repeating-linear-gradient(9deg,#553b1709 0,transparent 1px,transparent 4px);text-align:left;align-items:start}
.songbook-lyrics{border-radius:0 7px 10px 0;background-image:linear-gradient(90deg,#71573566,transparent 9%,#fff5df44 85%,#8e755c22),repeating-linear-gradient(9deg,#553b1709 0,transparent 1px,transparent 4px)}
.songbook-kicker{font:clamp(6px,1.05cqw,11px)/1.4 Georgia;letter-spacing:.17em;color:#806d51;margin:0 0 9%}
.songbook-art{width:94%;max-width:none;box-shadow:1px 4px 7px #2f201841;transform:rotate(-3deg);border:7px solid #eee3ca;border-bottom-width:22px;position:relative}
.songbook-art-pending{background:#344539;color:#ded3b5;gap:12px}
.songbook-art-pending:before,.songbook-art-pending:after{content:'';position:absolute;width:33%;height:17px;top:-12px;background:#cbb8899c;transform:rotate(7deg);box-shadow:0 1px 2px #54462522}
.songbook-art-pending:after{top:auto;bottom:-17px;right:-8px;transform:rotate(-24deg);width:28%}
.songbook-art-pending span{font:italic 1.35cqw Georgia;letter-spacing:0;opacity:.65}
.songbook-art-pending img{width:46%;mix-blend-mode:screen;opacity:.7}
.songbook-cover h2{font:italic 4.2cqw/1.05 Georgia;margin:10% 0 0;letter-spacing:-.025em}
.songbook-number{font:1cqw/1.4 Georgia;letter-spacing:.13em;margin-top:5%;color:#8b7759}
.songbook-lyrics h3{font:italic 3.6cqw/1.15 Georgia;margin:0 0 7%;letter-spacing:-.02em}
.songbook-verse{font:1.8cqw/1.8 Georgia;min-height:62%;padding-bottom:20px;background:repeating-linear-gradient(transparent 0,transparent calc(3.24cqw - 1px),#9f89682a calc(3.24cqw - 1px),#9f89682a 3.24cqw)}
.songbook-pending{margin-top:12%;color:#99886e;font-style:italic;white-space:normal;font-size:1.7cqw}
.songbook-pending p{background:#e4d5b5aa;display:table}
.songbook-page-number{font:italic 1.3cqw Georgia;position:absolute;bottom:5%;right:10%}
.songbook-close{position:fixed;left:24px;top:22px;font:12px Georgia;color:#f3e7ce;text-shadow:0 1px 5px #000;padding:10px;background:#251e1666;border-radius:2px}
.songbook-toolbar{position:absolute;left:var(--book-left);top:calc(var(--book-top) - 42px);width:var(--book-width);margin:0;color:#f6e7cb;text-shadow:0 1px 4px #000;gap:10px}
.songbook-toolbar label{font:italic 13px Georgia}
.songbook-toolbar select{background:#31281fd9;border:0;border-bottom:1px solid #bea786;color:#eadbc0;font:13px Georgia;width:180px;padding:7px}
.songbook-counter{font:italic 12px Georgia}
.songbook-navigation{position:absolute;top:calc(var(--book-top) + var(--book-height) + 20px);left:var(--book-left);width:var(--book-width);margin:0;color:#f1e2c3;text-shadow:0 1px 4px #000}
.songbook-navigation button{font:italic 14px Georgia;border:0;background:#2a211a77;padding:8px 12px;border-radius:2px}
.songbook-navigation>span{font:italic 11px Georgia;letter-spacing:.04em}
.songbook-turn .turn-front{background-color:#e6d7b7}.songbook-turn .turn-rear{background-color:#e6d7b7}
@media(max-width:640px){.songbook-toolbar label,.songbook-navigation>span{display:none}.songbook-toolbar select{font-size:11px;width:150px}.songbook-navigation button{font-size:11px}.songbook-close{left:10px;top:10px}.songbook-art{border-width:4px;border-bottom-width:12px}.songbook-art-pending:before,.songbook-art-pending:after{height:8px}}
/* Match the piano's music-rest angle and the room's warm, low light. */
.book-preview .songbook-spread{transform:perspective(1800px) rotateY(-21deg) rotateX(9deg) skewX(-6deg) rotate(2deg);transform-origin:center bottom;filter:brightness(.76) saturate(.7) contrast(.94);box-shadow:0 3px 0 #b4a183,0 6px 0 #5b4832,3px 11px 10px #1e150caf}
.book-preview .songbook-cover{background-color:#d0be9b}
.book-preview .songbook-lyrics{background-color:#d9c5a2}
.book-preview .songbook-spread:before{content:'';position:absolute;inset:0;z-index:5;pointer-events:none;background:linear-gradient(115deg,#e5a64415,transparent 35%,#39281c2b);border-radius:inherit}
.lyric-hotspot{filter:drop-shadow(1px 3px 2px #171109a0);transition:filter .25s}
.lyric-hotspot:hover,.lyric-hotspot:focus-visible{filter:drop-shadow(1px 3px 2px #171109a0) brightness(1.06)}
#lyric-dialog>.songbook-spread{transform:perspective(1800px) rotateY(-21deg) rotateX(9deg) skewX(-6deg) rotate(2deg);transform-origin:center bottom;filter:brightness(.93) saturate(.85)}
.book-preview .songbook-spread,#lyric-dialog>.songbook-spread{filter:brightness(.84) saturate(.78) contrast(.96)}
.songbook-cover{background-color:#d0be9b}.songbook-lyrics{background-color:#d9c5a2}

/* Native-resolution piano environment for the reading distance. */
#lyric-dialog{background:#302516 url('assets/piano-closeup.webp') center center/cover no-repeat}

#lyric-dialog{background-size:var(--piano-width) auto;background-position:center var(--piano-top)}
.songbook-lyrics:has(.songbook-verse:not(.songbook-pending)) .songbook-page-number{position:static;margin-top:20px}

/* Lyrics read like handwritten notes; title remains on the artwork page. */
.songbook-lyrics .songbook-verse{font-family:'Bradley Hand','Segoe Print','Chalkboard SE','Comic Sans MS',cursive;font-size:1.5cqw;font-style:normal;font-weight:400;line-height:1.9;background:repeating-linear-gradient(transparent 0,transparent calc(2.85cqw - 1px),#9f896826 calc(2.85cqw - 1px),#9f896826 2.85cqw);padding-top:0}
.songbook-lyrics .songbook-pending{font-size:1.5cqw}

#lyric-dialog.book-travelling{pointer-events:none;will-change:transform,opacity}#lyric-dialog.book-travelling .songbook-toolbar,#lyric-dialog.book-travelling .songbook-navigation,#lyric-dialog.book-travelling .songbook-close{visibility:hidden}

#lyric-dialog>.songbook-spread>.songbook-page{cursor:pointer}
/* Reading view faces the piano directly. */
#lyric-dialog>.songbook-spread{transform:none;transform-origin:center bottom}
/* Match the room objects' subtle hover enlargement without changing the book angle. */
.book-preview .songbook-spread{transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.studio:not(.approaching) .lyric-hotspot:hover .book-preview .songbook-spread,
.studio:not(.approaching) .lyric-hotspot:focus-visible .book-preview .songbook-spread{transform:perspective(1800px) rotateY(-21deg) rotateX(9deg) skewX(-6deg) rotate(2deg) scale(1.12)}
/* At room distance, keep the paper and binding in the piano's ambient light. */
.book-preview .songbook-spread{transform:perspective(2400px) rotateY(-10deg) rotateX(8deg) skewX(-10deg) rotate(1deg);border-width:2px 3px 4px;border-color:#55432d;border-radius:3px 8px 8px 3px;filter:brightness(.76) saturate(.62) contrast(.86);box-shadow:0 3px 0 #b2a184,0 5px 0 #594530,2px 9px 7px #1b120d80}
.book-preview .songbook-art{box-shadow:1px 2px 4px #33251830;border-color:#d9c8a8}
.book-preview .songbook-cover{background-image:linear-gradient(90deg,#aa896e22,transparent 20%,transparent 85%,#6a51365c);background-color:#d8c5a3}
.book-preview .songbook-lyrics{background-image:linear-gradient(90deg,#70523466,transparent 12%,#d9b47715 75%,#5f463b22);background-color:#decaab}
.book-preview .songbook-spread:before{background:linear-gradient(110deg,#edb45a20,transparent 35%,#2b21192b)}
.studio:not(.approaching) .lyric-hotspot:hover .book-preview .songbook-spread,
.studio:not(.approaching) .lyric-hotspot:focus-visible .book-preview .songbook-spread{transform:perspective(2400px) rotateY(-10deg) rotateX(8deg) skewX(-10deg) rotate(1deg) scale(1.12)}

/* Small circular navigation tokens, shared across the room and object views. */
#app .back-room,#music-dialog .laptop-back,#tour-dialog .laptop-back,#phone-dialog .phone-exit,#lyric-dialog .songbook-close,#lyric-dialog .songbook-navigation button{
 width:78px;height:78px;min-width:78px;min-height:78px;padding:13px;border-radius:50%;
 display:inline-flex;align-items:center;justify-content:center;white-space:normal;text-align:center;
 font:11px/1.35 'Courier New',Courier,monospace;letter-spacing:-.25px;font-weight:600;
 color:#f0e6d0;background:#26392de8;border:1px solid #d4c6a56b;
 box-shadow:0 3px 12px #100e0b30;text-shadow:none;cursor:pointer;
 transition:transform .18s ease,background .18s ease,border-color .18s ease;
}
#app .back-room:hover,#music-dialog .laptop-back:hover,#tour-dialog .laptop-back:hover,#phone-dialog .phone-exit:hover,#lyric-dialog .songbook-close:hover,#lyric-dialog .songbook-navigation button:hover{background:#40523c;transform:scale(1.05);border-color:#f0e6d0}
#app .back-room:focus-visible,#music-dialog .laptop-back:focus-visible,#tour-dialog .laptop-back:focus-visible,#phone-dialog .phone-exit:focus-visible,#lyric-dialog .songbook-close:focus-visible,#lyric-dialog .songbook-navigation button:focus-visible{outline:2px solid #f0e6d0;outline-offset:4px}
#lyric-dialog .songbook-navigation button{width:62px;height:62px;min-width:62px;min-height:62px;padding:9px;font-size:10px}
#lyric-dialog .songbook-navigation{top:auto;bottom:12px}
@media(max-width:640px){#app .back-room,#music-dialog .laptop-back,#tour-dialog .laptop-back,#phone-dialog .phone-exit,#lyric-dialog .songbook-close{width:66px;height:66px;min-width:66px;min-height:66px;padding:9px;font-size:10px}}

/* Oval navigation with comfortable space for each destination label. */
#app .back-room,#music-dialog .laptop-back,#tour-dialog .laptop-back,#phone-dialog .phone-exit,#lyric-dialog .songbook-close{width:142px;height:56px;min-width:142px;min-height:56px;padding:10px 20px;border-radius:50%;font-size:11px}
#lyric-dialog .songbook-navigation button{width:126px;height:50px;min-width:126px;min-height:50px;padding:9px 17px;border-radius:50%;font-size:10px}
@media(max-width:640px){#app .back-room,#music-dialog .laptop-back,#tour-dialog .laptop-back,#phone-dialog .phone-exit,#lyric-dialog .songbook-close{width:126px;height:50px;min-width:126px;min-height:50px;padding:8px 16px;font-size:10px}}

/* Keep the room book in its photographed pose until the reading dialog opens. */
.studio.book-approaching .book-preview .songbook-spread{transform:perspective(2400px) rotateY(-10deg) rotateX(8deg) skewX(-10deg) rotate(1deg);transition:none}
#lyric-dialog{animation:none;opacity:1}

/* Both faces belong to one physical sheet, hinged at the spine. */
#lyric-dialog .songbook-spread{perspective:2200px}
#lyric-dialog .songbook-turn .songbook-page{width:100%;height:100%;margin:0;backface-visibility:hidden;-webkit-backface-visibility:hidden}
#lyric-dialog .songbook-turn .turn-front{transform:translateZ(.2px)}
#lyric-dialog .songbook-turn .turn-rear{transform:rotateY(180deg) translateZ(.2px)}

/* Cover the photographed book while leaving the foreground chair edge visible. */
.studio:not(.book-approaching) .lyric-hotspot{clip-path:polygon(-15% -15%,115% -15%,115% 76%,86% 91%,78% 110%,-15% 110%)}
.studio.book-approaching .lyric-hotspot{clip-path:url(#book-chair-outline);overflow:visible;filter:none!important}

/* Keep the paper lighting static while its prepared layer scales on hover. */
.studio:not(.approaching) .lyric-hotspot,.studio:not(.approaching) .lyric-hotspot:hover,.studio:not(.approaching) .lyric-hotspot:focus-visible{filter:drop-shadow(1px 3px 2px #171109a0);transition:none}
.studio:not(.approaching) .book-preview .songbook-spread{will-change:transform;transition:transform 150ms ease-out}
@media(prefers-reduced-motion:reduce){.studio:not(.approaching) .book-preview .songbook-spread{transition:none}}

/* Follow the photographed chair with a curve; allow the whole right page to grow. */
.studio:not(.book-approaching) .lyric-hotspot{clip-path:url(#book-chair-outline);overflow:visible;filter:none!important}
.book-preview{overflow:visible}

.songbook-lyrics-link{display:inline-block;margin-top:20px;padding:9px 0;border-bottom:1px solid currentColor;font-size:18px;color:#334b38;pointer-events:auto}
