/* intro v26 — Dieter Rams node: hex grid, bottom band, blurred ghost image, serif, typewriter */

/* Hexagon-ish grid (minimal, colour from Tailwind text-*, lines via currentColor) */
.intro-node__hex {
    background-image:
        repeating-linear-gradient(60deg, currentColor 0 1px, transparent 1px 26px),
        repeating-linear-gradient(-60deg, currentColor 0 1px, transparent 1px 26px);
    opacity: 0.1;
}

.intro-node__band { height: 10rem; opacity: 0.7; }

/* Blurred background photo behind the spotlight node */
.intro-node__ghost { height: 14rem; }
.intro-node__img {
    object-fit: cover;
    filter: blur(10px);
    opacity: 0.35;
    transform: scale(1.08);
}

/* Serif heading */
.intro-node__serif {
    font-family: ui-serif, Georgia, "Times New Roman", serif;
}

/* Org-chart stem connector */
.intro-node__stem {
    width: 1px;
    height: 2rem;
}

/* Typewriter caret */
.intro-node__type .is-typing {
    border-right: 2px solid currentColor;
    animation: intro-node-caret 800ms step-end infinite;
}
@keyframes intro-node-caret {
    50% { border-color: transparent; }
}

@media (prefers-reduced-motion: reduce) {
    .intro-node__type .is-typing { animation: none; }
}

.wire-reader-split__decor--alpha {
    top: 5rem;
    left: 2.5rem;
    width: 2.5rem;
    height: 2.5rem;
    animation-duration: 4s;
}

.wire-reader-split__decor--beta {
    top: 10rem;
    right: 5rem;
    width: 2rem;
    height: 2rem;
    animation-duration: 3s;
}

.wire-reader-split__decor--gamma {
    bottom: 8rem;
    left: 25%;
    width: 1.5rem;
    height: 1.5rem;
    animation-duration: 2s;
}

.wire-reader-split__decor--delta {
    bottom: 5rem;
    right: 33.333%;
    width: 3rem;
    height: 3rem;
    animation-duration: 5s;
    animation-delay: 1s;
}

.wire-reader-split__underline {
    width: 6rem;
    height: 0.25rem;
}

.wire-reader-split__sidebar {
    flex: 0 0 40%;
}

.wire-reader-split__index-badge {
    width: 2rem;
    height: 2rem;
}

.wire-reader-split__viewport {
    flex: 0 0 60%;
    height: fit-content;
}

.wire-reader-split__media {
    height: 12rem;
}

.wire-reader-split__img {
    object-fit: cover;
}
.wire-reader-split__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.content-trio-showcase__image {
    display: block;
    width: 100%;
    height: 10rem;
    object-fit: cover;
}

.content-trio-showcase__image--tall {
    height: 14rem;
}

.content-trio-showcase__image--short {
    height: 8rem;
}

.content-trio-showcase__card-lift {
    transition: transform 180ms ease;
}

.content-trio-showcase__card-lift:hover {
    transform: translateY(-0.25rem);
}

.content-trio-showcase__float {
    animation: content-trio-showcase-float 7s ease-in-out infinite;
}

.content-trio-showcase__rail {
    width: 100%;
    height: 0.25rem;
}

.content-trio-showcase__thumb {
    width: 7rem;
    height: 5rem;
}

.content-trio-showcase__badge {
    width: 2.5rem;
    height: 2.5rem;
}

@media (min-width: 768px) {
    .content-trio-showcase__rail {
        width: 0.25rem;
        height: auto;
    }
}

@keyframes content-trio-showcase-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(0.5rem); }
}

.content-trio-showcase__dot {
    width: 0.5rem;
    height: 0.5rem;
}

.content-trio-showcase__float {
    width: 6rem;
    height: 6rem;
}

@media (min-width: 768px) {
    .content-trio-showcase__offset {
        margin-top: 2.5rem;
    }
}

/* glossary invert — hover lift supplied via Tailwind on @sem('block'). */

/* FAQ v4 — collapsed panel (no display:none: scrollHeight must be measurable after class toggle) */
.support-qna-content-veiled {
    max-height: 0 !important;
    overflow: hidden;
    opacity: 0;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    pointer-events: none;
}

/* Thumb sizes */
.support-qna__thumb-md { width: 2.5rem; height: 2.5rem; }
.support-qna__thumb-sm { width: 2rem; height: 2rem; }

/* Corner blob sizes */
.support-qna__corner-blob-lg { width: 8rem; height: 8rem; }
.support-qna__corner-blob-md { width: 6rem; height: 6rem; }

