/* intro v27 — Evangelion cascade: organic blob, wide banner, diagonal steps, slide-in L/R, word reveal */

/* Organic blob */
.intro-eva__blob {
    width: 24rem;
    height: 24rem;
    filter: blur(60px);
    opacity: 0.4;
    border-radius: 38% 62% 55% 45% / 55% 42% 58% 45%;
    animation: intro-eva-morph 12s ease-in-out infinite;
}
@keyframes intro-eva-morph {
    50% { border-radius: 55% 45% 42% 58% / 42% 58% 45% 55%; }
}

/* Single wide banner */
.intro-eva__banner-img {
    display: block;
    width: 100%;
    height: 12rem;
    object-fit: cover;
}
@media (min-width: 768px) {
    .intro-eva__banner-img { height: 16rem; }
}

/* Stepped diagonal cascade + asymmetric mixed sizes */
.intro-eva__row { margin-left: 0; }
.intro-eva__cell { max-width: 46rem; }
@media (min-width: 768px) {
    .intro-eva__row:nth-child(1) .intro-eva__cell { margin-left: 0;    max-width: 40rem; }
    .intro-eva__row:nth-child(2) .intro-eva__cell { margin-left: 3rem; max-width: 34rem; }
    .intro-eva__row:nth-child(3) .intro-eva__cell { margin-left: 6rem; max-width: 44rem; }
    .intro-eva__row:nth-child(4) .intro-eva__cell { margin-left: 9rem; max-width: 30rem; }
}

/* Slide-in from L / R on scroll — hidden only once JS arms it (no-JS content stays visible) */
.intro-eva.is-armed .intro-eva__row {
    opacity: 0;
    transition: opacity 560ms ease, transform 560ms ease;
}
.intro-eva.is-armed .intro-eva__row:nth-child(odd)  { transform: translateX(-2.5rem); }
.intro-eva.is-armed .intro-eva__row:nth-child(even) { transform: translateX(2.5rem); }
.intro-eva.is-armed .intro-eva__row.is-in { opacity: 1; transform: translateX(0); }

/* Letterpress-ish press using the element's own colour */
.intro-eva__press { text-shadow: 0 1px 0 currentColor; }

/* Word-by-word reveal */
.intro-eva__word { display: inline-block; }
.intro-eva.is-armed .intro-eva__word {
    opacity: 0;
    transform: translateY(0.6em);
    transition: opacity 420ms ease, transform 420ms ease;
}
.intro-eva.is-armed .intro-eva__reveal.is-in .intro-eva__word { opacity: 1; transform: translateY(0); }

@media (prefers-reduced-motion: reduce) {
    .intro-eva__blob { animation: none; }
    .intro-eva__row { opacity: 1; transform: none; }
    .intro-eva__word { opacity: 1; transform: none; }
}

.card-stack__accent--1 { width: 10rem; height: 10rem; filter: blur(2rem); }
.card-stack__accent--2 { width: 12rem; height: 12rem; filter: blur(2rem); }
.card-stack__accent--3 { width: 8rem; height: 8rem; filter: blur(1.5rem); }
.card-stack__accent--4 { width: 9rem; height: 9rem; filter: blur(2rem); }

.card-stack__title-line--1, .card-stack__title-line--2 {
    width: 5rem; height: 0.125rem; transform: translateY(-50%);
}
.card-stack__title-dot--1 { width: 0.5rem; height: 0.5rem; top: -0.5rem; right: -0.5rem; }
.card-stack__title-dot--2 { width: 0.5rem; height: 0.5rem; bottom: -0.5rem; left: -0.5rem; }

.card-stack__corner--tl { top: -0.5rem; left: -0.5rem; width: 1.5rem; height: 1.5rem; }
.card-stack__corner--tr { top: -0.5rem; right: -0.5rem; width: 1.5rem; height: 1.5rem; }
.card-stack__corner--bl { bottom: -0.5rem; left: -0.5rem; width: 1.5rem; height: 1.5rem; }
.card-stack__corner--br { bottom: -0.5rem; right: -0.5rem; width: 1.5rem; height: 1.5rem; }

.card-stack__corner--fade {
    opacity: 0;
    transition: opacity 0.3s ease;
}
.card-stack__item:hover .card-stack__corner--fade {
    opacity: 1;
}

.card-stack__media--hover {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.1);
}
.card-stack__item:hover .card-stack__media--hover {
    transform: scale(1.05);
    box-shadow: 0 1rem 3rem rgba(0,0,0,0.2);
}

.card-stack__decor--glow {
    background: radial-gradient(circle at center, rgba(var(--bs-primary-rgb), 0.2), transparent);
    opacity: 0;
    transition: opacity 0.5s ease;
}
.card-stack__item:hover .card-stack__decor--glow {
    opacity: 1;
}

.card-stack__img--zoom {
    transition: transform 0.5s ease;
}
.card-stack__item:hover .card-stack__img--zoom {
    transform: scale(1.1);
}

.card-stack__overlay--fade {
    opacity: 0;
    transition: opacity 0.3s ease;
}
.card-stack__item:hover .card-stack__overlay--fade {
    opacity: 1;
}

.card-stack__overlay--dark {
    opacity: 0;
    transition: opacity 0.3s ease;
}
.card-stack__item:hover .card-stack__overlay--dark {
    opacity: 1;
}

.card-stack__inner-corner--tl, .card-stack__inner-corner--br {
    width: 4rem; height: 4rem;
}

.card-stack__badge--shadow {
    transition: box-shadow 0.3s ease;
    box-shadow: 0 0.25rem 0.5rem rgba(0,0,0,0.1);
}
.card-stack__item:hover .card-stack__badge--shadow {
    box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15);
}

.card-stack__accent-corner--tr { right: 0; width: 2rem; height: 2rem; opacity: 0; transition: opacity 0.3s ease; }
.card-stack__accent-corner--bl { left: 0; width: 2rem; height: 2rem; opacity: 0; transition: opacity 0.3s ease; }
.card-stack__item:hover .card-stack__accent-corner--tr,
.card-stack__item:hover .card-stack__accent-corner--bl {
    opacity: 1;
}

.card-stack__panel--slide {
    transform: translateY(100%);
    transition: transform 0.3s ease;
}
.card-stack__item:hover .card-stack__panel--slide {
    transform: translateY(0);
}

/* Card hover: scale */
.portfolio-item-hover {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.portfolio-item-hover:hover {
    transform: 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.05);
}

/* Gradient overlay: fade in on card hover */
.portfolio-overlay-hover {
    opacity: 0;
    transition: opacity 0.3s ease;
}
.portfolio-item-hover:hover .portfolio-overlay-hover {
    opacity: 1;
}

.rounded-stack-quote__portrait {
    width: 5rem;
    height: 5rem;
}

