/*! Fraunces and Inter, self hosted, subset. SIL Open Font License 1.1.
    Full licence text: /fonts/OFL-Fraunces.txt and /fonts/OFL-Inter.txt. */







@font-face {
    font-family: "Fraunces";
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url("../fonts/fraunces-variable-latin.woff2") format("woff2");
    unicode-range: U+0020-007E, U+00A0, U+00A9, U+00AE, U+00B0, U+2018-2019, U+201C-201D, U+2026, U+2122, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Fraunces";
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url("../fonts/fraunces-variable-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;
}



@font-face {
    font-family: "Inter";
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url("../fonts/inter-variable-latin.woff2") format("woff2");
    unicode-range: U+0020-007E, U+00A0-00FF, U+2018-2019, U+201C-201D, U+2026, U+2122, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Inter";
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url("../fonts/inter-variable-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 {
    
    --bg: #FBFAF8; 
    --bg-raised: #FFFFFF; 
    --bg-sage: #EFF3EE; 
    --bg-deep: #073649; 

    
    --ink: #16303C; 
    --ink-strong: #00486C; 
    --ink-muted: #4A6270; 
    --ink-on-deep: #EAF2F4; 

    
    --teal: #0C90A8; 
    --teal-text: #056077; 
    --teal-deep: #00486C; 
    --violet: #8460B4; 
    --violet-soft: #B490D8; 
    --sage: #609084; 
    --sage-soft: #A8C4AC; 
    --sage-text: #386B5E; 

    
    --focus: #0C90A8; 
    --error: #A32B2B; 
    --success: #2F6B4F; 

    
    --rule: #E2E0DA;
    --rule-strong: #C9CFC7;

    
    --font-display: "Fraunces", "Iowan Old Style", Georgia, serif;
    --font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;

    --fs-display: clamp(2.75rem, 1.6rem + 4.6vw, 5rem);
    --fs-h1: clamp(2.15rem, 1.5rem + 2.6vw, 3.25rem);
    --fs-h2: clamp(1.65rem, 1.3rem + 1.5vw, 2.35rem);
    --fs-h3: clamp(1.25rem, 1.1rem + 0.6vw, 1.5rem);
    --fs-lead: clamp(1.125rem, 1.05rem + 0.4vw, 1.375rem);
    --fs-body: 1.0625rem; 
    --fs-small: 0.9375rem; 

    --lh-display: 1.15;
    --lh-heading: 1.3;
    --lh-body: 1.65;

    
    --measure: 62ch;
    --measure-lead: 54ch;

    
    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 32px;
    --space-6: 48px;
    --space-7: 64px;
    --space-8: 80px;
    --space-9: 96px;
    --space-10: 128px;

    
    --container: min(100% - 2.5rem, 1200px);
    --container-narrow: min(100% - 2.5rem, 760px);
    --gutter: var(--space-5);
    --radius: 8px;
    --radius-card: 12px;

    
    --call-bar-height: 0px;

    
    --motion: 150ms;

    
    color-scheme: light;
}



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

html {
    -webkit-text-size-adjust: 100%;
    
    scroll-padding-top: var(--space-5);
}

body {
    margin: 0;
    background-color: var(--bg);
    color: var(--ink);
    font-family: var(--font-body);
    font-size: var(--fs-body);
    line-height: var(--lh-body);
    font-synthesis-weight: none;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    
    overflow-wrap: break-word;
    
    padding-bottom: var(--call-bar-height);
}

h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd,
ul,
ol {
    margin: 0;
}

ul,
ol {
    padding: 0;
}

img,
picture,
svg,
video {
    display: block;
    max-width: 100%;
}

img {
    height: auto;
}



h1,
h2,
h3,
h4 {
    font-family: var(--font-display);
    color: var(--ink-strong);
    line-height: var(--lh-heading);
    font-weight: 500;
    text-wrap: balance;
    
}

h1 {
    font-size: var(--fs-h1);
    line-height: var(--lh-display);
}

h2 {
    font-size: var(--fs-h2);
}

h3 {
    font-size: var(--fs-h3);
}

h4 {
    font-size: var(--fs-body);
    font-weight: 600;
}

p,
li,
dd,
dt {
    max-width: var(--measure);
}

p + p {
    margin-top: var(--space-4);
}

a {
    color: var(--teal-text);
    text-decoration-thickness: 1px;
    text-underline-offset: 0.18em;
}

a:hover {
    color: var(--ink-strong);
}

strong,
b {
    font-weight: 600;
}

small {
    font-size: var(--fs-small);
}

hr {
    border: 0;
    border-top: 1px solid var(--rule);
    margin: var(--space-6) 0;
}


.eyebrow {
    font-family: var(--font-body);
    font-size: var(--fs-small);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ink-muted);
    font-weight: 600;
    margin: 0 0 var(--space-3);
}

.lead {
    font-size: var(--fs-lead);
    line-height: 1.55;
    max-width: var(--measure-lead);
    color: var(--ink);
}



:focus-visible {
    outline: 2px solid var(--focus);
    outline-offset: 2px;
    border-radius: 2px;
}


.no-interaction h1:focus-visible {
    outline: none;
}


:focus:not(:focus-visible) {
    outline: none;
}



input,
select,
textarea,
button {
    font: inherit;
    color: inherit;
}

input,
select,
textarea {
    background-color: var(--bg-raised);
}

button {
    background: none;
    border: 0;
    padding: 0;
    cursor: pointer;
}

label {
    display: block;
    font-weight: 600;
    font-size: var(--fs-small);
    color: var(--ink);
    margin-bottom: var(--space-2);
}

fieldset {
    border: 0;
    padding: 0;
    margin: 0;
    min-width: 0;
}

legend {
    padding: 0;
}

table {
    border-collapse: collapse;
}



.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}



@media (prefers-reduced-motion: reduce) {
    :root {
        --motion: 0ms;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}
