.cs-header {
    height: 76px;
}

.cs-account-button {
    min-width: 142px;
}

.cs-hero {
    min-height: 570px;
    padding: 62px 0 70px;
}

.cs-hero-grid {
    grid-template-columns: minmax(0, 1.06fr) minmax(470px, .94fr);
    gap: 48px;
}

.cs-hero-copy {
    position: relative;
    z-index: 2;
}

.cs-hero h1 {
    max-width: 720px;
    font-size: clamp(62px, 6vw, 84px);
    line-height: .96;
    letter-spacing: -.064em;
    margin-bottom: 34px;
}

.cs-hero-grid > .cs-hero-copy > p {
    max-width: 650px;
    margin: 0;
    font-size: 21px;
    line-height: 1.48;
    letter-spacing: -.015em;
}

.cs-actions {
    margin: 34px 0 18px;
}

.cs-visual {
    min-width: 0;
    height: 430px;
    margin-right: -28px;
    position: relative;
    perspective: 1100px;
}

.cs-visual-stage {
    position: absolute;
    inset: 0;
    transform: translate3d(var(--hero-x, 0), var(--hero-y, 0), 0);
    transform-style: preserve-3d;
    transition: transform 550ms cubic-bezier(.2, .8, .2, 1);
}

.cs-visual .browser {
    width: 380px;
    height: 272px;
    overflow: hidden;
    border: 1px solid #dbe5f3;
    border-radius: 12px;
    background: #f5f8fd;
    box-shadow: 0 28px 70px rgba(49, 81, 132, .13);
    transform: rotate(-5deg) skewY(1deg);
    transform-origin: 50% 50%;
    will-change: transform, opacity;
}

.cs-visual .browser.one {
    top: 42px;
    left: 22px;
    z-index: 1;
    opacity: .52;
    animation: cs-card-arrive 850ms 80ms both cubic-bezier(.2, .8, .2, 1);
}

.cs-visual .browser.two {
    top: 72px;
    left: 74px;
    z-index: 2;
    opacity: .72;
    animation: cs-card-arrive 850ms 180ms both cubic-bezier(.2, .8, .2, 1);
}

.cs-visual .browser.three {
    top: 105px;
    left: 132px;
    z-index: 3;
    opacity: 1;
    background: #f1f5fb;
    animation: cs-card-arrive 850ms 280ms both cubic-bezier(.2, .8, .2, 1), cs-card-breathe 6s 1.2s infinite ease-in-out;
}

.cs-visual .browser.three img {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 72px;
    height: 72px;
    border-radius: 50%;
    transform: translate(-50%, -50%) rotate(5deg);
}

.cs-status-list {
    top: 17px;
    right: auto;
    left: 54px;
    z-index: 4;
    width: max-content;
    font-size: 16px;
    line-height: 1.15;
    pointer-events: none;
}

.cs-status-list li {
    margin: 0 0 15px;
    color: #9aa4b6;
    opacity: .72;
    text-shadow: 0 1px 0 #fff, 0 0 12px #fff;
    transition: color 300ms ease, opacity 300ms ease, transform 300ms ease;
}

.cs-status-list li::before {
    content: "";
    display: inline-block;
    width: 6px;
    height: 6px;
    margin: 0 11px 2px 0;
    border-radius: 50%;
    background: currentColor;
}

.cs-status-list li.is-active {
    color: #071129;
    opacity: 1;
    transform: translateX(4px);
}

.cs-visual > p {
    right: 2px;
    bottom: 3px;
    z-index: 5;
    margin: 0;
    font-size: 23px;
    line-height: 1.15;
    animation: cs-note-arrive 900ms 520ms both cubic-bezier(.2, .8, .2, 1);
}

.cs-button,
.cs-link,
.cs-nav a {
    transition: transform 180ms ease, box-shadow 180ms ease, color 180ms ease, background-color 180ms ease;
}

.cs-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 13px 26px rgba(7, 85, 232, .24);
}

.cs-link:hover,
.cs-nav a:not(.cs-button):hover {
    color: var(--blue);
}

.cs-button:focus-visible,
.cs-link:focus-visible,
.cs-nav a:focus-visible,
.cs-menu:focus-visible {
    outline: 3px solid rgba(7, 85, 232, .3);
    outline-offset: 4px;
}

@keyframes cs-card-arrive {
    from { opacity: 0; transform: translate3d(48px, 24px, 0) rotate(-5deg) skewY(1deg); }
}

@keyframes cs-card-breathe {
    0%, 100% { transform: translate3d(0, 0, 0) rotate(-5deg) skewY(1deg); }
    50% { transform: translate3d(0, -7px, 0) rotate(-4.5deg) skewY(1deg); }
}

@keyframes cs-note-arrive {
    from { opacity: 0; transform: translate3d(18px, 14px, 0) rotate(-8deg); }
}

@media (max-width: 1100px) {
    .cs-hero-grid {
        grid-template-columns: minmax(0, 1fr) minmax(410px, .82fr);
        gap: 24px;
    }

    .cs-visual {
        margin-right: -70px;
        transform: scale(.9);
        transform-origin: left center;
    }
}

@media (max-width: 850px) {
    .cs-header {
        height: 68px;
    }

    .cs-hero {
        min-height: 0;
        padding: 50px 0 48px;
    }

    .cs-hero-grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .cs-hero h1 {
        font-size: clamp(48px, 13vw, 68px);
        letter-spacing: -.065em;
        margin-bottom: 25px;
    }

    .cs-hero-grid > .cs-hero-copy > p {
        font-size: 18px;
    }

    .cs-visual {
        width: min(540px, 100%);
        height: 350px;
        margin: 0 auto;
        transform: none;
    }

    .cs-visual .browser {
        width: min(330px, 70vw);
        height: 220px;
    }

    .cs-visual .browser.one { left: 2%; }
    .cs-visual .browser.two { left: 10%; }
    .cs-visual .browser.three { left: 19%; }
    .cs-status-list { left: 8%; }
    .cs-visual > p { right: 2%; font-size: 20px; }
}

@media (max-width: 520px) {
    .cs-hero h1 {
        font-size: clamp(42px, 13.5vw, 58px);
        letter-spacing: -.07em;
    }

    .cs-actions {
        align-items: stretch;
        flex-direction: column;
        gap: 16px;
    }

    .cs-actions .cs-button {
        width: 100%;
    }

    .cs-visual {
        height: 300px;
        margin-top: 4px;
    }

    .cs-visual .browser {
        height: 184px;
    }

    .cs-visual .browser.one { top: 48px; }
    .cs-visual .browser.two { top: 70px; }
    .cs-visual .browser.three { top: 94px; }
    .cs-status-list { left: 3%; font-size: 13px; }
    .cs-status-list li { margin-bottom: 11px; }
    .cs-visual > p { bottom: 0; font-size: 17px; }
}

@media (prefers-reduced-motion: reduce) {
    .cs-visual-stage,
    .cs-visual .browser,
    .cs-visual > p,
    .cs-status-list li,
    .cs-button,
    .cs-link,
    .cs-nav a {
        animation: none !important;
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}
