::-webkit-scrollbar { width: 4px; height: 4px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #e7e5e4; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #d6d3d1; }

.font-serif-sc { font-family: 'Noto Serif SC', serif; }
.vertical-rl { writing-mode: vertical-rl; text-orientation: upright; }
.bg-rice-paper {
    background-color: #FAFAF8;
    background-image: radial-gradient(#e7e5e4 0.5px, transparent 0.5px);
    background-size: 24px 24px;
}

/* Typing animation for streaming text */
@keyframes blink { 0%, 100% { opacity: 1; } 50% { opacity: 0; } }
.typing-cursor::after {
    content: '|';
    animation: blink 0.8s infinite;
    color: #7c2d12;
    font-weight: 300;
}

/* Bounce dots for loading */
@keyframes bounce-dot {
    0%, 80%, 100% { transform: translateY(0); }
    40% { transform: translateY(-4px); }
}
.bounce-dot { animation: bounce-dot 1s infinite; }

/* Form card entrance */
@keyframes slideUp {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}
.animate-slide-up { animation: slideUp 0.3s ease-out; }

/* Five element colors for bazi card */
.wuxing-jin { color: #57534e; }   /* Metal - stone */
.wuxing-mu { color: #166534; }    /* Wood - green */
.wuxing-shui { color: #1e40af; }  /* Water - blue */
.wuxing-huo { color: #dc2626; }   /* Fire - red */
.wuxing-tu { color: #92400e; }    /* Earth - amber/brown */

/* History session items */
.session-item {
    cursor: pointer;
    transition: background-color 0.15s;
}
.session-item:hover { background-color: rgba(0,0,0,0.03); }
.session-item.active { background-color: rgba(0,0,0,0.06); font-weight: 500; }
