/* sticky intro + hover CTA / links */
.services__intro {
  align-self: flex-start;
}

@media (min-width: 992px) {
  .services__intro {
    position: sticky;
    top: 6rem;
    z-index: 2;
  }
}

.services__hero-cta--lift {
  transition: filter 0.2s ease, transform 0.2s ease;
}

.services__hero-cta--lift:hover {
  filter: brightness(1.08);
  transform: translateY(-1px);
}

.services__link--lift {
  transition: filter 0.2s ease;
}

.services__link--lift:hover {
  filter: brightness(1.12);
}

.stream-split__eyebrow {
    letter-spacing: 0.12em;
}

.stream-split__heading {
    letter-spacing: -0.02em;
}

.stream-split__micro {
    font-size: 0.75rem;
    line-height: 1.3;
}

.stream-split__dot {
    width: 0.5rem;
    height: 0.5rem;
    flex-shrink: 0;
}

.stream-split__frost {
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.stream-split__list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.stream-split__track {
    height: 0.25rem;
}

.stream-split__fill {
    width: 0;
    animation: stream-split-fill 1.8s ease forwards;
}

.stream-split__fill--1 { --stream-split-end: 84%; animation-delay: 0.15s; }
.stream-split__fill--2 { --stream-split-end: 52%; animation-delay: 0.4s; }
.stream-split__fill--3 { --stream-split-end: 68%; animation-delay: 0.65s; }

@keyframes stream-split-fill {
    from { width: 0; }
    to { width: var(--stream-split-end); }
}

.stream-split__marquee {
    width: max-content;
    animation: stream-split-marquee 24s linear infinite;
}

@keyframes stream-split-marquee {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

.stream-split__stage {
    padding-inline-end: 1.25rem;
}

.stream-split__orb {
    width: 11rem;
    height: 11rem;
}

.stream-split__ring {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -58%);
}

.stream-split__ring--outer {
    width: 5.5rem;
    height: 5.5rem;
}

.stream-split__ring--mid {
    width: 3.5rem;
    height: 3.5rem;
}

.stream-split__ring--core {
    width: 1.5rem;
    height: 1.5rem;
}

.stream-split__bars {
    height: 2.75rem;
}

.stream-split__bar {
    display: block;
    flex: 1 1 0;
    min-width: 0;
    transform-origin: bottom center;
    animation: stream-split-bar 2.4s ease-in-out infinite;
}

.stream-split__bar--1 { height: 40%; opacity: 0.35; }
.stream-split__bar--2 { height: 62%; opacity: 0.5; animation-delay: 0.15s; }
.stream-split__bar--3 { height: 48%; opacity: 0.65; animation-delay: 0.3s; }
.stream-split__bar--4 { height: 78%; opacity: 0.8; animation-delay: 0.45s; }
.stream-split__bar--5 { height: 100%; opacity: 1; animation-delay: 0.6s; }

@keyframes stream-split-bar {
    0%, 100% { transform: scaleY(0.55); }
    50% { transform: scaleY(1); }
}

.stream-split__body {
    min-width: 0;
}

.stream-split__chip {
    min-width: 7rem;
    transform: translate(-12%, -18%);
    width: max-content;
}

@media (min-width: 768px) {
    .stream-split__stage {
        padding-inline-end: 2rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .stream-split__marquee,
    .stream-split__fill,
    .stream-split__bar {
        animation: none;
    }

    .stream-split__fill--1 { width: 84%; }
    .stream-split__fill--2 { width: 52%; }
    .stream-split__fill--3 { width: 68%; }
}

/* v15 - dashboard bento stat tiles: glass blur + bento span (no BS analog, no colors) */

/* shared grid for BS render (Bootstrap has no row/col + gap safe combo for bento spans) */
.panel-mosaic__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

@media (min-width: 768px) {
    .panel-mosaic__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 1.5rem;
    }
}

.steps-dashboard-bento__tile {
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

@media (min-width: 768px) {
    .steps-dashboard-bento__tile--wide {
        grid-column: span 2 / span 2;
    }
}

