html.custom-cursor,
html.custom-cursor * {
  cursor: none !important;
}

.cursor-dot {
  position: fixed;
  top: 0;
  left: 0;
  width: 8px;
  height: 8px;
  background: #C41E3A;
  border-radius: 50%;
  pointer-events: none;
  z-index: 99999;
  will-change: transform;
  box-shadow: 0 0 10px rgba(196, 30, 58, 0.85), 0 0 22px rgba(196, 30, 58, 0.4);
  transition: background 0.2s ease, box-shadow 0.2s ease;
}

.cursor-ring {
  position: fixed;
  top: 0;
  left: 0;
  width: 34px;
  height: 34px;
  border: 1.5px solid rgba(212, 175, 55, 0.65);
  border-radius: 50%;
  pointer-events: none;
  z-index: 99998;
  will-change: transform;
  transition: width 0.22s ease, height 0.22s ease, border-color 0.22s ease, margin 0.22s ease;
}

.cursor-dot.is-hovering {
  background: #D4AF37;
  box-shadow: 0 0 14px rgba(212, 175, 55, 0.9), 0 0 30px rgba(212, 175, 55, 0.45);
}

.cursor-ring.is-hovering {
  width: 50px;
  height: 50px;
  border-color: rgba(196, 30, 58, 0.55);
  margin-left: -8px;
  margin-top: -8px;
}

@media (hover: none) {
  .cursor-dot, .cursor-ring { display: none; }
}
