/* intro v21 — Loewe fold: vertical heading, watercolor blob, sketch figure, load rise */

/* Rotated 90° vertical heading */
.intro-fold__vtitle {
    writing-mode: vertical-rl;
    white-space: nowrap;
    line-height: 1;
}
@media (max-width: 767.98px) {
    .intro-fold__vtitle { writing-mode: horizontal-tb; }
}

/* Wax-seal / watercolor blob */
.intro-fold__blob {
    width: 24rem;
    height: 24rem;
    filter: blur(56px);
    opacity: 0.4;
    border-radius: 42% 58% 63% 37% / 45% 38% 62% 55%;
}

/* Drop-cap lead (framework-agnostic ::first-letter, no TW variant dependency) */
.intro-fold__lead::first-letter {
    font-size: 3rem;
    font-weight: 900;
    float: left;
    line-height: 0.9;
    margin-right: 0.75rem;
}

/* Like button fixed size (no BS w-N/h-N utility) */
.intro-fold__like {
    width: 2.25rem;
    height: 2.25rem;
}

/* Hand-drawn sketch treatment on the figure */
.intro-fold [data-figure] { aspect-ratio: 16 / 9; }
.intro-fold__img {
    object-fit: cover;
    filter: grayscale(0.35) contrast(1.12) saturate(0.9);
}

/* Subtle scale-up on load (0.92 → 1) */
.intro-fold__rise {
    opacity: 0;
    transform: scale(0.92);
    animation: intro-fold-rise 620ms ease forwards;
}
@keyframes intro-fold-rise {
    to { opacity: 1; transform: scale(1); }
}

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

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

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


.content-flex-min {
    min-width: 0;
}

.section-document__visual--rise:hover { transform: scale(1.05); transition: transform .2s ease; }

.content-grid-gap {
    gap: 2rem;
}

.content-wide-frame {
    max-width: 72rem;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
}

.content-heading-gap {
    margin-bottom: 2rem;
}

.content-large-height {
    display: block;
    width: 100%;
    height: 20rem;
    min-height: 20rem;
    flex-shrink: 0;
    object-fit: cover;
}

.content-base-height {
    display: block;
    width: 100%;
    height: 16rem;
    min-height: 16rem;
    flex-shrink: 0;
    object-fit: cover;
}

.tips-numbered__card {
    max-width: 24rem;
}

.tips-numbered__thumb {
    width: 4rem;
    height: 4rem;
}

.gallery-zoom-cards__card {
    transition: all 0.5s ease;
}
.gallery-zoom-cards__card:hover {
    transform: scale(1.05);
}
.gallery-zoom-cards__img {
    transition: transform 0.7s ease;
}
.gallery-zoom-cards__card:hover .gallery-zoom-cards__img {
    transform: scale(1.10);
}
.gallery-zoom-cards__overlay {
    background: linear-gradient(to top, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.2), transparent);
    opacity: 0;
    transition: all 0.5s ease;
}
.gallery-zoom-cards__card:hover .gallery-zoom-cards__overlay {
    opacity: 1;
}
.gallery-zoom-cards__badge {
    top: 0.5rem;
    right: 0.5rem;
}
.gallery-zoom-cards__content {
    transform: translateY(0.5rem);
    transition: transform 0.5s ease;
}
.gallery-zoom-cards__card:hover .gallery-zoom-cards__content {
    transform: translateY(0);
}
.gallery-zoom-cards__desc {
    opacity: 0;
    transition: opacity 0.5s ease 0.2s;
}
.gallery-zoom-cards__card:hover .gallery-zoom-cards__desc {
    opacity: 1;
}
.gallery-zoom-cards__accent {
    transition: all 0.5s ease;
}
.gallery-zoom-cards__card:hover .gallery-zoom-cards__accent {
    border-color: rgba(var(--bs-primary-rgb), 0.5) !important;
}


.nudge-beacon__section {
    padding-top: 6rem;
    padding-bottom: 6rem;
}

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

.nudge-beacon__cards-bs {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
    width: 100%;
    justify-content: center;
    box-sizing: border-box;
}

.nudge-beacon__cards-bs > div {
    flex: 1 1 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

@media (min-width: 768px) {
    .nudge-beacon__cards-bs > div {
        flex: 1 1 calc((100% - 4rem) / 3);
        max-width: calc((100% - 4rem) / 3);
    }
}

