/* Explain: App-specific component classes (add as needed) */

@keyframes move-up-down {
    0%, 100% { transform: translateY(-8px); }
    50% { transform: translateY(8px); }
}
.animate-move-up-down {
    animation: move-up-down 1.5s ease-in-out infinite;
}

@keyframes open-close {
    0%, 100% { transform: scale(1) translateY(0); }
    50% { transform: scale(1.15) translateY(-3px); }
}
.animate-open-close {
    animation: open-close 2s ease-in-out infinite;
}

.rich-text-content {
    color: var(--text-color);
    line-height: 2.2;
    font-size: 1.125rem;
    font-weight: 300;
    text-align: justify;
}
.rich-text-content h1, .rich-text-content h2, .rich-text-content h3 {
    color: var(--primary-color);
    font-family: var(--font-heading);
    font-weight: 700;
    margin-top: 2.5rem;
    margin-bottom: 1.5rem;
    padding-bottom: 0;
    border-bottom: none;
    text-align: center;
    break-after: avoid;
    break-inside: avoid;
}
.rich-text-content h1::after, .rich-text-content h2::after, .rich-text-content h3::after {
    content: '';
    display: block;
    width: 60px;
    height: 2px;
    background: var(--secondary-color);
    margin: 0.75rem auto 0;
    border-radius: 2px;
}
.rich-text-content h1 { font-size: 2.25rem; }
.rich-text-content h2 { font-size: 1.75rem; }
.rich-text-content h3 { font-size: 1.5rem; }
.rich-text-content ul {
    list-style-type: none;
    margin: 0 0 2rem 0;
    padding: 0;
    break-inside: avoid;
}
.rich-text-content li {
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px dashed var(--border-color);
    font-weight: 600;
    font-size: 1.125rem;
}
.rich-text-content p {
    margin-bottom: 1.25rem;
}
.rich-text-content strong {
    color: var(--secondary-color);
    font-weight: 600;
}

@keyframes steam-rise {
    0% { transform: translateY(0) scale(1) translateX(0); opacity: 0; }
    20% { opacity: 0.5; }
    100% { transform: translateY(-25px) scale(2.5) translateX(-8px); opacity: 0; filter: blur(5px); }
}
.steam-particle {
    position: absolute;
    top: 6px;
    width: 6px;
    height: 10px;
    background: rgba(255, 255, 255, 0.8);
    border-radius: 50%;
    filter: blur(2px);
    opacity: 0;
    animation: steam-rise 2.5s infinite ease-out;
}
.steam-particle:nth-child(1) { left: 30%; animation-delay: 0s; }
.steam-particle:nth-child(2) { left: 45%; animation-delay: 0.8s; width: 8px; height: 12px; }
.steam-particle:nth-child(3) { left: 60%; animation-delay: 1.6s; }
