:root {
  --lunorb-micro-duration: 260ms;
  --lunorb-micro-reveal: cubic-bezier(.22, 1, .36, 1);
  --lunorb-micro-focus: cubic-bezier(.4, 0, .2, 1);
}

/* Existing controls illuminate without changing size or drawing a neon halo. */
:where(.primary-btn, .secondary-btn, .chapter-one__cta, .view-tool, .filter-toggle, .quick-prompts button) {
  transition:
    transform var(--lunorb-micro-duration) var(--lunorb-micro-reveal),
    color var(--lunorb-micro-duration) ease,
    border-color var(--lunorb-micro-duration) ease,
    background-color var(--lunorb-micro-duration) ease,
    box-shadow var(--lunorb-micro-duration) ease;
}

@media (hover: hover) and (pointer: fine) {
  .primary-btn:hover,
  .secondary-btn:hover,
  .chapter-one__cta:hover {
    transform: translateY(-2px);
    border-color: rgba(131, 175, 242, .58);
    box-shadow: 0 10px 30px rgba(27, 71, 145, .14), inset 0 0 20px rgba(94, 143, 220, .05);
  }

  .tool-card:hover,
  .chapter-grid-reveal.visible .category-tile:hover {
    transform: none;
    translate: 0 -4px;
  }

  .category-tile:hover .category-node__orbit,
  .category-tile:focus-visible .category-node__orbit {
    border-color: color-mix(in srgb, var(--category-accent), transparent 48%);
    filter: drop-shadow(0 0 5px color-mix(in srgb, var(--category-accent), transparent 70%));
  }
}

.chapter-one__orbit {
  transition: border-color 320ms var(--lunorb-micro-focus), filter 320ms var(--lunorb-micro-focus);
}

.chapter-one__orbit i {
  transition: scale 320ms var(--lunorb-micro-reveal), box-shadow 320ms ease;
}

.chapter-one.is-orbit-focused .chapter-one__orbit {
  border-color: rgba(135, 178, 246, .62);
  filter: drop-shadow(0 0 8px rgba(68, 124, 255, .28));
}

.chapter-one.is-orbit-focused .chapter-one__orbit i {
  scale: 1.3;
  box-shadow: 0 0 9px #fff, 0 0 27px rgba(68, 124, 255, .9);
}

/* Search results expand from the search field instead of appearing as a detached panel. */
.suggestions {
  display: block;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transform: translateX(-50%) translateY(-6px) scale(.985);
  transform-origin: 50% 0;
  clip-path: inset(0 0 100% 0 round 12px);
  transition:
    opacity 180ms ease,
    transform var(--lunorb-micro-duration) var(--lunorb-micro-reveal),
    clip-path var(--lunorb-micro-duration) var(--lunorb-micro-reveal),
    visibility 0s linear var(--lunorb-micro-duration);
}

.suggestions.show {
  display: block;
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0) scale(1);
  clip-path: inset(0 0 0 0 round 12px);
  transition-delay: 0s;
}

.suggestions.show button {
  animation: lunorb-suggestion-resolve 240ms var(--lunorb-micro-reveal) both;
  animation-delay: calc(var(--micro-index, 0) * 24ms);
}

@keyframes lunorb-suggestion-resolve {
  from { opacity: 0; transform: translateY(-4px) scale(.992); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.tray-item {
  animation: lunorb-node-resolve 260ms var(--lunorb-micro-reveal) both;
}

@keyframes lunorb-node-resolve {
  from { opacity: 0; transform: scale(.86); }
  to { opacity: 1; transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  :where(.primary-btn, .secondary-btn, .chapter-one__cta, .view-tool, .filter-toggle, .quick-prompts button),
  .chapter-one__orbit,
  .chapter-one__orbit i,
  .suggestions,
  .suggestions.show,
  .tray-item {
    transition: none;
    animation: none;
  }

  .suggestions { transform: translateX(-50%); clip-path: none; }
  .tool-card:hover,
  .chapter-grid-reveal.visible .category-tile:hover { translate: none; }
}
