/* Each moving object is a separate layer. The painting never deforms. */
#entry .entry-art{background-image:none;overflow:hidden}
.sky-layers{position:absolute;inset:0 0 35%;overflow:hidden;pointer-events:none;mask-image:linear-gradient(#000 0 75%,transparent);-webkit-mask-image:linear-gradient(#000 0 75%,transparent)}
.weather-track{position:absolute;left:-100%;width:300%;display:flex;pointer-events:none;will-change:transform}
.weather-track img{width:33.333333%;height:100%;object-fit:fill;flex:none;user-select:none}
.clouds-far{top:12%;height:45%;opacity:.44;animation:clouds-travel 58s linear infinite;animation-delay:-22s}
.clouds-near{top:34%;height:35%;opacity:.36;animation:clouds-travel 39s linear infinite reverse;animation-delay:-17s}
@keyframes clouds-travel{from{transform:translateX(0)}to{transform:translateX(33.333333%)}}
.mist-layers{position:absolute;inset:53% 0 0;overflow:hidden;pointer-events:none;mask-image:linear-gradient(transparent,#000 20%);-webkit-mask-image:linear-gradient(transparent,#000 20%)}
.mist-far{top:3%;height:65%;opacity:.34;animation:clouds-travel 42s linear infinite;animation-delay:-14s}
.mist-near{top:46%;height:60%;opacity:.31;animation:clouds-travel 28s linear infinite reverse;animation-delay:-9s}
.living-foliage{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:hidden}
.living-bough{transform-origin:0 0;animation:bough-sway var(--bough-speed) ease-in-out var(--bough-delay) infinite alternate}
.living-twig{transform-origin:0 0;animation:twig-sway var(--twig-speed) ease-in-out var(--twig-delay) infinite alternate}
.leaf-blade{transform-box:fill-box;transform-origin:0 50%;animation:leaf-flutter var(--leaf-speed) ease-in-out var(--leaf-delay) infinite alternate}
.rose-bloom{transform-box:fill-box;transform-origin:50% 90%;animation:rose-sway 7.8s ease-in-out -3s infinite alternate}
@keyframes bough-sway{0%{transform:rotate(-1.4deg)}60%{transform:rotate(.7deg)}100%{transform:rotate(1.7deg)}}
@keyframes twig-sway{0%{transform:rotate(-3deg)}55%{transform:rotate(1deg)}100%{transform:rotate(4deg)}}
@keyframes leaf-flutter{0%{transform:rotate(-9deg)}35%{transform:rotate(1deg)}70%{transform:rotate(-3deg)}100%{transform:rotate(11deg)}}
@keyframes rose-sway{from{transform:rotate(-2deg)}to{transform:rotate(2deg)}}
#entry.nature-paused .entry-art *,#entry.nature-paused .entry-art{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){#entry .entry-art *{animation:none!important}}
#account.letter-closing .letter-stage{animation:letter-depart 1.65s ease-in both}
#account.letter-closing .account-letter{animation:letter-fold 1.15s ease-in-out both}
#account.letter-closing .account-letter>*{animation:ink-hide .45s ease both}
#account.letter-closing .letter-pocket{animation:pocket-return 1.1s ease both}
#account.letter-closing .letter-envelope{animation:envelope-return 1.1s ease both}
#account.letter-closing .letter-flap{animation:flap-close 1.45s ease-in-out both}
@keyframes letter-fold{0%{transform:rotate(-.7deg);filter:brightness(1)}65%,100%{transform:translateY(48px) scale(.84,.55) rotate(-2deg);filter:brightness(.7)}}
@keyframes ink-hide{to{opacity:0}}
@keyframes pocket-return{from{opacity:0;transform:translateY(90px)}55%,100%{opacity:1;transform:translateY(0)}}
@keyframes envelope-return{from{opacity:0;transform:translateY(90px)}55%,100%{opacity:1;transform:translateY(0)}}
@keyframes flap-close{0%,35%{opacity:0;transform:rotateX(-180deg)}45%{opacity:1;transform:rotateX(-165deg)}85%,100%{opacity:1;transform:rotateX(0)}}
@keyframes letter-depart{0%,80%{opacity:1;transform:none}100%{opacity:0;transform:translateY(35px) scale(.94)}}
@media(prefers-reduced-motion:reduce){#entry.nature-fallback .entry-art:after{animation:none}#account.letter-closing *{animation-duration:.01ms!important;animation-delay:0s!important}}

.scene-plate{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 48%;pointer-events:none}

.castle-glimmer{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 54% 47%,#d7ebff25,transparent 2%),radial-gradient(ellipse at 63% 49%,#c3e3ff15,transparent 1.5%);animation:windows-flicker 4.3s ease-in-out infinite alternate}
@keyframes windows-flicker{0%{opacity:.35}25%{opacity:.8}45%{opacity:.5}65%{opacity:.9}100%{opacity:.45}}
