.memo-number-hover,
.memo-box-hover,
.memo-cta-shadow,
.memo-cta-hover {
    transition: color 0.2s ease, border-color 0.2s ease, transform 0.2s ease, background-color 0.2s ease;
}

.memo-title-rule {
    border-bottom: 4px solid var(--bs-primary);
}

.memo-principle-rule {
    border-top: 2px solid rgba(var(--bs-emphasis-color-rgb), 0.2);
}

.memo-principle-group:hover .memo-number-hover {
    color: var(--bs-primary) !important;
}

.memo-principle-group:hover .memo-box-hover {
    border-top-color: rgba(var(--bs-primary-rgb), 0.4) !important;
}

.memo-cta-shadow {
    transform: translate(0.375rem, 0.375rem);
}

.memo-cta-group:hover .memo-cta-shadow {
    transform: translate(0, 0);
}

.memo-cta-hover:hover {
    background-color: var(--bs-primary, rgb(var(--tw-primary-600, 37 99 235) / 1)) !important;
    color: #fff !important;
    border-color: var(--bs-primary, rgb(var(--tw-primary-700, 29 78 216) / 1)) !important;
}

/* v23 — Bootstrap branch: same rhythm as Tailwind gap-lg + grid columns */
.numbered-step-grid-timeline__bs-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5rem;
    list-style: none;
    padding-left: 0;
    margin-bottom: 0;
}

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

@media (min-width: 1024px) {
    .numbered-step-grid-timeline__bs-row {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* Parity with Tailwind max-w-2xl on header block */
.numbered-step-grid-timeline__area-bw {
    max-width: 42rem;
}

.numbered-step-grid-timeline__min-shrink {
  min-width: 0;
}

/* values v13 — accordion chevron rotation, CSS-only via details[open] */
.values-notion-stack__chevron {
    transition: transform 200ms ease;
}

details.values-notion-stack__summary,
details > .values-notion-stack__summary {
    /* no-op selector kept for clarity; actual toggle target is the chevron below */
}

details[open] > .values-notion-stack__summary .values-notion-stack__chevron,
details[open] .values-notion-stack__chevron {
    transform: rotate(180deg);
}

.values-notion-stack__summary {
    -webkit-tap-highlight-color: transparent;
}

.values-notion-stack__summary::-webkit-details-marker {
    display: none;
}

.values-notion-stack__idx {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    letter-spacing: 0.05em;
}

.values-notion-stack__index-num {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.precept-dashboard__topo {
    background-image: repeating-radial-gradient(circle at 20% 30%, currentColor 0, transparent 2px, transparent 40px);
}

.precept-dashboard__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}

@media (min-width: 640px) {
    .precept-dashboard__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .precept-dashboard__grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

.timeline-bubble-row__portrait {
    width: 10rem;
    height: 10rem;
}

.timeline-bubble-row__beacon {
    width: 1.5rem;
    height: 1.5rem;
}

.timeline-bubble-row__min-shrink {
  min-width: 0;
}

/* quote v23 — Xbox ribbon table: layout, vignette shell, waveform, typewriter caret */

.quote-wave__table {
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0.75rem;
}

.quote-wave__cell--hero {
    min-height: 22rem;
    width: 55%;
}

.quote-wave__cell--compact {
    min-height: 10rem;
    width: 45%;
}

.quote-wave__cell--medium {
    min-height: 13rem;
}

.quote-wave__cell--ribbon {
    min-height: 9rem;
}

.quote-wave__pill--hero {
    min-height: 22rem;
}

.quote-wave__pill--compact {
    min-height: 10rem;
}

.quote-wave__pill--medium {
    min-height: 13rem;
}

.quote-wave__pill--ribbon {
    min-height: 9rem;
}

.quote-wave__bg-surface {
    pointer-events: none;
}

.quote-wave__bg-pattern {
    pointer-events: none;
}

.quote-wave__ribbon-body {
    min-width: 0;
}

.quote-wave__bracket--tl {
    transform: scaleX(-1);
}

.quote-wave__bracket--tr {
    transform: scale(-1, -1);
}

.quote-wave__bracket--bl {
    transform: scaleY(-1);
}

.quote-wave__bracket--inner-tl {
    transform: scaleX(-1);
}

.quote-wave__wave-path {
    transform-origin: center center;
    animation: quote-wave-oscillate 4s ease-in-out infinite;
}

@keyframes quote-wave-oscillate {
    0%,
    100% {
        transform: scaleY(0.55);
    }
    25% {
        transform: scaleY(1.15);
    }
    50% {
        transform: scaleY(0.7);
    }
    75% {
        transform: scaleY(1);
    }
}

.quote-wave__caret {
    animation: quote-wave-blink 1s step-end infinite;
}

@keyframes quote-wave-blink {
    0%,
    100% {
        opacity: 1;
    }
    50% {
        opacity: 0;
    }
}

.quote-wave__caret.is-done {
    animation: none;
    opacity: 0;
}

@media (max-width: 639px) {
    .quote-wave__table,
    .quote-wave__table tbody,
    .quote-wave__table tr,
    .quote-wave__table td {
        display: block;
        width: 100%;
    }

    .quote-wave__cell--hero,
    .quote-wave__cell--compact,
    .quote-wave__cell--medium,
    .quote-wave__cell--ribbon {
        width: 100%;
        min-height: auto;
        margin-bottom: 0.75rem;
    }

    .quote-wave__pill--hero,
    .quote-wave__pill--compact,
    .quote-wave__pill--medium,
    .quote-wave__pill--ribbon {
        min-height: 14rem;
    }

    .quote-wave__pill--ribbon {
        flex-direction: column;
        border-radius: 1.5rem;
    }
}
/* hover + focus affordances (layout/outline via theme token) */
@media (hover: hover) {
    .quote-wave-root [role="listitem"]:hover,
    .quote-wave-root article:hover,
    .quote-wave-root [class*="quote-wave__card"]:hover,
    .quote-wave-root .quote-wave__book:hover,
    .quote-wave-root .quote-wave__step:hover,
    .quote-wave-root .quote-wave__index-card:hover,
    .quote-wave-root .quote-wave__pill:hover,
    .quote-wave-root .quote-wave__item:hover {
        transform: translateY(-0.125rem);
    }
}

.quote-wave-root [role="listitem"],
.quote-wave-root article,
.quote-wave-root [class*="quote-wave__card"],
.quote-wave-root .quote-wave__book,
.quote-wave-root .quote-wave__step,
.quote-wave-root .quote-wave__index-card,
.quote-wave-root .quote-wave__pill {
    transition: transform 200ms ease;
}

.quote-wave-root a:focus-visible,
.quote-wave-root button:focus-visible,
.quote-wave-root [tabindex="0"]:focus-visible,
.quote-wave-root input:focus-visible,
.quote-wave-root summary:focus-visible,
.quote-wave-root [role="slider"]:focus-visible {
    outline: 2px solid var(--bs-primary);
    outline-offset: 2px;
}

@media (hover: hover) {
    .quote-wave-root button:hover,
    .quote-wave-root a:hover,
    .quote-wave-root summary:hover {
        opacity: 0.92;
    }
}

