/* Approved Hammer liquid dots: a synchronized 3.2-second visual pulse. */
:root { --hld-duration: 3.2s; --hld-ease: cubic-bezier(.45, 0, .55, 1); }

html:root :is(.hm-dot, .ho-live > span, .hammer-liquid-dot, [data-hammer-liquid-dot]) {
  position: relative;
  display: inline-block;
  flex-shrink: 0;
  border-radius: 50%;
  animation: hld-core var(--hld-duration) var(--hld-ease) infinite !important;
}
html:root :is(.hm-dot, .ho-live > span, .hir-ai-dot, .hammer-liquid-dot, [data-hammer-liquid-dot]) {
  background: radial-gradient(circle at 32% 26%, #8ce7ff 0%, #27c9ff 24%, #00acff 62%, #007de8 100%) !important;
  border-color: #39caff !important;
}
html:root :is(.hm-dot, .ho-live > span, .hir-ai-dot, .hammer-liquid-dot, [data-hammer-liquid-dot])::before {
  content: "";
  position: absolute;
  inset: -95%;
  border-radius: 50%;
  pointer-events: none;
  background: radial-gradient(circle, rgba(0,183,255,.4) 0%, rgba(0,145,255,.22) 34%, rgba(0,120,255,0) 72%);
  filter: blur(3px);
  animation: hld-halo var(--hld-duration) var(--hld-ease) infinite;
}
html:root :is(.hm-dot, .ho-live > span, .hir-ai-dot, .hammer-liquid-dot, [data-hammer-liquid-dot])::after {
  content: "";
  position: absolute;
  width: 43%;
  height: 25%;
  top: 15%;
  left: 18%;
  border-radius: 50%;
  pointer-events: none;
  background: radial-gradient(ellipse, rgba(207,248,255,.8), rgba(114,226,255,0));
  filter: blur(.6px);
  animation: hld-highlight var(--hld-duration) var(--hld-ease) infinite;
}

/* InBody keeps its two original border paths, speed and opposite directions. */
html:root .hir-ai-dot {
  animation: hir-ai-border 4s linear infinite, hld-core var(--hld-duration) var(--hld-ease) infinite !important;
}
html:root .hir-ai-dot.hir-ai-anticlockwise {
  animation-direction: reverse, normal !important;
  animation-delay: -2s, 0s !important;
}
html:root .hir-paused .hir-ai-dot,
html:root .hir-paused .hir-ai-dot::before,
html:root .hir-paused .hir-ai-dot::after { animation-play-state: paused !important; }

/* The member title's dot stays a typographic accent. */
html:root .hm-title-dot {
  display: inline-block;
  color: #13bfff !important;
  transform-origin: 50% 85%;
  animation: hld-title var(--hld-duration) var(--hld-ease) infinite !important;
}

/* SVG dots retain their existing geometry and movement. */
html:root .ha-orbit-svg .ha-orbit-dot {
  fill: #13bfff !important;
  stroke: #7de4ff !important;
  animation: hld-svg var(--hld-duration) var(--hld-ease) infinite !important;
}
html:root .ha-orbit-svg .ha-orbit-halo {
  fill: #00aaff !important;
  animation: hld-svg-halo var(--hld-duration) var(--hld-ease) infinite !important;
}
html:root body:has(.ha-motion-toggle[aria-pressed="true"]) :is(.ha-orbit-dot, .ha-orbit-halo) {
  animation-play-state: paused !important;
}
html:root #hammer-ask-neon-banner .han-dot.han-inner {
  animation: hammer-ask-neon-inner-cw 11s linear infinite, hld-svg var(--hld-duration) var(--hld-ease) infinite;
}
html:root #hammer-ask-neon-banner .han-dot.han-outer {
  animation: hammer-ask-neon-outer-ccw 11s linear infinite, hld-svg var(--hld-duration) var(--hld-ease) infinite;
}

@keyframes hld-core {
  0%, 100% {
    opacity: .32;
    transform: scale(.92);
    box-shadow: inset 0 -1px 2px rgba(0,66,175,.35), 0 0 3px rgba(0,186,255,.25), 0 0 7px rgba(0,133,255,.12);
  }
  50% {
    opacity: 1;
    transform: scale(1.055);
    box-shadow: inset 0 -1px 2px rgba(0,66,175,.2), 0 0 8px rgba(0,186,255,.9), 0 0 21px rgba(0,133,255,.5);
  }
}
@keyframes hld-halo {
  0%, 100% { opacity: .12; transform: scale(.72); }
  50% { opacity: .85; transform: scale(1.25); }
}
@keyframes hld-highlight {
  0%, 100% { opacity: .35; transform: translate(-8%,-8%) rotate(-12deg); }
  50% { opacity: .85; transform: translate(12%,12%) rotate(8deg); }
}
@keyframes hld-title {
  0%, 100% { opacity: .32; transform: scale(.92); text-shadow: 0 0 3px rgba(0,186,255,.25); }
  50% { opacity: 1; transform: scale(1.055); text-shadow: 0 0 8px rgba(0,186,255,.9), 0 0 21px rgba(0,133,255,.5); }
}
@keyframes hld-svg { 0%, 100% { opacity: .32; } 50% { opacity: 1; } }
@keyframes hld-svg-halo { 0%, 100% { opacity: .15; } 50% { opacity: .48; } }

@media (prefers-reduced-motion: reduce) {
  html:root :is(.hm-dot, .ho-live > span, .hir-ai-dot, .hm-title-dot, .hammer-liquid-dot, [data-hammer-liquid-dot], .ha-orbit-dot, .ha-orbit-halo),
  html:root #hammer-ask-neon-banner .han-dot,
  html:root :is(.hm-dot, .ho-live > span, .hir-ai-dot, .hammer-liquid-dot, [data-hammer-liquid-dot])::before,
  html:root :is(.hm-dot, .ho-live > span, .hir-ai-dot, .hammer-liquid-dot, [data-hammer-liquid-dot])::after {
    animation: none !important;
    transform: none;
  }
  html:root :is(.hm-dot, .ho-live > span, .hir-ai-dot, .hammer-liquid-dot, [data-hammer-liquid-dot]) {
    opacity: 1;
    box-shadow: 0 0 5px #00baff, 0 0 13px rgba(0,161,255,.75);
  }
  html:root :is(.hm-dot, .ho-live > span, .hir-ai-dot, .hammer-liquid-dot, [data-hammer-liquid-dot])::before { opacity: .45; }
  html:root :is(.hm-dot, .ho-live > span, .hir-ai-dot, .hammer-liquid-dot, [data-hammer-liquid-dot])::after { opacity: .6; }
}
@media print {
  html:root :is(.hm-dot, .ho-live > span, .hir-ai-dot, .hm-title-dot, .hammer-liquid-dot, [data-hammer-liquid-dot], .ha-orbit-dot, .ha-orbit-halo),
  html:root #hammer-ask-neon-banner .han-dot,
  html:root :is(.hm-dot, .ho-live > span, .hir-ai-dot, .hammer-liquid-dot, [data-hammer-liquid-dot])::before,
  html:root :is(.hm-dot, .ho-live > span, .hir-ai-dot, .hammer-liquid-dot, [data-hammer-liquid-dot])::after {
    animation: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
    filter: none !important;
    transform: none;
  }
}
