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

/* v10 - Diagonal Skewed Timeline with Brutalist Borders (no BS analog for skew transform) */
.steps-brutal-skew__row {
    opacity: 0;
    transform: translateX(-1.5rem) skewX(-2deg);
    transition: opacity 500ms ease, transform 500ms ease;
}

.steps-brutal-skew__row.is-visible {
    opacity: 1;
    transform: skewX(-2deg);
}

.steps-brutal-skew__row:nth-child(even) {
    transform: translateX(1.5rem) skewX(2deg);
}

.steps-brutal-skew__row:nth-child(even).is-visible {
    transform: skewX(2deg);
}

.steps-brutal-skew__panel {
    transform: skewX(2deg);
}

.steps-brutal-skew__row:nth-child(even) .steps-brutal-skew__panel {
    transform: skewX(-2deg);
}

.steps-brutal-skew__num {
    transform: skewX(2deg);
}

.steps-brutal-skew__row:nth-child(even) .steps-brutal-skew__num {
    transform: skewX(-2deg);
}

/* fixed-size number badge — no Bootstrap width/height utility beyond w-25/50/75/100 */
.slant-ledger__badge {
    width: 5rem;
    height: 5rem;
}

@media (min-width: 768px) {
    .slant-ledger__badge {
        width: 6rem;
        height: 6rem;
    }
}

/* CTA hover — Bootstrap has no hover: utility variants like Tailwind's hover:bg-*.
   Pre-approved color exception for CTA/pill hover states (theme-token fallback). */
.slant-ledger__cta {
    transition: background-color 200ms ease, color 200ms ease;
}

.slant-ledger__cta:hover {
    background-color: var(--bs-primary, rgb(var(--tw-primary-600, 37 99 235) / 1)) !important;
    color: var(--bs-white, #fff) !important;
}

.ethos-chat__dots {
    background-image: radial-gradient(currentColor 1.5px, transparent 1.5px);
    background-size: 22px 22px;
}

.ethos-chat__blob {
    width: 18rem;
    height: 18rem;
    filter: blur(48px);
}

.ethos-chat__group {
    max-width: 42rem;
}

.ethos-chat__avatar {
    width: 3rem;
    height: 3rem;
}

.ethos-chat__row:nth-child(even) {
    flex-direction: row-reverse;
}

.ethos-chat__row:nth-child(even) .ethos-chat__bubble {
    text-align: right;
}

.accordion-playstation-timeline__chevron--open {
    transform: rotate(180deg);
}

.accordion-playstation-timeline__panel {
    max-height: 400px;
    transition: max-height 0.35s ease;
}

.accordion-playstation-timeline__panel[aria-hidden="true"],
.accordion-playstation-timeline__panel.is-closed {
    max-height: 0 !important;
}

.accordion-playstation-timeline__decor-tr {
    clip-path: polygon(100% 0, 100% 60%, 40% 0);
    top: 0;
    right: 0;
    width: 16rem;
    height: 16rem;
}

.accordion-playstation-timeline__decor-bl {
    clip-path: polygon(0 40%, 60% 100%, 0 100%);
    bottom: 0;
    left: 0;
    width: 12rem;
    height: 12rem;
}

.accordion-playstation-timeline__badge-size {
    width: 3.5rem;
    height: 2.5rem;
}

.accordion-playstation-timeline__panel--closed {
    max-height: 0;
}

.accordion-playstation-timeline__min-shrink {
  min-width: 0;
}

