/* Approved Hammer liquid dots: a synchronized 4.8-second visual pulse. */
:root { --hld-duration: 4.8s; --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: -65%;
  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: .62;
    transform: scale(.98);
    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.02);
    box-shadow: inset 0 -1px 2px rgba(0,66,175,.2), 0 0 8px rgba(0,186,255,.9), 0 0 12px rgba(0,133,255,.25);
  }
}
@keyframes hld-halo {
  0%, 100% { opacity: .12; transform: scale(.72); }
  50% { opacity: .48; transform: scale(1.12); }
}
@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: .62; transform: scale(.98); text-shadow: 0 0 3px rgba(0,186,255,.25); }
  50% { opacity: 1; transform: scale(1.02); text-shadow: 0 0 8px rgba(0,186,255,.9), 0 0 12px rgba(0,133,255,.25); }
}
@keyframes hld-svg { 0%, 100% { opacity: .62; } 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;
  }
}

/* Smaller perimeter lights with constant travel speed and a gentle liquid pulse. */
@media screen {
  html:root .hir-ai-dot { width: 2.5px; height: 2.5px; animation-duration: 10s, var(--hld-duration) !important; }
  html:root .hir-ai-dot.hir-ai-anticlockwise { animation-delay: -5s, 0s !important; }
  html:root .ha-orbit-svg .ha-orbit-dot { r: 1.5px; }
  html:root .ha-orbit-svg .ha-orbit-halo { r: 3.5px; filter: blur(2px); }
  html:root #hammer-ask-neon-banner .han-orbit { animation-duration: 18s !important; animation-timing-function: linear !important; }
  html:root #hammer-ask-neon-banner .han-dot { animation-duration: 18s, var(--hld-duration) !important; animation-timing-function: linear, var(--hld-ease) !important; }
  html:root #hammer-ask-neon-banner .han-dot[filter] { stroke-width: 28px; stroke: #6bcbed; }
  html:root #hammer-ask-neon-banner .han-dot:is([stroke-width="30"], [stroke-width="34"]) { stroke-width: 15px; stroke: #b4e8fa; }
  html:root #hammer-ask-neon-banner .han-dot[stroke-width="16"] { stroke-width: 8px; stroke: #f1fcff; }
  html:root #hammer-ask-neon-banner :is(.han-inner-trail, .han-outer-trail) { stroke-width: 4.5px; stroke: #aedff2; opacity: .58; }
  html:root #hammer-ask-neon-banner .han-inner-trail { stroke-dasharray: 2 98; stroke-dashoffset: -5; animation-name: hld-inner-short-trail; }
  html:root #hammer-ask-neon-banner .han-outer-trail { stroke-dasharray: 1.1 98.9; }
  @keyframes hld-inner-short-trail { from { stroke-dashoffset: -5; } to { stroke-dashoffset: -105; } }
  @media (prefers-reduced-motion: reduce) { html:root #hammer-ask-neon-banner .han-orbit { animation: none !important; } }
}
