@font-face {
    font-family: "Inter";
    font-style: normal;
    font-weight: 100 900;
    font-display: optional;
    src: url("/assets/fonts/inter-latin.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: "Inter";
    font-style: normal;
    font-weight: 100 900;
    font-display: optional;
    src: url("/assets/fonts/inter-latin-ext.woff2") format("woff2");
    unicode-range:
        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
        U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF,
        U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
    color-scheme: light;
    --color-page: #e8e7e5;
    --color-surface: #ffffff;
    --color-text: #333333;
    --color-muted: #777777;
    --color-ink: #151515;
    --color-action: #333333;
    --color-action-hover: #242424;
    --color-link-hover: #902f65;
    --color-focus: #0059d8;
    --color-border: #dedede;
    --color-static-bg: #fbfcfd;
    --color-static-text: #242a33;

    --font-family:
        Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
        "Segoe UI", sans-serif;
    --font-size-13: 13px;
    --font-size-16: 16px;
    --font-size-17: 17px;
    --font-size-20: 20px;
    --font-size-32: 32px;
    --font-size-36: 36px;
    --font-size-40: 40px;

    --line-tight: 1.05;
    --line-title: 1.15;
    --line-body: 1.4;
    --line-copy: 1.7;
    /* Type tracking knobs. Increase em values to loosen spacing. */
    --letter-spacing-title: -0.03em;
    --letter-spacing-copy: -0.01em;

    --font-regular: 400;
    --font-medium: 500;
    --font-semibold: 650;
    --font-bold: 720;

    --space-8: 8px;
    --space-16: 16px;
    --space-18: 18px;
    --space-20: 20px;
    --space-24: 24px;
    --space-28: 28px;
    --space-32: 32px;
    --space-44: 44px;
    --space-48: 48px;
    --space-52: 52px;
    --space-56: 56px;
    --space-64: 64px;
    --space-72: 72px;
    --space-88: 84px;
    --space-110: 110px;
    --space-160: 160px;

    --radius-6: 6px;
    --radius-8: 8px;
    --radius-10: 10px;
    --radius-12: 12px;
    --radius-16: 16px;
    --radius-pill: 999px;

    --container: 1080px;
    --container-copy: 608px;

    --ink: #000000;
    --muted: var(--color-text);
    --quiet: var(--color-muted);
    --blue: var(--color-focus);
    --soft: var(--color-page);
    --soft-2: #a8a8a8;
    --line: var(--color-border);
    --white: var(--color-surface);
    --dark: #080808;
    --content: var(--container);
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    background: var(--white);
    color: var(--color-ink);
    font-family: var(--font-family);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

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

img {
    display: block;
    max-width: 100%;
}

.site-shell {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: var(--white);
}

.site-shell > main {
    flex: 1;
}

.content,
.site-header,
.footer-inner {
    width: min(var(--content), calc(100% - 48px));
    margin: 0 auto;
}

.site-header {
    min-height: 80px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: var(--space-8);
    color: var(--color-text);
    font-size: var(--font-size-16);
    font-weight: var(--font-medium);
    line-height: 1;
}

.brand img {
    width: 91px;
    height: auto;
}

.brand .brand-mark {
    width: 28px;
    height: 28px;
}

.nav-link {
    color: var(--color-text);
    font-size: var(--font-size-16);
    font-weight: var(--font-regular);
    line-height: 1;
    letter-spacing: var(--letter-spacing-copy);
}

.nav-link:hover,
.footer-links a:hover,
.landing-footer-links a:hover {
    color: var(--color-link-hover);
}

.nav-link.is-requested,
.button.is-requested {
    pointer-events: none;
    opacity: 0.66;
}

.modal-open {
    overflow: hidden;
}

.landing-body {
    background: var(--color-page);
}

.landing-shell {
    background: var(--color-page);
}

.landing-panel {
    overflow: hidden;
    border-bottom-right-radius: var(--radius-16);
    border-bottom-left-radius: var(--radius-16);
    background: var(--color-surface);
    padding: var(--space-24) 0 var(--space-160);
}

.request-panel {
    padding: var(--space-24) 0 var(--space-110);
}

.landing-header {
    min-height: 24px;
}

.landing-header .nav-link {
    font-family: var(--font-family);
}

.landing-main {
    padding-top: var(--space-110);
}

.landing-intro {
    max-width: 760px;
}

.landing-hero h1 {
    margin: 0;
    color: var(--color-text);
    font-family: var(--font-family);
    font-size: var(--font-size-36);
    font-weight: var(--font-medium);
    line-height: var(--line-tight);
    letter-spacing: var(--letter-spacing-title);
}

.landing-copy {
    max-width: var(--container-copy);
    margin: var(--space-18) 0 0;
    color: var(--color-muted);
    font-family: var(--font-family);
    font-size: var(--font-size-20);
    font-weight: var(--font-regular);
    line-height: var(--line-body);
    letter-spacing: var(--letter-spacing-copy);
}

.landing-intro .button {
    font-family: var(--font-family);
    margin-top: var(--space-32);
}

.landing-visual {
    width: 100%;
    margin: var(--space-56) 0 0;
    overflow: hidden;
    border-radius: var(--radius-6);
    background: var(--color-page);
}

.landing-visual img {
    width: 100%;
    height: auto;
}

.landing-footer {
    background: var(--color-page);
    min-height: 290px;
    padding: var(--space-88) 0;
}

.landing-footer-inner {
    width: min(var(--content), calc(100% - 48px));
    margin: 0 auto;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-48);
}

.landing-footer-links {
    display: flex;
    flex-direction: column;
    gap: var(--space-16);
    color: var(--color-text);
    font-family: var(--font-family);
    font-size: var(--font-size-16);
    letter-spacing: var(--letter-spacing-copy);
    line-height: 1;
}

.landing-footer p {
    margin: 0;
    color: var(--color-muted);
    font-family: var(--font-family);
    font-size: var(--font-size-16);
    letter-spacing: var(--letter-spacing-copy);
    line-height: 1;
    text-align: right;
}

.access-modal[hidden] {
    display: none;
}

.access-modal {
    position: fixed;
    inset: 0;
    z-index: 20;
    display: grid;
    place-items: center;
    padding: 24px;
}

.access-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(21, 21, 21, 0.28);
    backdrop-filter: blur(10px);
}

