/* FounderOS-style motion, mapped to Signal landing tokens */
.os-brain-stage{
  background:
    radial-gradient(circle at 50% 45%, rgba(62,232,176,.14), transparent 62%),
    var(--bg-card);
  border: 1px solid var(--line);
  border-radius: 4px;
  overflow: hidden;
}
.os-brain-stage svg{ display:block; width:100%; height:auto; }
.os-brain-ring{ transform-origin: 260px 260px; }
.os-brain-ring.r1{ animation: os-brain-spin 80s linear infinite; }
.os-brain-ring.r2{ animation: os-brain-spin 140s linear infinite reverse; }
.os-brain-ring.r3{ animation: os-brain-spin 220s linear infinite; }
.os-brain-sweep{ transform-origin: 260px 260px; animation: os-brain-spin 9s linear infinite; }
.os-brain-core{ transform-origin: 260px 260px; animation: os-brain-core 3.2s ease-in-out infinite; }
@keyframes os-brain-spin{ to{ transform: rotate(360deg); } }
@keyframes os-brain-core{
  0%,100%{ transform: scale(1); }
  50%{ transform: scale(1.035); }
}

.os-funnel-stage{
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: var(--bg-card);
  overflow: hidden;
}
.os-funnel-stage svg{ display:block; width:100%; height:auto; }
.os-funnel-halo{
  transform-box: fill-box;
  transform-origin: center;
  animation: os-funnel-halo 2.6s ease-out infinite;
}
@keyframes os-funnel-halo{
  0%{ transform: scale(.5); opacity:.65; }
  70%,100%{ transform: scale(2); opacity:0; }
}
.os-funnel-hub{
  transform-box: fill-box;
  transform-origin: center;
  animation: os-funnel-hub 5.5s ease-in-out infinite;
}
@keyframes os-funnel-hub{
  0%,100%{ transform: scale(1); opacity:.35; }
  50%{ transform: scale(1.06); opacity:.6; }
}

.os-schema-stage{
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 4px;
  background:
    radial-gradient(circle at 50% 48%, rgba(62,232,176,.12), transparent 58%),
    var(--bg-card);
  overflow: hidden;
}
.os-schema-stage svg{ display:block; width:100%; height:auto; }
.os-schema-core{ transform-origin: 550px 370px; animation: os-schema-core 3.4s ease-in-out infinite; }
.os-schema-halo{
  transform-origin: 550px 370px;
  animation: os-schema-halo 5.2s ease-out infinite;
}
.os-schema-arm, .os-schema-core{ cursor: pointer; outline: none; pointer-events: auto; }
.os-schema-hit{ pointer-events: stroke; }
.os-schema-hitpad{ pointer-events: all; }
.os-schema-deco, .os-schema-halo, .os-schema-vein, .os-schema-packet{ pointer-events: none; }
.os-schema-arm:focus-visible, .os-schema-core:focus-visible{
  filter: drop-shadow(0 0 8px rgba(62,232,176,.55));
}
.os-schema-vein{
  stroke-dasharray: 5 12;
  animation: os-schema-flow 9s linear infinite;
}
.os-schema-arm{ transition: opacity .28s ease; }
.os-schema-stage svg.os-schema-dim .os-schema-arm{ opacity: .28; }
.os-schema-stage svg.os-schema-dim .os-schema-arm.is-on{ opacity: 1; }
.os-schema-stage svg.os-schema-dim .os-schema-core{ opacity: .32; }
.os-schema-stage svg.os-schema-dim .os-schema-core.is-on{ opacity: 1; }
.os-schema-leaf.warn{ filter: drop-shadow(0 0 6px rgba(196,87,63,.45)); }
.os-schema-leaf.good{ filter: drop-shadow(0 0 6px rgba(62,232,176,.4)); }
@keyframes os-schema-core{
  0%,100%{ transform: scale(1); }
  50%{ transform: scale(1.04); }
}
@keyframes os-schema-halo{
  0%{ transform: scale(.92); opacity:.45; }
  70%,100%{ transform: scale(1.18); opacity:0; }
}
@keyframes os-schema-flow{
  to{ stroke-dashoffset: -140; }
}

@media (prefers-reduced-motion: reduce){
  .os-brain-ring, .os-brain-sweep, .os-brain-core,
  .os-funnel-halo, .os-funnel-hub,
  .os-schema-core, .os-schema-halo, .os-schema-vein{ animation: none; }
}
