body.book-cover-showing{overflow:hidden!important}.book-cover{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;overflow:hidden;background:#537e72;color:#fff9dc;font-family:"Songti SC","STSong",Georgia,serif;z-index:20000}.book-cover::backdrop{background:#537e72}.book-cover[open]{display:block}.cover-page{position:relative;width:100%;height:100%;overflow:hidden;isolation:isolate}.cover-garden{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 48%;transform:scale(1.02);animation:greenhouse-breathe 18s ease-in-out infinite alternate;transition:transform 1.6s ease-in}.cover-air{position:absolute;inset:0;pointer-events:none;background:linear-gradient(#173c363b,transparent 43%,#153f3255 82%,#123e366e),radial-gradient(ellipse at 68% 22%,#fff0c644,transparent 50%)}.cover-head{position:absolute;top:max(15%,75px);left:18px;right:18px;text-align:center;text-shadow:0 2px 20px #234a37aa}.cover-kicker{font:9px Georgia,serif;letter-spacing:3px;opacity:.85}.cover-head h1{font-size:clamp(39px,9vw,66px);font-weight:400;letter-spacing:.3em;padding-left:.3em;margin:20px 0 18px;color:#fff9df}.cover-head p{color:#fffae4;font-size:12px;letter-spacing:3px;line-height:1.8;margin:0}.cover-sound{position:absolute;right:max(22px,env(safe-area-inset-right));top:max(21px,env(safe-area-inset-top));min-height:44px;border:1px solid #fffae444;border-radius:24px;padding:8px 15px;background:#284d3d33;backdrop-filter:blur(8px);color:#fff9df;font:11px "Songti SC",serif;letter-spacing:1px;cursor:pointer;z-index:4}.cover-actions{position:absolute;bottom:max(8%,45px);left:16px;right:16px;text-align:center;z-index:4}.cover-open{display:inline-flex;align-items:center;gap:22px;justify-content:center;min-height:53px;min-width:220px;box-sizing:border-box;padding:15px 28px;border:1px solid #fff6d697;border-radius:30px;background:#fff8dfd9;backdrop-filter:blur(9px);color:#536d56;font:14px "Songti SC",serif;letter-spacing:4px;text-decoration:none;box-shadow:0 8px 35px #17482d33;transition:background .3s}.cover-open:hover{background:#fff8ef}.cover-open span{font-size:20px;letter-spacing:0;color:#8b9874}.cover-actions p{margin:18px 0 0;font-size:10px;letter-spacing:2px;color:#fffae3;text-shadow:0 1px 6px #153b2a}.cover-boat{position:absolute;width:clamp(78px,16vw,130px);height:auto;left:43%;bottom:22%;animation:cover-drift 8s ease-in-out infinite;filter:drop-shadow(0 4px 4px #2e695b44)}.cover-branch{position:absolute;pointer-events:none;width:55%;height:50%;object-fit:contain;filter:brightness(.74) saturate(.8);transform-origin:0 0;opacity:.85;z-index:2;transition:transform 1.5s}.branch-left{left:-23%;top:-14%;transform:rotate(15deg)}.branch-right{right:-25%;bottom:-13%;transform:rotate(195deg)}.cover-dust{position:absolute;left:var(--x);top:var(--y);width:3px;height:3px;border-radius:50%;background:#ffffd4;box-shadow:0 0 10px 4px #ffefb15c;animation:cover-dust-rise var(--duration) ease-in-out infinite;animation-delay:var(--delay);pointer-events:none}.cover-doorway{position:absolute;inset:4% 10% 0;perspective:1000px;opacity:.35;pointer-events:none;mask-image:linear-gradient(transparent,#000 15%,#000 80%,transparent);-webkit-mask-image:linear-gradient(transparent,#000 15%,#000 80%,transparent)}.cover-door{position:absolute;top:0;bottom:0;width:50%;border:2px solid #ece6c388;box-sizing:border-box;background:linear-gradient(90deg,transparent 48.5%,#f6edc56b 49%,#f6edc56b 50%,transparent 50.5%),linear-gradient(transparent 38%,#fff5ca66 38.2%,#fff5ca66 38.5%,transparent 38.8%);box-shadow:inset 0 0 20px #f6efcc28;transition:transform 1.6s cubic-bezier(.3,.05,.3,1)}.door-left{left:0;border-radius:90% 0 0 0;transform-origin:left center}.door-right{right:0;border-radius:0 90% 0 0;transform-origin:right center}.cover-opening{animation:greenhouse-depart 1.6s ease-in both}.cover-opening .cover-garden{animation:none;transform:scale(1.32)}.cover-opening .door-left{transform:rotateY(-90deg)}.cover-opening .door-right{transform:rotateY(90deg)}.cover-opening .cover-head,.cover-opening .cover-actions,.cover-opening .cover-sound{opacity:0;transition:opacity .5s}.cover-opening .branch-left{transform:translateX(-35%) rotate(-15deg)}.cover-opening .branch-right{transform:translateX(35%) rotate(205deg)}.cover-reveal{animation:greenhouse-arrive 1.1s ease-out both}.cover-page :focus-visible{outline:2px solid #fff1b7;outline-offset:5px}
@keyframes greenhouse-breathe{to{transform:scale(1.06)}}@keyframes cover-drift{0%,100%{transform:translate(-5px,2px) rotate(-2deg)}50%{transform:translate(8px,-4px) rotate(2deg)}}@keyframes cover-dust-rise{0%,100%{opacity:0;transform:translate(0,15px)}40%,65%{opacity:.8}80%{transform:translate(15px,-25px)}}@keyframes greenhouse-depart{0%,65%{opacity:1}100%{opacity:0}}@keyframes greenhouse-arrive{from{opacity:.3;filter:blur(5px);transform:scale(.97)}to{opacity:1;filter:blur(0);transform:scale(1)}}
@media(min-width:800px){.cover-garden{object-position:50% 39%}.cover-head{top:18%}.cover-doorway{inset:0 25%}.cover-branch{width:40%;height:70%}.branch-left{left:-17%}.branch-right{right:-19%}.cover-boat{bottom:20%}.cover-actions{bottom:9%}}
@media(max-height:580px){.cover-head{top:15%}.cover-head h1{font-size:35px;margin:12px 0}.cover-head p{font-size:10px}.cover-actions{bottom:7%}.cover-actions p{display:none}.cover-sound{top:10px}.cover-boat{bottom:25%}}
@media(prefers-reduced-motion:reduce){.cover-page *,.cover-opening,.cover-reveal{animation:none!important;transition:none!important}}

/* Foreground branches stay at the edge of the painting. */
.cover-branch{width:68%;height:34%;object-position:center top}.branch-left{left:-30%;top:-12%;transform:rotate(12deg)}.branch-right{right:-32%;top:-12%;bottom:auto;transform:scaleX(-1) rotate(12deg)}.cover-opening .branch-right{transform:translateX(35%) scaleX(-1) rotate(25deg)}

.book-cover[open]:not(.cover-opening){animation:greenhouse-welcome .65s ease-out both}@keyframes greenhouse-welcome{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.book-cover[open]:not(.cover-opening){animation:none!important}}
/* The new doorway is painted as one coherent world; no gameplay backdrop. */
.cover-garden{object-position:50% 47%;filter:saturate(.91);animation:greenhouse-breathe 20s ease-in-out infinite alternate}.cover-air{background:linear-gradient(#32433d0f,transparent 40%,#3e503e1a 76%,#3f4e3c33),radial-gradient(ellipse at 50% 48%,#fff1c317,transparent 43%)}.cover-head{top:max(9%,65px);text-shadow:0 2px 20px #51575d30}.cover-head h1{color:#4f6460;text-shadow:0 2px 12px #fffcdfa1}.cover-head p,.cover-kicker{color:#647976;text-shadow:0 1px 7px #fffbe2}.cover-sound{background:#fff7df70;border-color:#fff8e898;color:#64745e}.cover-actions{bottom:max(7%,42px)}.cover-actions p{color:#fff7df;text-shadow:0 1px 8px #525349}.cover-open{background:#fff7e3d9;border-color:#fff5dba8}.cover-portal{position:absolute;left:50%;top:47%;width:23%;height:29%;border-radius:50% 50% 15% 15%;opacity:0;transform:translate(-50%,-50%) scale(.7);background:radial-gradient(ellipse,#fffbe3 0%,#fff3cccf 30%,#fff3c600 70%);filter:blur(15px);pointer-events:none;transition:opacity 1.1s,transform 1.6s}.cover-opening .cover-portal{opacity:1;transform:translate(-50%,-50%) scale(6)}.cover-opening .cover-garden{transform:scale(1.22)}
@media(min-width:800px){.cover-garden{object-position:50% 48%}.cover-head{top:10%}.cover-portal{width:20%;height:42%}}@media(max-height:580px){.cover-head{top:8%}.cover-head h1{font-size:34px}.cover-head p{font-size:10px}.cover-actions{bottom:6%}}@media(prefers-reduced-motion:reduce){.cover-portal{transition:none}}
/* No animated full-screen blur or enlarged blur surfaces during the doorway. */
.book-cover::backdrop{backdrop-filter:none!important}.cover-garden{filter:none;will-change:transform}.cover-sound,.cover-open{backdrop-filter:none}.cover-opening .cover-garden{animation:none;transition:none;transform:scale(1.02)}.cover-portal{filter:none;transition:opacity .85s;transform:translate(-50%,-50%) scale(1.2)}.cover-opening .cover-portal{transform:translate(-50%,-50%) scale(1.2);opacity:.8}.book-cover[open].cover-opening{animation:door-leave-light .95s ease-in both}.cover-reveal{filter:none!important;animation:door-reader-light .65s ease-out both;will-change:opacity;transform:none}.cover-open[aria-busy="true"]{opacity:.75;pointer-events:none}
@keyframes door-leave-light{0%,35%{opacity:1}100%{opacity:0}}@keyframes door-reader-light{from{opacity:.5;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.book-cover[open].cover-opening,.cover-reveal{animation:none!important}.cover-garden{will-change:auto}}
