.material-symbols-outlined {
    font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;
}
body {
    font-family: 'Manrope', sans-serif;
    background-color: #131313;
    color: #e5e2e1;
    overflow-x: hidden;
    min-height: max(884px, 100dvh);
}
.serif-font {
    font-family: 'Noto Serif JP', serif;
}
.glass-panel {
    background: rgba(53, 53, 53, 0.6);
    backdrop-filter: blur(20px);
}
.gold-gradient {
    background: linear-gradient(45deg, #f2ca50, #d4af37);
}
.text-glow {
    text-shadow: 0 0 15px rgba(242, 202, 80, 0.3);
}
.ornament-line {
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(212, 175, 55, 0.5), transparent);
    width: 100%;
}

/* FV entrance animation */
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(16px); }
    to   { opacity: 1; transform: translateY(0); }
}
.anim-fv > * {
    opacity: 0;
    animation: fadeInUp 0.8s ease forwards;
}
.anim-fv > *:nth-child(1) { animation-delay: 0.1s; }
.anim-fv > *:nth-child(2) { animation-delay: 0.35s; }
.anim-fv > *:nth-child(3) { animation-delay: 0.55s; }
.anim-fv > *:nth-child(4) { animation-delay: 0.75s; }

/* Scroll fade-up animation */
.anim-fade-up {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.65s ease, transform 0.65s ease;
}
.anim-fade-up.anim-delay-1 { transition-delay: 0.15s; }
.anim-fade-up.anim-delay-2 { transition-delay: 0.30s; }
.anim-fade-up.anim-delay-3 { transition-delay: 0.45s; }
.anim-fade-up.visible {
    opacity: 1;
    transform: translateY(0);
}

/* FAQ accordion animation */
@keyframes accordionOpen {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}
details[open] > div {
    animation: accordionOpen 0.25s ease forwards;
}
