.intro-bouncing-mosaic__area {
    max-width: 48rem;
}

.intro-bouncing-mosaic__decor--p1 {
    top: 0;
    left: 0;
    width: 2rem;
    height: 3rem;
    animation-duration: 2s;
}

.intro-bouncing-mosaic__decor--p2 {
    top: 0;
    left: 25%;
    width: 1.5rem;
    height: 2.5rem;
    animation-duration: 2.5s;
}

.intro-bouncing-mosaic__decor--p3 {
    top: 0;
    left: 50%;
    width: 2.5rem;
    height: 2rem;
    animation-duration: 1.8s;
}

.intro-bouncing-mosaic__decor--p4 {
    top: 0;
    left: 75%;
    width: 1.75rem;
    height: 2.75rem;
    animation-duration: 2.2s;
}

.intro-bouncing-mosaic__decor--p5 {
    top: 0;
    right: 0;
    width: 2.25rem;
    height: 2.25rem;
    animation-duration: 2.8s;
}

.intro-bouncing-mosaic__decor--p6 {
    top: 25%;
    left: 0;
    width: 1.5rem;
    height: 2rem;
    animation-duration: 3s;
}

.intro-bouncing-mosaic__decor--p7 {
    top: 25%;
    left: 25%;
    width: 2rem;
    height: 1.5rem;
    animation-duration: 1.5s;
}

.intro-bouncing-mosaic__decor--p8 {
    top: 25%;
    left: 50%;
    width: 1.25rem;
    height: 2.25rem;
    animation-duration: 2.3s;
}

.intro-bouncing-mosaic__decor--p9 {
    top: 25%;
    left: 75%;
    width: 1.75rem;
    height: 1.75rem;
    animation-duration: 2.7s;
}

.intro-bouncing-mosaic__decor--p10 {
    top: 25%;
    right: 0;
    width: 1.5rem;
    height: 2.5rem;
    animation-duration: 1.9s;
}

.intro-bouncing-mosaic__decor--p11 {
    top: 50%;
    left: 0;
    width: 2.25rem;
    height: 1.5rem;
    animation-duration: 2.1s;
}

.intro-bouncing-mosaic__decor--p12 {
    top: 50%;
    left: 25%;
    width: 1.75rem;
    height: 2rem;
    animation-duration: 2.6s;
}

.intro-bouncing-mosaic__decor--p13 {
    top: 50%;
    left: 50%;
    width: 1.5rem;
    height: 1.75rem;
    animation-duration: 1.7s;
}

.intro-bouncing-mosaic__decor--p14 {
    top: 50%;
    left: 75%;
    width: 2rem;
    height: 1.25rem;
    animation-duration: 2.4s;
}

.intro-bouncing-mosaic__decor--p15 {
    top: 50%;
    right: 0;
    width: 1.25rem;
    height: 2rem;
    animation-duration: 2.9s;
}

.intro-bouncing-mosaic__decor--p16 {
    top: 75%;
    left: 0;
    width: 2rem;
    height: 1.75rem;
    animation-duration: 2.2s;
}

.intro-bouncing-mosaic__decor--p17 {
    top: 75%;
    left: 25%;
    width: 1.5rem;
    height: 2.25rem;
    animation-duration: 1.8s;
}

.intro-bouncing-mosaic__decor--p18 {
    top: 75%;
    left: 50%;
    width: 1.75rem;
    height: 1.5rem;
    animation-duration: 2.5s;
}

.intro-bouncing-mosaic__decor--p19 {
    top: 75%;
    left: 75%;
    width: 1.25rem;
    height: 2rem;
    animation-duration: 2.1s;
}

.intro-bouncing-mosaic__decor--p20 {
    top: 75%;
    right: 0;
    width: 2.25rem;
    height: 1.5rem;
    animation-duration: 2.7s;
}

.intro-bouncing-mosaic__decor--p21 {
    bottom: 0;
    left: 0;
    width: 1.5rem;
    height: 2rem;
    animation-duration: 2.3s;
}

.intro-bouncing-mosaic__decor--p22 {
    bottom: 0;
    left: 25%;
    width: 2rem;
    height: 1.25rem;
    animation-duration: 1.6s;
}

.intro-bouncing-mosaic__decor--p23 {
    bottom: 0;
    left: 50%;
    width: 1.75rem;
    height: 1.75rem;
    animation-duration: 2.8s;
}

.intro-bouncing-mosaic__decor--p24 {
    bottom: 0;
    left: 75%;
    width: 1.25rem;
    height: 2.25rem;
    animation-duration: 2s;
}

.intro-bouncing-mosaic__decor--p25 {
    bottom: 0;
    right: 0;
    width: 2rem;
    height: 1.5rem;
    animation-duration: 2.4s;
}

[class*="intro-bouncing-mosaic__decor--p"] {
    animation-name: intro-bouncing-mosaic__bounce;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
}

@keyframes intro-bouncing-mosaic__bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-25%); }
}

/* Flex: дозволити прокрутку тексту в колонці однакової висоти (BS + TW) */
/* Flex column: allow inner scroll in equal-height grid */
.portfolio-v8-item {
    min-height: 0;
}