/* Dot positions */
.support-qna__dot-a { top: 6rem; left: 33%; width: 0.75rem; height: 0.75rem; }
.support-qna__dot-b { top: 10rem; right: 33%; width: 0.5rem; height: 0.5rem; }
.support-qna__dot-c { bottom: 8rem; left: 50%; width: 1rem; height: 1rem; }

/* Stripe positions for gradient bands */
.support-qna__stripe-top { height: 8rem; }
.support-qna__stripe-mid { top: 4rem; height: 6rem; }

/* Blob positions */
.support-qna__blob-a { top: 5rem; left: 3rem; width: 4rem; height: 4rem; }
.support-qna__blob-b { top: 8rem; right: 4rem; width: 3rem; height: 3rem; }
.support-qna__blob-c { bottom: 6rem; left: 25%; width: 5rem; height: 5rem; }

/* Animation delays */
.support-qna__ornament--delay-2 { animation-delay: 0.5s; }
.support-qna__ornament--delay-3 { animation-delay: 0.8s; }
.support-qna__ornament--delay-4 { animation-delay: 1s; }
.support-qna__ornament--delay-5 { animation-delay: 1.2s; }
.support-qna__ornament--delay-6 { animation-delay: 1.5s; }
.support-qna__ornament--delay-7 { animation-delay: 2s; }

@keyframes support-qna-ornament-beat-cycle {
    0%, 100% { opacity: 1; }
    50%       { opacity: .5; }
}
.support-qna__ornament--beat {
    animation: support-qna-ornament-beat-cycle 2s cubic-bezier(.4,0,.6,1) infinite;
}

@keyframes support-qna-ornament-spring-cycle {
    0%, 100% { transform: translateY(0); animation-timing-function: cubic-bezier(.8,0,1,1); }
    50%       { transform: translateY(-25%); animation-timing-function: cubic-bezier(0,0,.2,1); }
}
.support-qna__ornament--spring {
    animation: support-qna-ornament-spring-cycle 1s infinite;
}

@keyframes support-qna-ornament-wave-cycle {
    75%, 100% { transform: scale(2); opacity: 0; }
}
.support-qna__ornament--wave {
    animation: support-qna-ornament-wave-cycle 1s cubic-bezier(0,0,.2,1) infinite;
}

.support-qna__ornament--lift:hover { transform: scale(1.25); transition: transform .2s ease; }

.support-qna__mark--lift:hover { transform: scale(1.1); transition: transform .2s ease; }

/* subscribe v16 — geometry shared by both CSS frameworks (Bootstrap has no utilities for it) */
.mailing-counter__section--py-4xl {
    padding-top: 6rem;
    padding-bottom: 6rem;
}

.mxw-3xl {
    max-width: 48rem !important;
}

.mxw-xl {
    max-width: 36rem !important;
}

/* decorative background blobs — fixed sizing, placement and blur */
.mailing-counter__blob {
    width: 16rem;
    height: 16rem;
    filter: blur(64px);
}

.mailing-counter__blob--a {
    top: -4rem;
    inset-inline-start: -4rem;
    width: 18rem;
    height: 18rem;
}

.mailing-counter__blob--b {
    bottom: -5rem;
    inset-inline-end: -2.5rem;
    width: 22rem;
    height: 22rem;
}

.mailing-counter__blob--c {
    top: 33.333333%;
    inset-inline-end: 25%;
    width: 12rem;
    height: 12rem;
}

.mailing-counter__title {
    font-size: 1.5rem;
    margin-bottom: 2rem;
}

.mailing-counter__subtitle {
    margin-bottom: 2.5rem;
}

.mailing-counter__row {
    flex-direction: column;
    gap: 1rem;
}

.mailing-counter__input {
    width: 100%;
    max-width: 20rem;
    padding: 0.75rem 1rem;
}

.mailing-counter__cta {
    padding: 0.75rem 2rem;
}

.mailing-counter__cta--hover {
    transition: transform 0.2s ease;
}

.mailing-counter__cta--hover:hover {
    transform: scale(1.05);
}

.mailing-counter__panel {
    padding: 2rem;
}

.mailing-counter__panel-title {
    font-size: 1.5rem;
}

@media (min-width: 640px) {
    .mailing-counter__row {
        flex-direction: row;
    }

    .mailing-counter__input {
        width: auto;
        flex: 1 1 0%;
    }
}

@media (min-width: 768px) {
    .mailing-counter__title {
        font-size: 3rem;
    }

    .mailing-counter__panel-title {
        font-size: 1.875rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .mailing-counter__cta--hover:hover {
        transform: none;
    }
}

