.tsumi-petals { position:fixed; inset:0; z-index:0; overflow:hidden; pointer-events:none; }
.tsumi-petals span { position:absolute; left:var(--x); bottom:var(--y); width:14px; height:9px; border-radius:100% 0 100% 0; background:radial-gradient(circle at 30% 25%,#fff5fa 0%,#f6b0c8 30%,#d45a89 75%,#a32c5b 100%); box-shadow:0 0 10px rgba(255,168,205,.35); opacity:0; transform-origin:center; will-change:transform; animation:tsumi-petal-float var(--duration) linear infinite; animation-delay:var(--delay); }

button,.button,.reseller-action-button,.register-link { position:relative; overflow:visible; }
button::before,button::after,.button::before,.button::after,.reseller-action-button::before,.reseller-action-button::after,.register-link::before,.register-link::after { position:absolute; width:10px; height:7px; border-radius:100% 0 100% 0; background:linear-gradient(135deg,#fff2f8,#ef8eaf); box-shadow:0 0 10px rgba(244,137,181,.7); content:""; opacity:0; pointer-events:none; }
button:hover::before,button:focus-visible::before,.button:hover::before,.button:focus-visible::before,.reseller-action-button:hover::before,.reseller-action-button:focus-visible::before,.register-link:hover::before,.register-link:focus-visible::before { animation:tsumi-button-petal-left .8s ease-out; }
button:hover::after,button:focus-visible::after,.button:hover::after,.button:focus-visible::after,.reseller-action-button:hover::after,.reseller-action-button:focus-visible::after,.register-link:hover::after,.register-link:focus-visible::after { animation:tsumi-button-petal-right .9s ease-out .1s; }

@keyframes tsumi-petal-float {
  0% { transform:translate(0,0) rotate(0deg) scale(.7); opacity:0; }
  8% { opacity:.9; }
  30% { transform:translate(65px,-150px) rotate(130deg) scale(1); }
  55% { transform:translate(170px,-360px) rotate(320deg) scale(.9); opacity:.75; }
  80% { transform:translate(270px,-580px) rotate(510deg) scale(.75); }
  100% { transform:translate(360px,-800px) rotate(690deg) scale(.55); opacity:0; }
}
@keyframes tsumi-button-petal-left {
  0% { left:35%; top:5px; opacity:0; transform:rotate(0); }
  30% { opacity:1; }
  100% { left:-18px; top:-28px; opacity:0; transform:rotate(250deg); }
}
@keyframes tsumi-button-petal-right {
  0% { right:35%; top:5px; opacity:0; transform:rotate(0); }
  30% { opacity:1; }
  100% { right:-18px; top:-34px; opacity:0; transform:rotate(-230deg); }
}
@media (prefers-reduced-motion:reduce) {
  .tsumi-petals span { animation:none; }
  button::before,button::after,.button::before,.button::after,.reseller-action-button::before,.reseller-action-button::after,.register-link::before,.register-link::after { animation:none!important; }
}

/* Ambient petals become crowded between stacked cards on phone layouts. */
@media (max-width:650px) {
  .tsumi-petals { display:none; }
}