.portfolio-v8-box {
    min-height: 0;
}

.portfolio-v8-tech {
    transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.portfolio-v8-tech:hover {
    transform: scale(1.05);
}

/* Card hover: lift up + scale */
.portfolio-item-hover {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.portfolio-item-hover:hover {
    transform: translateY(-0.5rem) scale(1.05);
}

/* Image: zoom on card hover */
.portfolio-item-hover .portfolio-img-hover {
    transition: transform 0.5s ease;
}
.portfolio-item-hover:hover .portfolio-img-hover {
    transform: scale(1.1);
}

.content-ledger__stem {
    height: 4rem;
    transform: translateX(-50%);
}

.staircase-bauhaus-timeline__triangle-tr {
    width: 20rem;
    height: 20rem;
    clip-path: polygon(100% 0, 100% 100%, 0 0);
}

.staircase-bauhaus-timeline__triangle-bl {
    width: 14rem;
    height: 14rem;
    clip-path: polygon(0 100%, 100% 100%, 0 0);
}

.staircase-bauhaus-timeline__accent {
    width: 1.5rem;
    height: 8rem;
    top: 50%;
    left: 25%;
}

.staircase-bauhaus-timeline__sidebar {
    width: 36px;
}

.staircase-bauhaus-timeline__sidebar-title {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    letter-spacing: 0.25em;
}

.staircase-bauhaus-timeline__sidebar-line {
    width: 1px;
    min-height: 120px;
}

.staircase-bauhaus-timeline__stairs > * + * {
    margin-top: 1.5rem;
}

.staircase-bauhaus-timeline__stairs [data-indent] {
    margin-left: calc(var(--staircase-bauhaus-timeline__indent, 0) * 1px);
}

.staircase-bauhaus-timeline__number {
    width: 3.5rem;
    height: 3.5rem;
}

.staircase-bauhaus-timeline__connector {
    left: 1.75rem;
    top: 3.5rem;
    width: 1px;
    height: calc(100% + 1.5rem);
}

@keyframes staircase-bauhaus-timeline__draw {
    from { height: 0; }
    to { height: 100%; }
}

.staircase-bauhaus-timeline__line-animated {
    animation: staircase-bauhaus-timeline__draw 1.2s ease forwards;
}

.staircase-bauhaus-timeline__min-shrink {
  min-width: 0;
}

/* faq v28 — spotlight hero + four-column stats */
.faq-spotlight__glow {
  z-index: 0;
}

.faq-spotlight__glow--left {
  width: 20rem;
  height: 20rem;
  top: 0;
  left: -8rem;
  filter: blur(64px);
}

.faq-spotlight__glow--right {
  width: 18rem;
  height: 18rem;
  right: -6rem;
  bottom: 0;
  filter: blur(64px);
}

.faq-spotlight__hero {
  max-width: 56rem;
}

.faq-spotlight__headline {
  letter-spacing: -0.025em;
}

.faq-spotlight__lead {
  max-width: 42rem;
}

.faq-spotlight__accent {
  display: inline;
}

.faq-spotlight__stats {
  align-items: stretch;
}

.faq-spotlight__stat {
  min-width: 0;
}

@media (max-width: 767px) {
  .faq-spotlight__stat--divided {
    border-left: 0 !important;
  }
}

@media (min-width: 768px) {
  .faq-spotlight__stat--divided {
    border-top: 0 !important;
    padding-top: 0 !important;
  }
}


.beacon-signal__section {
    padding-top: 6rem;
    padding-bottom: 6rem;
}

.beacon-signal__inner {
    max-width: 64rem;
    width: 100%;
    box-sizing: border-box;
    padding-bottom: 1.5rem;
}

@keyframes beacon-signal-pin-blink-seq {
    0%, 100% { opacity: 1; }
    50%       { opacity: .5; }
}
.beacon-signal__pin--blink {
    animation: beacon-signal-pin-blink-seq 2s cubic-bezier(.4,0,.6,1) infinite;
}

.beacon-signal__slab--glow:hover { transform: scale(1.05); transition: transform .2s ease; }

.beacon-signal__record--glow:hover { transform: scale(1.05); transition: transform .2s ease; }

.beacon-signal__prompt--glow:hover { transform: scale(1.05); transition: transform .2s ease; }

.beacon-signal__action--glow:hover { transform: scale(1.05); transition: transform .2s ease; }

/* Equal columns + row/column gap (flex-wrap + content width caused uneven cards) */
.beacon-signal__surround-row-bs {
    display: grid;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 1rem;
    row-gap: 1.5rem;
}

@media (min-width: 768px) {
    .beacon-signal__surround-row-bs {
        column-gap: 1.25rem;
        row-gap: 1.75rem;
    }
}

@media (min-width: 992px) {
    .beacon-signal__surround-row-bs {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        column-gap: 1.5rem;
        row-gap: 1.75rem;
    }
}

.beacon-signal__surround-row-bs > .beacon-signal__record--glow {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 0.5rem;
    min-width: 0;
    width: 100%;
    max-width: none;
    box-sizing: border-box;
}