.access-dialog {
    position: relative;
    width: min(456px, 100%);
    max-height: min(720px, calc(100vh - 48px));
    overflow: auto;
    border: 1px solid rgba(51, 51, 51, 0.08);
    border-radius: var(--radius-16);
    background: var(--color-surface);
    box-shadow: 0 24px 80px rgba(21, 21, 21, 0.22);
    padding: 32px;
}

.access-modal-close {
    position: absolute;
    top: 18px;
    right: 18px;
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: var(--radius-pill);
    background: #f1f1f1;
    cursor: pointer;
}

.access-modal-close::before,
.access-modal-close::after {
    content: "";
    position: absolute;
    top: 15px;
    left: 9px;
    width: 14px;
    height: 1.5px;
    border-radius: var(--radius-pill);
    background: var(--color-text);
}

.access-modal-close::before {
    transform: rotate(45deg);
}

.access-modal-close::after {
    transform: rotate(-45deg);
}

.access-dialog-copy {
    padding-right: 42px;
}

.access-dialog h2 {
    margin: 0;
    color: var(--color-text);
    font-family: var(--font-family);
    font-size: 28px;
    font-weight: var(--font-medium);
    line-height: 1.1;
    letter-spacing: var(--letter-spacing-title);
}

.hero {
    padding: 112px 0 232px;
    background: var(--white);
}

h1,
h2,
.closing-title,
.static-title {
    margin: 0;
    font-family: var(--font-family);
    font-weight: 500;
    font-kerning: normal;
    font-feature-settings: "kern" 1;
    letter-spacing: 0;
}

h1 {
    max-width: 760px;
    font-size: 40px;
    line-height: 1.05;
}

h1 span {
    color: var(--soft-2);
}

.hero-copy {
    width: 398px;
    margin: 24px 0 26px;
    color: var(--muted);
    font-size: 20px;
    line-height: 1.4;
}

.button {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    height: 48px;
    border: 0;
    padding: 0 28px;
    border-radius: var(--radius-pill);
    background: var(--color-action);
    color: var(--white);
    cursor: pointer;
    font-family: inherit;
    font-size: var(--font-size-16);
    font-weight: var(--font-medium);
    line-height: 1.25;
    letter-spacing: var(--letter-spacing-copy);
}

.button:hover {
    color: var(--white);
    background: var(--color-action-hover);
}

.workflow {
    margin-top: 86px;
}

.workflow-labels {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin: 0 0 18px;
    padding: 0 4px;
    list-style: none;
    color: var(--ink);
    font-size: 20px;
    line-height: 1.4;
}

.workflow-labels li {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    white-space: nowrap;
}

.workflow-labels span {
    display: inline-grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border-radius: 999px;
    flex: 0 0 auto;
    background: #292929;
    color: var(--white);
    font-size: 11px;
    font-weight: 700;
}

.workflow-strip {
    height: 174px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    overflow: hidden;
    border: 1px solid #dedede;
    border-radius: 12px;
    background: var(--soft);
}

.workflow-strip img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.capture-section {
    padding: 150px 0 160px;
    background: var(--soft);
}

