/* Shared hero-animation components — Claude design hero ports.
   Only component-level styles. NO body/html/topbar/:root overrides
   (those belong in base.css and cd-app.css and would conflict with
   v2's own topbar). Loaded by stand-cd-* layouts that need cursor,
   replay or animated chips. */

/* Animated scene cursor — NOT the global .cursor visitor cursor.
   This is the SVG arrow programmatically moved between targets in CD-hero
   stage animations. */
.scene-cursor {
  position: absolute;
  width: 24px; height: 24px;
  z-index: 30;
  pointer-events: none;
  opacity: 0;
  transform: translate(-3px, -2px);
  transition: opacity .3s, left .9s cubic-bezier(.4,.1,.3,.9), top .9s cubic-bezier(.4,.1,.3,.9);
}
.scene-cursor.show { opacity: 1; }
.scene-cursor.click { animation: cursorClick .35s ease-out; }
@keyframes cursorClick {
  0%   { transform: translate(-3px,-2px) scale(1); }
  40%  { transform: translate(-3px,-2px) scale(0.78); }
  100% { transform: translate(-3px,-2px) scale(1); }
}

/* Replay button (small, subtle, anchored to .stage-only) */
.replay {
  position: absolute;
  bottom: 20px; right: 20px;
  background: rgba(255,255,255,0.9);
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 6px 14px;
  font: inherit; font-size: 12px;
  color: var(--brand-30);
  cursor: pointer;
  z-index: 50;
  opacity: 0.6;
  transition: opacity .2s;
}
.replay:hover { opacity: 1; }

/* Caret blink — used by .ask, .searchbar, .phone__searchwrap */
@keyframes blink { to { visibility: hidden; } }

/* Reduced motion — animeret cursor + caret-blink stoppes for brugere
   der har bedt OS om mindre bevægelse. Replay-fade er bevaret kort. */
@media (prefers-reduced-motion: reduce) {
  .scene-cursor,
  .scene-cursor.show,
  .scene-cursor.click {
    animation: none !important;
    transition: opacity 0.15s linear !important;
  }
  .replay { transition: none !important; }
  .ask .caret,
  .phone__searchwrap .caret { animation: none !important; }
}
