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

@keyframes scroll-text {
    0% { transform: translateX(100vw); }
    100% { transform: translateX(-100vw); }
}
.animate-scroll-text {
    display: inline-block;
    white-space: nowrap;
    animation: scroll-text 15s linear infinite;
    will-change: transform;
}
.animate-scroll-text:hover {
    animation-play-state: paused;
}

@keyframes badge-wiggle {
    0%, 100% { transform: rotate(-6deg) scale(1); }
    50% { transform: rotate(-12deg) scale(1.08); }
}
.animate-badge-wiggle {
    animation: badge-wiggle 1.5s ease-in-out infinite;
}

@keyframes marquee-rtl {
    0% { transform: translateX(0); }
    100% { transform: translateX(50%); }
}
.animate-marquee-rtl {
    animation: marquee-rtl 25s linear infinite;
    will-change: transform;
}
.animate-marquee-rtl:hover {
    animation-play-state: paused;
}

@keyframes marquee-ltr {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}
.animate-marquee-ltr {
    animation: marquee-ltr 25s linear infinite;
    will-change: transform;
}
.animate-marquee-ltr:hover {
    animation-play-state: paused;
}

@keyframes fade-in-up {
    0% { opacity: 0; transform: translateY(30px); }
    100% { opacity: 1; transform: translateY(0); }
}
.animate-fade-in-up {
    animation: fade-in-up 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes spin-slow {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}
.animate-spin-slow {
    animation: spin-slow 20s linear infinite;
}

@keyframes spin-slow-reverse {
    from { transform: rotate(0deg); }
    to { transform: rotate(-360deg); }
}
.animate-spin-slow-reverse {
    animation: spin-slow-reverse 20s linear infinite;
}

@keyframes golden-glow {
    0%, 100% { box-shadow: 0 0 15px 2px rgba(196, 161, 101, 0.5); }
    50% { box-shadow: 0 0 30px 6px rgba(196, 161, 101, 0.9); }
}
.animate-golden-glow {
    animation: golden-glow 3s ease-in-out infinite;
}

@keyframes shine {
    0% { left: -125%; }
    20%, 100% { left: 125%; }
}
.animate-shine::after {
    content: '';
    position: absolute;
    top: 0;
    left: -125%;
    width: 50%;
    height: 100%;
    background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.8) 50%, rgba(255, 255, 255, 0) 100%);
    transform: skewX(-25deg);
    animation: shine 4s infinite cubic-bezier(0.4, 0, 0.2, 1);
    pointer-events: none;
    z-index: 10;
}

@keyframes hero-zoom {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.1); }
}
.animate-hero-zoom {
    animation: hero-zoom 20s ease-in-out infinite;
    will-change: transform;
}

@keyframes logo-enter {
    0% { transform: scale(0.3); opacity: 0; }
    60% { transform: scale(1.1); opacity: 1; }
    100% { transform: scale(1); opacity: 1; }
}
.animate-logo-enter {
    animation: logo-enter 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}
