/* ── Custom cursor (screen 4) ── */
.custom-cursor {
  position: fixed;
  pointer-events: none;
  z-index: 9999;
  font-size: 18px;
  transform: translate(-50%, -50%);
  transition: opacity 0.2s;
  display: none;
}
body.sparkle-cursor { cursor: none !important; }
body.sparkle-cursor * { cursor: none !important; }

/* ── Floating heart particles ── */
.heart-float {
  position: fixed;
  pointer-events: none;
  font-size: 14px;
  z-index: 9998;
  animation: heartRise 1.4s ease-out forwards;
}
@keyframes heartRise {
  0%   { opacity: 1; transform: translateY(0) scale(1); }
  100% { opacity: 0; transform: translateY(-110px) scale(0.5) rotate(15deg); }
}

/* ── Firefly particles ── */
.firefly {
  position: fixed;
  border-radius: 50%;
  pointer-events: none;
  z-index: 5;
  animation: fireflyDrift linear forwards, fireflyPulse ease-in-out infinite;
}
@keyframes fireflyDrift {
  0%  { opacity: 0; }
  10% { opacity: 1; }
  85% { opacity: 0.8; }
  100%{ opacity: 0; }
}
@keyframes fireflyPulse {
  0%, 100% { box-shadow: 0 0 4px 1px rgba(240,190,60,0.4); }
  50%       { box-shadow: 0 0 10px 4px rgba(240,190,60,0.8); }
}

/* ── Cherry blossom petal particles ── */
.petal-particle {
  position: fixed;
  top: -20px;
  pointer-events: none;
  border-radius: 50% 0 50% 0;
  z-index: 5;
  animation: petalFall linear forwards;
}
@keyframes petalFall {
  0%   { transform: translateY(0)     rotate(0deg)   translateX(0);    opacity: 0.9; }
  50%  { transform: translateY(50vh)  rotate(200deg) translateX(28px); opacity: 0.7; }
  100% { transform: translateY(115vh) rotate(400deg) translateX(-18px);opacity: 0; }
}
