/* HIR homepage hero animation (home-pulse). Sample, Oct 29 2026. Desktop only; absolutely
   positioned in the hero so it never moves the copy or search (no layout shift). */
.home-pulse { display: none; }
@media (min-width: 1180px) {
  .hero { position: relative; z-index: 1; }
  .hero > .wrap { position: relative; }
  .home-pulse {
    display: flex; flex-direction: column; position: absolute; top: 0.25rem; right: 0;
    width: 21rem; height: 12.75rem; box-sizing: border-box; padding: 0.9rem 1rem 0.8rem;
    background: var(--bg, #fff); border: 1px solid var(--line, #0A0A0A);
    box-shadow: 3px 3px 0 rgba(10,10,10,0.12); overflow: hidden;
  }
}
.home-pulse__line { display: block; width: 100%; height: 2.6rem; flex: none; }
.home-pulse__base { fill: none; stroke: var(--line-soft, #D0D0D0); stroke-width: 1.5; }
.home-pulse__trace {
  fill: none; stroke: var(--ink, #0A0A0A); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
  stroke-dasharray: 70 460; stroke-dashoffset: 70; animation: hp-trace 3.2s linear infinite;
}
@keyframes hp-trace { to { stroke-dashoffset: -460; } }
.home-pulse__cards { position: relative; flex: 1; margin: 0.55rem 0 0; padding: 0; list-style: none; }
.home-pulse__card {
  position: absolute; inset: 0; margin: 0; opacity: 0; transform: translateY(6px);
  transition: opacity .55s ease, transform .55s ease; pointer-events: none;
}
.home-pulse__card.is-on { opacity: 1; transform: none; pointer-events: auto; }
.home-pulse__card a {
  display: flex; align-items: center; gap: 0.85rem; text-decoration: none; color: var(--ink, #0A0A0A); background: none;
}
.home-pulse .stamp { width: 4.6rem; min-height: 4.6rem; flex: none; }
.home-pulse .stamp__score { font-size: 1.65rem; }
.home-pulse__name { display: block; font-family: var(--display); font-weight: 600; font-size: 1.3rem; line-height: 1.15; }
.home-pulse__cat { display: block; margin-top: 0.2rem; font-size: 0.8rem; color: var(--mute, #5C5C5C); }
.home-pulse__card a:hover .home-pulse__name { text-decoration: underline; text-underline-offset: 3px; }
.home-pulse__foot { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; flex: none; }
.home-pulse__dots { display: flex; gap: 4px; }
.home-pulse__dot { width: 7px; height: 7px; border: 1px solid var(--line, #0A0A0A); background: var(--bg, #fff); transition: background .3s; }
.home-pulse__dot.is-on { background: var(--signal, #E8FF47); }
.home-pulse__note { margin: 0; white-space: nowrap; font-size: 0.72rem; color: var(--mute, #5C5C5C); }
@media (prefers-reduced-motion: reduce) {
  .home-pulse__trace { animation: none; stroke-dasharray: none; stroke-dashoffset: 0; }
  .home-pulse__card { transition: none; }
}
