/* Cinematic FX — transform/opacity only. Honours reduced-motion. */
.bts-spot {
  position: fixed;
  left: 0;
  top: 0;
  width: min(52vw, 640px);
  height: min(52vw, 640px);
  pointer-events: none;
  z-index: 4;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(0, 255, 200, 0.09) 0%, transparent 68%);
  transform: translate(-50%, -50%);
  mix-blend-mode: screen;
  opacity: 0;
  transition: opacity 0.4s ease;
}
html:hover .bts-spot { opacity: 1; }
@media (pointer: coarse) {
  .bts-spot { display: none !important; }
}

.intel-card,
.icon-pillar,
.related-card,
.poster-card,
.tri-card,
.doc-link-chip,
.cpr-card {
  position: relative;
  overflow: hidden;
}
.intel-card::after,
.poster-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, transparent 35%, rgba(0, 255, 200, 0.14) 50%, transparent 65%);
  transform: translateX(-130%);
  transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
  pointer-events: none;
  z-index: 2;
}
.intel-card:hover::after,
.poster-card:hover::after { transform: translateX(130%); }

.intel-card:hover,
.icon-pillar:hover,
.icon-pillar.is-on {
  border-color: rgba(0, 255, 200, 0.55) !important;
}

body.home-v4 .hero-node {
  box-shadow: 0 0 0 1px rgba(0, 255, 200, 0.35), 0 0 18px rgba(0, 255, 200, 0.18);
}
body.home-v4 .hero-node.is-active {
  box-shadow: 0 0 0 2px #00ffc8, 0 0 28px rgba(0, 255, 200, 0.45);
}

.signal-bar--solo {
  position: relative;
  overflow: hidden;
}
.signal-bar--solo::before,
.signal-bar--solo::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 48px;
  z-index: 1;
  pointer-events: none;
}
.signal-bar--solo::before { left: 0; background: linear-gradient(90deg, #000, transparent); }
.signal-bar--solo::after { right: 0; background: linear-gradient(270deg, #000, transparent); }

.display em {
  background: linear-gradient(90deg, #00ffc8, #9dffd9, #00ffc8);
  background-size: 200% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: btsEmShift 7s linear infinite;
}
@keyframes btsEmShift {
  to { background-position: 200% 0; }
}

.btn.primary {
  position: relative;
  overflow: hidden;
}
.btn.primary::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 30%, rgba(255,255,255,0.28) 48%, transparent 66%);
  transform: translateX(-120%);
  transition: transform 0.55s ease;
  pointer-events: none;
}
.btn.primary:hover::after { transform: translateX(120%); }

.article-body .lead-p {
  font-size: clamp(1.12rem, 2vw, 1.32rem);
  line-height: 1.55;
  color: #dceae4;
  border-left: 2px solid #00ffc8;
  padding-left: 1rem;
  margin: 0 0 1.4rem;
}
.article-body blockquote {
  border-left: 2px solid rgba(0, 255, 200, 0.7);
  background: linear-gradient(90deg, rgba(0, 255, 200, 0.06), transparent 70%);
  padding: 0.9rem 1.1rem;
  color: #c6fff0;
}
.page-hero-bg {
  animation: btsKen 32s ease-in-out infinite alternate;
}
@keyframes btsKen {
  from { transform: scale(1.04); }
  to { transform: scale(1.12) translate(-1.2%, -0.8%); }
}

.read-progress {
  top: 64px;
}

.cta-card {
  position: relative;
  overflow: hidden;
}
.cta-ring {
  position: absolute;
  inset: -40%;
  border: 1px solid rgba(0, 255, 200, 0.12);
  border-radius: 50%;
  animation: btsRing 8s linear infinite;
  pointer-events: none;
}
@keyframes btsRing {
  to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
  .bts-spot,
  .display em,
  .intel-card::after,
  .poster-card::after,
  .btn.primary::after,
  .page-hero-bg,
  .cta-ring { animation: none !important; transition: none !important; }
  .page-hero-bg { transform: none; }
  .bts-spot { display: none !important; }
}
