


*,
::before,
::after {
  box-sizing: border-box;
  border-width: 0;
  border-style: solid;
  border-color: #dbe3ec;
}

html {
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  -moz-tab-size: 4;
  tab-size: 4;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  line-height: inherit;
}

hr {
  height: 0;
  color: inherit;
  border-top-width: 1px;
}

abbr[title] {
  text-decoration: underline dotted;
}

b,
strong {
  font-weight: bolder;
}

code,
kbd,
samp,
pre {
  font-family: ui-monospace, "SFMono-Regular", Menlo, monospace;
  font-size: 1em;
}

small {
  font-size: 80%;
}

table {
  text-indent: 0;
  border-color: inherit;
  border-collapse: collapse;
}

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  font-weight: inherit;
  line-height: inherit;
  color: inherit;
  margin: 0;
  padding: 0;
}

button,
select {
  text-transform: none;
}

button,
[type="button"],
[type="submit"] {
  -webkit-appearance: button;
  background-color: transparent;
  background-image: none;
}

:-moz-focusring {
  outline: auto;
}

progress {
  vertical-align: baseline;
}

summary {
  display: list-item;
}

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol, ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

textarea {
  resize: vertical;
}

input::placeholder,
textarea::placeholder {
  opacity: 1;
  color: #94a3b8;
}

button,
[role="button"] {
  cursor: pointer;
}

:disabled {
  cursor: default;
}

img,
svg,
video,
canvas,
iframe,
object,
embed {
  display: block;
  vertical-align: middle;
}

img,
video {
  max-width: 100%;
  height: auto;
}

[hidden] {
  display: none;
}


:root {
  
  --paper: #ffffff;
  --mist: #f1f5f9;
  --stone: #e2e8f0;
  --line: #dbe3ec;
  --ink: #0f172a;
  --slate: #334155;
  --muted: #64748b;
  --navy: #1e3a8a;
  --navy-lift: #1e40af;
  --ember: #b45309;
  --ember-soft: #fdf3e7;
  --deep: #111827;

  
  --fs-xs: clamp(0.76rem, 0.72rem + 0.18vw, 0.84rem);
  --fs-sm: clamp(0.87rem, 0.84rem + 0.2vw, 0.95rem);
  --fs-base: clamp(1rem, 0.97rem + 0.22vw, 1.08rem);
  --fs-md: clamp(1.08rem, 1rem + 0.5vw, 1.3rem);
  --fs-lg: clamp(1.3rem, 1.12rem + 0.95vw, 1.85rem);
  --fs-xl: clamp(1.75rem, 1.36rem + 1.9vw, 2.75rem);
  --fs-2xl: clamp(2.05rem, 1.44rem + 3.1vw, 3.7rem);

  
  --sp-1: clamp(0.3rem, 0.28rem + 0.1vw, 0.4rem);
  --sp-2: clamp(0.55rem, 0.5rem + 0.2vw, 0.75rem);
  --sp-3: clamp(0.85rem, 0.75rem + 0.4vw, 1.2rem);
  --sp-4: clamp(1.2rem, 0.95rem + 0.9vw, 1.85rem);
  --sp-5: clamp(1.7rem, 1.3rem + 1.7vw, 2.8rem);

  --shell: clamp(20rem, 94vw, 78rem);
  --gut: max(var(--sp-3), calc((100vw - var(--shell)) / 2));
  --edge: 0.75em;
  --edge-lg: 1.5em;
  --stickh: 4.4em;
}


body {
  font-family: "Source Sans 3", "Segoe UI", system-ui, sans-serif;
  font-weight: 400;
  font-size: var(--fs-base);
  line-height: 1.62;
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
  padding-bottom: var(--stickh);
}

h1,
h2,
h3,
h4 {
  font-family: "Playfair Display", "Iowan Old Style", Georgia, serif;
  font-weight: 700;
  letter-spacing: -0.012em;
  color: var(--ink);
  line-height: 1.16;
}

h1 {
  font-size: var(--fs-2xl);
}

h2 {
  font-size: var(--fs-xl);
  margin-bottom: 0.5em;
}

h3 {
  font-size: var(--fs-lg);
  margin-bottom: 0.4em;
}

h4 {
  font-size: var(--fs-md);
  margin-bottom: 0.35em;
}

p {
  margin-bottom: 0.7em;
  max-width: 68ch;
}

p:last-child {
  margin-bottom: 0;
}

a {
  color: var(--navy);
  text-decoration: none;
}

a:hover {
  color: var(--navy-lift);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
summary:focus-visible {
  outline: 0.16em solid var(--ember);
  outline-offset: 0.16em;
}

::selection {
  background: var(--navy);
  color: #fff;
}
