/* intro v16 — Metropolis reel: film-perforation strips, image cover, load stagger, radius morph */

/* Film-perforation edge strips: colour comes from Tailwind bg-* on the element; mask punches holes */
.intro-reel__perf {
    -webkit-mask: radial-gradient(circle at center, transparent 0 0.28rem, black 0.3rem) center / 1.5rem 2.2rem;
    mask: radial-gradient(circle at center, transparent 0 0.28rem, black 0.3rem) center / 1.5rem 2.2rem;
    z-index: 1;
}

/* Background image fills the band, keeps aspect via object-fit (no BS utility) */
.intro-reel__row {
    min-height: 18rem;
    transition: border-radius 320ms ease;
    opacity: 0;
    animation: intro-reel-rise 520ms ease forwards;
}
.intro-reel__img {
    object-fit: cover;
    object-position: center;
}

/* Border-radius morph on hover */
.intro-reel__row:hover {
    border-radius: 2.25rem 0.5rem 2.25rem 0.5rem;
}

/* Stagger children — 80ms delay each on load */
.intro-reel__row:nth-child(1) { animation-delay: 0ms; }
.intro-reel__row:nth-child(2) { animation-delay: 80ms; }
.intro-reel__row:nth-child(3) { animation-delay: 160ms; }
.intro-reel__row:nth-child(4) { animation-delay: 240ms; }
.intro-reel__row:nth-child(5) { animation-delay: 320ms; }
.intro-reel__row:nth-child(6) { animation-delay: 400ms; }

@keyframes intro-reel-rise {
    from { opacity: 0; transform: translateY(1.5rem); }
    to   { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    .intro-reel__row { animation: none; opacity: 1; }
}

.services__tile--lift {
  transition: transform 0.3s ease;
}

.services__tile--lift:hover {
  transform: scale(1.05);
}

.services__cta--lift {
  transition: transform 0.3s ease;
}

.services__cta--lift:hover {
  transform: scale(1.05);
}

.services__marker--offset {
  top: 0.5rem;
  inset-inline-end: 0.5rem;
}

.services__marker--reveal {
  opacity: 0;
  transition: opacity 0.3s ease;
}

.services__tile:hover .services__marker--reveal {
  opacity: 1;
}

.steps-number-icon-grid__number-badge {
    width: 4rem;
    height: 4rem;
}

.steps-number-icon-grid__icon-box {
    width: 5rem;
    height: 5rem;
}

/* whyus v30 — Y2K bold header with open benefit text blocks */

/* decorative gradient overlay — small-amplitude hue-rotate cycle (filter only, no color values) */
@keyframes whyus-honeycomb-hue {
    0%   { filter: hue-rotate(0deg); }
    50%  { filter: hue-rotate(10deg); }
    100% { filter: hue-rotate(0deg); }
}

.whyus-honeycomb__aurora {
    animation: whyus-honeycomb-hue 9s ease-in-out infinite;
}

/* icons-in-circles decorative field — fixed sizes, scattered positions */
.whyus-honeycomb__icon-dot {
    position: absolute;
}

.whyus-honeycomb__icon-dot--1 { width: 3.5rem;  height: 3.5rem;  top: 6%;    left: 8%; }
.whyus-honeycomb__icon-dot--2 { width: 2.75rem; height: 2.75rem; top: 18%;   right: 12%; }
.whyus-honeycomb__icon-dot--3 { width: 4rem;    height: 4rem;    bottom: 22%; left: 5%; }
.whyus-honeycomb__icon-dot--4 { width: 2.5rem;  height: 2.5rem;  bottom: 10%; right: 20%; }
.whyus-honeycomb__icon-dot--5 { width: 3rem;    height: 3rem;    top: 45%;   right: 4%; }

/* divider extends first (scaleX 0 -> 1) */
@keyframes whyus-honeycomb-line {
    from { transform: scaleX(0); }
    to   { transform: scaleX(1); }
}

.whyus-honeycomb__divider {
    transform-origin: center;
    animation: whyus-honeycomb-line 480ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

/* text blocks — staggered fade-in after divider */
@keyframes whyus-honeycomb-block-in {
    from { opacity: 0; transform: translateY(0.75rem); }
    to   { opacity: 1; transform: translateY(0); }
}

.whyus-honeycomb__block {
    animation: whyus-honeycomb-block-in 420ms ease-out both;
}

.whyus-honeycomb__block:nth-child(2n + 1) { animation-delay: 520ms; }
.whyus-honeycomb__block:nth-child(2n)     { animation-delay: 620ms; }

@media (prefers-reduced-motion: reduce) {
    .whyus-honeycomb__aurora,
    .whyus-honeycomb__divider,
    .whyus-honeycomb__block {
        animation: none;
    }
}

/* 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);
}

