
/* ================= LUXURY IN ================= */

.nb-luxury-veil {
    animation: nbLuxuryVeil 1.2s cubic-bezier(.22,1,.36,1) both;
}

@keyframes nbLuxuryVeil {
    from { opacity:0; transform: translateY(30px); filter: blur(10px); }
    to   { opacity:1; transform: translateY(0); filter: blur(0); }
}

.nb-luxury-ascend {
    animation: nbLuxuryAscend 1.4s cubic-bezier(.22,1,.36,1) both;
}

@keyframes nbLuxuryAscend {
    from { opacity:0; transform: translateY(60px) scale(.98); }
    to   { opacity:1; transform: translateY(0) scale(1); }
}

.nb-luxury-glint {
    animation: nbLuxuryGlint 1.3s cubic-bezier(.22,1,.36,1) both;
}

@keyframes nbLuxuryGlint {
    from { opacity:0; filter: brightness(1.5); }
    to   { opacity:1; filter: brightness(1); }
}

/* ================= LUXURY OUT ================= */

.nb-luxury-veil-out {
    animation: nbLuxuryVeilOut 1s cubic-bezier(.22,1,.36,1) both;
}

@keyframes nbLuxuryVeilOut {
    from { opacity:1; transform: translateY(0); filter: blur(0); }
    to   { opacity:0; transform: translateY(30px); filter: blur(10px); }
}

.nb-luxury-descend {
    animation: nbLuxuryDescend 1s cubic-bezier(.22,1,.36,1) both;
}

@keyframes nbLuxuryDescend {
    from { opacity:1; transform: translateY(0) scale(1); }
    to   { opacity:0; transform: translateY(60px) scale(.98); }
}

.nb-luxury-fade-blur-out {
    animation: nbLuxuryFadeBlurOut 1s cubic-bezier(.22,1,.36,1) both;
}

@keyframes nbLuxuryFadeBlurOut {
    from { opacity:1; filter: blur(0); }
    to   { opacity:0; filter: blur(12px); }
}

/* ================= CINEMATIC IN ================= */

.nb-cinematic-dolly-in {
    animation: nbCinematicDollyIn 1.2s cubic-bezier(.16,1,.3,1) both;
}

@keyframes nbCinematicDollyIn {
    from { opacity:0; transform: scale(1.1); }
    to   { opacity:1; transform: scale(1); }
}

.nb-cinematic-pan-left {
    animation: nbCinematicPanLeft 1.1s cubic-bezier(.16,1,.3,1) both;
}

@keyframes nbCinematicPanLeft {
    from { opacity:0; transform: translateX(80px); }
    to   { opacity:1; transform: translateX(0); }
}

.nb-cinematic-focus-in {
    animation: nbCinematicFocusIn 1.2s cubic-bezier(.16,1,.3,1) both;
}

@keyframes nbCinematicFocusIn {
    from { opacity:0; filter: blur(12px); }
    to   { opacity:1; filter: blur(0); }
}

/* ================= CINEMATIC OUT ================= */

.nb-cinematic-dolly-out {
    animation: nbCinematicDollyOut 1s cubic-bezier(.16,1,.3,1) both;
}

@keyframes nbCinematicDollyOut {
    from { opacity:1; transform: scale(1); }
    to   { opacity:0; transform: scale(1.1); }
}

.nb-cinematic-pan-left-out {
    animation: nbCinematicPanLeftOut 1s cubic-bezier(.16,1,.3,1) both;
}

@keyframes nbCinematicPanLeftOut {
    from { opacity:1; transform: translateX(0); }
    to   { opacity:0; transform: translateX(80px); }
}

.nb-cinematic-defocus {
    animation: nbCinematicDefocus 1s cubic-bezier(.16,1,.3,1) both;
}

@keyframes nbCinematicDefocus {
    from { opacity:1; filter: blur(0); }
    to   { opacity:0; filter: blur(12px); }
}
