:root {
  --wp-cc-primary: var(--wp--preset--color--primary, var(--wp--preset--color--contrast, var(--c-primary, var(--color-primary, var(--primary-color, #062a40)))));
  --wp-cc-accent: var(--wp--preset--color--secondary, var(--wp--preset--color--accent, var(--c-accent, var(--c-secondary, var(--color-accent, var(--accent-color, var(--wp-cc-primary)))))));
  --wp-cc-light: var(--wp--preset--color--base, var(--wp--preset--color--white, var(--c-light, var(--color-light, #ffffff))));
  --wp-cc-surface: var(--wp--preset--color--background, var(--wp--preset--color--base, var(--c-bg, var(--color-background, var(--background-color, #f5f4f1)))));
  --wp-cc-dark-cursor: var(--wp--preset--color--base, var(--c-cream, var(--color-light, var(--wp-cc-light))));
  --wp-cc-dark-link: var(--wp--preset--color--base, var(--c-cream-bright, var(--color-light, var(--wp-cc-light))));
  --wp-cc-font: var(--f-sans, inherit);
  --wp-cc-ease: var(--ease, cubic-bezier(0.4, 0, 0.2, 1));
}

@media (min-width: 769px) and (hover: hover) and (pointer: fine) {
  html.wp-cc-cursor-enabled,
  html.wp-cc-cursor-enabled *,
  html.wp-cc-cursor-enabled *::before,
  html.wp-cc-cursor-enabled *::after,
  html.wp-cc-cursor-ready,
  html.wp-cc-cursor-ready *,
  html.wp-cc-cursor-ready *::before,
  html.wp-cc-cursor-ready *::after {
    cursor: none !important;
  }
}

.wp-cc-cursor {
  --wp-cc-cursor-size: 30px;
  --wp-cc-cursor-fill: color-mix(in srgb, var(--wp-cc-primary) 88%, transparent);
  --wp-cc-cursor-outline: color-mix(in srgb, var(--wp-cc-surface) 72%, transparent);
  --wp-cc-cursor-label: var(--wp-cc-light);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 2147483000;
  width: 0;
  height: 0;
  pointer-events: none;
  opacity: 0;
  mix-blend-mode: normal;
  will-change: transform, opacity;
  contain: layout style;
  overflow: visible;
  transition: opacity 0.18s var(--wp-cc-ease);
}

.wp-cc-cursor.is-visible {
  opacity: 1;
}

.wp-cc-cursor[data-cursor-surface='dark'] {
  --wp-cc-cursor-fill: color-mix(in srgb, var(--wp-cc-dark-cursor) 88%, transparent);
  --wp-cc-cursor-outline: color-mix(in srgb, var(--wp-cc-primary) 42%, transparent);
}

.wp-cc-cursor[data-cursor-variant='link'] {
  --wp-cc-cursor-size: 44px;
  --wp-cc-cursor-fill: color-mix(in srgb, var(--wp-cc-accent) 92%, transparent);
  --wp-cc-cursor-outline: color-mix(in srgb, var(--wp-cc-light) 52%, transparent);
  --wp-cc-cursor-label: var(--wp-cc-light);
}

.wp-cc-cursor[data-cursor-variant='link'].has-link-label {
  --wp-cc-cursor-size: 64px;
}

.wp-cc-cursor[data-cursor-surface='dark'][data-cursor-variant='link'] {
  --wp-cc-cursor-fill: color-mix(in srgb, var(--wp-cc-dark-link) 94%, transparent);
  --wp-cc-cursor-outline: color-mix(in srgb, var(--wp-cc-primary) 34%, transparent);
  --wp-cc-cursor-label: var(--wp-cc-primary);
}

.wp-cc-cursor[data-cursor-variant='project'] {
  --wp-cc-cursor-size: clamp(176px, 16vw, 248px);
  --wp-cc-cursor-fill: color-mix(in srgb, var(--wp-cc-primary) 94%, transparent);
  --wp-cc-cursor-outline: color-mix(in srgb, var(--wp-cc-surface) 8%, transparent);
  --wp-cc-cursor-label: var(--wp-cc-light);
}

.wp-cc-cursor__dot {
  display: flex;
  width: var(--wp-cc-cursor-size);
  height: var(--wp-cc-cursor-size);
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--wp-cc-cursor-fill);
  outline: 1px solid var(--wp-cc-cursor-outline);
  box-shadow: 0 12px 40px color-mix(in srgb, var(--wp-cc-primary) 18%, transparent);
  transform: translate(-50%, -50%) scale(1);
  transform-origin: center;
  overflow: hidden;
  transition:
    background 0.18s var(--wp-cc-ease),
    box-shadow 0.22s var(--wp-cc-ease),
    height 0.32s var(--wp-cc-ease),
    outline-color 0.18s var(--wp-cc-ease),
    transform 0.22s var(--wp-cc-ease),
    width 0.32s var(--wp-cc-ease),
    opacity 0.22s var(--wp-cc-ease);
}

.wp-cc-cursor.is-interactive .wp-cc-cursor__dot {
  transform: translate(-50%, -50%) scale(1.08);
}

.wp-cc-cursor[data-cursor-variant='link'] .wp-cc-cursor__dot {
  box-shadow: 0 10px 28px color-mix(in srgb, var(--wp-cc-accent) 20%, transparent);
}

.wp-cc-cursor[data-cursor-variant='project'] .wp-cc-cursor__dot {
  box-shadow: 0 18px 54px color-mix(in srgb, var(--wp-cc-primary) 24%, transparent);
  transform: translate(-50%, -50%) scale(1);
}

.wp-cc-cursor.is-pressed .wp-cc-cursor__dot {
  transform: translate(-50%, -50%) scale(0.86);
}

.wp-cc-cursor__label {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: var(--wp-cc-cursor-label);
  font-family: var(--wp-cc-font);
  font-size: clamp(1.35rem, 2vw, 1.85rem);
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0.14em;
  text-align: center;
  text-transform: uppercase;
  opacity: 0;
  transform: scale(0.92);
  transition: opacity 0.22s var(--wp-cc-ease), transform 0.28s var(--wp-cc-ease);
}

.wp-cc-cursor[data-cursor-variant='link'] .wp-cc-cursor__label {
  font-size: 0.62rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.1em;
}

.wp-cc-cursor.has-label .wp-cc-cursor__label {
  opacity: 1;
  transform: scale(1);
}

@media (max-width: 768px), (hover: none), (pointer: coarse), (prefers-reduced-motion: reduce) {
  .wp-cc-cursor {
    display: none;
  }
}
