/* Locally hosted Latin fonts, licensed under the SIL Open Font License. */
@font-face {
    font-family: 'ONYX Space Grotesk';
    font-style: normal;
    font-weight: 500 700;
    font-display: swap;
    src: url(../fonts/onyx/space-grotesk.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'ONYX Work Sans';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url(../fonts/onyx/work-sans.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Public pages only. Keep every selector inside this layout boundary. */
.header-wrapper.public-header-wrapper {
    --onyx-ink: #252333;
    --onyx-violet: #5634cb;
    --onyx-lilac: #eeeafa;
    --onyx-mint: #d7eadf;
    --onyx-yellow: #f4d878;
    --onyx-white: #fff;
    position: relative;
    width: 100%;
    min-height: 100vh;
    background: var(--onyx-white);
    color: var(--onyx-ink);
    font-family: "ONYX Work Sans", sans-serif;
    font-size: 16px;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;

    *, *::before, *::after { box-sizing: border-box; }

    ::selection {
        background: var(--onyx-yellow);
        color: var(--onyx-ink);
    }

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

        &:hover { color: inherit; }
    }

    :focus-visible {
        outline: 3px solid var(--onyx-violet);
        outline-offset: 5px;
    }

    [id] { scroll-margin-top: 28px; }

    :is(h1, h2, h3, h4) {
        margin: 0;
        color: inherit;
        font-family: "ONYX Space Grotesk", sans-serif;
        font-weight: 600;
        line-height: 1.12;
        letter-spacing: -0.045em;
        text-wrap: balance;
    }

    h1 { font-size: clamp(44px, 5.6vw, 78px); }
    h2 { font-size: clamp(32px, 3.6vw, 48px); }
    h3 { font-size: 25px; letter-spacing: -0.035em; }

    p {
        margin: 0 0 20px;

        &:last-child { margin-bottom: 0; }
    }

    .onyx-container {
        width: min(1240px, calc(100% - 96px));
        margin-inline: auto;
    }

    .onyx-section { padding-block: 100px; }
    .onyx-lilac { background: var(--onyx-lilac); }
    .onyx-mint { background: var(--onyx-mint); }

    /* Header and navigation */
    .onyx-header {
        color: var(--onyx-ink);
        border-bottom: 1px solid var(--onyx-ink);
    }

    .onyx-header-inner {
        min-height: 100px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 32px;
    }

    .onyx-brand {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        font-family: "ONYX Space Grotesk", sans-serif;
        font-size: 30px;
        font-weight: 700;
        letter-spacing: -1.5px;
        line-height: 1;
    }

    .onyx-mark {
        width: 32px;
        height: 32px;
        color: var(--onyx-violet);
        flex-shrink: 0;
    }

    .onyx-mark-play { fill: var(--onyx-white); }

    .onyx-nav {
        display: flex;
        align-items: center;
        gap: 30px;

        a {
            padding-block: 10px;
            border-bottom: 2px solid transparent;
        }

        a[aria-current="page"] {
            font-weight: 600;
            border-color: var(--onyx-ink);
        }
    }

    .onyx-nav a:hover, .onyx-login:hover {
        text-decoration: underline;
        text-underline-offset: 6px;
    }

    .onyx-account-nav {
        display: flex;
        align-items: center;
        gap: 24px;
    }

    /* Buttons and shared text styles */
    .onyx-button {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        padding: 15px 25px;
        min-height: 54px;
        background: var(--onyx-violet);
        color: var(--onyx-white);
        border: 1px solid var(--onyx-violet);
        border-radius: 4px;
        font: 600 15px/1.35 "ONYX Work Sans", sans-serif;
        text-align: center;
        cursor: pointer;

        &:hover {
            color: var(--onyx-white);
            background: var(--onyx-ink);
            border-color: var(--onyx-ink);
        }
    }

    .onyx-button-small {
        min-height: 44px;
        padding: 12px 19px;
    }

    .onyx-button-outline {
        background: transparent;
        color: var(--onyx-ink);
        border-color: var(--onyx-ink);
    }

    .onyx-button-white {
        background: var(--onyx-white);
        color: var(--onyx-ink);
        border-color: var(--onyx-white);
    }

    .onyx-actions {
        display: flex;
        flex-wrap: wrap;
        gap: 12px;
        margin-top: 30px;
    }

    .onyx-text-link {
        display: inline-block;
        font-weight: 600;
        text-decoration: underline;
        text-underline-offset: 5px;

        &:hover { text-decoration-thickness: 2px; }
    }

    .onyx-label {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        margin-bottom: 24px;
        font-size: 14px;
        font-weight: 500;

        &::before {
            content: "";
            width: 8px;
            height: 8px;
            background: var(--onyx-violet);
        }
    }

    .onyx-lead {
        max-width: 580px;
        margin-top: 26px;
        font-size: 19px;
        line-height: 1.65;
    }

    .onyx-note {
        font-size: 13px;
        margin-top: 18px;
    }

    /* Hero and pipeline preview */
    .onyx-hero { padding-block: 80px 88px; }

    .onyx-hero-grid {
        display: grid;
        grid-template-columns: 1.05fr 1fr;
        align-items: center;
        gap: 64px;
    }

    .onyx-hero-copy {
        padding-block: 16px;

        h1 { max-width: 650px; }
    }

    .onyx-pipeline {
        margin: 0;
        padding: 28px;
        background: var(--onyx-lilac);
        border: 1px solid var(--onyx-ink);
        border-radius: 8px;
    }

    .onyx-pipeline-title {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        padding-bottom: 22px;
        border-bottom: 1px solid var(--onyx-ink);
        font-size: 14px;

        strong { font-weight: 600; }
        span { font-size: 12px; }
    }

    .onyx-pipeline-list {
        list-style: none;
        padding: 22px 0 0;
        margin: 0;

        > li {
            position: relative;
            display: grid;
            grid-template-columns: 42px 1fr auto;
            align-items: center;
            gap: 14px;
            padding: 15px;
            background: var(--onyx-white);
            border: 1px solid var(--onyx-ink);
            border-radius: 3px;
        }

        > li + li { margin-top: 22px; }

        > li + li::before {
            content: "";
            position: absolute;
            width: 1px;
            height: 22px;
            background: var(--onyx-ink);
            left: 36px;
            top: -23px;
        }

        strong {
            display: block;
            font-size: 15px;
            font-weight: 600;
            line-height: 1.4;
        }

        small {
            display: block;
            font-size: 12px;
            margin-top: 3px;
        }

        .onyx-render-node {
            background: var(--onyx-violet);
            color: var(--onyx-white);
            border-color: var(--onyx-violet);
        }
    }

    .onyx-node-icon {
        width: 40px;
        height: 40px;
        display: grid;
        place-items: center;
        background: var(--onyx-lilac);
        color: var(--onyx-ink);
        border-radius: 3px;

        svg {
            width: 23px;
            height: 23px;
            fill: none;
            stroke: currentColor;
            stroke-width: 1.7;
            stroke-linecap: round;
            stroke-linejoin: round;
        }
    }

    .onyx-node-icon-mint { background: var(--onyx-mint); }
    .onyx-node-icon-yellow { background: var(--onyx-yellow); }
    .onyx-node-check { font-size: 18px; }

    .onyx-render-count {
        padding: 3px 7px;
        background: var(--onyx-white);
        color: var(--onyx-ink);
        font-size: 12px;
        font-weight: 600;
    }

    .onyx-pipeline figcaption {
        margin-top: 18px;
        font-size: 12px;
    }

    /* Integrations, workflow, and use cases */
    .onyx-integration-strip {
        border-block: 1px solid var(--onyx-ink);
        padding-block: 25px;
    }

    .onyx-integrations {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        align-items: center;
        justify-items: center;
        gap: 32px;

        img {
            display: block;
            width: 160px;
            max-width: 100%;
            height: 48px;
            object-fit: contain;
        }
    }

    .onyx-step-file {
        display: block;
        margin-top: 22px;
        padding: 12px 14px;
        background: var(--onyx-lilac);
        border-radius: 4px;
        font-size: 12px;
        font-weight: 500;
    }

    /* Explanatory figures use the public page palette and need no JavaScript. */
    .onyx-illustration {
        margin: 28px 0;

        img { display: block; width: 100%; height: auto; }
        figcaption { margin-top: 10px; font-size: 12px; }
    }

    .onyx-example-art { display: block; width: 100%; height: auto; margin-bottom: 24px; }
    .onyx-diagram-label { display: block; margin-bottom: 18px; font-size: 12px; font-weight: 500; letter-spacing: 0.09em; text-transform: uppercase; }

    .onyx-use-art {
        position: relative;
        aspect-ratio: 16 / 9;
        border: 1px solid var(--onyx-ink);
        border-radius: 4px;
        overflow: hidden;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .onyx-use-art-music { background: var(--onyx-ink); gap: 9%; }
    .onyx-record { width: 38%; aspect-ratio: 1; border-radius: 50%; background: repeating-radial-gradient(circle, #252333 0 7px, #454054 8px 9px); border: 1px solid #6b637e; position: relative; }
    .onyx-record::after { content: ""; position: absolute; inset: 32%; border: 12px solid var(--onyx-violet); border-radius: 50%; background: var(--onyx-yellow); }
    .onyx-lyric-lines { width: 33%; display: grid; gap: 12px; }
    .onyx-lyric-lines i { height: 5px; background: #8d879c; border-radius: 3px; }
    .onyx-lyric-lines i:nth-child(2) { background: var(--onyx-yellow); width: 88%; }
    .onyx-lyric-lines i:nth-child(3) { width: 68%; }
    .onyx-art-time { position: absolute; left: 16px; bottom: 12px; color: var(--onyx-white); font: 10px/1.4 "ONYX Work Sans", sans-serif; letter-spacing: 0.08em; }
    .onyx-use-art-clips { background: #e1daf5; padding: 18px; flex-direction: column; gap: 10px; }
    .onyx-clip-frames { display: flex; width: 100%; gap: 6px; }
    .onyx-clip-frames i { flex: 1; display: grid; place-items: center; aspect-ratio: 1.25; background: var(--onyx-violet); color: var(--onyx-white); font-style: normal; border-radius: 3px; }
    .onyx-clip-frames i:nth-child(2) { background: #9179d7; }
    .onyx-clip-track { width: 100%; height: 14px; background: repeating-linear-gradient(90deg, #6e997f 0 3px, var(--onyx-mint) 3px 6px); border-radius: 2px; }
    .onyx-use-art-clips .onyx-art-time { color: var(--onyx-ink); }
    .onyx-use-art-series { background: var(--onyx-yellow); }
    .onyx-episode-back { position: absolute; width: 44%; height: 72%; top: 10%; left: 20%; border: 1px solid var(--onyx-ink); background: #e6c359; padding: 15px; font-size: 38px; transform: rotate(-8deg); }
    .onyx-episode-front { width: 44%; height: 72%; background: var(--onyx-white); border: 1px solid var(--onyx-ink); position: absolute; top: 16%; left: 36%; padding: 12px 16px; display: flex; flex-direction: column; justify-content: center; }
    .onyx-episode-front span { font-size: 9px; letter-spacing: 0.1em; }
    .onyx-episode-front strong { font: 600 42px/1.2 "ONYX Space Grotesk", sans-serif; }
    .onyx-episode-front i { display: block; height: 4px; background: var(--onyx-violet); width: 60%; margin-top: 6px; }

    .onyx-batch-flow {
        display: grid;
        grid-template-columns: 1fr auto 1.2fr auto 1fr;
        align-items: center;
        gap: 22px;
        margin: 0;
        padding: 32px;
        border: 1px solid var(--onyx-ink);
        background: var(--onyx-white);
        border-radius: 6px;

        figcaption { grid-column: 1 / -1; text-align: center; font-size: 12px; }
    }

    .onyx-batch-stage { text-align: center; min-width: 0; }
    .onyx-batch-stage > strong { display: block; margin-top: 20px; font-size: 13px; font-weight: 500; }
    .onyx-file-stack, .onyx-output-stack { display: flex; align-items: center; justify-content: center; height: 70px; }
    .onyx-file-stack span { display: block; width: 44px; height: 58px; margin-inline: -3px; border: 1px solid var(--onyx-ink); border-radius: 3px; background: var(--onyx-lilac); transform: rotate(-10deg); }
    .onyx-file-stack span:nth-child(2) { transform: translateY(-6px); background: var(--onyx-mint); }
    .onyx-file-stack span:last-child { transform: rotate(10deg); background: var(--onyx-yellow); }
    .onyx-output-stack span { display: grid; place-items: center; width: 59px; height: 42px; margin-inline: -4px; border: 1px solid var(--onyx-ink); border-radius: 3px; background: var(--onyx-mint); transform: rotate(-7deg); }
    .onyx-output-stack span:nth-child(2) { transform: translateY(-6px); background: var(--onyx-lilac); z-index: 1; }
    .onyx-output-stack span:last-child { transform: rotate(7deg); background: var(--onyx-yellow); }
    .onyx-flow-arrow { font-size: 30px; color: var(--onyx-violet); }
    .onyx-batch-engine { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 24px 16px; background: var(--onyx-violet); color: var(--onyx-white); border-radius: 5px; text-align: center; }
    .onyx-batch-engine strong { font: 500 22px/1.3 "ONYX Space Grotesk", sans-serif; }
    .onyx-batch-engine span { font-size: 12px; }

    .onyx-usage-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
    .onyx-usage-card { padding: 28px; border: 1px solid var(--onyx-ink); border-radius: 6px; }
    .onyx-usage-card h3 { font-size: 23px; margin-bottom: 26px; }
    .onyx-usage-card p { font-size: 14px; }
    .onyx-usage-card .onyx-note { font-size: 12px; }
    .onyx-publish-bars, .onyx-token-example, .onyx-render-equation { min-height: 215px; margin-bottom: 24px; }
    .onyx-publish-bars > div { display: grid; grid-template-columns: 1fr auto; gap: 5px; margin-bottom: 16px; font-size: 13px; }
    .onyx-publish-bars i { grid-column: 1 / -1; display: block; height: 12px; border-radius: 2px; }
    .onyx-bar-creator { width: 40%; background: var(--onyx-violet); }
    .onyx-bar-studio { width: 100%; background: var(--onyx-violet); }
    .onyx-bar-unlimited { width: 100%; background: repeating-linear-gradient(120deg, var(--onyx-mint) 0 8px, #afcdbb 8px 10px); }
    .onyx-token-bar { display: grid; grid-template-columns: 3fr 1fr; height: 67px; }
    .onyx-token-bar span { display: grid; place-items: center; background: var(--onyx-violet); color: var(--onyx-white); font-size: 17px; }
    .onyx-token-bar span:last-child { background: var(--onyx-yellow); color: var(--onyx-ink); }
    .onyx-token-key { display: flex; justify-content: space-between; gap: 8px; margin-top: 8px; font-size: 11px; }
    .onyx-token-example > strong { display: block; margin-top: 24px; font: 600 27px/1.4 "ONYX Space Grotesk", sans-serif; }
    .onyx-token-example > span { display: block; font-size: 12px; }
    .onyx-render-equation { display: grid; grid-template-columns: 1fr auto 1fr; align-content: start; align-items: center; gap: 14px; text-align: center; }
    .onyx-render-equation > div { display: flex; flex-direction: column; align-items: center; }
    .onyx-render-equation strong { font-size: 17px; }
    .onyx-render-equation small { font-size: 12px; }
    .onyx-clock-face { display: block; position: relative; width: 64px; height: 64px; border-radius: 50%; border: 1px solid var(--onyx-ink); background: conic-gradient(var(--onyx-mint) 0 50%, white 50%); margin-bottom: 9px; }
    .onyx-clock-face::after { content: ""; position: absolute; top: 9px; left: 30px; width: 14px; height: 23px; border-left: 2px solid var(--onyx-ink); border-bottom: 2px solid var(--onyx-ink); }
    .onyx-render-equation .onyx-equation-total { grid-column: 1 / -1; flex-direction: row; justify-content: center; gap: 10px; padding: 10px 6px; border-radius: 4px; background: var(--onyx-lilac); }

    .onyx-debug-flow { list-style: none; margin: 32px 0 0; padding: 0; }
    .onyx-debug-flow li { position: relative; display: flex; align-items: center; gap: 16px; margin-top: 20px; padding: 16px; background: white; border: 1px solid var(--onyx-ink); border-radius: 4px; }
    .onyx-debug-flow li + li::before { content: ""; position: absolute; height: 20px; width: 1px; left: 33px; top: -21px; background: var(--onyx-ink); }
    .onyx-debug-flow li > span { display: grid; place-items: center; flex-shrink: 0; width: 34px; height: 34px; border-radius: 50%; background: var(--onyx-yellow); font-size: 12px; }
    .onyx-debug-flow strong { display: block; font-size: 14px; }
    .onyx-debug-flow small { display: block; font-size: 12px; }

    .onyx-section-heading {
        display: grid;
        grid-template-columns: 1.2fr 1fr;
        gap: 100px;
        align-items: end;
        margin-bottom: 48px;

        p {
            max-width: 470px;
            margin: 0;
        }
    }

    .onyx-steps {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 30px;
        list-style: none;
        margin: 0;
        padding: 0;
        counter-reset: pipeline-step;

        > li {
            display: flex;
            flex-direction: column;
            border-top: 1px solid var(--onyx-ink);
            padding-top: 22px;
            counter-increment: pipeline-step;
        }

        > li::before {
            content: counter(pipeline-step, decimal-leading-zero);
            display: block;
            margin-bottom: 35px;
            font-family: "ONYX Space Grotesk", sans-serif;
            font-size: 16px;
            font-weight: 500;
        }

        h3 { margin-bottom: 15px; }
        p { font-size: 15px; }
        .onyx-step-file { margin-top: auto; }
    }

    .onyx-use-grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0;
        border: 1px solid var(--onyx-ink);
    }

    .onyx-use-case {
        padding: 32px;

        + .onyx-use-case { border-left: 1px solid var(--onyx-ink); }
        &:first-child { background: var(--onyx-mint); }
        h3 { margin: 30px 0 16px; }
        p { font-size: 15px; }

        .onyx-node-icon {
            width: 48px;
            height: 48px;
            background: var(--onyx-white);
            border: 1px solid var(--onyx-ink);
        }
    }

    .onyx-use-output {
        display: block;
        font-size: 13px;
        padding-top: 22px;
        margin-top: 25px;
        border-top: 1px solid var(--onyx-ink);
    }

    /* Benefits and call to action */
    .onyx-split {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 90px;
        align-items: center;

        h2 + p { margin-top: 25px; }
    }

    .onyx-benefits {
        margin: 0;
        padding: 0;
        list-style: none;

        li {
            padding: 24px 0;
            border-bottom: 1px solid var(--onyx-ink);
        }

        li:first-child { padding-top: 0; }

        h3 {
            font-size: 23px;
            margin-bottom: 10px;
        }

        p { font-size: 15px; }
    }

    .onyx-cta {
        background: var(--onyx-violet);
        color: var(--onyx-white);
        padding-block: 70px;
    }

    .onyx-cta-inner {
        display: grid;
        grid-template-columns: 1fr auto;
        gap: 60px;
        align-items: center;
    }

    .onyx-cta h2 { max-width: 700px; }
    .onyx-cta p { margin-top: 22px; }
    .onyx-cta :focus-visible { outline-color: var(--onyx-yellow); }

    /* Feature pages and examples */
    .onyx-page-hero {
        padding-block: 78px 70px;

        h1 { max-width: 950px; }
        .onyx-lead { max-width: 720px; }
    }

    .onyx-jump-links {
        display: flex;
        flex-wrap: wrap;
        gap: 16px 28px;
        padding-top: 30px;
        margin-top: 35px;
        border-top: 1px solid var(--onyx-ink);
        font-size: 14px;

        a {
            text-decoration: underline;
            text-underline-offset: 5px;
        }
    }

    .onyx-feature-row {
        display: grid;
        grid-template-columns: 0.85fr 1.15fr;
        gap: 100px;
        align-items: center;
        padding-block: 64px;
        border-bottom: 1px solid var(--onyx-ink);

        &:first-child { padding-top: 0; }

        &:last-child {
            padding-bottom: 0;
            border-bottom: 0;
        }
    }

    .onyx-feature-copy h2 {
        font-size: clamp(30px, 3vw, 42px);
        margin-bottom: 24px;
    }

    .onyx-check-list {
        list-style: none;
        padding: 0;
        margin: 24px 0 0;

        li {
            position: relative;
            padding-left: 25px;
            margin-top: 12px;
            font-size: 15px;
        }

        li::before {
            content: "✓";
            position: absolute;
            left: 0;
            font-weight: 600;
        }
    }

    .onyx-example {
        min-width: 0;
        padding: 32px;
        border: 1px solid var(--onyx-ink);
        background: var(--onyx-lilac);

        h3 {
            font-size: 21px;
            margin-bottom: 24px;
        }
    }

    .onyx-data-row {
        display: grid;
        grid-template-columns: 1fr 1.5fr;
        gap: 20px;
        padding: 15px 0;
        border-top: 1px solid var(--onyx-ink);
        font-size: 14px;

        dt { font-weight: 500; }
        dd { margin: 0; }
    }

    .onyx-example dl { margin: 0; }

    .onyx-template-preview {
        display: flex;
        align-items: center;
        justify-content: center;
        min-height: 180px;
        padding: 24px;
        background: var(--onyx-violet);
        color: var(--onyx-white);
        margin-bottom: 24px;
        text-align: center;

        p {
            font-family: "ONYX Space Grotesk", sans-serif;
            font-size: 36px;
            font-weight: 600;
            line-height: 1.2;
            letter-spacing: -1.5px;
        }
    }

    .onyx-wave {
        display: flex;
        align-items: center;
        gap: 5px;
        height: 64px;
        margin: 22px 0;

        span {
            flex: 1;
            min-width: 0;
            max-width: 8px;
            height: 35%;
            background: var(--onyx-violet);
        }

        span:nth-child(3n) { height: 90%; }
        span:nth-child(3n + 1) { height: 60%; }
    }

    .onyx-timeline {
        display: grid;
        gap: 9px;
        margin: 25px 0;

        span {
            display: block;
            padding: 10px 14px;
            background: var(--onyx-mint);
            border: 1px solid var(--onyx-ink);
            font-size: 13px;
        }

        span:nth-child(2) {
            margin-left: 16%;
            background: var(--onyx-yellow);
        }

        span:nth-child(3) {
            margin-right: 22%;
            background: var(--onyx-white);
        }
    }

    .onyx-deployment {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 36px;
        margin-top: 40px;

        article {
            border-top: 1px solid var(--onyx-ink);
            padding-top: 26px;
        }

        h3 { margin-bottom: 15px; }
    }

    /* Pricing */
    .onyx-price-section { padding-block: 0 80px; }

    .onyx-pricing-grid {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        border: 1px solid var(--onyx-ink);
    }

    .onyx-plan {
        padding: 28px 25px;
        display: flex;
        flex-direction: column;
        background: var(--onyx-white);

        + .onyx-plan { border-left: 1px solid var(--onyx-ink); }
    }

    .onyx-plan-featured { background: var(--onyx-mint); }
    .onyx-plan-enterprise { background: var(--onyx-lilac); }

    .onyx-plan h2 {
        font-size: 25px;
        letter-spacing: -0.8px;
    }

    .onyx-plan-fit {
        font-size: 13px;
        margin: 10px 0 20px;
        min-height: 43px;
    }

    .onyx-price {
        display: flex;
        flex-wrap: wrap;
        align-items: baseline;
        gap: 7px;
        margin-bottom: 22px;

        strong {
            font-family: "ONYX Space Grotesk", sans-serif;
            font-weight: 600;
            font-size: 48px;
            line-height: 1.25;
            letter-spacing: -2px;
        }

        span { font-size: 13px; }
    }

    .onyx-price-custom strong {
        font-size: 32px;
        letter-spacing: -1px;
        line-height: 60px;
    }

    .onyx-plan-description {
        font-size: 14px;
        min-height: 92px;
    }

    .onyx-plan-limits {
        margin: 0 0 24px;
        border-top: 1px solid var(--onyx-ink);

        > div {
            display: grid;
            grid-template-columns: minmax(0, 1fr) auto;
            align-items: center;
            gap: 12px;
            min-height: 68px;
            padding-block: 12px;
            border-bottom: 1px solid var(--onyx-ink);
        }

        dt {
            max-width: 135px;
            font-size: 13px;
            font-weight: 400;
            line-height: 1.5;
        }

        dd {
            margin: 0;
            font-family: "ONYX Space Grotesk", sans-serif;
            font-size: 21px;
            font-weight: 600;
            letter-spacing: -0.6px;
        }
    }

    .onyx-plan-example {
        margin-bottom: 28px;

        h3 {
            margin-bottom: 16px;
            font-family: "ONYX Work Sans", sans-serif;
            font-size: 14px;
            line-height: 1.5;
            letter-spacing: 0;
            text-wrap: initial;
        }

        p {
            font-size: 13px;
            margin-bottom: 14px;
        }
    }

    .onyx-plan .onyx-button {
        margin-top: auto;
        padding-inline: 12px;
    }

    .onyx-pricing-note {
        margin-top: 22px;
        font-size: 13px;
        max-width: 850px;
    }

    /* FAQs, guides, and support */
    .onyx-faq-layout {
        display: grid;
        grid-template-columns: 0.75fr 1.25fr;
        gap: 100px;
    }

    .onyx-faq-intro p { margin-top: 24px; }

    .onyx-faq {
        border-top: 1px solid var(--onyx-ink);

        details { border-bottom: 1px solid var(--onyx-ink); }

        summary {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 24px;
            padding: 23px 0;
            font-weight: 600;
            font-size: 17px;
            line-height: 1.5;
            cursor: pointer;
            list-style: none;
        }

        summary::-webkit-details-marker { display: none; }

        summary::after {
            content: "+";
            font-family: "ONYX Space Grotesk", sans-serif;
            font-size: 25px;
            font-weight: 400;
            flex-shrink: 0;
        }

        details[open] > summary::after { content: "−"; }

        details > p {
            padding: 0 35px 25px 0;
            margin: 0;
            font-size: 15px;
        }
    }

    .onyx-guide {
        display: grid;
        grid-template-columns: 0.7fr 1.3fr;
        gap: 90px;
    }

    .onyx-guide-list {
        margin: 0;
        padding-left: 26px;

        li {
            padding-left: 12px;
            padding-bottom: 30px;
        }

        li:last-child { padding-bottom: 0; }

        li::marker {
            font-family: "ONYX Space Grotesk", sans-serif;
            font-weight: 600;
        }

        h3 { margin-bottom: 12px; }
    }

    .onyx-support-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 80px;

        h2 { margin-bottom: 24px; }
        .onyx-text-link { overflow-wrap: anywhere; }
    }

    /* Footer and skip link */
    .onyx-footer { padding-block: 65px 24px; }

    .onyx-footer-grid {
        display: grid;
        grid-template-columns: 1.8fr 1fr 1fr;
        gap: 60px;
        padding-bottom: 60px;
    }

    .onyx-footer-intro p {
        font-size: 14px;
        margin-top: 22px;
    }

    .onyx-footer h2 {
        font-family: "ONYX Work Sans", sans-serif;
        font-size: 14px;
        font-weight: 600;
        letter-spacing: 0;
        margin-bottom: 20px;
    }

    .onyx-footer nav a {
        display: block;
        width: fit-content;
        font-size: 14px;
        margin-top: 10px;

        &:hover {
            text-decoration: underline;
            text-underline-offset: 4px;
        }
    }

    .onyx-footer-bottom {
        display: flex;
        justify-content: space-between;
        gap: 20px;
        padding-top: 24px;
        border-top: 1px solid var(--onyx-ink);
        font-size: 12px;
    }

    .onyx-skip-link {
        position: absolute;
        left: 24px;
        top: 12px;
        padding: 12px 18px;
        background: var(--onyx-white);
        border: 1px solid var(--onyx-ink);
        z-index: 2;
        transform: translateY(-200%);

        &:focus { transform: translateY(0); }
    }

    /* Existing authentication forms share the public shell and retain their behavior. */
    .auth-card-wrapper {
        padding-block: 70px;
        min-height: 58vh;
        background: var(--onyx-lilac);

        .card {
            border: 1px solid var(--onyx-ink);
            border-radius: 4px;
            box-shadow: none;
        }

        .card-header {
            background: var(--onyx-white);
            border-bottom: 1px solid var(--onyx-ink);
            font-family: "ONYX Space Grotesk", sans-serif;
            font-size: 25px;
        }

        .card-body { padding: 30px; }

        .btn-primary {
            background: var(--onyx-violet);
            border-color: var(--onyx-violet);
            color: var(--onyx-white);
        }

        .btn-primary:hover {
            background: var(--onyx-ink);
            border-color: var(--onyx-ink);
        }

        .btn-link { text-decoration: underline; }

        .form-control:focus, .btn:focus {
            box-shadow: none;
            border-color: var(--onyx-violet);
        }

        .form-error { font-style: normal; }
    }

    @media (min-width: 1600px) {
        .onyx-hero { padding-block: 110px; }
    }

    @media (max-width: 1100px) {
        .onyx-container { width: calc(100% - 64px); }
        .onyx-header-inner { gap: 22px; }
        .onyx-nav { gap: 20px; }
        .onyx-account-nav { gap: 16px; }
        .onyx-hero-grid { gap: 35px; }
        .onyx-pipeline { padding: 20px; }
        .onyx-section-heading, .onyx-feature-row, .onyx-faq-layout, .onyx-guide, .onyx-split { gap: 45px; }
        .onyx-pricing-grid { grid-template-columns: 1fr 1fr; }
        .onyx-plan { padding: 30px; }
        .onyx-plan:nth-child(3) { border-left: 0; }
        .onyx-plan:nth-child(n + 3) { border-top: 1px solid var(--onyx-ink); }
        .onyx-plan-description { min-height: 0; }
        .onyx-use-case { padding: 25px; }
    }

    @media (max-width: 800px) {
        .onyx-container { width: calc(100% - 40px); }

        .onyx-header-inner {
            flex-wrap: wrap;
            padding-top: 20px;
            row-gap: 10px;
        }

        .onyx-nav {
            order: 3;
            width: 100%;
            justify-content: space-between;
            gap: 16px;
        }

        .onyx-nav a {
            padding: 12px 0 15px;
            font-size: 14px;
        }

        .onyx-account-nav { margin-left: auto; }
        .onyx-login { font-size: 14px; }
        .onyx-hero { padding-block: 45px 60px; }

        .onyx-hero-grid {
            grid-template-columns: 1fr;
            gap: 36px;
        }

        .onyx-hero-copy h1 {
            max-width: 600px;
            font-size: clamp(48px, 8.5vw, 70px);
        }

        .onyx-pipeline {
            max-width: 560px;
            width: 100%;
        }

        .onyx-integrations { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
        .onyx-usage-grid { grid-template-columns: 1fr; }
        .onyx-publish-bars, .onyx-token-example, .onyx-render-equation { min-height: 0; }
        .onyx-batch-flow { grid-template-columns: 1fr; gap: 16px; padding: 24px; }
        .onyx-batch-flow figcaption { grid-column: 1; }
        .onyx-batch-engine { width: min(100%, 340px); justify-self: center; }
        .onyx-flow-arrow { justify-self: center; transform: rotate(90deg); }
        .onyx-section { padding-block: 65px; }

        .onyx-section-heading,
        .onyx-split,
        .onyx-feature-row,
        .onyx-faq-layout,
        .onyx-guide,
        .onyx-cta-inner {
            grid-template-columns: 1fr;
            gap: 30px;
        }

        .onyx-section-heading { margin-bottom: 36px; }
        .onyx-section-heading p { max-width: 620px; }

        .onyx-steps {
            grid-template-columns: 1fr 1fr;
            gap: 35px;
        }

        .onyx-steps > li::before { margin-bottom: 20px; }
        .onyx-use-grid { grid-template-columns: 1fr; }
        .onyx-use-case { padding: 30px; }

        .onyx-use-case + .onyx-use-case {
            border-left: 0;
            border-top: 1px solid var(--onyx-ink);
        }

        .onyx-use-case h3 { margin-top: 22px; }
        .onyx-cta-inner > a { justify-self: start; }
        .onyx-page-hero { padding-block: 50px; }
        .onyx-feature-row { padding-block: 50px; }

        .onyx-footer-grid {
            gap: 30px;
            grid-template-columns: 1fr 1fr;
        }

        .onyx-footer-intro { grid-column: 1 / -1; }

        .onyx-support-grid {
            grid-template-columns: 1fr;
            gap: 50px;
        }
    }

    @media (max-width: 480px) {
        .onyx-brand {
            font-size: 26px;
            gap: 7px;
        }

        .onyx-mark {
            width: 27px;
            height: 27px;
        }

        .onyx-account-nav { gap: 12px; }

        .onyx-button-small {
            padding: 10px 12px;
            font-size: 12px;
        }

        .onyx-lead { font-size: 17px; }
        .onyx-pipeline { padding: 16px; }

        .onyx-pipeline-list > li {
            grid-template-columns: 34px 1fr auto;
            gap: 10px;
            padding: 12px;
        }

        .onyx-node-icon {
            width: 34px;
            height: 34px;
        }

        .onyx-pipeline-list strong { font-size: 14px; }
        .onyx-pipeline-list small { font-size: 11px; }

        .onyx-pipeline-title {
            align-items: flex-start;
            flex-direction: column;
            gap: 2px;
            padding-bottom: 15px;
        }

        .onyx-pipeline-list > li + li::before { left: 29px; }
        .onyx-steps, .onyx-deployment, .onyx-pricing-grid { grid-template-columns: 1fr; }

        .onyx-plan + .onyx-plan {
            border-left: 0;
            border-top: 1px solid var(--onyx-ink);
        }

        .onyx-plan-fit { min-height: 0; }
        .onyx-example { padding: 22px; }
        .onyx-data-row { gap: 12px; }

        .onyx-footer-bottom {
            flex-direction: column;
            gap: 8px;
        }

        .auth-card-wrapper .card-body { padding: 20px; }
    }
}
