@keyframes niel-header-arrive {
    from { opacity: .35; }
    to { opacity: 1; }
}

@keyframes niel-panel-arrive {
    from { opacity: .4; translate: 0 -6px; }
    to { opacity: 1; translate: 0 0; }
}

@media (prefers-reduced-motion: no-preference) {
    .nh-masthead { animation: niel-header-arrive .65s ease-out; }
    .nh-disclosure[open] .nh-panel,
    .nh-search-panel:not([hidden]),
    .nh-mobile:not([hidden]) { animation: niel-panel-arrive .28s ease-out; }
    .nh-mobile details[open] > div,
    .faq-list details[open] > p,
    .product-accordions details[open] > p { animation: niel-panel-arrive .3s ease-out; }
    .niel-site .button { transition: background .2s, color .2s, border-color .2s, translate .25s ease; }
    .niel-site .text-link > span,
    .nh-action svg { transition: translate .25s ease; }
    .niel-site .button:active:not(:disabled) { translate: 0 1px; }
    @media (hover: hover) and (pointer: fine) {
        .niel-site .button:hover:not(:disabled) { translate: 0 -2px; }
        .niel-site .text-link:hover > span,
        .nh-action:hover svg { translate: 2px -2px; }
    }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .niel-site *, .niel-site *::before, .niel-site *::after {
        animation: none !important;
        transition: none !important;
    }
    .occasion-card:hover img,
    .product-card-image:hover img,
    .journal-card:hover .journal-card-image img,
    .season-card:hover .season-symbol { transform: none; }
}

@media print {
    .niel-site *, .niel-site *::before, .niel-site *::after {
        animation: none !important;
        transition: none !important;
    }
}
