body { font-family: 'Work Sans', sans-serif; }
h1, h2, h3, .display { font-family: 'Fraunces', serif; }
html { scroll-behavior: smooth; }

.faq-answer { max-height: 0; overflow: hidden; transition: max-height .35s ease; }
.faq-item.open .faq-answer { max-height: 320px; }
.faq-item.open .faq-chevron { transform: rotate(180deg); }
.faq-chevron { transition: transform .3s ease; }

.fade-up { opacity: 0; transform: translateY(16px); animation: fadeUp .7s ease forwards; }
@keyframes fadeUp { to { opacity: 1; transform: translateY(0); } }

.timeline-line { background: linear-gradient(180deg,#ec4899,#f9a8d4); }

/* Komponen bertema pink (dipakai juga oleh form auth) */
.canva-header { background: rgba(255,255,255,.85); }
.canva-button { background: #ec4899; color: #fff; }
.canva-button.outline { background: transparent; color: #ec4899; border: 2px solid #ec4899; }
.canva-panel { background: #ffffff; }
.canva-card { background: #ffffff; }
.canva-footer { background: #831843; color: #fce7f3; }

.auth-shell {
    min-height: calc(100vh - 4rem);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem 1rem;
}
.auth-card {
    width: 100%;
    max-width: 420px;
    background: #fff;
    border-radius: 1.5rem;
    box-shadow: 0 20px 40px -12px rgba(236,72,153,.25);
    padding: 2rem;
}
.alert {
    padding: .75rem 1rem;
    border-radius: .75rem;
    font-size: .875rem;
    margin-bottom: 1rem;
}
.alert-error { background: #fef2f2; color: #b91c1c; border: 1px solid #fecaca; }
.alert-success { background: #f0fdf4; color: #15803d; border: 1px solid #bbf7d0; }
