/* Decorative motion only. The layout stylesheet owns all reading surfaces. */
[data-art-enter], [data-ambient], [data-thread-draw] { pointer-events:none; }
[data-ambient="bough"] { transform-origin:var(--bough-origin,50% 0%); }
[data-ambient="diya"] { transform-origin:50% 80%; }
[data-ambient="steam"] { transform-origin:50% 100%; }
[data-ambient="glow"] { transform-origin:50% 50%; }
.garden-running [data-art-enter], .garden-running [data-ambient] { will-change:transform,opacity; }
.garden-settled [data-art-enter] { will-change:auto; }
.garden-petal-field { position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none;contain:layout paint; }
.garden-petal { position:absolute;top:-12px;display:block;width:5px;height:8px;border-radius:75% 30% 70% 35%;background:#c59a72;box-shadow:inset 1px 0 1px #fff8e0a6;opacity:0;pointer-events:none; }
.ambient-steam { display:block;width:10px;height:34px;border-left:1px solid #99866066;border-radius:50%;opacity:.3;pointer-events:none; }
/* If the optional library is unavailable, the invitation remains fully readable.
   Small decorative CSS loops retain ambience without hiding or moving text. */
.garden-motion-fallback [data-ambient="bough"] { animation:garden-fallback-bough 7.8s ease-in-out infinite alternate; }
.garden-motion-fallback [data-ambient="diya"] { animation:garden-fallback-diya 2.2s ease-in-out infinite alternate; }
.garden-motion-fallback [data-ambient="steam"] { animation:garden-fallback-steam 4.6s ease-out infinite; }
.garden-motion-fallback [data-ambient="petal"] { animation:garden-fallback-soft-petal 9s ease-in-out infinite alternate; }
.garden-motion-fallback [data-ambient="glow"] { animation:garden-fallback-glow 10s ease-in-out infinite alternate; }
.garden-motion-fallback [data-ambient],.garden-motion-fallback .garden-petal { animation-play-state:paused; }
.garden-motion-fallback .garden-running [data-ambient],.garden-motion-fallback .garden-running .garden-petal { animation-play-state:running; }
.garden-motion-fallback .garden-petal { animation-name:garden-fallback-fall;animation-duration:var(--petal-duration,15s);animation-delay:var(--petal-delay,0s);animation-timing-function:linear;animation-iteration-count:infinite; }
@keyframes garden-fallback-bough { from{rotate:-.4deg;translate:-1px 0}to{rotate:.5deg;translate:1px 0} }
@keyframes garden-fallback-diya { from{opacity:.86;scale:1 1}to{opacity:1;scale:1 .97} }
@keyframes garden-fallback-steam { 0%{opacity:0;translate:0 0;scale:1}20%{opacity:.25}100%{opacity:0;translate:3px -25px;scale:1.12} }
@keyframes garden-fallback-soft-petal { from{translate:0 0;rotate:0deg}to{translate:7px 8px;rotate:8deg} }
@keyframes garden-fallback-glow { from{opacity:.2;scale:1}to{opacity:.42;scale:1.04} }
@keyframes garden-fallback-fall { 0%{opacity:0;transform:translate3d(0,-10px,0) rotate(0deg)}12%{opacity:.4}85%{opacity:.25}100%{opacity:0;transform:translate3d(var(--petal-drift,10px),var(--petal-fall,600px),0) rotate(155deg) scaleX(.65)} }
/* Only used when showModal is unavailable; native dialog styling stays in UI CSS. */
#reply-dialog.scene-dialog-fallback[open] { position:fixed;z-index:1000;inset:50% auto auto 50%;transform:translate(-50%,-50%);max-height:calc(100dvh - 40px);overflow-y:auto;box-shadow:0 0 0 100vmax #263524a8; }
@media(prefers-reduced-motion:reduce){
 [data-garden-scene] [data-art-enter],[data-garden-scene] [data-ambient]{animation:none!important;will-change:auto!important}
 .garden-petal-field{display:none}
}
@media print{.garden-petal-field,.ambient-steam{display:none}[data-art-enter],[data-ambient]{animation:none!important;transform:none!important;opacity:1!important}}
