@keyframes driftLeftRight {
    0% { transform: translateX(-15%); }
    50% { transform: translateX(15%); }
    100% { transform: translateX(-15%); }
}

@keyframes driftRightLeft {
    0% { transform: translateX(15%); }
    50% { transform: translateX(-15%); }
    100% { transform: translateX(15%); }
}

.intro-drift-strip-a {
    width: 33%;
    height: 6rem;
    animation: driftLeftRight 14s ease-in-out infinite;
}

.intro-drift-strip-b {
    width: 50%;
    height: 4rem;
    animation: driftRightLeft 18s ease-in-out infinite;
}

.intro-drift-strip-c {
    width: 25%;
    height: 5rem;
    animation: driftLeftRight 12s ease-in-out infinite;
    animation-delay: 3s;
}

.intro-drift-container {
    max-width: 80rem;
}

.intro-drift-textbox {
    max-width: 48rem;
}

/* v25 - chat bubble speech tail (border-triangle trick has no TW/BS utility) */
[data-chat-bubble] {
    position: relative;
}

/* fixed max-widths matching the TW max-w-3xl / max-w-2xl utilities (no BS equivalent) */
.dialogue-thread__wrap {
    max-width: 48rem;
}

.dialogue-thread__subtitle-max {
    max-width: 42rem;
}

/* fixed avatar size matching TW w-8 h-8 (no BS utility beyond 25/50/75/100%) */
.dialogue-thread__avatar {
    width: 2rem;
    height: 2rem;
}

/* fixed bubble max-width matching TW max-w-md (no BS equivalent) */
.dialogue-thread__bubble {
    max-width: 28rem;
}

[data-bubble-side="left"] [data-chat-bubble]::before {
    content: "";
    position: absolute;
    top: 1.25rem;
    left: -0.5rem;
    width: 0;
    height: 0;
    border-top: 0.5rem solid transparent;
    border-bottom: 0.5rem solid transparent;
    border-right: 0.5rem solid currentColor;
    color: inherit;
    opacity: 0.15;
}

[data-bubble-side="right"] [data-chat-bubble]::before {
    content: "";
    position: absolute;
    top: 1.25rem;
    right: -0.5rem;
    width: 0;
    height: 0;
    border-top: 0.5rem solid transparent;
    border-bottom: 0.5rem solid transparent;
    border-left: 0.5rem solid currentColor;
    color: inherit;
    opacity: 0.15;
}

/* -- Feature card hover -- */
.feat-card-hover {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.feat-card-hover:hover {
    transform: translateY(-3px);
    box-shadow: 0 0.5rem 1.5rem rgba(0,0,0,.12) !important;
}

/* -- Icon box sizing -- */
.feat-icon-box {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    min-width: 2.5rem;
    min-height: 2.5rem;
}
.feat-icon-box--lg {
    width: 4rem;
    height: 4rem;
    border-radius: 0.75rem;
}
.feat-icon-box--xl {
    width: 5rem;
    height: 5rem;
    border-radius: 1rem;
}
.feat-icon-box--circle {
    border-radius: 50%;
}

/* -- Nav/filmstrip button hover -- */
.feat-btn-nav {
    transition: transform 0.15s ease, background-color 0.15s ease;
}
.feat-btn-nav:hover {
    transform: scale(1.1);
}

/* -- Table row hover -- */
.feat-table-row-hover {
    transition: background-color 0.15s ease;
}
.feat-table-row-hover:hover {
    background-color: var(--bs-primary-bg-subtle) !important;
}

/* -- Accordion item hover -- */
.feat-accordion-hover summary:hover {
    background-color: var(--bs-primary-bg-subtle);
    border-radius: 0.75rem;
}

/* -- DL item hover -- */
.feat-dl-item-hover {
    transition: background-color 0.15s ease;
    border-radius: 0.5rem;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}
.feat-dl-item-hover:hover {
    background-color: var(--bs-primary-bg-subtle);
}

/* -- Deck button hover -- */
.feat-deck-btn {
    transition: filter 0.2s ease, transform 0.15s ease;
}
.feat-deck-btn:hover {
    filter: brightness(1.1);
    transform: translateY(-1px);
}
.centered-spine-timeline__line {
    width: 4px;
    left: 50%;
    transform: translateX(-50%);
}

.centered-spine-timeline__dot {
    width: 1.5rem;
    height: 1.5rem;
}


.action-boost__section {
    padding-top: 6rem;
    padding-bottom: 6rem;
    min-height: 500px;
}

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

