.dv-fall-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;min-height:40px;padding:8px 12px;border:1px solid #c89b6266;border-radius:10px;background:#a96a2420;color:#f0d2a4;font:500 14px/1.35 var(--font-dashboard,"Segoe UI",sans-serif);cursor:pointer}
.dv-fall-button[hidden],.dv-fall-leaves[hidden]{display:none!important}
.dv-fall-button svg{width:17px;height:17px;flex:none;color:#d6a15b}
.dv-fall-button[aria-pressed=true]{background:#a96a2445;border-color:#e3b575;color:#fff0d5}
.dv-fall-button:not(:disabled):hover{border-color:#e3b575;background:#a96a2435}
.dv-fall-button:focus-visible{outline:2px solid #e3b575;outline-offset:3px}
.dv-fall-button:disabled{opacity:.5;cursor:default}
.dv-fall-leaves{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:3;contain:strict}
.dv-fall-leaf{position:absolute;top:-48px;left:var(--leaf-x);width:var(--leaf-size);height:var(--leaf-size);opacity:.65;animation:dv-leaf-fall var(--leaf-time) linear var(--leaf-delay) infinite}
.dv-fall-leaf svg{display:block;width:100%;height:100%;animation:dv-leaf-sway 4.5s ease-in-out infinite alternate;transform-origin:center}
.dv-snowflake{border-radius:50%;background:#edf6ff;opacity:.8}
.dv-fall-button[data-season=snow]{border-color:#a9cce066;background:#abcfea16;color:#d6eafa}
.dv-fall-button[data-season=snow] svg{color:#c0e5ff}
.dv-fall-button[data-season=snow][aria-pressed=true]{background:#abcfea30;border-color:#bfdef1}
.dv-fall-leaves[data-paused=true] .dv-fall-leaf,.dv-fall-leaves[data-paused=true] svg{animation-play-state:paused}
@keyframes dv-leaf-fall{from{transform:translate3d(0,-30px,0) rotate(var(--leaf-angle))}to{transform:translate3d(var(--leaf-drift),calc(100dvh + 100px),0) rotate(calc(var(--leaf-angle) + 200deg))}}
@keyframes dv-leaf-sway{from{transform:rotate(-28deg) scaleX(.65)}to{transform:rotate(28deg) scaleX(1)}}
@media(prefers-reduced-motion:reduce){.dv-fall-leaves{display:none!important}.dv-fall-leaf,.dv-fall-leaf svg{animation:none!important}}

/* The opening burst clears itself; the original steady leaves remain. */
.dv-fall-burst{animation-name:dv-leaf-burst;animation-iteration-count:1;animation-fill-mode:both}
@keyframes dv-leaf-burst{0%{opacity:0;transform:translate3d(0,-30px,0) rotate(var(--leaf-angle))}5%{opacity:.75}85%{opacity:.65}100%{opacity:0;transform:translate3d(var(--leaf-drift),calc(100dvh + 100px),0) rotate(calc(var(--leaf-angle) + 240deg))}}
