/* Shared magical interaction language. The global brand/logo keeps its existing effects. */

:root {
  --ve-magic-gold: rgba(216, 190, 159, .78);
  --ve-magic-blue: rgba(91, 168, 255, .2);
  --ve-magic-violet: rgba(189, 116, 255, .14);
}

:is(
  .ve-course-chapter-card,
  .ve-chronicle-entry,
  .ve-compact-chapter,
  .ve-book-card-link,
  .ve-book-fact,
  .ve-home-stat,
  .ve-sentence-card,
  .ve-vocab-card
) {
  position: relative;
  isolation: isolate;
  transition:
    transform .3s cubic-bezier(.16, 1, .3, 1),
    border-color .3s ease,
    background .3s ease,
    box-shadow .3s ease,
    filter .3s ease;
}

:is(
  .ve-course-chapter-card,
  .ve-chronicle-entry,
  .ve-compact-chapter,
  .ve-book-card-link,
  .ve-book-fact,
  .ve-home-stat,
  .ve-sentence-card,
  .ve-vocab-card
)::before {
  position: absolute;
  z-index: 4;
  top: 10px;
  right: 12px;
  content: "✦";
  color: #f3dfbd;
  opacity: 0;
  pointer-events: none;
  font-size: 14px;
  line-height: 1;
  text-shadow:
    0 0 8px rgba(255, 255, 255, .92),
    0 0 18px rgba(91, 168, 255, .8),
    0 0 28px rgba(189, 116, 255, .54);
  transform: translateY(7px) scale(.4) rotate(-20deg);
  transition: opacity .22s ease, transform .38s cubic-bezier(.16, 1, .3, 1);
}

:is(
  .ve-course-chapter-card,
  .ve-chronicle-entry,
  .ve-compact-chapter,
  .ve-book-card-link,
  .ve-book-fact,
  .ve-home-stat,
  .ve-sentence-card,
  .ve-vocab-card
)::after {
  position: absolute;
  z-index: 0;
  inset: 0;
  content: "";
  opacity: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 90% 8%, var(--ve-magic-blue), transparent 25%),
    radial-gradient(circle at 8% 94%, var(--ve-magic-violet), transparent 30%);
  transition: opacity .32s ease;
}

:is(
  .ve-course-chapter-card,
  .ve-chronicle-entry,
  .ve-compact-chapter,
  .ve-book-card-link,
  .ve-book-fact,
  .ve-home-stat,
  .ve-sentence-card,
  .ve-vocab-card
) > * {
  position: relative;
  z-index: 1;
}

@media (hover: hover) and (pointer: fine) {
  :is(
    .ve-course-chapter-card,
    .ve-chronicle-entry,
    .ve-compact-chapter,
    .ve-book-card-link,
    .ve-book-fact,
    .ve-home-stat,
    .ve-sentence-card,
    .ve-vocab-card
  ):hover {
    transform: translateY(-4px);
    border-color: var(--ve-magic-gold);
    background-color: rgba(13, 23, 39, .92);
    box-shadow:
      0 18px 38px rgba(0, 0, 0, .46),
      0 0 0 1px rgba(216, 190, 159, .08),
      0 0 25px rgba(91, 168, 255, .1),
      0 0 42px rgba(189, 116, 255, .055);
  }

  :is(
    .ve-course-chapter-card,
    .ve-chronicle-entry,
    .ve-compact-chapter,
    .ve-book-card-link,
    .ve-book-fact,
    .ve-home-stat,
    .ve-sentence-card,
    .ve-vocab-card
  ):hover::before {
    opacity: 1;
    transform: translateY(0) scale(1) rotate(13deg);
    animation: ve-system-magic-pulse 1.8s ease-in-out infinite;
  }

  :is(
    .ve-course-chapter-card,
    .ve-chronicle-entry,
    .ve-compact-chapter,
    .ve-book-card-link,
    .ve-book-fact,
    .ve-home-stat,
    .ve-sentence-card,
    .ve-vocab-card
  ):hover::after {
    opacity: 1;
  }

  .ve-course-chapter-card:hover .ve-course-chapter-number,
  .ve-chronicle-entry:hover .ve-chronicle-number,
  .ve-compact-chapter:hover > span {
    color: #fff4df;
    border-color: rgba(226, 191, 129, .9);
    box-shadow:
      inset 0 0 16px rgba(203, 160, 92, .09),
      0 0 15px rgba(91, 168, 255, .15),
      0 0 28px rgba(189, 116, 255, .08);
    text-shadow: 0 0 10px rgba(238, 202, 143, .48);
  }

  .ve-course-chapter-card:hover .ve-course-chapter-title,
  .ve-chronicle-entry:hover .ve-chronicle-copy strong,
  .ve-compact-chapter:hover strong {
    color: #fffaf1;
    text-shadow: 0 0 14px rgba(216, 190, 159, .18);
  }

  .ve-book-card-link:hover .ve-catalog-cover,
  .ve-spotlight-cover-wrap:hover img,
  .ve-book-overview-cover-frame:hover img {
    transform: translateY(-5px) scale(1.012);
    filter: brightness(1.07) saturate(1.04);
    border-color: rgba(226, 191, 129, .82);
    box-shadow:
      0 22px 44px rgba(0, 0, 0, .62),
      0 0 24px rgba(91, 168, 255, .13),
      0 0 42px rgba(189, 116, 255, .07);
  }

  .ve-spotlight-cover-wrap img,
  .ve-book-overview-cover-frame img {
    transition: transform .38s cubic-bezier(.16, 1, .3, 1), filter .3s ease, border-color .3s ease, box-shadow .3s ease;
  }
}

