/* Shared liquid-glass hover — landing + games calendar */

@property --lg-rim-angle {
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: false;
}

:root {
  --lg-glow-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --lg-glow-dur: 0.65s;
  --lg-glow-spin-dur: 7.5s;
  --lg-glow-spin-dur-fast: 6s;
  --cta-hover-lift: -4px;
  --cta-hover-scale: 1.014;
  --cta-hover-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --cta-hover-dur: 0.44s;
}

@keyframes lg-glow-rim-spin {
  to { --lg-rim-angle: 360deg; }
}

@keyframes lg-glow-pulse {
  0%, 100% {
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.22),
      0 0 0 1px rgba(100, 210, 255, 0.1),
      0 0 10px rgba(0, 220, 255, 0.14),
      0 0 18px rgba(175, 95, 255, 0.12);
  }
  50% {
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.26),
      0 0 0 1px rgba(100, 210, 255, 0.14),
      0 0 16px rgba(0, 220, 255, 0.22),
      0 0 28px rgba(175, 95, 255, 0.16),
      0 0 38px rgba(255, 90, 175, 0.1);
  }
}

.page-landing .glass::before,
.category-page--games .glass::before {
  --lg-rim-angle: 0deg;
  transform-origin: center center;
  transition:
    opacity var(--lg-glow-dur) var(--lg-glow-ease),
    filter var(--lg-glow-dur) var(--lg-glow-ease);
}

.page-landing .glass::after,
.category-page--games .glass::after {
  transform-origin: center center;
  transition:
    opacity var(--lg-glow-dur) var(--lg-glow-ease),
    filter var(--lg-glow-dur) var(--lg-glow-ease);
}

.page-landing .landing__cta.glass,
.page-landing .landing__platform.glass,
.page-landing .landing__feature.glass,
.page-landing .landing__badge.glass,
.page-landing .site-header .icon-btn.glass,
.page-landing .site-header__auth .glass,
.category-page--games .glass.glass-pill,
.category-page--games .glass.icon-btn,
.category-page--games .site-header .icon-btn.glass,
.category-page--games .site-header__auth .glass {
  transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transition:
    transform var(--cta-hover-dur) var(--cta-hover-ease),
    box-shadow var(--cta-hover-dur) var(--cta-hover-ease),
    color 0.38s var(--cta-hover-ease),
    background-color var(--cta-hover-dur) var(--cta-hover-ease),
    border-color var(--cta-hover-dur) var(--cta-hover-ease);
}

/* Reset calendar "Today" pill — use standard glass rim, not legacy spin fill */
.category-page--games .gc-today.glass-pill::before {
  inset: 0 !important;
  z-index: 0 !important;
  padding: 1px;
  opacity: 1;
  background: linear-gradient(
    168deg,
    rgba(255, 255, 255, 0.38) 0%,
    rgba(255, 255, 255, 0.1) 24%,
    rgba(255, 255, 255, 0.02) 50%,
    rgba(255, 255, 255, 0.08) 100%
  );
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  animation: none !important;
  transform: none !important;
}

.category-page--games .gc-today.glass-pill::after {
  inset: 0 !important;
  z-index: 0 !important;
  padding: 0;
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.11) 0%,
    rgba(255, 255, 255, 0.03) 18%,
    transparent 42%,
    transparent 100%
  );
  -webkit-mask: none;
  mask: none;
}

