@keyframes toast-in {
    from { opacity: 0; transform: translateY(12px); }
    to   { opacity: 1; transform: translateY(0); }
}

@keyframes toast-out {
    from { opacity: 1; transform: translateY(0); }
    to   { opacity: 0; transform: translateY(12px); }
}

.toast-enter {
    animation: toast-in 0.3s ease forwards;
}

.toast-exit {
    animation: toast-out 0.3s ease forwards;
}

.recipe-card:hover .recipe-card-image {
    transform: scale(1.04);
}

.recipe-card-image {
    transition: transform 0.4s ease;
}

.line-clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

@media print {
    header, footer, .no-print { display: none !important; }
    body { background: white; }
    main { max-width: 100%; padding: 0; }
}