h2 {
    max-width: 760px;
    font-size: 40px;
    line-height: 1.05;
}

h2 span {
    color: var(--blue);
}

.section-copy {
    width: 398px;
    margin: 30px 0 72px;
    color: var(--muted);
    font-size: 20px;
    line-height: 1.4;
}

.capture-frame {
    overflow: hidden;
    border-radius: 12px;
    background: var(--white);
}

.capture-frame img {
    width: 100%;
    height: auto;
}

.closing-section {
    padding: 164px 0 160px;
    background: var(--white);
}

.center {
    text-align: center;
}

.closing-title {
    width: min(722px, 100%);
    margin: 0 auto 44px;
    font-size: 40px;
    line-height: 1.05;
}

.site-footer {
    background: linear-gradient(180deg, var(--dark) 0%, #222222 114%);
    color: var(--white);
    padding: 84px 0 86px;
}

.footer-inner {
    min-height: 272px;
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-rows: 1fr auto;
    gap: 28px 48px;
    align-items: start;
}

.footer-icon {
    width: 64px;
    height: 64px;
    border-radius: 16px;
    border: 1px solid #ffffff24;
}

.footer-links {
    display: flex;
    flex-direction: column;
    gap: 14px;
    color: rgba(255, 255, 255, 0.72);
    font-size: 13px;
    font-weight: 550;
    line-height: 1.25;
    text-align: right;
}

.footer-inner p {
    grid-column: 2;
    margin: 0;
    align-self: end;
    color: rgba(255, 255, 255, 0.72);
    font-size: 13px;
    line-height: 1.25;
    text-align: right;
}

.request-page {
    padding: 86px 0 132px;
    background: var(--white);
}

.request-panel .request-page {
    padding: var(--space-88) 0 0;
}

.request-layout {
    display: grid;
    grid-template-columns: minmax(0, 0.85fr) minmax(360px, 1fr);
    gap: 72px;
    align-items: start;
}

.request-layout-single {
    grid-template-columns: minmax(0, 560px);
    justify-content: center;
    gap: var(--space-32);
}

.request-intro h1 {
    font-family: var(--font-family);
    letter-spacing: var(--letter-spacing-title);
}

.request-intro .button {
    margin-top: 30px;
}

.request-form {
    display: grid;
    gap: 18px;
}

.request-page .request-form {
    border: 1px solid rgba(51, 51, 51, 0.12);
    border-radius: var(--radius-12);
    background: #fbfcfd;
    padding: 28px;
}

.access-form {
    margin-top: 28px;
}

.request-form label {
    display: grid;
    gap: 8px;
    color: var(--color-muted);
    font-family: var(--font-family);
    font-size: var(--font-size-13);
    font-weight: var(--font-medium);
    letter-spacing: var(--letter-spacing-copy);
    line-height: 1.25;
}

.field-label-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-16);
}

.field-optional {
    flex: 0 0 auto;
    color: rgba(119, 119, 119, 0.68);
    font-weight: var(--font-regular);
}

.request-form input,
.request-form textarea {
    width: 100%;
    border: 1px solid rgba(51, 51, 51, 0.16);
    border-radius: var(--radius-8);
    background: var(--white);
    color: var(--color-text);
    font: inherit;
    font-family: var(--font-family);
    font-size: var(--font-size-16);
    line-height: 1.35;
    font-weight: var(--font-regular);
    letter-spacing: var(--letter-spacing-copy);
}

.request-form input {
    height: 46px;
    padding: 0 14px;
}

.request-form textarea {
    min-height: 104px;
    resize: vertical;
    padding: 12px 14px;
}

.request-form input:focus,
.request-form textarea:focus {
    border-color: var(--color-action);
    outline: 3px solid rgba(51, 51, 51, 0.12);
}

.request-form .button {
    font-family: var(--font-family);
    margin-top: 4px;
}

.request-form .button:disabled {
    cursor: default;
    opacity: 0.72;
}

.request-form input:disabled,
.request-form textarea:disabled {
    color: var(--color-muted);
    background: #f8f8f8;
}

.form-status {
    margin: -2px 0 0;
    color: #9d271d;
    font-family: var(--font-family);
    font-size: 14px;
    font-weight: var(--font-medium);
    line-height: 1.45;
    letter-spacing: var(--letter-spacing-copy);
}

.form-status[data-state="success"] {
    color: var(--color-text);
}

.form-status[hidden] {
    display: none;
}

