/* V2.1: the same garden, with an invitation and local paper/glass objects. */
:root { --v21-cream:#f8f0dd; --v21-moss:#46523c; --v21-brick:#a04e37; }
[hidden] { display:none!important; }
.sr-only { position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap; }
button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible { outline:2px solid #a04e37;outline-offset:4px; }
/* Keep a full registered plate below the near cutout. Complementary alpha masks
   formerly added up to less than one at their edges, exposing a thin seam. */
.scenery,.middle-layer { mask-image:none; }
.far-layer { display:none; }
.scenery { z-index:-3; }
.middle-layer.night-scene { z-index:-2; }
.near-layer { mask-mode:alpha; }
.scene-shade { display:none; }
body[data-entered=false] .night-scene { transition:none; }
body[data-room=music] .mini-player { opacity:0;visibility:hidden; }
body[data-room]:not([data-room='']) .places { opacity:0; }
.scene-world { transition:transform .62s cubic-bezier(.2,.7,.2,1),filter .62s ease; }
body[data-entered=false] .scene-world { transform:scale(1.065);filter:blur(3px); }
body[data-entered=false] .masthead,body[data-entered=false] .garden-tools,body[data-entered=false] .mini-player,
body[data-entered=false] .garden-footer,body[data-entered=false] .host-talk { opacity:0;visibility:hidden; }
body[data-entered=false] .scene-world * { animation-play-state:paused!important; }
body[data-entered=entering] .masthead,body[data-entered=entering] .mini-player,body[data-entered=entering] .garden-tools { animation:main-arrives .5s .15s both; }
@keyframes main-arrives { from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none} }
.entrance { position:fixed;inset:0;z-index:50;display:flex;align-items:center;padding:8vh max(8vw,32px);overflow:hidden;color:#36432f;background:linear-gradient(90deg,#f6efdde8 0%,#f0e9d4cf 27%,#f1e8d16e 55%,#e9dfc91a 100%);isolation:isolate;transition:opacity .52s ease,transform .62s ease; }
.entrance:focus { outline:none; }
.entrance-note { position:relative;z-index:1;width:min(580px,100%);padding-bottom:3vh; }
.entrance-eyebrow { display:block;font:10px/1.4 GardenSans,sans-serif;letter-spacing:3px;color:#697356;margin-bottom:27px; }
.entrance h1 { font:clamp(68px,8vw,116px)/.96 Georgia,serif;letter-spacing:-5px;margin:0; }
.entrance h1 em { font-weight:400;color:#94533b; }
#entrance-quote { font:19px/1.6 Georgia,serif;max-width:315px;margin:30px 0 34px; }
.entrance-bell { display:flex;align-items:center;gap:16px;padding:11px 24px 11px 12px;min-height:76px;border:1px solid #b5a4849c;border-radius:12px 26px 26px 12px;color:#48523b;background:linear-gradient(130deg,#fff9eeb0,#eee3c6a8);box-shadow:0 4px 0 #b7aa875c,0 9px 24px #574a2721,inset 0 1px 0 #fff8;transition:transform .2s,background .2s; }
.entrance-bell:not(:disabled):hover { transform:translateY(-2px);background:#fff9e4e0; }
.entrance-bell:disabled { cursor:wait;opacity:.7; }
.bell-object { display:grid;place-items:center;width:48px;height:52px;transform-origin:50% 8%; }
.bell-object svg { width:42px;height:48px;stroke:#715231;stroke-width:2;fill:none; }
.bell-body { fill:#cfa563; }.bell-rim{stroke:#f1dcb1!important}.bell-clapper{fill:#97713b}
.entrance-bell:hover .bell-object { animation:bell-nudge .6s ease; }
@keyframes bell-nudge { 20%{transform:rotate(9deg)}50%{transform:rotate(-6deg)}80%{transform:rotate(2deg)} }
#entrance-action { font-size:16px;letter-spacing:.2px; }
.bell-arrow { margin-left:14px;font-size:21px;color:#866142; }
#entrance-status { font:11px/1.7 GardenSans,sans-serif;color:#73765f;margin:20px 0 0;max-width:310px; }
.entrance-signature { position:absolute;left:max(8vw,32px);bottom:38px;font:9px GardenSans,sans-serif;letter-spacing:2px;color:#6a745b; }
.entrance[data-state=entering] { opacity:0;transform:translateX(-12px);pointer-events:none; }
.entrance-air { position:absolute;inset:0;pointer-events:none; }
.entrance-air i { position:absolute;left:calc(13% + var(--n,1)*13%);top:calc(14% + var(--n,1)*9%);width:3px;height:3px;background:#fff3c9;border-radius:100%;box-shadow:0 0 7px #fff5bd9e;opacity:.4;animation:gate-air 13s ease-in-out infinite alternate; }
.entrance-air i:nth-child(2){--n:2;animation-delay:-7s}.entrance-air i:nth-child(3){--n:3;animation-delay:-3s}.entrance-air i:nth-child(4){--n:4;animation-delay:-10s}.entrance-air i:nth-child(5){--n:5;animation-delay:-5s}
@keyframes gate-air{from{transform:translate(0,0);opacity:.1}to{transform:translate(19px,-22px);opacity:.65}}
body[data-day-phase=night] .entrance { color:#eee5cb;background:linear-gradient(90deg,#102b2bed,#183333d6 32%,#1735315c 65%,#142e2815); }
body[data-day-phase=night] .entrance h1 em { color:#d4b780; }
body[data-day-phase=night] .entrance-eyebrow,body[data-day-phase=night] #entrance-status,body[data-day-phase=night] .entrance-signature { color:#b9bea1; }
body[data-day-phase=night] .entrance-bell { background:linear-gradient(130deg,#dfd3abed,#c3b48ecd);color:#304130;box-shadow:0 4px 0 #18291b,0 8px 30px #08120c38; }
/* Motion is orchestrated in garden-wind.js; no clone or perpetual pendulum. */
.garden-sprig,.canopy-frond { animation:none!important; }
.garden-sprig { background-size:contain;mask-image:none; }
.sprig-house { background-image:url('./assets/v2.1/foliage-0.webp');transform-origin:50% 85%; }
.sprig-stall { background-image:url('./assets/v2.1/foliage-4.webp');transform-origin:50% 85%; }
.sprig-path { background-image:url('./assets/v2.1/foliage-1.webp');transform-origin:50% 85%; }
.habitat-reeds { position:absolute;z-index:2;pointer-events:none;background:url('./assets/v2.1/foliage-3.webp') center/contain no-repeat;transform-origin:50% 85%; }
body[data-day-phase=night] .habitat-reeds { filter:brightness(.48) saturate(.65); }
.wildlife .creature-sprite { animation:none; }
.wildlife[data-state=flying] .creature-sprite,.wildlife[data-state=flutter] .creature-sprite { animation:creature-flight .65s step-end infinite; }
.wildlife-hummingbird[data-state=flutter] .creature-sprite { animation-duration:.18s; }
.wildlife-dragonfly[data-state=flutter] .creature-sprite { animation-duration:.2s; }
.wildlife-butterfly[data-state=flutter] .creature-sprite { animation:creature-four 1s step-end infinite; }
.wildlife[data-state=perched] .creature-sprite,.wildlife[data-state=look] .creature-sprite,.wildlife[data-state=rest] .creature-sprite { background-position:66.666667% var(--sprite-row);mask-position:66.666667% var(--sprite-row); }
.wildlife[data-state=blink] .creature-sprite { background-position:100% var(--sprite-row);mask-position:100% var(--sprite-row); }
.wildlife-owl .creature-sprite { background-image:url('./assets/v2.1/owl-states.webp')!important;background-size:300% 200%;mask-image:none!important;background-position:var(--owl-x,0%) var(--owl-y,0%)!important;animation:none!important; }
.wildlife-owl[data-state=blink] { --owl-x:50%;--owl-y:0%; }
.wildlife-owl[data-state=look] { --owl-x:100%;--owl-y:0%; }
.wildlife-owl[data-state=settle] { --owl-x:0%;--owl-y:100%; }
.wildlife-owl[data-state=prepare] { --owl-x:50%;--owl-y:100%; }
.wildlife-owl[data-state=flying] { --owl-x:100%;--owl-y:100%; }
.firefly-habitat { position:absolute;inset:0;z-index:2;pointer-events:none; }
.habitat-firefly { position:absolute;width:3px;height:3px;opacity:0;border-radius:50%;background:#e9daa0;box-shadow:0 0 5px 2px #dcc17238; }
body[data-still=true] .firefly-habitat,body[data-still=true] .wildlife { display:none; }
/* A music room is a set of local panes, with open air between them. */
.room-dialog[data-room=music] { inset:auto 36px 28px;margin:0 auto;width:min(1110px,calc(100vw - 72px));height:min(728px,88svh);max-height:calc(100svh - 36px);border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;overflow:visible; }
.room-dialog[data-room=music]::backdrop { background:linear-gradient(180deg,#1423180d,#13251824);backdrop-filter:none; }
.room-dialog[data-room=music] .room-inner { overflow:visible; }
.room-dialog[data-room=music] .room-header { padding:12px 0 18px;border:0;background:none;color:#fff6e1;text-shadow:0 1px 8px #162314a6; }
.room-dialog[data-room=music] .room-header>div { padding:12px 22px;border-radius:12px;background:linear-gradient(90deg,#263622b3,#26362266 80%,transparent); }
.room-dialog[data-room=music] .room-header h1 { font:29px/1.1 Georgia,serif; }
.room-dialog[data-room=music] .room-header .eyebrow { color:#e4d6b7;font-size:9px;letter-spacing:2.1px; }
.room-dialog[data-room=music] .close-room { background:#f8f0dfef;color:#48513b;box-shadow:0 3px 12px #14271126;text-shadow:none; }
.room-dialog[data-room=music] .room-content { overflow-y:auto;overflow-x:hidden;scrollbar-gutter:auto;padding:0 2px 8px; }
.music-room { display:flex;flex-direction:column;gap:23px;min-height:0;padding:0; }
#album-selection { padding:0;position:static;align-self:stretch;flex:none; }
.selected-album { display:grid;grid-template-columns:minmax(260px,.96fr) minmax(340px,1.04fr);gap:clamp(35px,5vw,75px);align-items:center;margin:0;border:0;padding:0 24px; }
.album-feature { display:block;min-width:0; }
.music-object { position:relative;width:78%;max-width:310px;aspect-ratio:1;margin:14px auto 22px 5px;isolation:isolate; }
.music-object:after { content:'';position:absolute;inset:0;z-index:-1;border-radius:3px;background:#ddd3b7;transform:translate(3px,3px) rotate(-3deg);box-shadow:0 16px 35px #14231966; }
.album-feature .loaded-cover { position:relative;z-index:1;display:block;width:100%;height:100%;border-radius:2px;transform:rotate(-3deg);border:1px solid #efe3cc85;box-shadow:1px 2px 0 #e6d6b4,3px 4px 0 #857757; }
.listening-vinyl { position:absolute;width:96%;height:96%;top:2%;right:-26%;border-radius:50%;background:repeating-radial-gradient(circle,#121d19 0 1px,#273129 1.4px 2px,#101a15 3px);box-shadow:1px 2px 0 #080e0a,5px 8px 15px #14271150;animation:disc-spin 12s linear infinite;animation-play-state:paused; }
.listening-vinyl:after { content:'';position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 30deg,transparent 0 30deg,#dfdeb326 47deg,transparent 65deg 209deg,#cfceaa29 230deg,transparent 265deg); }
.listening-vinyl img { position:absolute;left:35%;top:35%;width:30%;height:30%;border-radius:50%; }
.listening-vinyl i { position:absolute;left:49%;top:49%;width:2%;height:2%;border-radius:50%;background:#d4c8a6;z-index:1; }
body[data-playing=true] .listening-vinyl { animation-play-state:running; }
.sleeve-stamp { position:absolute;left:-12px;bottom:14px;z-index:2;padding:6px 9px;background:#f2e6cabf;color:#795f46;font:8px GardenSans,sans-serif;letter-spacing:2px;transform:rotate(-5deg);border-top:1px solid #ffffff52;border-bottom:1px solid #a98b5152; }
.album-object-caption { display:flex;justify-content:space-between;color:#fff3d9;font:9px GardenSans,sans-serif;letter-spacing:2px;text-shadow:0 1px 6px #172817;width:90%;padding:9px 5px;background:linear-gradient(90deg,#24382199,transparent); }
.album-controls { position:relative;padding:27px 27px 16px;border-radius:8px 22px 18px 18px;background:linear-gradient(130deg,#fcf6e5ee,#f4ead5d9 60%,#e7e3c8d6);border:1px solid #fff5da85;box-shadow:0 10px 32px #12241326;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px); }
.album-text { display:block;margin:0; }
.album-text h2 { font:clamp(26px,2.5vw,36px)/1.12 Georgia,serif;letter-spacing:-.7px;margin:0 0 10px;overflow-wrap:anywhere;text-wrap:balance; }
.album-text .eyebrow { font-size:9px;letter-spacing:1.6px;margin-bottom:13px; }
.album-byline { margin:0;font-size:12px;line-height:1.6;color:#626954; }
.album-byline span { display:block;font-size:10px;color:#777d65; }
.transport-dock { border-top:1px solid #a6a78c59;padding-top:14px; }
.playback { margin:0; }
.playback-row { display:flex;flex-wrap:nowrap;align-items:center;justify-content:center;gap:14px; }
.playback-row .round-button { background:transparent;border:0;min-width:44px;width:44px;height:44px; }
.primary-play { min-width:108px;border-radius:25px;min-height:46px;background:#9b4b35;box-shadow:0 3px 9px #77493021; }
.primary-play span { font-size:12px; }
.volume-button { margin-left:auto; }
.progress-row { margin:12px 0 2px;gap:10px; }
.play-status { display:block;min-height:17px;font-size:10px;margin:6px 0 0;color:#7e8269; }
.listening-actions { display:flex;align-items:center;justify-content:space-between;margin-top:9px;gap:10px; }
.listening-actions button { font-size:11px;min-height:40px;padding:5px 1px;background:transparent;color:#5a674b;text-decoration:underline;text-underline-offset:4px;text-decoration-color:#a2a88c; }
.track-queue { margin-top:4px;border-top:1px solid #a6a78c59; }
.track-list { max-height:152px;overflow-y:auto;border:0;margin:0;padding:0; }
.track-button { padding:10px 3px;min-height:44px; }
.track-name { font-size:12px; }
.shelf-block { border:1px solid #fff2d467;border-radius:16px;background:linear-gradient(160deg,#f4ecd9dd,#e6dfc7cf);box-shadow:0 5px 24px #1a2e1b21;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);margin:0;padding-bottom:3px; }
.shelf-heading,.room-dialog[data-room=music] .shelf-heading { padding:13px 21px 7px;gap:12px; }
.shelf-heading h2 { font:15px Georgia,serif; }
.shelf-heading h2 small { font:10px GardenSans,sans-serif; }
.shelf-arrows { display:flex;margin-left:0; }
.shelf-arrows .round-button { width:38px;height:38px; }
.album-search { margin-left:auto;min-width:0; }
.album-search input { width:190px;max-width:100%;border:0;border-bottom:1px solid #9fa78c;background:transparent;min-height:36px;padding:6px 2px;color:#4e5c3f;font:12px GardenSans,sans-serif;border-radius:0; }
.album-search input::placeholder { color:#797d68; }
.album-shelf { display:flex;overflow-x:auto;overflow-y:hidden;gap:18px;padding:8px 22px 17px;scroll-snap-type:x proximity; }
.album-choice { width:82px;flex:0 0 82px;min-width:0; }
.album-choice img { width:82px;height:82px;object-fit:cover;border-radius:2px;box-shadow:1px 2px 0 #e7d7b5,3px 5px 9px #312b1b40; }
.album-choice span { font-size:10px;line-height:1.4;margin-top:9px; }
.shelf-no-results { padding:14px 23px;font-size:12px; }
.room-dialog[data-listening=true] .shelf-block { display:none; }
.room-dialog[data-listening=true] .music-room { justify-content:center;min-height:100%; }
.room-dialog[data-listening=true] .selected-album { grid-template-columns:1fr 1fr; }
.room-dialog[data-listening=true] .music-object { max-width:380px;width:80%; }
.room-dialog[data-listening=true] .album-controls { background:linear-gradient(130deg,#fcf6e5e8,#f4ead5c7 70%,#e7e3c8b8); }
.room-dialog[data-listening=true] { height:min(615px,79svh); }
@media(min-width:1100px) {
  .selected-album,.room-dialog[data-listening=true] .selected-album { grid-template-columns:320px 400px;gap:65px;justify-content:start; }
  .room-dialog[data-listening=true] .music-object { width:94%;max-width:320px; }
  .room-dialog[data-listening=false] .music-object { width:88%; }
  .album-text h2 { font-size:31px; }
}
.room-dialog[data-lyric-section=chorus] .music-object { scale:1.025;transition:scale 1.1s ease; }
.room-dialog[data-lyric-section=chorus] .album-controls { box-shadow:0 0 26px #f8eac712,0 10px 32px #12241326; }
.lyrics-field { min-height:155px;display:flex;flex-direction:column;justify-content:center;gap:7px;margin:18px -6px 18px 0;overflow:hidden;transition:opacity .35s; }
.lyrics-field p { margin:0;font:15px/1.4 Georgia,serif;opacity:.4;transition:opacity .35s,transform .35s; }
.lyrics-field p[data-offset='0'] { font-size:23px;opacity:1;color:#394b2f; }
.lyrics-field p[data-offset='-2'],.lyrics-field p[data-offset='2'] { opacity:.2;font-size:13px; }
.lyrics-field small { display:block;font:11px/1.5 GardenSans,sans-serif;margin-top:3px;opacity:.8; }
.lyrics-field[data-instrumental=true] { min-height:25px;opacity:0; }
.selection-empty { display:flex;flex-direction:row;align-items:center;justify-content:center;gap:60px;min-height:285px;padding:20px 30px;color:#f9efdb;text-shadow:0 2px 15px #1125118f;background:radial-gradient(ellipse,#20391b6e,transparent 72%); }
.selection-empty h2 { font:38px/1.18 Georgia,serif;max-width:none;color:inherit;margin:12px 0 18px; }
.selection-empty p,.selection-empty .eyebrow { color:#f5ead2; }
.selection-empty .eyebrow { font-size:9px;letter-spacing:2px; }
.selection-empty p { font:15px/1.7 Georgia,serif; }
.empty-record { display:grid;place-items:center;width:166px;height:166px;border-radius:50%;flex-shrink:0;background:repeating-radial-gradient(circle,#152018 0 1px,#35412e 2px,#16211a 3px);box-shadow:7px 10px 24px #10201855;border:1px solid #788061;transform:rotate(-12deg); }
.empty-record i { display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:#bd9c69;color:#384a2d;font:30px Georgia,serif; }
/* Journal, pins, and the day's small paper gift each keep their own material. */
.room-dialog[data-room=profile] { background:linear-gradient(90deg,#d7c9a9 0 3px,#f7f0e1 4px 27px,#e2d6bd 28px,#faf3e5 29px);border-radius:6px 19px 19px 6px;box-shadow:3px 4px 0 #cabea6,7px 8px 0 #f0e4ca,0 20px 50px #23372355; }
.room-dialog[data-room=profile] .room-header { padding-left:43px;border-bottom:1px solid #d4c3a780; }
.room-dialog[data-room=profile] .profile-room { padding-left:43px; }
.profile-lead { align-items:start; }
.profile-intro { font-family:Georgia,serif;color:#526047; }
.room-dialog[data-room=gallery] { background:linear-gradient(135deg,#e4ddcadf,#eae4d5ef);border-radius:12px; }
.gallery-pin { padding:6px 6px 10px;background:#fff8e9;box-shadow:1px 2px 0 #b7ac9255,0 5px 15px #29351b18; }
.gallery-pin:before { content:'';position:absolute;z-index:1;top:-4px;left:38%;width:29px;height:11px;transform:rotate(-4deg);background:#d6c69c80;pointer-events:none; }
.gallery-pin:nth-child(3n):before { transform:rotate(5deg); }
.gallery-item { border-radius:0;padding:0;box-shadow:none; }
.gallery-pin>small { font-size:9px;margin:9px 4px 0; }
.pin-heart { right:9px;bottom:33px; }
.daily-dialog { width:min(545px,calc(100vw - 34px));border-radius:5px 13px 13px 5px;background:linear-gradient(115deg,#fff8e8,#f0e4ca);box-shadow:3px 4px 0 #d9cba8,0 12px 55px #122c2155; }
.daily-dialog:after { content:'';position:absolute;top:0;left:42%;width:55px;height:15px;background:#c6bd8a60;transform:rotate(-3deg); }
.daily-dialog::backdrop { background:#13211742;backdrop-filter:none; }
.daily-dialog h2 { font-size:24px; }
.daily-reading { grid-template-columns:110px 1fr;gap:22px; }
.daily-note { font-size:10px; }
.host-talk { border-radius:3px 13px 13px 13px;background:#fff5ddf5;border:1px solid #d1bd8b80;box-shadow:1px 3px 0 #bba98236,0 6px 16px #1c352314; }
.host-talk[data-side=left] { border-radius:13px 3px 13px 13px; }
body[data-host-moment] .host[data-pose=seated] .host-sprite { animation:none;background-position:50% 0; }
body[data-host-moment=hum] .host[data-pose=seated] .host-sprite { background-position:100% 0; }
body[data-host-moment=sing-soft] .host[data-pose=seated] .host-sprite { animation:host-hum 3s ease-in-out infinite; }
@keyframes host-hum { 0%,100%{transform:rotate(0)}45%{transform:rotate(.6deg)} }
@media(min-width:701px) and (max-width:1050px) {
  .selected-album { grid-template-columns:minmax(200px,.9fr) minmax(310px,1.1fr);gap:28px;padding:0 10px; }
  .album-controls { padding:22px 22px 14px; }
  .music-object { width:76%; }
  .room-dialog[data-room=music] { width:calc(100vw - 48px);inset:auto 24px 32px; }
  .selection-empty { gap:34px; }
}
@media(max-width:700px) {
  .entrance { padding:11vh 30px 17vh;align-items:center;background:linear-gradient(90deg,#f6efdde3,#f0e9d4bf 50%,#f1e8d14a); }
  .entrance-note { padding:0; }
  .entrance-eyebrow { font-size:8px;letter-spacing:2px;margin-bottom:27px; }
  .entrance h1 { font-size:76px;letter-spacing:-3px; }
  #entrance-quote { font-size:17px;max-width:250px;line-height:1.5;margin:28px 0 29px; }
  .entrance-bell { gap:10px;padding:9px 19px 9px 9px;min-height:72px; }
  #entrance-action { font-size:14px; }.bell-arrow{margin-left:6px}
  .entrance-signature { left:30px;bottom:max(35px,env(safe-area-inset-bottom));font-size:8px;letter-spacing:1.5px; }
  body[data-day-phase=night] .entrance { background:linear-gradient(90deg,#102b2bed,#183333ba 65%,#17353165); }
  .room-dialog[data-room=music],.room-dialog[data-room=music][data-listening=true] { inset:auto 12px 12px;width:calc(100vw - 24px);height:calc(100svh - 135px);max-height:calc(100svh - 90px);margin:0 auto;border-radius:0;padding:0; }
  .room-dialog[data-room=music] .room-header { padding:0 3px 10px;gap:8px; }
  .room-dialog[data-room=music] .room-header>div { padding:10px 12px;border-radius:8px; }
  .room-dialog[data-room=music] .room-header h1 { font-size:23px; }
  .room-dialog[data-room=music] .room-header .eyebrow { font-size:8px;letter-spacing:1.2px;margin-bottom:5px; }
  .room-dialog[data-room=music] .close-room { min-width:44px; }
  .room-dialog[data-room=music] .room-inner { padding-bottom:env(safe-area-inset-bottom); }
  .room-dialog[data-room=music] .room-content { padding:0 2px 5px; }
  .music-room { gap:15px;min-height:0; }
  #album-selection { flex:none;padding:0; }
  .selected-album,.room-dialog[data-listening=true] .selected-album { display:flex;flex-direction:column;gap:14px;padding:0; }
  .album-feature { width:100%;padding:0 12px;display:block; }
  .music-object,.room-dialog[data-listening=true] .music-object { width:145px;height:145px;max-width:none;margin:9px auto 12px;left:-15px; }
  .room-dialog[data-listening=true] .music-object { width:clamp(150px,45vw,200px);height:clamp(150px,45vw,200px);margin-top:13px;margin-bottom:16px; }
  .album-object-caption { display:none; }
  .sleeve-stamp { font-size:7px;bottom:10px; }
  .album-controls,.room-dialog[data-listening=true] .album-controls { width:100%;padding:21px 22px 12px;margin:0;background:linear-gradient(135deg,#fcf6e9f7,#ede6cff0);border-radius:7px 18px 15px 15px;backdrop-filter:none; }
  .album-text h2 { font-size:26px;line-height:1.12;margin-bottom:8px; }
  .album-text .eyebrow { font-size:8px;letter-spacing:1.6px;margin-bottom:10px; }
  .album-byline { font-size:11px!important; }.album-byline span{font-size:9px}
  .transport-dock { padding-top:10px; }
  .playback-row { gap:8px; }.primary-play{min-width:108px}.volume-button{margin-left:5px}
  .play-status { font-size:9px;min-height:14px; }
  .listening-actions { margin-top:2px; }.listening-actions button{font-size:10px;min-height:36px}
  .progress-row { font-size:10px;margin-top:8px; }
  .shelf-block { margin:0;order:2;border:1px solid #fff2d467;backdrop-filter:none;background:#f0ead9f2; }
  .shelf-heading,.room-dialog[data-room=music] .shelf-heading { padding:12px 15px 5px;flex-wrap:wrap;gap:4px 10px; }
  .shelf-heading h2 { font-size:14px; }.shelf-heading h2 small{font-size:9px}.shelf-arrows{display:none}
  .album-search { width:100%;margin:2px 0 0; }.album-search input{width:100%;font-size:12px;min-height:36px}
  .album-shelf { padding:10px 16px 15px;gap:15px; }.album-choice{width:74px;flex-basis:74px}.album-choice img{width:74px;height:74px}.album-choice span{font-size:10px}
  .room-dialog[data-listening=true] .music-room { min-height:0;justify-content:flex-start; }
  .selection-empty { gap:20px;min-height:190px;padding:15px 10px 20px; }
  .selection-empty h2 { font-size:26px;line-height:1.14;margin:10px 0; }.selection-empty p{font-size:12px}.selection-empty .eyebrow{font-size:7px;letter-spacing:1.3px}
  .empty-record { width:93px;height:93px; }.empty-record i{width:37px;height:37px;font-size:20px}
  .lyrics-field { min-height:144px;margin:15px 0;gap:6px; }.lyrics-field p{font-size:13px}.lyrics-field p[data-offset='0']{font-size:19px}.lyrics-field p[data-offset='-2'],.lyrics-field p[data-offset='2']{font-size:11px}
  .track-list { max-height:180px; }.track-button{min-height:44px}.track-name{font-size:12px}
  .room-dialog[data-room=profile] .room-header { padding-left:32px; }.room-dialog[data-room=profile] .profile-room{padding-left:32px;padding-right:20px}
  .daily-dialog { padding:26px 21px; }.daily-reading{grid-template-columns:75px 1fr;gap:14px}
  .garden-sprig { opacity:.85; }
}
@media(max-height:620px) and (orientation:landscape) {
  .room-dialog[data-room=music],.room-dialog[data-room=music][data-listening=true] { height:94svh;max-height:94svh;bottom:8px; }
  .room-dialog[data-room=music] .room-header { padding-bottom:8px; }.room-dialog[data-room=music] .room-header h1{font-size:23px}
  .selected-album { grid-template-columns:180px 1fr;gap:25px; }.music-object,.room-dialog[data-listening=true] .music-object{max-width:160px}
  .album-controls { padding:17px 22px 10px; }.album-text h2{font-size:24px}
  .entrance h1{font-size:65px}.entrance-eyebrow{margin-bottom:14px}#entrance-quote{margin:17px 0}.entrance-signature{bottom:18px}
}
/* Reserve the host's actual footprint beside the stall. The empty air here is
   deliberate: neither the sleeve nor the text pane may cover Li. */
@media(min-width:701px) and (max-width:1050px) and (min-height:700px) {
  .room-dialog[data-room=music],.room-dialog[data-room=music][data-listening=true] { height:min(930px,85svh); }
  .selected-album,.room-dialog[data-listening=true] .selected-album { display:flex;flex-direction:column;align-items:stretch;width:400px;max-width:52%;gap:18px;padding:0 3px; }
  .music-object,.room-dialog[data-listening=true] .music-object { width:220px;height:220px;margin:12px 0 13px 12px; }
  .album-object-caption { display:none; }
  .album-controls { width:100%;padding:24px 23px 14px; }
  .room-dialog[data-listening=true] .music-room { justify-content:flex-start; }
}
@media(max-width:700px) {
  .album-feature { min-height:275px; }
  .music-object,.room-dialog[data-listening=true] .music-object { width:145px;height:145px;margin:22px 0 18px 17px;left:0; }
  .room-dialog[data-listening=false] .album-feature { min-height:275px; }
}
@media(prefers-reduced-transparency:reduce) {
  .album-controls,.room-dialog[data-listening=true] .album-controls,.shelf-block { background:#f7efdd;backdrop-filter:none;-webkit-backdrop-filter:none; }
  .room-dialog[data-room=gallery] { background:#e9e2d0; }.host-talk{background:#fff4dc}
  .room-dialog[data-room=music] .room-header>div { background:#364930; }
  .entrance { background:#eee6d2e8; }body[data-day-phase=night] .entrance{background:#18312fec}
}
@media(prefers-reduced-motion:reduce) {
  .entrance,.scene-world,.lyrics-field,.lyrics-field p,.music-object { transition:none!important; }
  .entrance-air i,.bell-object,.listening-vinyl,.host-sprite { animation:none!important; }
  .firefly-habitat { display:none; }.room-dialog[data-lyric-section=chorus] .music-object{scale:1}
}
/* A disclosure menu: one continuous playlist dropping from its album label. */
.music-room { display:grid;grid-template-columns:320px 400px;grid-template-rows:min-content 1fr auto;gap:16px 65px;align-items:start;justify-content:start;padding:0 24px; }
.music-deck { display:contents; }
#album-art { grid-column:1;grid-row:1;min-width:0; }
#album-introduction { grid-column:1;grid-row:2;min-width:0;margin:0; }
.music-console { grid-column:2;grid-row:1 / span 2;min-width:0;border:1px solid #fff5da85;border-radius:7px 13px 18px 18px;overflow:hidden;background:linear-gradient(130deg,#fcf6e5ee,#f4ead5d9 60%,#e7e3c8d6);box-shadow:0 10px 32px #12241326;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px); }
.music-console .album-controls,.room-dialog[data-listening=true] .music-console .album-controls { margin:0;background:transparent;border:0;border-radius:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none; }
.music-console #album-selection { padding:0;min-width:0;position:static; }
.music-console .track-queue { border:0;border-radius:0;box-shadow:none; }
.album-li-words { font-size:13px;line-height:1.6;overflow-wrap:anywhere; }
.host-talk,#host-words,.album-li-words { white-space:normal;text-overflow:clip;-webkit-line-clamp:unset; }
#host-words { overflow-wrap:anywhere; }
.selected-album,.room-dialog[data-listening=true] .selected-album { display:block;width:100%;max-width:none;padding:0; }
.shelf-block { grid-column:1 / -1;grid-row:3;min-width:0; }
.room-dialog[data-listening=true] .music-room { min-height:0;justify-content:start; }
.room-dialog[data-room=music],.room-dialog[data-room=music][data-listening=true] { height:min(800px,88svh); }
.music-object { display:block;padding:0;border:0;border-radius:2px;background:none;color:inherit;overflow:visible;cursor:pointer; }
.music-object:hover .loaded-cover { transform:rotate(-1.5deg) translateY(-2px); }
.loaded-cover { transition:transform .25s ease; }
.sleeve-tab { position:absolute;z-index:3;bottom:-12px;right:5px;display:flex;gap:13px;align-items:center;padding:9px 12px;border:1px solid #a391674d;border-radius:2px 2px 7px 3px;background:linear-gradient(120deg,#f6ebcf,#daceaa);color:#53613f;box-shadow:0 3px 0 #a79b7977;font:9px GardenSans,sans-serif;letter-spacing:1.5px; }
.sleeve-tab>span { font-size:17px;line-height:12px;transition:transform .25s; }
.music-object[aria-expanded=true] .sleeve-tab>span { transform:rotate(180deg); }
.track-queue { grid-column:1;grid-row:2;min-width:0;margin:0;padding:0;border:1px solid #e9d5a85c;border-radius:5px 11px 8px 7px;background:linear-gradient(110deg,#35482fec,#273b2bef);box-shadow:0 3px 0 #1b2a1aa6,0 9px 25px #11251433,inset 0 1px 0 #f7e4b127;overflow:hidden; }
.playlist-trigger { display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:58px;padding:11px 17px;background:linear-gradient(90deg,#40523a,#4a59412b);color:#f3e7cb;text-align:left; }
.playlist-trigger small { display:block;font:8px GardenSans,sans-serif;letter-spacing:1.8px;margin-bottom:5px;color:#c7c5a6; }
.playlist-trigger strong { display:block;font:15px/1.3 Georgia,serif;font-weight:400; }
.playlist-count { display:flex;align-items:center;gap:13px;flex:none;color:#d8d9b6;font:11px GardenSans,sans-serif; }
.playlist-chevron { display:block;font-size:21px;transition:transform .2s; }
.playlist-trigger[aria-expanded=true] .playlist-chevron { transform:rotate(180deg); }
.playlist-trigger:hover { background:#516145; }
.track-list { display:block;width:100%;max-height:min(258px,28svh);overflow-x:hidden;overflow-y:auto;scroll-snap-type:none;padding:4px 9px 8px;margin:0;border:0;list-style:none;scrollbar-width:thin;scrollbar-color:#9ca181 transparent;animation:playlist-drop .2s ease-out;transform-origin:50% 0; }
@keyframes playlist-drop { from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none} }
.track-list li { width:100%;min-width:0;border:0;margin:0; }
.track-button { display:grid;grid-template-columns:23px minmax(0,1fr) 32px 13px;align-items:center;gap:9px;width:100%;height:auto;min-height:45px;padding:10px 8px;border:0;border-bottom:1px solid #cfd1a721;border-radius:0;background:transparent;color:#e8e1c7;box-shadow:none;text-align:left;transition:background .15s;position:relative; }
.track-list li:last-child .track-button { border-bottom:0; }
.track-button:not(:disabled):hover,.track-button:focus-visible { background:#a4ae7252;outline:1px solid #eedcaf8c;outline-offset:-1px; }
.track-button[aria-pressed=true] { color:#fff0d6;background:linear-gradient(90deg,#ab6647e6,#8e523697);box-shadow:inset 3px 0 #dfc18a;font-weight:400; }
.track-button:disabled { opacity:.45;cursor:default; }
.track-token { display:contents; }
.track-index { grid-column:1;grid-row:1;color:inherit;font:10px GardenSans,sans-serif;opacity:.6; }
.track-name { grid-column:2;grid-row:1;display:block;overflow-wrap:anywhere;white-space:normal;font:14px/1.35 Georgia,serif; }
.track-duration { grid-column:3;grid-row:1;color:inherit;font:9px GardenSans,sans-serif;text-align:right;opacity:.65; }
.track-duration>span { display:none; }
.track-signal { grid-column:4;grid-row:1;display:flex;gap:2px;height:13px;align-items:end;opacity:0; }
.track-signal i { display:block;width:2px;height:5px;background:currentColor;transform-origin:bottom; }
.track-signal i:nth-child(2){height:12px;animation-delay:-.4s!important}.track-signal i:nth-child(3){height:8px;animation-delay:-.7s!important}
.track-button[aria-pressed=true] .track-signal { opacity:.85; }
body[data-playing=true] .track-button[aria-pressed=true] .track-signal i { animation:slot-playing 1.1s ease-in-out infinite alternate; }
@keyframes slot-playing { to{transform:scaleY(.35)} }
#album-art>.empty-record { margin:45px auto; }
.selection-empty { min-height:285px;gap:0;padding:24px;justify-content:start; }
@media(min-width:701px) and (max-width:1099px) and (max-height:699px) {
 .music-room{grid-template-columns:minmax(180px,.8fr) minmax(300px,1.2fr);gap:20px 30px;padding:0 10px}
}
@media(min-width:701px) and (max-width:1099px) and (min-height:700px) {
 .room-dialog[data-room=music],.room-dialog[data-room=music][data-listening=true]{height:min(930px,85svh)}
 .room-dialog[data-room=music] .room-content { overflow:hidden; }
 .music-room { display:flex;flex-direction:column;align-items:stretch;gap:0;padding:0 3px;width:52%;height:100%; }
 #album-art { flex:0 0 280px; }
 .music-deck { display:flex;flex-direction:column;gap:18px;min-height:0;overflow-y:auto;overflow-x:hidden;padding:2px 4px 9px 0;scrollbar-width:thin; }
 .album-feature { min-height:0; }
 .music-object,.room-dialog[data-listening=true] .music-object{width:220px;height:220px;margin:13px 0 20px 16px}
 .shelf-heading,.room-dialog[data-room=music] .shelf-heading{flex-wrap:wrap}.album-search{width:100%;margin:0}.album-search input{width:100%}.shelf-arrows{display:none}
 .music-console,#album-introduction{flex:none}.music-console{backdrop-filter:none;-webkit-backdrop-filter:none}
}
@media(max-width:700px) {
 body[data-room=music] .top-nav { opacity:0;visibility:hidden; }
 .room-dialog[data-room=music],.room-dialog[data-room=music][data-listening=true] { height:calc(100svh - 135px); }
 .room-dialog[data-room=music] .room-content { overflow:hidden;min-height:0; }
 .music-room { display:flex;flex-direction:column;align-items:stretch;gap:0;padding:0;height:100%; }
 #album-art { flex:0 0 275px;min-height:0; }
 .album-feature,.room-dialog[data-listening=false] .album-feature { min-height:0; }
 .music-deck { display:flex;flex-direction:column;gap:14px;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:2px 1px 10px;scrollbar-width:thin; }
 .selected-album,.room-dialog[data-listening=true] .selected-album { display:block; }
 .music-object,.room-dialog[data-listening=true] .music-object{width:145px;height:145px;margin:22px 0 18px 17px}
 .sleeve-tab{font-size:8px;padding:7px 9px;bottom:-10px;right:0}
 #album-art>.empty-record { margin:35px 0 0 40px;width:125px;height:125px; }
 .selection-empty { min-height:180px;padding:16px 22px; }
 .music-console,#album-introduction{flex:none}.music-console{backdrop-filter:none;-webkit-backdrop-filter:none}.track-list{max-height:244px}.track-button{min-height:44px}
 .music-deck>#album-selection,.shelf-block{flex:none}
}
@media(prefers-reduced-motion:reduce) {
 .track-list,.track-signal i{animation:none!important}.loaded-cover,.sleeve-tab>span,.playlist-chevron{transition:none}
}
@media(prefers-reduced-transparency:reduce) { .track-queue { background:#33452e; }.music-console{background:#f7efdd;backdrop-filter:none;-webkit-backdrop-filter:none} }
body[data-still=true] .track-signal i,body[data-page-hidden=true] .track-signal i { animation-play-state:paused!important; }
body[data-room=music] .host-sprite,body[data-room=music] .pond-glint { animation-play-state:running; }
body[data-room=music] .garden-tools { opacity:0;visibility:hidden; }
@media(min-width:1100px) { .track-list { max-height:204px; } }

/* V2.1 mobile hotfix: let native swipes reach every album and track. */
.music-console { display:flex;flex-direction:column; }
.music-console #album-selection { order:0; }
.music-console .track-queue { order:1; }
.music-console .album-text { position:relative;padding-right:48px; }
.queue-more { position:absolute;right:-5px;top:-7px;color:#4e5c3f;background:transparent;border:0;font:26px/1 Georgia,serif; }
.queue-more[aria-expanded=true] { background:#c3c8a366; }
.music-console .playlist-trigger { min-height:44px;padding-top:9px;padding-bottom:9px; }
.music-console .playlist-trigger small { display:none; }
.music-console .track-list { border-top:1px solid #cfd1a721; }
.garden:focus { outline:none; }
.track-list { overscroll-behavior-y:contain; }
.canopy-frond { background-image:url('./assets/layers/canopy-alpha.webp');mask-image:none;-webkit-mask-image:none; }
.room-motion { margin-left:auto;color:#48513b;background:#f8f0dfef; }
.room-header .close-room { margin-left:0; }
.music-console .selection-empty { color:#3f4937;text-shadow:none;background:none; }
.music-console .selection-empty p { color:#626954; }
.music-console .selection-empty .eyebrow { color:#797451; }
.music-console .album-controls { padding:18px 23px 12px; }
.music-console .album-text h2 { font-size:27px;margin-bottom:7px; }
.music-console .album-text .eyebrow { margin-bottom:8px; }
.music-console .album-text .eyebrow,.music-console .album-byline span { display:none; }
.music-console .play-status { position:absolute;width:1px;height:1px;min-height:0;padding:0;margin:0;overflow:hidden;clip-path:inset(50%); }
.music-console .transport-dock { padding-top:9px;margin-top:8px; }
.music-console .progress-row { margin-top:6px; }
.music-console .listening-actions { margin-top:2px; }
.shelf-block { border-radius:7px 7px 12px 12px;backdrop-filter:none;-webkit-backdrop-filter:none; }
.album-shelf { --cover-size:96px;--rail-y:calc(var(--cover-size) + 14px);position:relative;gap:20px;padding-top:10px;padding-bottom:13px;background:linear-gradient(to bottom,#cfb88d,#9e7b51 35%,#765439 80%,#523d2b) 0 var(--rail-y)/100% 9px no-repeat; }
.album-choice { width:var(--cover-size);flex-basis:var(--cover-size); }
.album-choice img { width:var(--cover-size);height:var(--cover-size); }
.album-choice span { margin-top:17px; }
@media(min-width:1100px) {
 .music-object,.room-dialog[data-listening=false] .music-object,.room-dialog[data-listening=true] .music-object { width:250px;height:250px;max-width:250px; }
 .track-list { max-height:180px; }
 .album-li-words { font-size:12px;line-height:1.55; }
 .shelf-heading,.room-dialog[data-room=music] .shelf-heading { padding-top:8px;padding-bottom:3px; }
}
body[data-touch=true][data-room]:not([data-room='']) .scene-world *,
body[data-touch=true][data-room]:not([data-room='']) .scene-world *::before,
body[data-touch=true][data-room]:not([data-room='']) .scene-world *::after { animation-play-state:paused!important; }
body[data-touch=true] .music-console { backdrop-filter:none;-webkit-backdrop-filter:none; }
body[data-touch=true] .track-list { overscroll-behavior-y:auto; }
@media(max-width:700px) {
 .room-dialog[data-room=music] .room-header { gap:6px; }
 .room-dialog[data-room=music] .room-header>div { min-width:0; }
 .room-dialog[data-room=music] .room-header h1 { font-size:21px; }
 .room-motion,.room-dialog[data-room=music] .close-room { width:40px;height:44px;min-width:40px; }
 .music-console .album-controls { padding:15px 18px 10px; }
 .music-console .album-text h2 { font-size:24px; }
 .album-shelf { --cover-size:100px;gap:17px; }
 #album-art { flex-basis:230px; }
}
