.summer-rainbow{position:absolute;width:min(720px,65vw);right:-40px;top:85px;opacity:.88;transform:rotate(8deg);filter:drop-shadow(0 8px 16px #e9ad6412)}.summer-rainbow svg{width:100%}.summer-sun{top:140px;right:30px;width:70px;height:70px}.summer-rainbow{animation:rainbow-drift 13s ease-in-out infinite alternate}
.coast-scene{position:absolute;inset:auto 0 0;height:240px;opacity:0;transition:opacity 1.5s;overflow:hidden;pointer-events:none}body[data-season=summer] .coast-scene{opacity:1}.ocean-water{position:absolute;inset:0;background:linear-gradient(#43a9b300,#47b6bb77 30%,#71c9c7b0 62%,#d0e5c3)}.beach-sand{position:absolute;bottom:-70px;left:-10%;width:120%;height:165px;border-radius:50% 60% 0 0;background:linear-gradient(#e8cf9a,#efdcb7)}.sand-speckles{position:absolute;bottom:0;inset-inline:0;height:70px;background-image:radial-gradient(#976b3b55 .7px,transparent 1px),radial-gradient(#fff7d5bb 1px,transparent 1.4px);background-size:11px 17px,19px 13px;animation:sand-shimmer 9s ease-in-out infinite alternate}.shore-wave{position:absolute;left:-15%;bottom:67px;width:130%;height:60px;border-radius:50%;border-top:4px solid #fcfffccc;background:#eafffb40;animation:shore-wash 7s ease-in-out infinite}.wave-two{bottom:95px;animation-delay:-3s;opacity:.55}.coast-scene>svg{position:absolute;right:15%;bottom:5px;width:150px;height:64px;opacity:.8}
.midautumn-scene,.christmas-scene{position:absolute;inset:0}.lion-dance{position:absolute;right:-15px;top:39%;width:160px;transform-origin:bottom center;animation:lion-bob 5s ease-in-out infinite}.lion-dance svg,.star-lantern svg,.snowman svg,.christmas-tree svg,.tet-envelopes svg{width:100%;height:100%}.star-lantern{position:absolute;left:10px;top:84px;width:100px;height:145px;transform-origin:top center;animation:lantern-sway 6s ease-in-out infinite alternate}.festival-moon{position:absolute;right:55px;top:150px;width:112px;height:112px;border-radius:50%;background:radial-gradient(circle at 38% 35%,#fff8d8,#edc97c);box-shadow:0 0 80px #f4da9344}.autumn-art>svg{top:44%;opacity:.6}
.snowman{position:absolute;right:-5px;bottom:92px;width:150px;height:210px;animation:snowman-rock 9s ease-in-out infinite alternate;transform-origin:bottom center}.christmas-tree{position:absolute;left:-10px;bottom:135px;width:110px;height:185px}.winter-lights{position:absolute;top:76px;left:0;right:0;height:28px;border-bottom:1px solid #647e6944;border-radius:0 0 50% 50%;display:flex;justify-content:space-around}.winter-lights i{display:block;width:7px;height:12px;background:#e7c273;border-radius:40% 40% 50% 50%;box-shadow:0 3px 13px #eac87580;transform:translateY(10px);animation:bulb-breathe 5s ease-in-out infinite alternate;animation-delay:calc(var(--bulb)*-.4s)}.winter-lights i:nth-child(3n){background:#bb5e53;box-shadow:0 3px 13px #bd6a5470}.winter-lights i:nth-child(3n+1){background:#8fbaad;box-shadow:0 3px 13px #83bba570}
.tet-envelopes{position:absolute;right:-10px;bottom:115px;width:135px;height:170px;transform-origin:top;animation:lantern-sway 8s ease-in-out infinite alternate}
@keyframes shore-wash{0%,100%{translate:0 10px;scale:1 .75;opacity:.4}50%{translate:2% -10px;scale:1.05 1;opacity:.9}}@keyframes sand-shimmer{to{opacity:.45}}@keyframes rainbow-drift{to{translate:0 -10px;rotate:-2deg}}@keyframes lion-bob{0%,65%,100%{rotate:0;translate:0 0}25%{rotate:-5deg;translate:0 -8px}40%{rotate:4deg;translate:0 -4px}}@keyframes snowman-rock{to{rotate:3deg}}@keyframes bulb-breathe{to{opacity:.55;filter:brightness(.85)}}
/* Translucent controls keep their text backed by enough paper to stay legible. */
.chapter-nav,.experience-tools,.music-dock,.season-badge{backdrop-filter:blur(14px) saturate(1.12);-webkit-backdrop-filter:blur(14px) saturate(1.12)}.chapter-nav{background:#fbf8efcf}.experience-tools,.music-dock{background:#fffaf0d9;border:1px solid #ffffffaa;box-shadow:0 5px 24px #50445312,inset 0 1px #ffffffb0}.season-badge{background:#fffaf0cf}.odyssey-dialog{background:#fffaf2f5;border:1px solid #ffffffaa;box-shadow:0 18px 75px #2c34302e}.collection-memory{background:#fffaf0e0;border:1px solid #fff8ed;transition:transform .25s,box-shadow .25s}.collection-memory:hover{transform:translateY(-3px)}
.odyssey-icon{width:20px;height:20px;display:inline-block;vertical-align:middle;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.chapter-ribbon .odyssey-icon{width:25px;height:25px}.chapter-brand .odyssey-icon{width:18px;height:18px}.music-dock summary .odyssey-icon{margin-right:8px}.surprise-pocket{display:flex;justify-content:center;padding:28px 0 90px}.surprise-pocket button{display:flex;align-items:center;gap:12px;padding:16px 24px;background:#fffcf3c9;border:1px dashed #99827466;border-radius:4px 18px 18px 4px;box-shadow:3px 4px #c3aa8c17}.surprise-body{min-height:170px;white-space:pre-wrap;line-height:1.8}.surprise-body:empty{background:repeating-linear-gradient(transparent 0 31px,#7561571b 32px,transparent 33px)}
.season-art[data-motion=false] *,.motion-paused .coast-scene *{animation-play-state:paused!important}body:has(dialog[open]) .coast-scene{opacity:.25}.season-art-paused *{animation-play-state:paused!important}
@media(max-width:700px){.summer-rainbow{width:92vw;right:-24%;top:120px;opacity:.8}.coast-scene{height:160px}.lion-dance{width:83px;right:-22px;top:52%}.star-lantern{width:58px;height:95px;left:-10px}.festival-moon{width:65px;height:65px;right:-24px;top:170px}.snowman{width:80px;height:112px;right:-16px;bottom:145px}.christmas-tree{width:70px;height:115px;left:-27px;bottom:150px}.tet-envelopes{width:80px;height:105px;right:-19px;bottom:170px}.winter-lights i{width:5px;height:9px}.chapter-nav,.experience-tools,.music-dock{backdrop-filter:blur(8px)}.surprise-pocket{padding-bottom:125px}}
@media(prefers-reduced-motion:reduce){.coast-scene *,.season-art *{animation:none!important}.collection-memory{transition:none}}

.midautumn-scene svg{position:static;inset:auto;opacity:1}.lion-dance{height:190px}@media(max-width:700px){.lion-dance{height:100px}}

body[data-season=summer] .coast-scene{opacity:var(--magic-opacity,.75)}.effects-paused *{animation-play-state:paused!important}
