
/* ALETHEIA VESTIGIUM 2.3.0
   Erkenntnisspur – eigenständige visuelle Markenanimation */

.v22-brand-moment{
  grid-template-columns:52fr 48fr!important;
}
.v23-insight{
  min-height:92vh;
  background:
    radial-gradient(circle at 42% 46%,rgba(35,112,224,.10),transparent 34%),
    linear-gradient(135deg,#f7fbff 0%,#eaf3ff 58%,#f5f9ff 100%);
  isolation:isolate;
}
.v23-insight__field{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,transparent 0 96%,rgba(24,94,200,.05) 96% 96.15%,transparent 96.15%),
    linear-gradient(0deg,transparent 0 96%,rgba(24,94,200,.04) 96% 96.15%,transparent 96.15%);
  background-size:84px 84px;
  opacity:.42;
  mask-image:linear-gradient(90deg,rgba(0,0,0,.8),transparent 92%);
}
.v23-insight__svg{
  position:absolute;
  width:min(88%,900px);
  height:auto;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  overflow:visible;
}
.v23-insight__grid path{
  fill:none;
  stroke:#2b68bb;
  stroke-width:1;
  opacity:.075;
}
.v23-insight__ghost path{
  fill:none;
  stroke:#6e91c1;
  stroke-width:1.2;
  stroke-dasharray:3 11;
  opacity:.22;
}
.v23-line{
  fill:none;
  stroke:#7fa0cc;
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round;
  opacity:.35;
  stroke-dasharray:1200;
  stroke-dashoffset:1200;
}
.v23-insight.is-active .v23-line{
  animation:v23-draw 1.8s cubic-bezier(.2,.7,.2,1) forwards;
}
.v23-insight.is-active .v23-line--2{animation-delay:.35s}
.v23-insight.is-active .v23-line--3{animation-delay:.62s}
.v23-insight.is-active .v23-line--4{animation-delay:.88s}

.v23-insight__nodes circle{
  fill:#fff;
  stroke:#4277bb;
  stroke-width:2;
  opacity:0;
  transform-box:fill-box;
  transform-origin:center;
  transform:scale(.25);
}
.v23-insight.is-active .v23-insight__nodes circle{
  animation:v23-node .55s ease forwards;
}
.v23-insight.is-active .v23-insight__nodes circle:nth-child(2){animation-delay:.25s}
.v23-insight.is-active .v23-insight__nodes circle:nth-child(3){animation-delay:.48s}
.v23-insight.is-active .v23-insight__nodes circle:nth-child(4){animation-delay:.72s}
.v23-insight.is-active .v23-insight__nodes circle:nth-child(5){animation-delay:.84s}
.v23-insight.is-active .v23-insight__nodes circle:nth-child(6){animation-delay:.98s}
.v23-insight.is-active .v23-insight__nodes circle:nth-child(7){animation-delay:1.08s}
.v23-insight.is-active .v23-insight__nodes circle:nth-child(8){animation-delay:1.18s}
.v23-insight.is-active .v23-insight__nodes circle:nth-child(9){animation-delay:1.32s}
.v23-insight.is-active .v23-insight__nodes circle:nth-child(10){animation-delay:1.44s}
.v23-insight.is-active .v23-insight__nodes circle:nth-child(11){animation-delay:1.58s}
.v23-insight.is-active .v23-insight__nodes circle:nth-child(12){animation-delay:1.7s}
.v23-insight.is-active .v23-insight__nodes circle:nth-child(13){animation-delay:1.86s}
.v23-insight__nodes .v23-node-final{
  fill:#1764d8;
  stroke:#1764d8;
}
.v23-insight__direction{
  fill:none;
  stroke:#1764d8;
  stroke-width:4.2;
  stroke-linecap:round;
  stroke-dasharray:1100;
  stroke-dashoffset:1100;
  filter:drop-shadow(0 5px 12px rgba(23,100,216,.18));
}
.v23-insight.is-resolved .v23-insight__direction{
  animation:v23-draw 1.55s cubic-bezier(.18,.8,.2,1) forwards;
}
.v23-insight.is-resolved .v23-line:not(.v23-line--1),
.v23-insight.is-resolved .v23-insight__ghost{
  transition:opacity 1.2s ease;
  opacity:.08;
}
.v23-insight__labels text{
  font-family:Arial,sans-serif;
  font-size:12px;
  font-weight:700;
  letter-spacing:2.4px;
  fill:#42658e;
  opacity:0;
}
.v23-insight.is-active .v23-insight__labels text{
  animation:v23-label .7s ease forwards;
}
.v23-insight.is-active .v23-insight__labels text:nth-child(1){animation-delay:.4s}
.v23-insight.is-active .v23-insight__labels text:nth-child(2){animation-delay:.95s}
.v23-insight.is-active .v23-insight__labels text:nth-child(3){animation-delay:1.45s}
.v23-insight.is-active .v23-insight__labels text:nth-child(4){animation-delay:2.05s}

.v23-insight__pulse{
  position:absolute;
  left:calc(50% + min(44%,450px)*.7);
  top:25%;
  width:12px;
  height:12px;
  border:2px solid #1764d8;
  border-radius:50%;
  opacity:0;
}
.v23-insight.is-resolved .v23-insight__pulse{
  animation:v23-pulse 2.2s ease-out infinite;
}

@keyframes v23-draw{to{stroke-dashoffset:0}}
@keyframes v23-node{to{opacity:1;transform:scale(1)}}
@keyframes v23-label{to{opacity:.72}}
@keyframes v23-pulse{
  0%{opacity:.5;transform:scale(.5)}
  75%,100%{opacity:0;transform:scale(5.5)}
}

/* Deliberately break the rigid vertical split by letting the graphic breathe
   slightly toward the copy side. */
.v23-insight::after{
  content:"";
  position:absolute;
  z-index:0;
  top:14%;
  right:-38px;
  width:76px;
  height:72%;
  background:linear-gradient(90deg,transparent,rgba(23,100,216,.045),transparent);
  pointer-events:none;
}

@media(max-width:1000px){
  .v22-brand-moment{grid-template-columns:1fr!important}
  .v23-insight{min-height:62vh}
  .v23-insight__svg{width:min(92%,760px)}
}
@media(max-width:680px){
  .v23-insight{min-height:54vh}
  .v23-insight__labels text{font-size:10px}
}
@media(prefers-reduced-motion:reduce){
  .v23-line,.v23-insight__direction{stroke-dashoffset:0!important}
  .v23-insight__nodes circle{opacity:1!important;transform:none!important}
  .v23-insight__labels text{opacity:.72!important}
  .v23-insight__pulse{display:none}
}


/* 2.3.1 – Sichtbarkeits-Hotfix
   v22.js versieht den Markenbereich nachträglich mit .v22-mask.
   Diese Maske hat die komplette linke Animation abgeschnitten. */
.v23-insight.v22-mask,
.v23-insight.v22-mask.is-visible{
  clip-path:none!important;
}
.v23-insight__field,
.v23-insight__svg{
  z-index:2;
  visibility:visible!important;
}
.v23-insight__pulse{
  z-index:3;
}
