/* Zimmerli — light motion. Transform/opacity only. */

.reveal-fade-up,
.reveal-slide-left,
.reveal-slide-right,
.reveal-zoom-in {
    opacity: 0;
    transition: opacity 0.65s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.65s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal-fade-up { transform: translateY(18px); }
.reveal-slide-left { transform: translateX(-18px); }
.reveal-slide-right { transform: translateX(18px); }
.reveal-zoom-in { transform: scale(0.98); }

section.cta-band {
    opacity: 1;
    transform: none;
}

.reveal-fade-up.reveal-active,
.reveal-slide-left.reveal-active,
.reveal-slide-right.reveal-active,
.reveal-zoom-in.reveal-active {
    opacity: 1;
    transform: none;
}

.delay-1 { transition-delay: 0.08s; }
.delay-2 { transition-delay: 0.16s; }
.delay-3 { transition-delay: 0.24s; }
.delay-4 { transition-delay: 0.32s; }

/* Above-the-fold: no opacity hide (LCP). Short settle only. */
.hero-architectural .hero-content {
    animation: heroSettle 0.7s cubic-bezier(0.16, 1, 0.3, 1) both;
}
.hero-architectural .hero-visual {
    animation: heroSettle 0.75s cubic-bezier(0.16, 1, 0.3, 1) 0.08s both;
}
.subpage-hero .container {
    animation: heroSettle 0.6s cubic-bezier(0.16, 1, 0.3, 1) both;
}

@keyframes heroSettle {
    from { transform: translateY(10px); }
    to { transform: none; }
}

.hero-architectural .reveal-slide-left,
.hero-architectural .reveal-slide-right {
    opacity: 1;
    transform: none;
    animation: none;
}

@keyframes yellowPulse {
    0% { box-shadow: 0 0 0 0 rgba(247, 197, 30, 0.4); }
    70% { box-shadow: 0 0 0 10px rgba(247, 197, 30, 0); }
    100% { box-shadow: 0 0 0 0 rgba(247, 197, 30, 0); }
}

.pulse-gold, .pulse-yellow {
    animation: yellowPulse 4s ease-out infinite;
}

.hover-lift {
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1),
                box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.hover-lift:hover {
    transform: translateY(-5px);
}

.card-architectural.reveal-active:hover,
.device-card.reveal-active:hover,
.worked-project.reveal-active:hover,
.project-card.reveal-active:hover {
    transform: translateY(-5px);
}

.device-card,
.worked-project {
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1),
                box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.device-card:hover,
.worked-project:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-md, 0 12px 28px rgba(11, 19, 37, 0.12));
}

@media (prefers-reduced-motion: reduce) {
    .reveal-fade-up,
    .reveal-slide-left,
    .reveal-slide-right,
    .reveal-zoom-in,
    .hero-architectural .hero-content,
    .hero-architectural .hero-visual,
    .subpage-hero .container,
    .pulse-gold,
    .pulse-yellow {
        opacity: 1 !important;
        transform: none !important;
        animation: none !important;
        transition: none !important;
    }
}
