/* ── Dialogue text format classes ──────────────────────────── */
/* Apply to inline elements within VN dialogue text.            */
/* Font family / size inherit from the surrounding context.     */

.vn-bold {
    font-weight: 700;
}

.vn-italic {
    font-style: italic;
    opacity: 0.92;
}

/* Color tint — set --vn-tint on the element to pick the hue.   */
/* Falls back to warning (amber) when no tint is provided.      */
.vn-color {
    color: var(--vn-tint, var(--mud-palette-warning));
    font-weight: 500;
}

.vn-shake {
    display: inline-block;
    animation: vn-shake 0.5s infinite;
}

@keyframes vn-shake {
    0%,  100% { transform: translate(0,      0   ); }
    20%        { transform: translate(-1.5px,  1px); }
    40%        { transform: translate( 1.5px, -1px); }
    60%        { transform: translate(-1px,   -1px); }
    80%        { transform: translate( 1px,    1px); }
}

/* Apply per character — set animation-delay inline for stagger. */
.vn-wave {
    display: inline-block;
    animation: vn-wave 1.5s ease-in-out infinite;
}

@keyframes vn-wave {
    0%,  100% { transform: translateY(0);    }
    50%        { transform: translateY(-3px); }
}

.vn-ruby rt {
    font-size: 0.5em;
    color: var(--mud-palette-text-disabled);
    font-weight: 400;
}
