/* Motion accents extend the original West Star theme and content. */
.cz-term-wrap { perspective: 1100px; isolation: isolate; }
.cz-term {
  transform: rotateX(var(--ws-tilt-x, 0deg)) rotateY(var(--ws-tilt-y, 0deg));
  transition: transform .55s cubic-bezier(.16, 1, .3, 1), border-color .4s, box-shadow .4s;
  border-color: rgba(141, 135, 255, .3);
  box-shadow: 0 28px 80px -36px rgba(97, 72, 255, .5), 0 0 0 1px rgba(148, 167, 255, .04);
}
.cz-term::after {
  content: ''; position: absolute; inset: 0; border-radius: inherit;
  pointer-events: none; opacity: 0; transition: opacity .4s;
  background: radial-gradient(420px circle at var(--ws-light-x, 50%) var(--ws-light-y, 30%), rgba(161, 166, 255, .10), transparent 65%);
}
@media (hover: hover) and (pointer: fine) {
  .cz-term-wrap:hover .cz-term { border-color: rgba(139, 153, 255, .65); }
  .cz-term-wrap:hover .cz-term::after { opacity: 1; }
}
.ws-orbits { position: absolute; inset: -60px -65px; z-index: -1; pointer-events: none; }
.ws-orbit {
  position: absolute; inset: 5%; border: 1px solid rgba(128, 127, 255, .24);
  border-radius: 50%; transform: rotate(-26deg); animation: ws-orbit-turn 24s linear infinite;
}
.ws-orbit::before { content: ''; position: absolute; inset: 10px; border: 1px dashed rgba(102, 208, 248, .13); border-radius: 50%; }
.ws-orbit span {
  position: absolute; top: 9%; left: 20%; width: 6px; height: 6px; border-radius: 50%;
  background: #b9b2ff; box-shadow: 0 0 14px 4px rgba(147, 128, 255, .65);
}
.ws-orbit-two { inset: 15% -3%; border-color: rgba(84, 220, 245, .2); animation-duration: 34s; animation-direction: reverse; }
.ws-orbit-two span { background: #8cf0ff; box-shadow: 0 0 15px 4px rgba(71, 215, 244, .55); }
.ws-orbit-glow { position: absolute; inset: 7%; background: radial-gradient(ellipse, rgba(83, 66, 200, .26), transparent 66%); }
@keyframes ws-orbit-turn { from { transform: rotate(-26deg); } to { transform: rotate(334deg); } }

.cz-stat-val { font-variant-numeric: tabular-nums; }
.ws-stat-number { display: inline-block; min-width: 2ch; }
/* The count-up digits live in this child span; the parent's background-clip:text
   doesn't reach it, so re-apply the .cz-grad gradient here or the numbers vanish. */
.cz-grad .ws-stat-number {
  background: linear-gradient(120deg, var(--accent), var(--accent-2));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.ws-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.cz-stat { transition: background-color .35s; }
.cz-stat:hover { background-color: rgba(97, 83, 166, .13); }

.cz-btn-primary { position: relative; overflow: hidden; isolation: isolate; }
.cz-btn-primary::before {
  content: ''; position: absolute; inset: -70% -50%; pointer-events: none;
  background: linear-gradient(110deg, transparent 35%, rgba(255, 255, 255, .23) 50%, transparent 65%);
  transform: translateX(-85%); transition: transform .65s cubic-bezier(.2, .6, .2, 1);
}
.cz-btn-primary:is(:hover, :focus-visible)::before { transform: translateX(85%); }
.cz-nav a { position: relative; }
.cz-nav a::after { content: ''; position: absolute; left: 13px; right: 13px; bottom: 2px; height: 1px; background: var(--accent-2); transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
.cz-nav a:is(:hover, :focus-visible, .active)::after { transform: scaleX(1); }

@media (max-width: 900px) { .ws-orbits { inset: -26px -14px; opacity: .6; } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-delay: 0s !important; transition-delay: 0s !important; }
  .cz-term { transform: none !important; }
  .ws-orbit { animation: none !important; }
  .cz-btn-primary::before { display: none; }
  .cz-shell [data-reveal], .fade-in { opacity: 1 !important; transform: none !important; }
}
