.cv2-surface-glass {
    background: linear-gradient(145deg, rgba(12, 18, 24, 0.72) 0%, rgba(25, 36, 47, 0.46) 100%);
    border: 1px solid rgba(255, 255, 255, 0.16);
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.28);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.cv2-surface-glass-soft {
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0.08) 100%);
    border: 1px solid rgba(255, 255, 255, 0.16);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.18);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.cv2-btn-glass,
.cv2-btn-glass-light {
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    --cv2-btn-hover-shadow: 0 18px 36px rgba(0, 0, 0, 0.24);
}

.cv2-btn-glass::after,
.cv2-btn-glass-light::after {
    content: "";
    position: absolute;
    inset: 1px;
    border-radius: inherit;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.24), rgba(255, 255, 255, 0));
    opacity: 0.8;
    pointer-events: none;
    transition: opacity var(--cv2-transition-base), transform var(--cv2-transition-base);
    z-index: -1;
}

.cv2-btn-glass {
    color: var(--cv2-color-white);
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.08));
    border-color: rgba(255, 255, 255, 0.24);
    --cv2-btn-overlay: linear-gradient(135deg, rgba(255, 255, 255, 0.32), rgba(255, 255, 255, 0.12));
    --cv2-btn-hover-color: var(--cv2-color-white);
}

.cv2-btn-glass:hover,
.cv2-btn-glass:focus-visible {
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.24), rgba(255, 255, 255, 0.12));
    border-color: rgba(255, 255, 255, 0.4);
}

.cv2-btn-glass-light {
    color: var(--cv2-color-primary-dark);
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(255, 255, 255, 0.76));
    border-color: rgba(255, 255, 255, 0.6);
    --cv2-btn-overlay: linear-gradient(135deg, rgba(255, 255, 255, 1), rgba(244, 247, 249, 0.88));
    --cv2-btn-hover-color: var(--cv2-color-primary-dark);
    --cv2-btn-hover-shadow: 0 18px 36px rgba(0, 0, 0, 0.22);
}

.cv2-btn-glass-light:hover,
.cv2-btn-glass-light:focus-visible {
    background: linear-gradient(135deg, rgba(255, 255, 255, 1), rgba(244, 247, 249, 0.88));
    border-color: rgba(255, 255, 255, 0.9);
}

.cv2-btn-glass:hover::after,
.cv2-btn-glass:focus-visible::after,
.cv2-btn-glass-light:hover::after,
.cv2-btn-glass-light:focus-visible::after {
    opacity: 1;
    transform: translateY(-1px);
}

.cv2-brand-actions .cv2-btn {
    min-width: clamp(10.5rem, 16vw, 13rem);
}

.cv2-brand-actions .cv2-btn--outline {
    color: var(--cv2-color-white);
    border-color: rgba(255, 255, 255, 0.58);
    background: rgba(255, 255, 255, 0.02);
}

.cv2-brand-actions .cv2-btn--outline:hover,
.cv2-brand-actions .cv2-btn--outline:focus-visible {
    color: var(--cv2-color-white);
    border-color: rgba(255, 255, 255, 0.82);
    background: rgba(255, 255, 255, 0.14);
}

.js-reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 1200ms cubic-bezier(0.2, 0.8, 0.2, 1),
        transform 1200ms cubic-bezier(0.2, 0.8, 0.2, 1);
    will-change: opacity, transform;
}

.js-reveal.is-revealed {
    opacity: 1;
    transform: translateY(0);
}

.cv2-grid > .js-reveal:nth-child(1) {
    transition-delay: 100ms;
}

.cv2-grid > .js-reveal:nth-child(2) {
    transition-delay: 250ms;
}

.cv2-grid > .js-reveal:nth-child(3) {
    transition-delay: 400ms;
}

.cv2-grid > .js-reveal:nth-child(4) {
    transition-delay: 550ms;
}

.cv2-reveal-delay-100 {
    transition-delay: 100ms;
}

.cv2-reveal-delay-200 {
    transition-delay: 200ms;
}

.cv2-reveal-delay-300 {
    transition-delay: 300ms;
}

.cv2-reveal-delay-400 {
    transition-delay: 400ms;
}

@media screen and (max-width: 767px) {
    .cv2-grid > .js-reveal:nth-child(n) {
        transition-delay: 100ms;
    }
}
