


*,
::before,
::after {
  box-sizing: border-box;
  border-width: 0;
  border-style: solid;
  border-color: currentColor;
}

html {
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  -moz-tab-size: 4;
  tab-size: 4;
  scroll-behavior: smooth;
  scroll-padding-top: 5rem;
}

body {
  margin: 0;
  line-height: inherit;
}

hr {
  height: 0;
  color: inherit;
  border-top-width: 1px;
}

h1, h2, h3, h4, h5, h6 {
  font-size: inherit;
  font-weight: inherit;
  margin: 0;
}

p, figure, blockquote, dl, dd {
  margin: 0;
}

ol, ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

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

button, input, optgroup, select, textarea {
  font-family: inherit;
  font-size: 100%;
  font-weight: inherit;
  line-height: inherit;
  color: inherit;
  margin: 0;
  padding: 0;
}

button, [type="button"], [type="submit"] {
  -webkit-appearance: button;
  background-color: transparent;
  background-image: none;
  cursor: pointer;
}

img, svg, video, canvas {
  display: block;
  vertical-align: middle;
  max-width: 100%;
}

img {
  height: auto;
}

table {
  text-indent: 0;
  border-color: inherit;
  border-collapse: collapse;
}

[hidden] {
  display: none !important;
}


:root {
  
  --bg-primary: #ffffff;
  --bg-secondary: #f1f5f9;
  --bg-tertiary: #e2e8f0;
  --surface-raised: #ffffff;
  
  --text-primary: #0f172a;
  --text-secondary: #334155;
  --text-muted: #64748b;
  --ink-inverse: #f8fafc;
  
  --accent: #1e3a8a;
  --accent-hover: #1e40af;
  
  --brand-lemon: #f5bd12;
  --brand-lemon-soft: #fde9a8;
  --brand-ember: #d9480f;
  --brand-ember-hover: #b53c0c;
  
  --rule: #cbd5e1;
  --rule-strong: #94a3b8;
  --radius-card: 0.875rem;
  --radius-pill: 2rem;
  --shade-card: 0 0.25rem 0.875rem rgba(15, 23, 42, 0.08);
  --shade-lift: 0 0.625rem 1.875rem rgba(15, 23, 42, 0.2);
  --shade-dock: 0 -0.375rem 2rem rgba(15, 23, 42, 0.18);
  
  --gap-hair: 0.5rem;
  --gap-line: 1rem;
  --gap-column: 1.5rem;
  --gap-band: 2rem;
  --gap-broad: 3rem;
  --tempo: 0.3s ease;
  --measure: 34rem;
}

[data-theme="dark"] {
  --bg-primary: #0b1220;
  --bg-secondary: #111c2e;
  --bg-tertiary: #1a2740;
  --surface-raised: #16233a;
  --text-primary: #eef3fa;
  --text-secondary: #c6d2e2;
  --text-muted: #93a4bd;
  --ink-inverse: #0b1220;
  --accent: #3f62c4;
  --accent-hover: #5578dc;
  --brand-lemon: #ffc93c;
  --brand-lemon-soft: #4a3c12;
  --brand-ember: #f4692c;
  --brand-ember-hover: #ff8149;
  --rule: #2a3b56;
  --rule-strong: #46587a;
  --shade-card: 0 0.25rem 0.875rem rgba(0, 0, 0, 0.45);
  --shade-lift: 0 0.625rem 1.875rem rgba(0, 0, 0, 0.55);
  --shade-dock: 0 -0.375rem 2rem rgba(0, 0, 0, 0.6);
}


* {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Inter", system-ui, sans-serif;
}

body {
  background: var(--bg-primary);
  color: var(--text-primary);
  font-size: 1.0625rem;
  letter-spacing: 0;
  -webkit-font-smoothing: antialiased;
  padding-bottom: 5.5rem;
}

h1 {
  font-size: 2rem;
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1.15;
}

h2 {
  font-size: 1.5rem;
  font-weight: 500;
  letter-spacing: -0.015em;
  line-height: 1.2;
}

h3 {
  font-size: 1.125rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.3;
}

h4 {
  font-size: 1rem;
  font-weight: 600;
}

p {
  font-size: 1rem;
  line-height: 1.5;
  color: var(--text-secondary);
  margin-bottom: 0.5rem;
}

strong, b {
  font-weight: 600;
  color: var(--text-primary);
}

a:hover {
  color: var(--brand-ember);
}

small {
  font-size: 0.8125rem;
}

::selection {
  background: var(--brand-lemon);
  color: #0f172a;
}

:focus-visible {
  outline: 0.1875rem solid var(--brand-ember);
  outline-offset: 0.125rem;
}

@media (min-width: 48rem) {
  h1 { font-size: 2.75rem; }
  h2 { font-size: 1.875rem; }
  body { font-size: 1.0625rem; }
}

@media (min-width: 64rem) {
  h1 { font-size: 3.25rem; }
  h2 { font-size: 2.125rem; }
}


.u-eyebrow {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--brand-ember);
}
.u-muted { color: var(--text-muted); }
.u-ink { color: var(--text-primary); }
.u-lede { font-size: 1.125rem; line-height: 1.5; }
.u-fs-s { font-size: 0.875rem; }
.u-fs-xs { font-size: 0.8125rem; }
.u-fw-6 { font-weight: 600; }
.u-fw-5 { font-weight: 500; }
.u-italic { font-style: italic; }
.u-mb-0 { margin-bottom: 0; }
.u-mb-1 { margin-bottom: 0.5rem; }
.u-mb-2 { margin-bottom: 1rem; }
.u-mb-3 { margin-bottom: 1.5rem; }
.u-mb-4 { margin-bottom: 2rem; }
.u-mt-2 { margin-top: 1rem; }
.u-mt-3 { margin-top: 1.5rem; }
.u-mt-4 { margin-top: 2rem; }
.u-measure { max-width: var(--measure); }
.u-rule-top { border-top: 1px solid var(--rule); padding-top: 1.5rem; }
.u-rule-bottom { border-bottom: 1px solid var(--rule); padding-bottom: 1rem; }
.u-flex { display: flex; flex-wrap: wrap; gap: 1rem; }
.u-flex-center { align-items: center; }
.u-between { justify-content: space-between; }
.u-full { width: 100%; }
.u-nowrap { white-space: nowrap; }
.u-hidden { display: none; }
.u-sr {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