@media (hover: hover) and (pointer: fine) {
  .page-landing .landing__cta.glass:hover,
  .page-landing .landing__platform.glass:hover,
  .page-landing .landing__feature.glass:hover,
  .page-landing .landing__badge.glass:hover,
  .page-landing .site-header .icon-btn.glass:hover,
  .page-landing .site-header__auth .glass:hover,
  .category-page--games .glass.glass-pill:hover,
  .category-page--games .glass.icon-btn:hover,
  .category-page--games .site-header .icon-btn.glass:hover,
  .category-page--games .site-header__auth .glass:hover {
    border-color: transparent;
    --glass-fill-top: rgba(255, 255, 255, 0.085);
    --glass-fill-mid: rgba(255, 255, 255, 0.024);
    --glass-fill-bottom: rgba(255, 255, 255, 0.042);
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.18),
      0 0 0 1px rgba(100, 210, 255, 0.06),
      0 0 14px rgba(0, 220, 255, 0.13),
      0 0 24px rgba(175, 95, 255, 0.1),
      0 0 34px rgba(255, 90, 175, 0.07),
      0 6px 20px rgba(0, 0, 0, 0.28);
    transform: translate3d(0, -2px, 0) scale(1.025);
    color: rgba(255, 255, 255, 0.98);
  }

  .page-landing .landing__platform.glass:hover {
    transform: translate3d(0, -4px, 0) scale(1.08);
  }

  .page-landing .site-header .icon-btn.glass:hover,
  .category-page--games .site-header .icon-btn.glass:hover,
  .category-page--games .gc-icon-btn.glass-pill:hover {
    transform: translate3d(0, -2px, 0) scale(1.06);
  }

  .page-landing .landing__cta.glass:hover {
    transform: translate3d(0, var(--cta-hover-lift), 0) scale(var(--cta-hover-scale));
  }

  .page-landing .landing__cta--primary.glass:hover {
    --cta-hover-lift: -5px;
    --cta-hover-scale: 1.016;
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.2),
      0 0 0 1px rgba(0, 220, 255, 0.08),
      0 0 16px rgba(0, 220, 255, 0.1),
      0 0 26px rgba(175, 95, 255, 0.07),
      0 0 36px rgba(255, 90, 175, 0.05),
      0 10px 28px rgba(0, 0, 0, 0.32);
    animation: lg-glow-pulse 4s ease-in-out infinite;
  }

  .page-landing .landing__cta.glass:hover::before,
  .page-landing .landing__platform.glass:hover::before,
  .page-landing .landing__feature.glass:hover::before,
  .page-landing .landing__badge.glass:hover::before,
  .page-landing .site-header .icon-btn.glass:hover::before,
  .page-landing .site-header__auth .glass:hover::before,
  .category-page--games .glass.glass-pill:hover::before,
  .category-page--games .glass.icon-btn:hover::before,
  .category-page--games .site-header .icon-btn.glass:hover::before,
  .category-page--games .site-header__auth .glass:hover::before {
    padding: 2.5px;
    background: conic-gradient(
      from var(--lg-rim-angle),
      rgba(0, 210, 255, 0.62) 0deg,
      rgba(90, 150, 255, 0.58) 52deg,
      rgba(170, 100, 255, 0.56) 104deg,
      rgba(255, 90, 180, 0.54) 156deg,
      rgba(255, 140, 60, 0.52) 208deg,
      rgba(255, 210, 80, 0.5) 260deg,
      rgba(80, 230, 160, 0.52) 312deg,
      rgba(0, 210, 255, 0.62) 360deg
    );
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    filter: blur(0.7px) brightness(1.1) saturate(1.34);
    transform: none;
    animation: lg-glow-rim-spin var(--lg-glow-spin-dur) linear infinite;
  }

  .page-landing .landing__cta--primary.glass:hover::before {
    background: conic-gradient(
      from var(--lg-rim-angle),
      rgba(0, 225, 255, 0.68) 0deg,
      rgba(100, 160, 255, 0.64) 52deg,
      rgba(185, 115, 255, 0.62) 104deg,
      rgba(255, 100, 195, 0.6) 156deg,
      rgba(255, 155, 70, 0.58) 208deg,
      rgba(255, 220, 95, 0.56) 260deg,
      rgba(90, 240, 170, 0.58) 312deg,
      rgba(0, 225, 255, 0.68) 360deg
    );
    filter: blur(0.75px) brightness(1.12) saturate(1.36);
    animation-duration: var(--lg-glow-spin-dur-fast);
  }

  html[data-theme="light"] .category-page--games .glass.glass-pill:hover,
  html[data-theme="light"] .category-page--games .glass.icon-btn:hover {
    color: rgba(0, 0, 0, 0.88);
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-landing .glass:hover::before,
  .category-page--games .glass:hover::before {
    animation: none !important;
  }

  .page-landing .glass:hover,
  .category-page--games .glass:hover {
    transform: none !important;
    animation: none !important;
  }
}
