/* Home hero: custom red dot cursor only (no shutter / sequence) */

.hero-cursor-root {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 80;
}

.hero-cursor-dot {
  position: fixed;
  left: 0;
  top: 0;
  width: 0;
  height: 0;
  opacity: 0;
  will-change: transform;
  transition: opacity 0.35s var(--ease-eco);
}

html.hero-cursor-ready:not(.menu-open) .hero-cursor-dot {
  opacity: 1;
}

body.menu-open .hero-cursor-root {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

.hero-cursor-dot__inner {
  display: block;
  width: clamp(45px, 5vw, 50px);
  height: clamp(45px, 5vw, 50px);
  margin: 0;
  border-radius: 50%;
  background: var(--color-primary);
  transform: translate(-50%, -50%);
  pointer-events: none;
  transition: background-color 0.18s var(--ease-eco), transform 0.18s var(--ease-eco);
  box-sizing: border-box;
}

.hero-cursor-dot.is-over-hero-text .hero-cursor-dot__inner {
  background-color: var(--color-bg);
}

/* White cursor on dark-background sections */
.hero-cursor-dot.is-dark-zone .hero-cursor-dot__inner {
  background-color: #ffffff;
}

/* Hide native cursor across all page sections */
html.hero-cursor-armed .main,
html.hero-cursor-armed .site-header,
html.hero-cursor-armed .work-0,
html.hero-cursor-armed .svc,
html.hero-cursor-armed .abt,
html.hero-cursor-armed .mrq,
html.hero-cursor-armed .ctc {
  cursor: none;
}

@media (pointer: coarse) {
  .hero-cursor-root {
    display: none !important;
  }

  html.hero-cursor-armed .main,
  html.hero-cursor-armed .site-header {
    cursor: auto;
  }
}
