
@layer tokens, reset, base, layout, components, utilities;
@import url("./typography.css") layer(tokens);
@import url("./layout/header.css") layer(layout);
@import url("./layout/sections.css") layer(layout);
@import url("./layout/footer.css") layer(layout);
@import url("./components/card.css") layer(components);
@import url("./components/form.css") layer(components);
@import url("./components/accordion.css") layer(components);
@import url("./components/modal.css") layer(components);
@import url("./components/policy.css") layer(components);
@import url("./components/about.css") layer(components);
@import url("./components/service.css") layer(components);
@import url("./components/case-study.css") layer(components);
@import url("./components/transition.css") layer(components);
@import url("./components/system.css") layer(components);
@layer tokens {
    :root {
        color-scheme: light;
        --green-100: #446d49;
        --green-200: #053c0c;
        --green-300: #0a231a;
        --green-black: #010f03;
        --gold-100: #dec285;
        --gold-200: #b19464;
        --gold-300: #8e6407;
        --yellow-400: #5e4205;
        --gray-050: #eeeeee;
        --gray-100: #c4d1cc;
        --gray-200: #8d9093;
        --gray-300: #4d4d4d;
        --gray-150: #b9b7b3;
        --bg-main: #f6f4f0;
        --cream-100: #fffbf3;
        --cream-200: #fdfbf9;
        --sand-100: #efe6dc;
        --white: #ffffff;
        --paper-100: #f7f6f2;
        --orange-300: #ff5f3e;
        --color-bg: var(--bg-main);
        --color-bg-alt: var(--gray-100);
        --color-bg-band: var(--gray-050);
        --color-bg-faq: var(--sand-100);
        --color-bg-faq-wash: color-mix(in srgb, var(--color-bg-faq) 30%, transparent);
        --color-surface: var(--bg-main);
        --color-surface-raised: var(--bg-main);
        --color-surface-hover: var(--cream-100);
        --color-surface-chip-hover: var(--cream-200);
        --color-mark: var(--bg-main);
        --color-text: var(--green-300);
        --color-text-muted: var(--gray-300);
        --color-text-invert: var(--bg-main);
        --color-heading: var(--green-300);
        --color-heading-soft: var(--green-100);
        --color-accent: var(--gold-300);
        --color-accent-hover: var(--yellow-400);
        --color-accent-contrast: var(--bg-main);
        --color-accent-soft: var(--gold-200);
        --color-primary: var(--green-200);
        --color-primary-hover: var(--green-300);
        --color-primary-contrast: var(--bg-main);
        --color-primary-contrast-hover: var(--gold-100);
        --color-primary-border: var(--green-100);
        --color-primary-wash: color-mix(in srgb, var(--green-100) 15%, transparent);
        --color-primary-wash-hover: color-mix(in srgb, var(--green-100) 28%, transparent);
        --color-primary-soft: var(--green-100);
        --logo-filter: none;
        --color-nav-idle: var(--gray-200);
        --color-rail: var(--gray-100);
        --color-rail-active: var(--green-200);
        --color-border: var(--gray-100);
        --color-border-strong: var(--gray-200);
        --color-border-gray: var(--gray-150);
        --color-bg-plain: var(--white);
        --color-bg-paper: var(--paper-100);
        --color-bg-record: var(--sand-100);
        --color-bg-services: var(--sand-100);
        --color-signal: var(--orange-300);
        --color-success: var(--green-100);
        --color-danger: var(--yellow-400);
        --color-focus: var(--gold-300);
        --color-scrim: color-mix(in srgb, var(--green-black) 60%, transparent);
        --color-leave-tint: color-mix(in srgb, var(--green-200) 13%, transparent);
        --text-xs: clamp(0.75rem, 0.72rem + 0.15vw, 0.8125rem);
        --text-sm: clamp(0.875rem, 0.85rem + 0.15vw, 0.9375rem);
        --text-base: 1rem;
        --text-lg: clamp(1.125rem, 1.06rem + 0.32vw, 1.25rem);
        --text-xl: clamp(1.3rem, 1.18rem + 0.6vw, 1.6rem);
        --text-2xl: clamp(1.6rem, 1.38rem + 1.05vw, 2.15rem);
        --text-3xl: clamp(1.75rem, 1.3rem + 1.89vw, 2.8125rem);
        --text-4xl: clamp(2.25rem, 1.6rem + 2.6vw, 3.4375rem);
        --text-small-header: clamp(0.875rem, 0.79rem + 0.42vw, 1.125rem);
        --text-h3: 1.125rem;
        --section-lead-size: var(--text-lg);
        --card-title-size: var(--text-h3);
        --card-title-leading: 1;
        --card-title-tracking: 0.03125rem;
        --card-title-weight: var(--weight-medium);
        --card-title-gap: var(--space-s);
        --steps-title-size: var(--text-h3);
        --card-body-size: 1rem;
        --card-body-leading: 1.5rem;
        --card-link-size: 0.9375rem;
        --card-link-leading: 1;
        --leading-display: 1.182;
        --leading-title: 1.344;
        --leading-tight: 1.15;
        --leading-snug: 1.3;
        --leading-normal: 1.6;
        --leading-relaxed: 1.75;
        --tracking-tight: -0.02em;
        --tracking-normal: 0;
        --tracking-wide: 0.08em;
        --weight-normal: 400;
        --weight-medium: 500;
        --weight-semibold: 600;
        --weight-bold: 700;
        --leading-kicker: var(--leading-snug);
        --small-header-weight: var(--weight-semibold);
        --small-header-gap: var(--space-s);
        --measure: 68ch;
        --measure-narrow: 56ch;
        --space-0: 0;
        --space-1: 1px;
        --space-xxs: 0.25rem; 
        --space-xs: 0.5rem; 
        --space-s: 1rem; 
        --space-xm: 1.5rem; 
        --space-m: 1.875rem; 
        --space-l: 2.25rem; 
        --space-xl: 3rem; 
        --space-xxl: 3.5rem; 
        --space-3xl: 4rem; 
        --space-4xl: 5.25rem; 
        --space-huge: 8rem; 
        --space-section: var(--space-3xl);
        --gutter: 1rem;
        --width-container: 76rem;
        --width-narrow: 46rem;
        --width-phone-block: 38.125rem;
        --width-phone-action: 35rem;
        --width-page: 120rem;
        --header-height: 4.5rem;
        --header-height-compact: 4.0625rem;
        --brand-mark-size: 2.5rem;
        --brand-mark-size-compact: 2.25rem;
        --header-text: 1rem;
        --header-text-compact: 0.875rem;
        --brand-name-size: 0.75rem;
        --brand-name-size-compact: 0.6875rem;
        --brand-role-size: 0.5625rem;
        --brand-role-size-compact: 0.5rem;
        --brand-name-leading: 1.125;
        --brand-role-leading: 1.3333;
        --brand-gap: var(--space-xs);
        --brand-gap-compact: var(--space-xxs);
        --brand-text-gap: var(--space-xxs);
        --brand-text-gap-compact: 0.125rem;
        --hero-media-min: 34rem;
        --hero-media-min-short: 22rem;
        --hero-copy-min: 41rem;
        --hero-height: calc(100svh - var(--header-height));
        --hero-visual-aspect: calc(1367 / 996);
        --hero-visual-max: 85.4375rem;
        --hero-stats-ring-open: 3.5rem;
        --hero-stats-ring-compact: 2.5rem;
        --hero-stats-glyph-open: 1.5rem;
        --hero-stats-glyph-compact: 1.125rem;
        --hero-stats-gap-open: var(--space-s);
        --hero-stats-gap-compact: var(--space-s);
        --hero-stats-value-open: var(--text-2xl);
        --hero-stats-value-compact: var(--text-xl);
        var(--weight-bold);
        var(--weight-bold);
        --hero-stats-value-leading: var(--leading-tight);
        --hero-stats-label-leading: var(--leading-normal);
        --hero-stats-label-size: var(--text-xs);
        --hero-lead-leading: var(--leading-relaxed);
        --btn-padding-block: var(--space-s);
        --btn-padding-inline: var(--space-xm);
        --btn-gap: var(--space-xs);
        --btn-icon: 1.5rem;
        --btn-font-size: 0.9375rem;
        --btn-border-width: 1px;
        --btn-border-width-strong: 0.125rem;
        --btn-radius: var(--radius-md);
        --card-ring: 4.5rem;
        --card-min: 18.125rem;
        --card-max: 23.75rem;
        --card-min-2up: 20.625rem;
        --card-photo-height: 14rem;
        --card-link-icon: 1.25rem;
        --card-mark-size: calc(var(--card-ring) * 0.4 * 6);
        --card-mark-angle: 30deg;
        --tap-target: 2.75rem;
        --tap-target-min: 1.5rem;
        --radius-sm: 0.25rem;
        --radius-md: 0.5rem;
        --radius-lg: 0.875rem;
        --radius-xl: 1.25rem;
        --radius-full: 9999px;
        --shadow-sm: 0 1px 2px rgb(1 15 3 / 0.08), 0 1px 3px rgb(1 15 3 / 0.06);
        --shadow-md: 0 2px 4px rgb(1 15 3 / 0.06), 0 8px 20px rgb(1 15 3 / 0.09);
        --shadow-lg: 0 4px 8px rgb(1 15 3 / 0.06), 0 20px 44px rgb(1 15 3 / 0.13);
        --shadow-glow: 0 2px 4px rgb(255 255 255 / 0.6), 0 8px 24px rgb(255 255 255 / 0.9);
        --motion-scale: 1;
        --duration-fast: calc(140ms * var(--motion-scale));
        --duration-base: calc(240ms * var(--motion-scale));
        --duration-collapse: calc(320ms * var(--motion-scale));
        --duration-nav: calc(400ms * var(--motion-scale));
        --duration-slow: calc(480ms * var(--motion-scale));
        --duration-intro: calc(800ms * var(--motion-scale));
        --duration-intro-slow: calc(1000ms * var(--motion-scale));
        --duration-draw: calc(1400ms * var(--motion-scale));
        --duration-leave: calc(600ms * var(--motion-scale));
        --duration-leave-column: calc(600ms * var(--motion-scale));
        --delay-leave-columns: calc(500ms * var(--motion-scale));
        --delay-leave-column-step: calc(var(--duration-leave-column) * 0.106);
        --page-leave-scale: 0.92;
        --page-leave-opacity: 0.6;
        --page-leave-seam: 1px;
        --duration-hover: calc(800ms * var(--motion-scale));
        --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
        --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
        --ease-arrive: cubic-bezier(0.18, 0.08, 0, 1);
        --z-underlay: 0;
        --z-base: 1;
        --z-sticky: 100;
        --z-scrim: 200;
        --z-nav: 300;
        --z-nav-toggle: 310;
        --z-modal: 400;
        --z-toast: 500;
        --z-skip: 600;
        --z-leave-fade: calc(var(--z-sticky) - 1);
        --z-leave: 700;
    }
    :root[data-theme="dark"] {
        color-scheme: dark;
        --color-bg: var(--green-black);
        --color-bg-alt: var(--green-300);
        --color-bg-band: var(--green-300);
        --color-bg-faq: var(--green-300);
        --color-bg-record: var(--green-300);
        --color-bg-services: var(--green-300);
        --color-bg-faq-wash: color-mix(in srgb, var(--color-bg-faq) 88%, transparent);
        --color-surface: var(--green-300);
        --color-surface-raised: var(--green-200);
        --color-surface-hover: var(--green-200);
        --color-surface-chip-hover: var(--green-300);
        --color-mark: var(--green-300);
        --color-text: var(--gray-100);
        --color-text-muted: var(--gray-200);
        --color-text-invert: var(--green-black);
        --color-heading: var(--bg-main);
        --color-heading-soft: var(--gold-100);
        --color-accent: var(--gold-100);
        --color-accent-hover: var(--gold-200);
        --color-accent-contrast: var(--green-black);
        --color-accent-soft: var(--gold-200);
        --color-primary: var(--gold-100);
        --color-primary-hover: var(--gold-200);
        --color-primary-contrast: var(--green-black);
        --color-primary-contrast-hover: var(--green-black);
        --color-primary-border: var(--gold-200);
        --color-primary-wash: color-mix(in srgb, var(--gold-100) 15%, transparent);
        --color-primary-wash-hover: color-mix(in srgb, var(--gold-100) 28%, transparent);
        --color-primary-soft: var(--gold-200);
        --logo-filter: brightness(0) invert(1) opacity(0.85);
        --color-nav-idle: var(--gray-200);
        --color-rail: var(--green-100);
        --color-rail-active: var(--gold-100);
        --color-border: var(--green-100);
        --color-border-strong: var(--gray-200);
        --color-border-gray: var(--green-100);
        --color-bg-plain: var(--green-300);
        --color-bg-paper: var(--green-300);
        --color-success: color-mix(in srgb, var(--green-100) 65%, var(--gray-100));
        --color-danger: var(--gold-200);
        --color-focus: var(--gold-100);
        --color-scrim: color-mix(in srgb, var(--green-black) 75%, transparent);
        --shadow-sm: 0 1px 2px rgb(1 15 3 / 0.5);
        --shadow-md: 0 2px 4px rgb(1 15 3 / 0.45), 0 8px 20px rgb(1 15 3 / 0.5);
        --shadow-lg: 0 4px 8px rgb(1 15 3 / 0.45), 0 20px 44px rgb(1 15 3 / 0.6);
        --shadow-glow: var(--shadow-md);
    }
}
@layer reset {
    *,
    *::before,
    *::after {
        box-sizing: border-box;
    }
    * {
        margin: 0;
    }
    html {
        scroll-padding-top: calc(var(--header-height-compact) + var(--space-xm));
        -webkit-text-size-adjust: 100%;
        text-size-adjust: 100%;
        overflow-x: clip;
    }
    body {
        min-height: 100svh;
        overflow-x: clip;
        padding-block-start: var(--header-height);
        background-color: var(--color-bg);
        color: var(--color-text);
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        text-rendering: optimizeLegibility;
    }
    img,
    picture,
    video,
    canvas,
    svg,
    iframe {
        display: block;
        max-width: 100%;
    }
    img,
    video {
        height: auto;
    }
    input,
    button,
    textarea,
    select {
        font: inherit;
        color: inherit;
        letter-spacing: inherit;
    }
    button {
        background: none;
        border: none;
        cursor: pointer;
    }
    textarea {
        resize: vertical;
    }
    p,
    h1,
    h2,
    h3,
    h4,
    h5,
    h6,
    li,
    dd,
    dt,
    figcaption {
        overflow-wrap: break-word;
    }
    ul[class],
    ol[class] {
        list-style: none;
        padding: 0;
    }
    table {
        border-collapse: collapse;
        width: 100%;
    }
    :focus-visible {
        outline: 2px solid var(--color-focus);
        outline-offset: 3px;
        border-radius: var(--radius-sm);
    }
    ::-moz-focus-inner {
        border: 0;
    }
    ::selection {
        background-color: var(--color-accent);
        color: var(--color-accent-contrast);
    }
}
@layer base {
    body {
        font-family: var(--font-sans);
        font-size: var(--text-base);
        line-height: var(--leading-normal);
        font-weight: var(--weight-normal);
    }
    h1,
    h2,
    h3,
    h4 {
        font-family: var(--font-body);
        color: var(--color-heading);
        font-weight: var(--weight-semibold);
        line-height: var(--leading-tight);
        letter-spacing: var(--tracking-tight);
        text-wrap: balance;
    }
    h1 {
        font-family: var(--font-h1);
        font-size: var(--text-4xl);
        line-height: var(--leading-display);
        font-weight: var(--weight-normal);
        margin-block-end: var(--space-xm);
    }
    h2 {
        font-family: var(--font-h2);
        font-size: var(--text-3xl);
        line-height: var(--leading-title);
        font-weight: var(--weight-normal);
        margin-block-end: var(--space-xm);
    }
    h3 {
        font-size: var(--text-h3);
        line-height: var(--leading-snug);
    }
    h4 {
        font-size: var(--text-lg);
        line-height: var(--leading-snug);
    }
    :is(h1, h2) strong {
        font-weight: inherit;
    }
    :is(h3, h4) strong {
        font-weight: var(--weight-bold);
    }
    .title-soft {
        display: block;
        font-weight: inherit;
        color: var(--color-heading-soft);
    }
    :is(h1, h2) .title-soft {
        color: inherit;
    }
    .title-soft--inline {
        display: inline;
    }
    p {
        text-wrap: pretty;
    }
    a {
        color: var(--color-accent);
        text-decoration-thickness: 1px;
        text-underline-offset: 0.2em;
        transition: color var(--duration-fast) var(--ease-out);
    }
    a:hover {
        color: var(--color-accent-hover);
    }
    strong,
    b {
        font-weight: var(--weight-semibold);
    }
    small {
        font-size: var(--text-sm);
    }
    code,
    kbd,
    samp,
    pre {
        font-family: var(--font-mono);
        font-size: 0.9em;
    }
    blockquote {
        border-inline-start: 3px solid var(--color-accent);
        padding-inline-start: var(--space-xm);
        font-family: var(--font-serif);
        font-size: var(--text-lg);
        color: var(--color-text-muted);
    }
    address {
        font-style: normal;
    }
    hr {
        border: 0;
        border-top: 1px solid var(--color-border);
        margin-block: var(--space-xl);
    }
    .prose {
        max-width: var(--measure);
        color: var(--color-text-muted);
    }
    .prose>*+* {
        margin-block-start: var(--space-s);
    }
    .prose>*+ :is(h2, h3, h4) {
        margin-block-start: var(--space-l);
    }
    .prose :is(ul, ol) {
        padding-inline-start: var(--space-xm);
    }
    .prose li+li {
        margin-block-start: var(--space-xxs);
    }
    .regular {
        font-family: var(--font-sans);
        font-size: var(--text-base);
        font-weight: var(--weight-normal);
        line-height: var(--leading-normal);
    }
    .claim {
        font-family: var(--font-sans);
        font-size: var(--text-xl);
        line-height: var(--leading-normal);
        font-weight: var(--weight-medium);
        letter-spacing: var(--tracking-normal);
        text-transform: uppercase;
        color: var(--color-heading);
    }
    .small-header {
        font-family: var(--font-sans);
        font-size: var(--text-small-header);
        font-weight: var(--small-header-weight);
        line-height: var(--leading-kicker);
        letter-spacing: var(--tracking-wide);
        text-transform: uppercase;
        color: var(--color-accent);
        margin-block-end: var(--small-header-gap);
    }
    .skip-link {
        position: absolute;
        inset-block-start: var(--space-xs);
        inset-inline-start: var(--space-xs);
        z-index: var(--z-skip);
        padding: var(--space-xs) var(--space-s);
        background-color: var(--color-primary);
        color: var(--color-primary-contrast);
        border-radius: var(--radius-md);
        font-weight: var(--weight-medium);
        text-decoration: none;
        transform: translateY(calc(-100% - var(--space-xm)));
        transition: transform var(--duration-fast) var(--ease-out);
    }
    .skip-link:focus-visible {
        transform: translateY(0);
    }
}
@layer layout {
    .container {
        width: 100%;
        max-width: var(--width-container);
        margin-inline: auto;
        padding-inline: var(--gutter);
    }
    .container--narrow {
        max-width: var(--width-narrow);
    }
    .container--wide {
        max-width: var(--width-page);
    }
    .grid {
        display: grid;
        gap: var(--space-xm);
        grid-template-columns: repeat(auto-fit,
                minmax(min(var(--grid-min, 18rem), 100%), 1fr));
    }
    .grid--2 {
        --grid-min: 22rem;
    }
    .grid--3 {
        --grid-min: 17rem;
    }
    .grid--4 {
        --grid-min: 13rem;
    }
    .grid--quad {
        grid-template-columns: 1fr;
    }
    .split {
        display: grid;
        gap: var(--space-xl);
        align-items: center;
    }
    .split__media {
        margin: 0;
        --split-media-ratio: 4 / 5;
    }
    .split__media img {
        width: 100%;
        aspect-ratio: var(--split-media-ratio);
        object-fit: cover;
        border-radius: var(--radius-lg);
    }
    .split__content>*+* {
        margin-block-start: var(--space-s);
    }
    .section {
        padding-block: var(--space-section);
    }
    .section--alt {
        background-color: var(--color-bg-band);
    }
    .section__head {
        max-width: var(--measure);
        margin-inline: auto;
        margin-block-end: var(--space-xl);
        text-align: center;
    }
    .section__head--start {
        --reveal-x: 2rem;
        --reveal-y: 0;
        margin-inline: 0;
        text-align: start;
    }
    .section__head> :last-child {
        margin-block-end: 0;
    }
    .section__lead {
        font-size: var(--section-lead-size);
        color: var(--color-text-muted);
        line-height: var(--leading-relaxed);
    }
    .section__head .section__lead {
        margin-inline: auto;
    }
}
@layer components {
    .btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: var(--btn-gap);
        min-height: var(--tap-target);
        padding: var(--btn-padding-block) var(--btn-padding-inline);
        border: var(--btn-border-width) solid transparent;
        border-radius: var(--btn-radius);
        font-family: var(--font-sans);
        font-size: var(--btn-font-size);
        font-weight: var(--weight-medium);
        line-height: 1.125;
        text-align: center;
        text-decoration: none;
        white-space: nowrap;
        cursor: pointer;
        transition:
            background-color var(--duration-fast) var(--ease-out),
            border-color var(--duration-fast) var(--ease-out),
            color var(--duration-fast) var(--ease-out),
            transform var(--duration-fast) var(--ease-out),
            box-shadow var(--duration-fast) var(--ease-out),
            padding var(--duration-collapse) var(--ease-out);
    }
    .btn:active {
        transform: translateY(1px);
    }
    .btn[disabled],
    .btn[aria-disabled="true"] {
        opacity: 0.55;
        pointer-events: none;
    }
    .btn svg {
        flex-shrink: 0;
        inline-size: var(--btn-icon);
        block-size: var(--btn-icon);
        fill: currentColor;
    }
    .btn--primary {
        background-color: var(--color-primary);
        border-color: var(--color-primary-border);
        color: var(--color-primary-contrast);
        box-shadow: var(--shadow-sm);
    }
    .btn--primary:hover {
        background-color: var(--color-primary-hover);
        color: var(--color-primary-contrast-hover);
        box-shadow: var(--shadow-md);
    }
    .btn--secondary {
        background-color: var(--btn-secondary-bg, var(--color-surface));
        border-width: var(--btn-secondary-border-width, var(--btn-border-width));
        border-color: var(--btn-secondary-border, var(--color-primary-border));
        color: var(--btn-secondary-fg, var(--color-primary));
        box-shadow: var(--btn-secondary-shadow, none);
        transition:
            background-color var(--duration-hover) var(--ease-arrive),
            border-color var(--duration-fast) var(--ease-out),
            color var(--duration-fast) var(--ease-out),
            transform var(--duration-fast) var(--ease-out),
            box-shadow var(--duration-fast) var(--ease-out),
            padding var(--duration-collapse) var(--ease-out);
    }
    .btn--secondary:hover {
        background-color: var(--btn-secondary-bg-hover, var(--color-surface-hover));
        color: var(--btn-secondary-fg-hover, var(--color-primary));
        box-shadow: var(--btn-secondary-shadow-hover, none);
    }
    .btn--accent {
        background-color: var(--color-accent);
        color: var(--color-accent-contrast);
    }
    .btn--accent:hover {
        background-color: var(--color-accent-hover);
        color: var(--color-accent-contrast);
    }
    .btn--ghost {
        background-color: transparent;
        border-color: var(--color-border-strong);
        color: var(--color-heading);
    }
    .btn--ghost:hover {
        background-color: var(--color-surface);
        border-color: var(--color-accent);
        color: var(--color-accent);
    }
    .btn--link {
        min-height: 0;
        padding: 0;
        background: none;
        color: var(--color-accent);
        text-decoration: underline;
        text-underline-offset: 0.25em;
    }
    .btn--sm {
        min-height: 2.75rem;
        padding: var(--space-s) var(--space-xm);
        font-size: var(--text-sm);
    }
    .btn--lg {
        min-height: 3.25rem;
        padding: var(--btn-padding-block) var(--space-l);
        font-size: var(--text-base);
    }
    .btn--block {
        display: flex;
        width: 100%;
    }
    @media (width < 48rem) {
        main .btn:not(.btn--chip, .btn--link) {
            display: flex;
            inline-size: 100%;
        }
    }
}
@layer utilities {
    .visually-hidden {
        position: absolute !important;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
        border: 0;
    }
    .svg-defs {
        position: absolute;
        width: 0;
        height: 0;
        overflow: hidden;
    }
    .honeypot {
        position: absolute;
        left: -9999px;
        width: 1px;
        height: 1px;
        overflow: hidden;
    }
    .text-center {
        text-align: center;
    }
    .text-muted {
        color: var(--color-text-muted);
    }
    .measure {
        max-width: var(--measure);
    }
    .measure-narrow {
        max-width: var(--measure-narrow);
    }
    .mt-0 {
        margin-block-start: 0;
    }
    .mt-sm {
        margin-block-start: var(--space-s);
    }
    .mt-md {
        margin-block-start: var(--space-xm);
    }
    .mt-lg {
        margin-block-start: var(--space-l);
    }
    .mb-0 {
        margin-block-end: 0;
    }
    .mb-sm {
        margin-block-end: var(--space-s);
    }
    .mb-md {
        margin-block-end: var(--space-xm);
    }
    .mb-lg {
        margin-block-end: var(--space-l);
    }
    .stack>*+* {
        margin-block-start: var(--flow, var(--space-s));
    }
    .no-scroll {
        overflow: hidden;
    }
}
@layer tokens {
    @media (width < 62rem) {
        :root {
            --text-xs: 0.75rem;
            --text-sm: 0.875rem;
            --text-base: 1rem;
            --text-lg: 1.125rem;
            --text-4xl: 2rem;
            --leading-display: 1.3125;
            --text-3xl: 1.625rem;
            --leading-title: 1.30769;
            --text-small-header: 0.8125rem;
            --leading-kicker: 1.38462;
            --small-header-weight: var(--weight-bold);
            --small-header-gap: var(--space-xs);
            --card-title-leading: 1.66667;
            --card-title-weight: var(--weight-semibold);
            --card-title-gap: var(--space-s);
            --card-body-leading: 1.6875rem;
            --hero-lead-leading: 1.5;
        }
    }
    @media (width < 48rem) {
        :root {
            --text-base: 0.875rem;
            --card-body-size: var(--text-base);
            --section-lead-size: clamp(0.875rem, 0.7857rem + 0.4464vw, 1rem);
            --btn-font-size: var(--section-lead-size);
        }
    }
    @media (62rem <= width < 75rem) {
        :root {
            --text-4xl: clamp(2.5rem, 1.0096rem + 2.4038vw, 2.8125rem);
            --text-3xl: clamp(2.1875rem, 0.6971rem + 2.4038vw, 2.5rem);
            --text-small-header: clamp(1rem, 0.7019rem + 0.4808vw, 1.0625rem);
            --section-lead-size: clamp(0.875rem, 0.2788rem + 0.9615vw, 1rem);
            --btn-font-size: var(--section-lead-size);
            --text-h3: clamp(1rem, 0.7019rem + 0.4808vw, 1.0625rem);
            --hero-stats-label-size: clamp(0.75rem, 0.4519rem + 0.4808vw, 0.8125rem);
            --hero-stats-ring-open: 2.5rem;
        }
    }
    @media (75rem <= width < 93.75rem) {
        :root {
            --text-4xl: 2.8125rem;
            --text-3xl: 2.5rem;
            --section-lead-size: 1rem;
        }
    }
    @media (width < 48rem) {
        :root {
            --hero-stats-ring-open: 2.1875rem;
            --hero-stats-glyph-open: 1.25rem;
            --hero-stats-gap-open: var(--space-xs);
            --hero-stats-value-open: 1.5rem;
            --hero-stats-value-weight: var(--weight-normal);
            --hero-stats-value-leading: 1;
            --hero-stats-label-size: 0.6875rem;
        }
    }
    @media (width < 22.5rem) {
        :root {
            --hero-stats-gap-open: var(--space-xxs);
        }
    }
    @media (width >=25rem) {
        :root {
            --brand-mark-size: 3.75rem;
            --brand-mark-size-compact: 3.5rem;
            --brand-name-size: 1rem;
            --brand-name-size-compact: 0.875rem;
            --brand-role-size: 0.75rem;
            --brand-role-size-compact: 0.625rem;
            --brand-gap: var(--space-s);
            --brand-gap-compact: var(--space-xs);
        }
    }
    @media (width >=48rem) {
        :root {
            --gutter: 2rem;
        }
    }
    @media (width >=48rem) {
        :root {
            --space-section: var(--space-4xl);
        }
    }
    @media (width >=75rem) {
        :root {
            --space-section: var(--space-huge);
        }
    }
    @media (width >=64rem) {
        :root {
            --gutter: 4rem;
        }
    }
    @media (width >=100rem) {
        :root {
            --gutter: 6rem;
            --width-container: 80rem;
        }
    }
    @media (width >=75rem) {
        :root {
            --header-height: 7.25rem;
            --brand-mark-size: 6.25rem;
        }
    }
}
@layer layout {
    @media (width >=48rem) {
        .grid--quad {
            grid-template-columns: repeat(2, 1fr);
        }
    }
    @media (width >=64rem) {
        .grid--quad {
            grid-template-columns: repeat(4, 1fr);
        }
    }
    @media (width >=48rem) {
        .split:has(.split__head) {
            --split-line: var(--align-x, calc(50% - var(--space-3xl)));
            --split-copy: min(var(--measure), calc(100% - var(--split-line)));
            --split-gap: var(--space-l);
            grid-template-columns:
                minmax(0, 1fr) max(0px, calc(2 * var(--split-line) + var(--split-copy) - var(--split-gap) - 100%)) var(--split-gap) var(--split-copy) minmax(0, 1fr);
            column-gap: 0;
            row-gap: var(--space-xl);
        }
        .split:has(.split__head)>.split__head {
            grid-row: 1;
            grid-column: 4;
        }
        .split:has(.split__head)>.split__media {
            grid-row: 1 / 3;
            grid-column: 2;
        }
        .split:has(.split__head)>.split__content {
            grid-row: 2;
            grid-column: 4;
        }
    }
    @media (width >=64rem) {
        .split {
            grid-template-columns: 1fr 1fr;
            gap: clamp(var(--space-xl), 5vw, var(--space-4xl));
        }
        .split--reverse> :first-child {
            order: 2;
        }
        .split:has(.split__media) {
            align-items: stretch;
            gap: var(--space-3xl);
        }
        .split:has(.split__head) {
            --split-gap: var(--space-3xl);
            column-gap: 0;
            row-gap: var(--space-xl);
        }
        .split__media {
            position: relative;
        }
        .split__media img {
            position: absolute;
            inset: 0;
            block-size: 100%;
            aspect-ratio: auto;
            object-position: center top;
        }
    }
}
@layer base {
    @media (prefers-reduced-motion: no-preference) {
        html {
            scroll-behavior: smooth;
        }
    }
    @media (prefers-reduced-motion: reduce) {
        :root {
            --motion-scale: 0;
        }
        *,
        *::before,
        *::after {
            animation-duration: 0.01ms !important;
            animation-iteration-count: 1 !important;
            transition-duration: 0.01ms !important;
            scroll-behavior: auto !important;
        }
    }
    @media (hover: none) {
        .btn--sm {
            min-height: var(--tap-target);
        }
    }
    @media (forced-colors: active) {
        .btn {
            border-color: currentColor;
        }
        :focus-visible {
            outline-color: Highlight;
        }
    }
    @media print {
        :root {
            --color-bg: #fff;
            --color-bg-alt: #fff;
            --color-bg-band: #fff;
            --color-bg-faq: #fff;
            --color-bg-plain: #fff;
            --color-bg-paper: #fff;
            --color-bg-record: #fff;
            --color-bg-services: #fff;
            --color-bg-faq-wash: #fff;
            --color-surface: #fff;
            --color-surface-hover: #fff;
            --color-text: #000;
            --color-text-muted: #333;
            --color-heading: #000;
            --shadow-sm: none;
            --shadow-md: none;
            --shadow-lg: none;
            --shadow-glow: none;
        }
        body {
            padding-block-start: 0;
        }
        .site-header,
        .site-footer,
        .skip-link,
        .nav-toggle,
        .primary-nav,
        .theme-toggle,
        .hero__media,
        .form {
            display: none !important;
        }
        a[href^="http"]::after,
        a[href^="mailto"]::after,
        a[href^="tel"]::after {
            content: " (" attr(href) ")";
            font-size: 0.85em;
            word-break: break-all;
        }
        .section {
            padding-block: var(--space-xm);
            break-inside: avoid;
        }
        h1,
        h2,
        h3 {
            break-after: avoid;
        }
        details {
            display: block !important;
        }
        details>*:not(summary) {
            display: block !important;
        }
    }
}
@layer utilities {
    @media (prefers-reduced-motion: no-preference) {
        html.js [data-reveal]:not([data-revealed]) {
            opacity: 0;
            transform: translateY(1rem);
        }
        html.js [data-reveal][data-revealed] {
            animation: reveal-rise var(--duration-slow) var(--ease-out);
        }
        @keyframes reveal-rise {
            from {
                opacity: 0;
                transform: translateY(1rem);
            }
        }
    }
    @media (prefers-reduced-motion: no-preference) {
        [data-reveal-item] {
            --reveal-base: 0;
            --reveal-index: 0;
        }
        [data-reveal-group="self"] [data-reveal-item] {
            --reveal-base: 1;
        }
        [data-reveal-item=""]:nth-child(2) {
            --reveal-index: 1;
        }
        [data-reveal-item=""]:nth-child(3) {
            --reveal-index: 2;
        }
        [data-reveal-item=""]:nth-child(4) {
            --reveal-index: 3;
        }
        [data-reveal-item=""]:nth-child(5) {
            --reveal-index: 4;
        }
        [data-reveal-item=""]:nth-child(n + 6) {
            --reveal-index: 5;
        }
        [data-reveal-item="1"] {
            --reveal-index: 1;
        }
        [data-reveal-item="2"] {
            --reveal-index: 2;
        }
        [data-reveal-item="3"] {
            --reveal-index: 3;
        }
        [data-reveal-item="4"] {
            --reveal-index: 4;
        }
        [data-reveal-item="5"] {
            --reveal-index: 5;
        }
        [data-reveal-item="6"] {
            --reveal-index: 6;
        }
        [data-reveal-item="7"] {
            --reveal-index: 7;
        }
        [data-reveal-item="8"] {
            --reveal-index: 8;
        }
        [data-reveal-item="9"] {
            --reveal-index: 9;
        }
        html.js [data-reveal-group]:not([data-revealed]) [data-reveal-item] {
            opacity: 0;
            translate: var(--reveal-x, 0) var(--reveal-y, 1.5rem);
        }
        html.js [data-reveal-group="self"]:not([data-revealed]) {
            opacity: 0;
            translate: var(--reveal-self-x, 0) var(--reveal-self-y, 1.5rem);
        }
        html.js [data-reveal-group][data-revealed] [data-reveal-item] {
            animation: reveal-item var(--reveal-duration, var(--duration-intro)) var(--ease-arrive) backwards;
            animation-delay: calc(var(--reveal-step, calc(100ms * var(--motion-scale))) * (var(--reveal-base) + var(--reveal-index)));
        }
        html.js [data-reveal-group="self"][data-revealed] {
            animation: reveal-self var(--reveal-duration, var(--duration-intro)) var(--ease-arrive) backwards;
        }
        html.js [data-reveal-group][data-revealed][data-reveal-opening] [data-reveal-item] {
            --reveal-x: var(--reveal-opening-x, 2rem);
            --reveal-y: var(--reveal-opening-y, 0);
            animation-delay: calc(var(--reveal-opening-at, 0ms) - var(--reveal-elapsed, 0ms) + var(--reveal-step, calc(100ms * var(--motion-scale))) * (var(--reveal-queue, 0) + var(--reveal-base) + var(--reveal-index)));
        }
        @keyframes reveal-item {
            from {
                opacity: 0;
                translate: var(--reveal-x, 0) var(--reveal-y, 1.5rem);
            }
        }
        @keyframes reveal-self {
            from {
                opacity: 0;
                translate: var(--reveal-self-x, 0) var(--reveal-self-y, 1.5rem);
            }
        }
    }
    @media (prefers-reduced-motion: no-preference) {
        [data-arrive] {
            --arrive-delay: calc(300ms * var(--motion-scale));
            --arrive-step: calc(100ms * var(--motion-scale));
            --arrive-duration: var(--duration-intro);
            --arrive-x: 2rem;
            --arrive-y: 0;
        }
        [data-arrive]>:not([data-arrive]) {
            --arrive-index: 0;
            animation: arrive var(--arrive-duration) var(--ease-arrive) backwards;
            animation-delay:
                calc(var(--arrive-delay) + var(--arrive-step) * var(--arrive-index));
        }
        [data-arrive]>*:nth-child(2) {
            --arrive-index: 1;
        }
        [data-arrive]>*:nth-child(3) {
            --arrive-index: 2;
        }
        [data-arrive]>*:nth-child(4) {
            --arrive-index: 3;
        }
        [data-arrive]>*:nth-child(5) {
            --arrive-index: 4;
        }
        [data-arrive]>*:nth-child(6) {
            --arrive-index: 5;
        }
        [data-arrive]>*:nth-child(7) {
            --arrive-index: 6;
        }
        [data-arrive]>*:nth-child(8) {
            --arrive-index: 7;
        }
        [data-arrive]>*:nth-child(9) {
            --arrive-index: 8;
        }
        [data-arrive]>*:nth-child(10) {
            --arrive-index: 9;
        }
        [data-arrive]>*:nth-child(11) {
            --arrive-index: 10;
        }
        [data-arrive]>*:nth-child(12) {
            --arrive-index: 11;
        }
        [data-arrive]>*:nth-child(n + 13) {
            --arrive-index: 12;
        }
        @keyframes arrive {
            from {
                opacity: 0;
                translate: var(--arrive-x) var(--arrive-y);
            }
        }
    }
    html[data-scrolling] .card,
    html[data-scrolling] .card__title,
    html[data-scrolling] .card[data-mark]::before,
    html[data-scrolling] .accordion__item,
    html[data-scrolling] .accordion__summary {
        transition: none;
    }
}