.honeypot {
    position: absolute;
    left: -10000px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.static-page {
    background: #fbfcfd;
}

.static-shell {
    width: min(780px, calc(100% - 48px));
    margin: 0 auto;
    padding: 42px 0 84px;
}

.back-link {
    display: inline-flex;
    margin-bottom: 48px;
    color: rgba(0, 0, 0, 0.62);
    font-size: 14px;
    font-weight: 600;
}

.static-title {
    margin-bottom: 10px;
    font-size: 40px;
    line-height: 1.05;
}

.updated {
    margin: 0 0 44px;
    color: rgba(0, 0, 0, 0.62);
    font-size: 15px;
}

.static-content {
    color: #242a33;
    font-size: 16px;
    line-height: 1.7;
}

.static-content h2,
.legacy-card h2 {
    margin-top: 42px;
    padding-top: 28px;
    border-top: 1px solid #d9dee7;
    font-family: var(--font-family);
    font-size: 22px;
    font-weight: 720;
    line-height: 1.25;
}

.static-content p {
    margin: 12px 0;
}

.static-content ul {
    margin: 12px 0;
    padding-left: 22px;
}

.static-content li {
    margin: 8px 0;
}

.legacy-hero {
    padding-bottom: 64px;
}

.legacy-card {
    margin-top: 48px;
    border-radius: 12px;
    border: 1px solid #d9dee7;
    background: #f7f8fa;
    padding: 28px;
}

@media (max-width: 1060px) {
    .workflow-labels {
        font-size: 16px;
    }
}

@media (max-width: 780px) {
    .content,
    .site-header,
    .footer-inner,
    .static-shell {
        width: min(100% - 32px, var(--content));
    }

    .site-header {
        min-height: 68px;
    }

    .brand img {
        width: 76px;
    }

    .nav-link {
        font-size: var(--font-size-13);
    }

    .landing-panel {
        padding: var(--space-20) 0 var(--space-88);
    }

    .request-panel {
        padding: var(--space-20) 0 var(--space-88);
    }

    .landing-header {
        min-height: 24px;
    }

    .landing-main {
        padding-top: var(--space-72);
    }

    .landing-hero h1 {
        font-size: var(--font-size-32);
        line-height: var(--line-title);
    }

    .landing-copy {
        max-width: 100%;
        font-size: var(--font-size-17);
    }

    .landing-intro .button {
        margin-top: var(--space-28);
    }

    .landing-visual {
        margin-top: var(--space-44);
    }

    .landing-footer {
        min-height: 248px;
        padding: var(--space-52) 0 var(--space-88);
    }

    .landing-footer-inner {
        width: min(100% - 32px, var(--content));
        flex-direction: column;
        gap: var(--space-48);
    }

    .landing-footer p {
        text-align: left;
    }

    .access-modal {
        padding: 16px;
    }

    .access-dialog {
        max-height: calc(100vh - 32px);
        padding: 24px;
    }

    .access-dialog-copy {
        padding-right: 34px;
    }

    .access-dialog h2 {
        font-size: 26px;
    }

    .access-form {
        margin-top: 24px;
    }

    .hero {
        padding: 64px 0 82px;
        background: var(--white);
    }

    h1,
    h2,
    .closing-title {
        font-size: 40px;
    }

    .hero-copy,
    .section-copy {
        width: 100%;
        font-size: 17px;
    }

    .button {
        width: fit-content;
        height: 48px;
        padding: 0 32px;
        font-size: 15px;
    }

    .workflow {
        margin-top: 56px;
    }

    .workflow-labels {
        grid-template-columns: 1fr;
        gap: 8px;
        margin-bottom: 14px;
        font-size: 14px;
    }

    .workflow-labels span {
        width: 22px;
        height: 22px;
        font-size: 10px;
    }

    .workflow-strip {
        height: auto;
        grid-template-columns: 1fr;
    }

    .workflow-strip img {
        height: auto;
        object-fit: contain;
    }

    .capture-section {
        padding: 76px 0 82px;
    }

    .section-copy {
        margin-bottom: 38px;
    }

    .capture-frame {
        border-radius: 10px;
    }

    .closing-section {
        padding: 86px 0 88px;
    }

    .closing-title {
        margin-bottom: 30px;
    }

    .site-footer {
        padding: 52px 0;
    }

    .footer-inner {
        min-height: 220px;
        grid-template-columns: 1fr;
        grid-template-rows: auto auto 1fr;
    }

    .footer-links,
    .footer-inner p {
        grid-column: auto;
        text-align: left;
    }

    .footer-inner p {
        font-size: 15px;
    }

    .footer-inner p {
        align-self: end;
    }

    .footer-icon {
        width: 48px;
        height: 48px;
    }

    .request-page {
        padding: 62px 0 84px;
    }

    .request-panel .request-page {
        padding: var(--space-72) 0 0;
    }

    .request-layout,
    .request-layout-single {
        grid-template-columns: 1fr;
        gap: 34px;
    }

    .request-form {
        border-radius: 10px;
        padding: 20px;
    }
}
