* {
    box-sizing: border-box;
}

:root {
    --black: #0d0d0d;
    --text: #202123;
    --muted: #6f6f6f;
    --muted-2: #8e8e8e;
    --line: #e5e5e5;
    --line-soft: #eeeeee;
    --surface: #ffffff;
    --surface-soft: #f7f7f8;
    --green: #10a37f;
    --green-soft: #e8f6f2;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;

    font-family:
        Inter,
        "SF Pro Display",
        "SF Pro Text",
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        "PingFang SC",
        "Microsoft YaHei",
        sans-serif;

    color: var(--text);
    background: white;

    -webkit-font-smoothing:
        antialiased;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input {
    font: inherit;
}

button {
    cursor: pointer;
}


/* HEADER */

.site-header {
    position: sticky;
    top: 0;
    z-index: 50;

    height: 68px;

    background:
        rgba(
            255,
            255,
            255,
            0.92
        );

    backdrop-filter:
        blur(14px);

    border-bottom:
        1px solid
        rgba(
            0,
            0,
            0,
            0.06
        );
}

.nav-wrap {
    max-width: 1320px;
    height: 100%;

    margin: auto;
    padding: 0 30px;

    display: flex;
    align-items: center;
}

.logo {
    font-size: 18px;
    font-weight: 650;
    letter-spacing: -0.4px;
}

.desktop-nav {
    display: flex;
    gap: 30px;

    margin-left: 55px;

    font-size: 14px;
}

.desktop-nav a {
    color: #444;
}

.desktop-nav a:hover,
.active-nav {
    color: black !important;
}

.nav-actions {
    margin-left: auto;

    display: flex;
    gap: 18px;
    align-items: center;
}

.nav-login {
    font-size: 14px;
}

.clean-button {
    border: 0;
    background: none;
}


/* BUTTONS */

.btn {
    min-height: 46px;

    padding: 0 19px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border-radius: 9px;
    border: 1px solid transparent;

    font-weight: 550;
    font-size: 14px;

    transition:
        background 0.15s,
        border 0.15s,
        transform 0.15s;
}

.btn:hover {
    transform:
        translateY(-1px);
}

.btn-dark {
    background: var(--black);
    color: white;
}

.btn-dark:hover {
    background: #2b2b2b;
}

.btn-light {
    background: white;
    color: var(--black);

    border-color:
        #d9d9d9;
}

.btn-light:hover {
    background:
        #f7f7f7;
}

.btn-white {
    background: white;
    color: var(--black);
}

.btn-small {
    min-height: 38px;
    padding: 0 14px;
}

.btn-full {
    width: 100%;
}


/* HERO */

.hero-new {
    min-height: 690px;

    display: flex;
    justify-content: center;
    align-items: center;

    padding:
        100px 30px 120px;

    text-align: center;
}

.hero-content {
    max-width: 920px;
}

.hero-kicker,
.section-label {
    font-size: 12px;
    letter-spacing: 1.7px;

    color: var(--muted-2);

    text-transform: uppercase;
}

.hero-new h1 {
    margin:
        30px 0;

    font-size:
        clamp(
            58px,
            7vw,
            96px
        );

    line-height: 0.99;

    font-weight: 500;

    letter-spacing:
        -5px;
}

.hero-description {
    max-width: 620px;

    margin:
        0 auto;

    color:
        var(--muted);

    font-size: 18px;
    line-height: 1.7;
}

.hero-buttons {
    margin-top: 38px;

    display: flex;
    justify-content: center;
    gap: 10px;
}


/* SECTIONS */

.simple-section {
    background:
        var(--surface-soft);

    padding:
        130px 30px;
}

.section-inner {
    max-width:
        1120px;

    margin:
        auto;
}

.section-title-block {
    max-width:
        700px;
}

.section-title-block h2,
.download-copy h2 {
    margin:
        22px 0 0;

    font-size:
        clamp(
            44px,
            5vw,
            66px
        );

    line-height:
        1.04;

    font-weight:
        500;

    letter-spacing:
        -3px;
}

.steps-grid {
    margin-top:
        95px;

    display:
        grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap:
        55px;
}

.step-number {
    display: block;

    padding-bottom:
        20px;

    margin-bottom:
        24px;

    border-bottom:
        1px solid
        #d7d7d7;

    color:
        var(--muted-2);

    font-size:
        13px;
}

.step-item h3 {
    font-size:
        20px;

    margin:
        0 0 12px;
}

.step-item p {
    color:
        var(--muted);

    line-height:
        1.7;

    margin: 0;
}


/* DOWNLOAD FEATURE */

.download-feature {
    padding:
        140px 30px;
}

.download-feature-inner {
    max-width:
        1120px;

    margin: auto;

    display: grid;

    grid-template-columns:
        1fr 0.8fr;

    gap:
        120px;

    align-items:
        center;
}

.download-copy p {
    color:
        var(--muted);

    line-height:
        1.75;

    max-width:
        520px;
}

.arrow-link,
.subtle-link,
.text-download {
    display:
        inline-flex;

    gap: 8px;

    margin-top:
        20px;

    font-weight:
        550;

    font-size:
        14px;
}

.arrow-link:hover,
.subtle-link:hover,
.text-download:hover {
    text-decoration:
        underline;
}

.platform-preview {
    border-top:
        1px solid
        var(--line);
}

.platform-row {
    display:
        flex;

    gap:
        20px;

    align-items:
        center;

    padding:
        20px 0;

    border-bottom:
        1px solid
        var(--line);
}

.platform-icon,
.large-platform-icon {
    display: grid;
    place-items: center;

    background:
        #f3f3f3;

    border-radius:
        10px;

    font-weight:
        600;
}

.platform-icon {
    width: 44px;
    height: 44px;
}

.platform-row strong,
.platform-row span {
    display: block;
}

.platform-row span {
    color:
        var(--muted);

    font-size:
        13px;

    margin-top:
        4px;
}


/* HOW */

.how-section {
    padding:
        130px 30px;

    background:
        var(--surface-soft);
}

.center-heading {
    margin:
        20px 0 70px;

    font-size:
        48px;

    font-weight:
        500;

    letter-spacing:
        -2px;
}

.instruction-list {
    border-top:
        1px solid
        #ddd;
}

.instruction {
    display:
        grid;

    grid-template-columns:
        90px 1fr;

    padding:
        32px 0;

    border-bottom:
        1px solid
        #ddd;
}

.instruction > span {
    color:
        var(--muted-2);
}

.instruction h3 {
    margin:
        0 0 7px;

    font-size:
        18px;
}

.instruction p {
    margin: 0;
    color:
        var(--muted);
}


/* FINAL CTA */

.final-cta {
    padding:
        150px 30px;

    background:
        var(--black);

    color:
        white;

    text-align:
        center;
}

.final-cta-inner h2 {
    font-size:
        56px;

    font-weight:
        500;

    letter-spacing:
        -2.5px;

    margin:
        0;
}

.final-cta-inner p {
    color:
        #bcbcbc;

    margin:
        20px 0 35px;
}


/* PAGE HERO */

.page-hero {
    max-width:
        850px;

    margin:
        auto;

    padding:
        130px 30px 80px;

    text-align:
        center;
}

.page-hero h1 {
    margin:
        20px 0;

    font-size:
        clamp(
            54px,
            6vw,
            76px
        );

    font-weight:
        500;

    letter-spacing:
        -4px;
}

.page-hero > p:last-child {
    max-width:
        580px;

    margin:
        auto;

    color:
        var(--muted);

    line-height:
        1.7;

    font-size:
        17px;
}


/* DOWNLOAD PAGE */

.downloads-container {
    max-width:
        1000px;

    margin:
        0 auto;

    padding:
        20px 30px 130px;
}

.download-card {
    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        30px;

    padding:
        30px 0;

    border-bottom:
        1px solid
        var(--line);
}

.download-platform {
    display:
        flex;

    gap:
        20px;

    align-items:
        center;
}

.large-platform-icon {
    width:
        58px;

    height:
        58px;

    font-size:
        18px;
}

.download-platform h2 {
    margin:
        0 0 5px;

    font-size:
        20px;
}

.download-platform p {
    margin: 0;

    color:
        var(--muted);

    font-size:
        14px;
}

.download-actions {
    display:
        flex;

    gap:
        15px;

    align-items:
        center;
}

.text-download {
    margin: 0;
}

.download-help {
    background:
        var(--surface-soft);

    padding:
        120px 30px;
}

.download-help-inner {
    max-width:
        900px;

    margin: auto;
}

.download-help h2 {
    font-size:
        48px;

    font-weight:
        500;

    letter-spacing:
        -2px;
}

.mini-steps {
    display:
        grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap:
        30px;

    margin:
        50px 0;
}

.mini-steps div {
    border-top:
        1px solid
        #d9d9d9;

    padding-top:
        22px;
}

.mini-steps span {
    color:
        var(--muted-2);
}

.mini-steps p {
    line-height:
        1.55;

    max-width:
        180px;
}

.official-note {
    max-width:
        900px;

    margin: auto;

    padding:
        45px 30px 100px;

    color:
        var(--muted);

    font-size:
        13px;

    line-height:
        1.6;
}


/* AUTH */

.minimal-auth-body {
    min-height:
        100vh;

    display:
        flex;

    justify-content:
        center;

    background:
        white;
}

.minimal-auth {
    width:
        min(
            420px,
            calc(
                100% - 40px
            )
        );

    padding:
        55px 0;
}

.auth-logo {
    display:
        block;

    text-align:
        center;

    font-size:
        19px;

    font-weight:
        650;

    margin-bottom:
        80px;
}

.auth-content h1 {
    text-align:
        center;

    font-size:
        34px;

    margin:
        0;

    letter-spacing:
        -1.3px;
}

.auth-subtitle {
    text-align:
        center;

    color:
        var(--muted);

    margin:
        12px 0 35px;
}

.clean-form label {
    display:
        block;

    margin:
        20px 0 8px;

    font-size:
        13px;

    font-weight:
        550;
}

.clean-form input {
    width:
        100%;

    height:
        52px;

    padding:
        0 14px;

    border:
        1px solid
        #cfcfcf;

    border-radius:
        8px;

    outline: none;
}

.clean-form input:focus {
    border-color:
        #666;

    box-shadow:
        0 0 0 1px
        #666;
}

.clean-form .btn {
    margin-top:
        25px;
}

.auth-switch {
    text-align:
        center;

    margin-top:
        28px;

    color:
        var(--muted);

    font-size:
        14px;
}

.auth-switch a {
    color:
        var(--black);

    font-weight:
        600;
}

.form-message {
    min-height:
        20px;
}


/* PRICING */

.pricing-page {
    min-height:
        calc(
            100vh - 68px
        );
}

.pricing-new {
    max-width:
        920px;

    margin:
        auto;

    padding:
        10px 30px 100px;
}

.pricing-new-grid {
    display:
        grid;

    grid-template-columns:
        repeat(2, 1fr);

    gap:
        18px;
}

.modern-plan-card {
    position:
        relative;

    padding:
        34px;

    min-height:
        480px;

    display:
        flex;

    flex-direction:
        column;

    border:
        1px solid
        var(--line);

    border-radius:
        16px;
}

.modern-plan-card.recommended {
    border:
        1.5px solid
        var(--black);
}

.recommended-label {
    position:
        absolute;

    top:
        18px;

    right:
        18px;

    background:
        var(--black);

    color:
        white;

    padding:
        5px 9px;

    border-radius:
        6px;

    font-size:
        11px;
}

.plan-small-label {
    color:
        var(--muted-2);

    font-size:
        11px;

    letter-spacing:
        1.5px;

    margin: 0;
}

.modern-plan-card h2 {
    margin:
        15px 0;

    font-weight:
        550;

    font-size:
        26px;
}

.modern-price {
    margin-top:
        25px;
}

.modern-price span {
    font-size:
        52px;

    letter-spacing:
        -3px;

    font-weight:
        500;
}

.modern-price small {
    color:
        var(--muted);
}

.plan-divider {
    height:
        1px;

    background:
        var(--line);

    margin:
        32px 0;
}

.modern-plan-features {
    padding: 0;
    margin: 0 0 35px;

    list-style: none;

    flex: 1;
}

.modern-plan-features li {
    padding:
        9px 0;

    color:
        #555;

    font-size:
        14px;
}

.modern-plan-features li::before {
    content: "✓";

    margin-right:
        9px;

    color:
        var(--green);
}

.pricing-note {
    text-align:
        center;

    color:
        var(--muted);

    font-size:
        13px;

    padding-bottom:
        100px;
}


/* ACCOUNT */

.account-page {
    background:
        #fafafa;

    min-height:
        calc(
            100vh - 68px
        );

    padding:
        75px 30px 120px;
}

.account-container {
    max-width:
        1040px;

    margin:
        auto;
}

.account-heading {
    display:
        flex;

    align-items:
        flex-end;

    justify-content:
        space-between;

    margin-bottom:
        50px;
}

.account-heading h1 {
    margin:
        13px 0 8px;

    font-size:
        46px;

    font-weight:
        500;

    letter-spacing:
        -2px;
}

.account-email {
    margin: 0;

    color:
        var(--muted);
}

.account-summary {
    display:
        grid;

    grid-template-columns:
        repeat(3, 1fr);

    background:
        white;

    border:
        1px solid
        var(--line);

    border-radius:
        14px;

    margin-bottom:
        24px;

    overflow:
        hidden;
}

.summary-item {
    padding:
        25px 28px;

    border-right:
        1px solid
        var(--line);
}

.summary-item:last-child {
    border-right: 0;
}

.summary-item span,
.summary-item strong {
    display: block;
}

.summary-item span {
    color:
        var(--muted);

    font-size:
        13px;
}

.summary-item strong {
    margin-top:
        10px;

    font-size:
        24px;

    font-weight:
        550;
}

.green-text {
    color:
        var(--green);
}

.account-block {
    background:
        white;

    border:
        1px solid
        var(--line);

    border-radius:
        14px;

    padding:
        30px;

    margin-bottom:
        24px;
}

.block-heading {
    display:
        flex;

    align-items:
        flex-start;

    justify-content:
        space-between;

    margin-bottom:
        28px;
}

.block-heading h2 {
    margin:
        0 0 7px;

    font-size:
        21px;

    font-weight:
        600;
}

.block-heading p {
    margin: 0;

    color:
        var(--muted);

    font-size:
        14px;
}

.subscription-new-card {
    border-top:
        1px solid
        var(--line);

    padding:
        28px 0;
}

.subscription-new-card:first-child {
    border-top: 0;
    padding-top: 0;
}

.subscription-header {
    display:
        flex;

    justify-content:
        space-between;
}

.subscription-header h3 {
    font-size:
        23px;

    margin:
        13px 0 0;

    font-weight:
        550;
}

.modern-status {
    display:
        inline-block;

    padding:
        5px 9px;

    background:
        #efefef;

    border-radius:
        6px;

    color:
        #666;

    font-size:
        11px;

    text-transform:
        capitalize;
}

.status-active {
    color:
        #087d61;

    background:
        var(--green-soft);
}

.subscription-traffic {
    text-align:
        right;
}

.subscription-traffic strong {
    font-size:
        30px;

    font-weight:
        500;
}

.subscription-traffic span {
    color:
        var(--muted);

    font-size:
        13px;
}

.subscription-details {
    display:
        grid;

    grid-template-columns:
        repeat(2, 1fr);

    gap:
        25px;

    margin:
        28px 0;
}

.subscription-details span,
.subscription-details strong {
    display: block;
}

.subscription-details span {
    color:
        var(--muted);

    font-size:
        12px;

    margin-bottom:
        6px;
}

.subscription-details strong {
    font-size:
        14px;

    font-weight:
        550;
}

.access-key-box {
    background:
        var(--surface-soft);

    border-radius:
        10px;

    padding:
        20px;
}

.key-box-heading {
    display:
        flex;

    justify-content:
        space-between;

    margin-bottom:
        11px;

    font-size:
        12px;

    color:
        var(--muted);
}

.key-toggle {
    border: 0;

    background:
        transparent;

    color:
        var(--black);

    padding: 0;

    font-size:
        12px;
}

.access-key-box input {
    width:
        100%;

    height:
        45px;

    padding:
        0 12px;

    border:
        1px solid
        #ddd;

    border-radius:
        7px;

    background:
        white;

    font-family:
        ui-monospace,
        SFMono-Regular,
        Menlo,
        Consolas,
        monospace;

    font-size:
        12px;
}

.key-actions {
    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    margin-top:
        13px;
}

.order-row {
    display:
        grid;

    grid-template-columns:
        1fr 130px 90px;

    align-items:
        center;

    gap:
        20px;

    padding:
        18px 0;

    border-top:
        1px solid
        var(--line);
}

.order-row:first-child {
    border-top: 0;
}

.order-main {
    display:
        flex;

    gap:
        15px;

    align-items:
        center;
}

.order-main > strong {
    color:
        var(--muted-2);

    font-weight:
        500;

    font-size:
        12px;
}

.order-main h4 {
    margin:
        0 0 4px;

    font-size:
        14px;
}

.order-main span {
    color:
        var(--muted);

    font-size:
        12px;
}

.order-price strong,
.order-price span {
    display:
        block;
}

.order-price strong {
    font-size:
        14px;
}

.order-price span {
    color:
        var(--muted);

    font-size:
        11px;
}

.client-help-card {
    background:
        var(--black);

    color:
        white;

    border-radius:
        14px;

    padding:
        38px;

    display:
        flex;

    justify-content:
        space-between;

    align-items:
        flex-end;
}

.client-help-card h2 {
    margin:
        15px 0 8px;

    font-size:
        28px;

    font-weight:
        500;
}

.client-help-card p {
    color:
        #aaa;

    margin-bottom:
        0;
}


/* EMPTY */

.empty-state,
.loading-box {
    padding:
        45px;

    text-align:
        center;

    color:
        var(--muted);

    background:
        var(--surface-soft);

    border-radius:
        10px;
}

.empty-state h3 {
    color:
        var(--black);

    margin-top: 0;
}

.empty-state .btn {
    margin-top:
        15px;
}


/* TOAST */

.toast-container {
    position:
        fixed;

    right:
        24px;

    bottom:
        24px;

    z-index:
        200;

    display:
        flex;

    flex-direction:
        column;

    gap:
        10px;
}

.toast {
    min-width:
        240px;

    max-width:
        360px;

    padding:
        14px 17px;

    border:
        1px solid
        #ddd;

    background:
        white;

    border-radius:
        9px;

    box-shadow:
        0 8px 30px
        rgba(
            0,
            0,
            0,
            0.1
        );

    opacity: 0;

    transform:
        translateY(10px);

    transition:
        all 0.2s;

    font-size:
        13px;
}

.toast.show {
    opacity: 1;

    transform:
        translateY(0);
}

.toast.success {
    border-left:
        3px solid
        var(--green);
}

.toast.error {
    border-left:
        3px solid
        #d33;
}


/* FOOTER */

.site-footer {
    padding:
        50px 30px;

    border-top:
        1px solid
        var(--line);
}

.footer-inner {
    max-width:
        1320px;

    margin:
        auto;

    display:
        flex;

    justify-content:
        space-between;
}

.footer-inner p {
    color:
        var(--muted);

    font-size:
        12px;
}

.footer-links {
    display:
        flex;

    gap:
        25px;

    color:
        var(--muted);

    font-size:
        13px;
}


/* RESPONSIVE */

@media (
    max-width: 760px
) {

    .desktop-nav {
        display: none;
    }

    .nav-wrap {
        padding:
            0 18px;
    }

    .nav-actions {
        gap:
            12px;
    }

    .hero-new {
        min-height:
            610px;

        padding:
            80px 22px;
    }

    .hero-new h1 {
        font-size:
            55px;

        letter-spacing:
            -3px;
    }

    .hero-description {
        font-size:
            16px;
    }

    .steps-grid,
    .pricing-new-grid,
    .mini-steps {
        grid-template-columns:
            1fr;
    }

    .download-feature-inner {
        grid-template-columns:
            1fr;

        gap:
            60px;
    }

    .simple-section,
    .download-feature,
    .how-section {
        padding:
            90px 22px;
    }

    .section-title-block h2,
    .download-copy h2 {
        letter-spacing:
            -2px;
    }

    .download-card {
        align-items:
            flex-start;

        flex-direction:
            column;
    }

    .download-actions {
        flex-wrap:
            wrap;
    }

    .account-page {
        padding:
            55px 18px 90px;
    }

    .account-heading {
        align-items:
            flex-start;

        flex-direction:
            column;

        gap:
            25px;
    }

    .account-summary {
        grid-template-columns:
            1fr;
    }

    .summary-item {
        border-right: 0;

        border-bottom:
            1px solid
            var(--line);
    }

    .summary-item:last-child {
        border-bottom: 0;
    }

    .subscription-details {
        grid-template-columns:
            1fr;
    }

    .order-row {
        grid-template-columns:
            1fr;

        gap:
            10px;
    }

    .client-help-card {
        align-items:
            flex-start;

        flex-direction:
            column;

        gap:
            30px;
    }

    .key-actions {
        align-items:
            flex-start;

        flex-direction:
            column;

        gap:
            8px;
    }

    .footer-inner {
        flex-direction:
            column;

        gap:
            25px;
    }

    .final-cta-inner h2 {
        font-size:
            42px;
    }
}
