/**
 * GlowArt custom cursor — Vaternam-style orb + label
 * Champagne highlight. Only active when JS injects .ga-cursor.
 * Native cursor is ONLY hidden when fine pointer + hover is confirmed,
 * so coarse/touch never ends up with an invisible cursor.
 */

@media (hover: hover) and (pointer: fine) and (min-width: 901px) {
  html.has-ga-cursor,
  html.has-ga-cursor * {
    cursor: none !important;
  }

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

  .ga-cursor {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    z-index: 2147483000 !important;
    pointer-events: none !important;
    width: 0 !important;
    height: 0 !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    overflow: visible !important;
    will-change: transform;
    mix-blend-mode: normal;
  }

  .ga-cursor__orb {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 28px !important;
    height: 28px !important;
    margin: -14px 0 0 -14px !important;
    border-radius: 999px !important;
    border: 2px solid #fff !important;
    background: rgba(255, 255, 255, 0.95) !important;
    mix-blend-mode: difference;
    box-shadow:
      0 0 0 1px rgba(0, 0, 0, 0.35),
      0 0 28px rgba(255, 255, 255, 0.7) !important;
    transition:
      width 0.4s cubic-bezier(0.16, 1, 0.3, 1),
      height 0.4s cubic-bezier(0.16, 1, 0.3, 1),
      margin 0.4s cubic-bezier(0.16, 1, 0.3, 1),
      background 0.35s ease,
      border-color 0.35s ease,
      box-shadow 0.35s ease !important;
  }

  .ga-cursor__orb::after {
    content: "" !important;
    position: absolute !important;
    inset: -10px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(255, 255, 255, 0.45) !important;
    opacity: 0.85 !important;
    transition: inset 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.35s ease !important;
  }

  .ga-cursor.is-hover .ga-cursor__orb {
    width: 52px !important;
    height: 52px !important;
    margin: -26px 0 0 -26px !important;
    background: rgba(240, 238, 233, 0.72) !important;
    border-color: #f0eee9 !important;
    mix-blend-mode: normal;
    box-shadow:
      0 0 0 1px rgba(0, 0, 0, 0.25),
      0 0 42px rgba(240, 238, 233, 0.75) !important;
  }

  .ga-cursor.is-hover .ga-cursor__orb::after {
    inset: -14px !important;
    border-color: rgba(240, 238, 233, 0.55) !important;
  }

  .ga-cursor.is-down .ga-cursor__orb {
    width: 18px !important;
    height: 18px !important;
    margin: -9px 0 0 -9px !important;
    background: #fff !important;
  }

  .ga-cursor.is-down .ga-cursor__orb::after {
    inset: -6px !important;
    opacity: 0.4 !important;
  }

  .ga-cursor__label {
    position: absolute !important;
    top: 0 !important;
    left: 30px !important;
    translate: 10px -50%;
    opacity: 0;
    pointer-events: none !important;
    white-space: nowrap !important;
    border-radius: 999px !important;
    padding: 8px 13px !important;
    background: #f0eee9 !important;
    color: #0a0908 !important;
    font-family: Outfit, "Helvetica Neue", sans-serif !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: 0.14em !important;
    line-height: 1 !important;
    text-transform: uppercase !important;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.4) !important;
    mix-blend-mode: normal;
    transition:
      opacity 0.28s ease,
      translate 0.35s cubic-bezier(0.16, 1, 0.3, 1) !important;
  }

  .ga-cursor__label.on {
    opacity: 1 !important;
    translate: 18px -50%;
  }
}

/* Touch / coarse / narrow: never hide the system cursor */
@media (hover: none), (pointer: coarse), (max-width: 900px) {
  html.has-ga-cursor,
  html.has-ga-cursor * {
    cursor: auto !important;
  }

  .ga-cursor {
    display: none !important;
  }
}
