/* Анимации появления (используются на hero и карточках портфолио) */
@keyframes fade-up {
    from { opacity: 0; transform: translateY(24px); }
    to   { opacity: 1; transform: translateY(0); }
}
.animate-fade-up {
    animation: fade-up .8s cubic-bezier(.16,1,.3,1) forwards;
}

@keyframes pulse-slow {
    0%, 100% { opacity: .5; }
    50%      { opacity: .9; }
}
.animate-pulse-slow {
    animation: pulse-slow 6s ease-in-out infinite;
}

/* Карточка портфолио — скрывается плавно при фильтрации, а не мгновенно */
.portfolio-card {
    transition: opacity .35s ease, transform .35s ease;
}
.portfolio-card.hidden-item {
    opacity: 0;
    transform: scale(.92);
    position: absolute;
    pointer-events: none;
}

/* Кнопки фильтра */
.filter-btn {
    padding: .5rem 1.25rem;
    border-radius: 9999px;
    font-size: .875rem;
    font-weight: 600;
    color: #9CA3AF;
    border: 1px solid rgba(255,255,255,.1);
    background: rgba(255,255,255,.03);
    transition: all .2s ease;
}
.filter-btn:hover {
    color: #fff;
    border-color: rgba(124,58,237,.5);
}
.filter-btn.active {
    background: #7C3AED;
    color: #fff;
    border-color: #7C3AED;
}

/* line-clamp fallback (на случай отсутствия line-clamp плагина Tailwind) */
.line-clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Модальное окно */
#project-modal.flex { display: flex; }
#project-modal { animation: fade-up .25s ease; }

/* Выпадающие списки: тёмная тема, иначе белый текст на белом фоне */
select, input, textarea {
    color-scheme: dark;
}
select option {
    background-color: #12121e;
    color: #f3f4f6;
}
select option:checked {
    background-color: #7C3AED;
    color: #fff;
}

::selection {
    background: #7C3AED;
    color: #fff;
}
