/* intro v19 — photo-free index list: soft blurred blobs, fixed icon tiles, scroll reveal */

/* Soft background blobs (fixed size + blur have no BS utility; colour stays a Tailwind/BS class) */
.intro-index__blob {
    width: 24rem;
    height: 24rem;
    filter: blur(64px);
    opacity: 0.5;
}

/* Icon tile fixed size (BS has no w-N/h-N utility) */
.intro-index__icon-tile {
    width: 3rem;
    height: 3rem;
}

/* Scroll reveal — cards hide only once JS arms the section (no-JS content stays visible) */
.intro-index.is-armed .intro-index__card {
    opacity: 0;
    transform: translateY(1.5rem);
    transition: opacity 560ms ease, transform 560ms ease;
}
.intro-index.is-armed .intro-index__card.is-in {
    opacity: 1;
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    .intro-index.is-armed .intro-index__card {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

.content-disclaimer-logo__mark {
    width: 5rem;
    height: 5rem;
}

.content-disclaimer-logo__mark--small {
    width: 3rem;
    height: 3rem;
}

.content-disclaimer-logo__mark--large {
    width: 6rem;
    height: 6rem;
}

.content-disclaimer-logo__mark svg {
    display: block;
    width: 100%;
    height: 100%;
}

.content-disclaimer-ticker__rail {
    animation: content-disclaimer-drift 9s ease-in-out infinite alternate;
}

.content-disclaimer-orb--large {
    width: 12rem;
    height: 12rem;
    animation: content-disclaimer-float 8s ease-in-out infinite;
}

.content-disclaimer-orb--small {
    width: 7rem;
    height: 7rem;
    animation: content-disclaimer-float 7s ease-in-out infinite reverse;
}

.content-disclaimer-corner {
    width: 4rem;
    height: 4rem;
    pointer-events: none;
}

.content-disclaimer-orbit__ring {
    animation: content-disclaimer-spin 14s linear infinite;
}

.content-disclaimer-rail__accent {
    width: 100%;
    height: 0.75rem;
    flex-shrink: 0;
    animation: content-disclaimer-grow 5s ease-in-out infinite alternate;
}

.content-disclaimer-pattern {
    pointer-events: none;
}

.content-disclaimer-pulse {
    width: 0.75rem;
    height: 0.75rem;
    animation: content-disclaimer-pulse 1.8s ease-in-out infinite;
}

@media (min-width: 768px) {
    .content-disclaimer-rail__accent {
        width: 0.75rem;
        height: auto;
    }
}

@keyframes content-disclaimer-drift {
    from { transform: translateX(-1rem); }
    to { transform: translateX(1rem); }
}

@keyframes content-disclaimer-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(0.75rem); }
}

@keyframes content-disclaimer-spin {
    from { transform: rotate(0deg) scale(1); }
    to { transform: rotate(360deg) scale(1.04); }
}

@keyframes content-disclaimer-grow {
    from { transform: scaleX(0.75); }
    to { transform: scaleX(1); }
}

@keyframes content-disclaimer-pulse {
    0%, 100% { transform: scale(1); opacity: 0.65; }
    50% { transform: scale(1.35); opacity: 1; }
}

/* Bootstrap: explicit grid + gap (row gutters often collapse) */
.tips-grid__bs-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 2rem;
}

.tips-grid__min-shrink {
    min-width: 0;
}

@media (min-width: 768px) {
    .tips-grid__bs-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.tips-grid__subtitle {
    max-width: 42rem;
}

.tips-grid__thumb {
    width: 3rem;
    height: 3rem;
}

/* glossary ladder — figure offset */
.glossary-ladder__fig {
    transition: transform 0.2s ease;
}

.glossary-ladder__fig:hover {
    transform: translateX(4px);
}

/* v16 subscribe — decorative background blobs (fixed sizing, no BS analog needed since bs is unused) */
.mailing-counter__blob {
    width: 16rem;
    height: 16rem;
}

.mailing-counter__blob--a {
    width: 18rem;
    height: 18rem;
}

.mailing-counter__blob--b {
    width: 22rem;
    height: 22rem;
}

.mailing-counter__blob--c {
    width: 12rem;
    height: 12rem;
}