@keyframes ve-system-magic-pulse {
  0%, 100% { filter: brightness(1); }
  50% { filter: brightness(1.55); }
}

@media (prefers-reduced-motion: reduce) {
  :is(
    .ve-course-chapter-card,
    .ve-chronicle-entry,
    .ve-compact-chapter,
    .ve-book-card-link,
    .ve-book-fact,
    .ve-home-stat,
    .ve-sentence-card,
    .ve-vocab-card
  ),
  :is(
    .ve-course-chapter-card,
    .ve-chronicle-entry,
    .ve-compact-chapter,
    .ve-book-card-link,
    .ve-book-fact,
    .ve-home-stat,
    .ve-sentence-card,
    .ve-vocab-card
  )::before,
  :is(
    .ve-course-chapter-card,
    .ve-chronicle-entry,
    .ve-compact-chapter,
    .ve-book-card-link,
    .ve-book-fact,
    .ve-home-stat,
    .ve-sentence-card,
    .ve-vocab-card
  )::after,
  .ve-spotlight-cover-wrap img,
  .ve-book-overview-cover-frame img {
    transition: none !important;
    animation: none !important;
  }

  :is(
    .ve-course-chapter-card,
    .ve-chronicle-entry,
    .ve-compact-chapter,
    .ve-book-card-link,
    .ve-book-fact,
    .ve-home-stat,
    .ve-sentence-card,
    .ve-vocab-card
  ):hover,
  .ve-book-card-link:hover .ve-catalog-cover,
  .ve-spotlight-cover-wrap:hover img,
  .ve-book-overview-cover-frame:hover img {
    transform: none !important;
  }
}

/* Additional institutional components that benefit from interactive feedback. */
.ve-tier-card,
.ve-archive-stat {
  position: relative;
  isolation: isolate;
  transition: transform .28s cubic-bezier(.16, 1, .3, 1), border-color .28s ease, box-shadow .28s ease, background .28s ease;
}

@media (hover: hover) and (pointer: fine) {
  .ve-tier-card:hover,
  .ve-archive-stat:hover {
    transform: translateY(-3px);
    border-color: rgba(216, 190, 159, .72);
    box-shadow: 0 17px 34px rgba(0, 0, 0, .42), 0 0 22px rgba(91, 168, 255, .1), 0 0 34px rgba(189, 116, 255, .055);
  }
}

@media (prefers-reduced-motion: reduce) {
  .ve-tier-card,
  .ve-archive-stat {
    transition: none !important;
  }

  .ve-tier-card:hover,
  .ve-archive-stat:hover {
    transform: none !important;
  }
}
