body { font-family: 'Inter', sans-serif; }
.modal-active { overflow: hidden; }
.step-hidden { display: none; }
.glass { background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10px); }
.faq-answer { max-height: 0; overflow: hidden; transition: max-height 0.35s ease; }
.faq-item.open .faq-answer { max-height: 500px; }
.faq-item.open .faq-chevron { transform: rotate(180deg); }
.portfolio-card { transition: opacity .3s ease, transform .3s ease; }
.portfolio-hide { display: none; }
.filter-btn.active { background-color: #2563eb; color: #fff; }
@keyframes fadeInUp { from { opacity:0; transform: translateY(16px);} to {opacity:1; transform: translateY(0);} }
.animate-fadeInUp { animation: fadeInUp .6s ease forwards; }
