/* GENERATED by scripts/luz.mjs from the app's Textil rig. Each species' own rules travel in plants/<icon>.json. */
.sw,.ev,.tp{transform-box:view-box;transform-origin:0 0}
.sw{animation:sway var(--d) ease-in-out var(--dl) infinite alternate}
@keyframes sway{from{transform:rotate(calc(var(--a) * var(--k, 1) * -1))}to{transform:rotate(calc(var(--a) * var(--k, 1)))}}
.static .sw{animation:none}
.whole{transform-box:view-box;transform-origin:12px 23.6px}
@keyframes perk-a{0%{transform:none}55%{transform:rotate(-1.5deg)}100%{transform:none}}
@keyframes pop-a{0%{transform:scale(0.12, 0) rotate(-14deg)}65%{transform:scale(1.12) rotate(2deg)}100%{transform:scale(1)}}
@keyframes grow-a{0%{transform:scale(0.6)}65%{transform:scale(1.07)}100%{transform:scale(1)}}
@keyframes hop-a{0%{transform:none}35%{transform:translateY(-0.8px)}65%{transform:translateY(0) scale(1.08, 0.92)}85%{transform:scale(0.98, 1.02)}100%{transform:none}}
@keyframes bob-a{0%{transform:none}40%{transform:translateY(0.7px) scale(0.97, 1.03)}75%{transform:translateY(-0.2px)}100%{transform:none}}
@keyframes wet-a{0%{fill:#4A3A2E}10%{fill:#2F241C}80%{fill:#2F241C}100%{fill:#4A3A2E}}
@keyframes pour-a{0%{transform:scale(.25,0)}22%{transform:scale(1.06,1)}32%,64%{transform:scale(1,1)}100%{transform:scale(.55,0)}}
.watered-a .whole{animation:hop-a 380ms ease-in-out 430ms both}
.watered-a .soil{animation:wet-a 9s ease-in-out 450ms both}
.watered-a .pour path{animation:pour-a 1.5s cubic-bezier(.3,.6,.3,1) both}
@keyframes perk-b{0%{transform:none}55%{transform:rotate(-1.5deg)}100%{transform:none}}
@keyframes pop-b{0%{transform:scale(0.12, 0) rotate(-14deg)}65%{transform:scale(1.12) rotate(2deg)}100%{transform:scale(1)}}
@keyframes grow-b{0%{transform:scale(0.6)}65%{transform:scale(1.07)}100%{transform:scale(1)}}
@keyframes hop-b{0%{transform:none}35%{transform:translateY(-0.8px)}65%{transform:translateY(0) scale(1.08, 0.92)}85%{transform:scale(0.98, 1.02)}100%{transform:none}}
@keyframes bob-b{0%{transform:none}40%{transform:translateY(0.7px) scale(0.97, 1.03)}75%{transform:translateY(-0.2px)}100%{transform:none}}
@keyframes wet-b{0%{fill:#4A3A2E}10%{fill:#2F241C}80%{fill:#2F241C}100%{fill:#4A3A2E}}
@keyframes pour-b{0%{transform:scale(.25,0)}22%{transform:scale(1.06,1)}32%,64%{transform:scale(1,1)}100%{transform:scale(.55,0)}}
.watered-b .whole{animation:hop-b 380ms ease-in-out 430ms both}
.watered-b .soil{animation:wet-b 9s ease-in-out 450ms both}
.watered-b .pour path{animation:pour-b 1.5s cubic-bezier(.3,.6,.3,1) both}
/* web: the pour replaces the falling drop */
.pour path{transform-box:fill-box;transform-origin:50% 100%;transform:scale(0,0)}
/* reduced motion: no loops; every event resolves as a 200 ms change */
@media (prefers-reduced-motion: reduce){.sw{animation:none!important}.ev,.tp,.whole,.soil{animation-duration:200ms!important;animation-delay:0s!important}.pour{display:none}}
/* vivero (approved) */

.vv .vv-roots{transition:transform 1.4s cubic-bezier(.3,.7,.3,1)}
.vv .vv-late{transition:opacity 1.2s}
.vv .vv-murk{transition:opacity 0.6s ease-out}
.vv.rising .vv-murk{transition:opacity 9s linear}
@media (prefers-reduced-motion:no-preference){
 .vv-an .vv-cut{animation:vvsway 5.2s ease-in-out infinite alternate}
 @keyframes vvsway{from{transform:rotate(-0.6deg)}to{transform:rotate(0.6deg)}}
 .vv .vv-water.slosh{animation:vvslosh 1.3s ease-out}
 .vv .vv-cut.slosh{animation:vvgust 1.3s ease-out}
 @keyframes vvslosh{0%{transform:rotate(0)}15%{transform:rotate(2.6deg)}35%{transform:rotate(-1.8deg)}55%{transform:rotate(1deg)}75%{transform:rotate(-0.4deg)}100%{transform:rotate(0)}}
 @keyframes vvgust{0%{transform:rotate(0)}18%{transform:rotate(3deg)}40%{transform:rotate(-1.6deg)}65%{transform:rotate(0.7deg)}100%{transform:rotate(0)}}
}
