
:root {
  --ground:#1A1714;
  --panel:#24201B;
  --panel-2:#2C2721;
  --line:#3B342B;
  --line-soft:#2F2A23;
  --sand:#ECE2CE;
  --sand-2:#D8CDB7;
  --dust:#A89D88;
  --ochre:#C6A15F;
  --olive:#7F805A;
  --olive-soft:rgba(127, 128, 90, 0.16);
  --terracotta:#B4694C;
  --terracotta-soft:rgba(180, 105, 76, 0.14);
  --ember:#D9773F;
  --ember-hi:#E68B57;
  --ember-lo:#BF6331;
  --ember-soft:rgba(217, 119, 63, 0.14);
  --accent:var(--ember);
  --ink-on-accent:#1A1714;
  --scrim:rgba(12, 10, 8, 0.66);

  --fabe-79c:'Cormorant', 'Cormorant Garamond', 'Iowan Old Style', 'Palatino Linotype', Georgia, serif;
  --fabe-963:"Hanken Grotesk", "Helvetica Neue", Arial, sans-serif;
  --fabe-2e4:"JetBrains Mono", "SFMono-Regular", Menlo, Consolas, monospace;

  --fs-lockup:clamp(2.6rem, 9vw, 8.5rem);
  --fs-lockup-sm:clamp(2rem, 5vw, 4rem);
  --fs-h1:clamp(2.4rem, 6vw, 5.25rem);
  --fs-h2:clamp(2rem, 5vw, 4rem);
  --fs-h3:clamp(1.35rem, 2.4vw, 1.75rem);
  --fs-h4:clamp(1.125rem, 1.6vw, 1.25rem);
  --fs-lead:clamp(1.125rem, 1.5vw, 1.3125rem);
  --fs-body:1.0625rem;
  --fs-small:0.9375rem;
  --fs-meta:0.78125rem;
  --fs-micro:0.6875rem;

  --lh-tight:0.92;
  --lh-head:1.08;
  --lh-snug:1.35;
  --lh-body:1.65;

  --track-display:-0.018em;
  --track-meta:0.08em;
  --track-caps:0.14em;

  --s-0:0.25rem;
  --s-1:0.5rem;
  --s-2:1rem;
  --s-3:1.5rem;
  --s-4:2.5rem;
  --s-5:4rem;
  --s-6:6.5rem;

  --gutter:clamp(1.25rem, 4vw, 3.5rem);
  --section-pad:clamp(4rem, 10vh, 8rem);

  --sidebar-w:280px;
  --topbar-h:4rem;
  --shell-max:1180px;
  --measure:68ch;
  --measure-narrow:52ch;
  --lockup-indent:33%;

  --radius:2px;
  --radius-0:0;
  --hair:1px solid var(--line);

  --hair-soft:1px solid var(--line-soft);

  --shadow-1:0 1px 0 rgba(236, 226, 206, 0.04) inset, 0 12px 28px -18px rgba(0, 0, 0, 0.7);
  --shadow-2:0 1px 0 rgba(236, 226, 206, 0.05) inset, 0 28px 60px -28px rgba(0, 0, 0, 0.85);
  --shadow-ember:0 10px 26px -14px rgba(217, 119, 63, 0.65);
  --ring:0 0 0 2px var(--ground), 0 0 0 4px var(--ochre);

  --dur-1:140ms;
  --dur-2:180ms;
  --dur-3:320ms;
  --dur-4:640ms;
  --dur-5:1100ms;
  --ease-out:cubic-bezier(0.2, 0.7, 0.2, 1);
  --ease-in-out:cubic-bezier(0.65, 0, 0.35, 1);

  --ease-draw:cubic-bezier(0.77, 0, 0.18, 1);
  --ease-soft:cubic-bezier(0.33, 1, 0.68, 1);

  --z-base:1;
  --z-sticky:20;
  --z-drawer:60;
  --z-consent:70;
  --z-chat:80;
  --z-skip:100;

  color-scheme:dark;
}

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

html {
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  scroll-padding-top:5rem;
  hanging-punctuation:first last;
}

body {
  margin:0;
  min-height:100vh;
  min-height:100svh;
  background-color:var(--ground);
  color:var(--sand);
  font-family:var(--fabe-963);
  font-size:var(--fs-body);
  line-height:var(--lh-body);
  font-weight:400;
  font-feature-settings:'kern' 1, "liga" 1;
  font-kerning:normal;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}

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

ul[class], ol[class] {
  list-style:none;
  padding:0;
}

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

img {
  height:auto;
  border-style:none;
}

iframe, embed, object {
  max-width:100%;
}

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

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

table {
  border-collapse:collapse;
  width:100%;
}

[hidden] {
  display:none !important;
}

::selection {
  background:var(--ember);
  color:var(--ground);
}

:focus {
  outline:none;
}

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

h1, h2, h3, h4 {
  font-family:var(--fabe-79c);
  font-weight:500;
  color:var(--sand);
  letter-spacing:var(--track-display);
  line-height:var(--lh-head);
  text-wrap:balance;
  overflow-wrap:break-word;
  font-feature-settings:'kern' 1, "liga" 1, "dlig" 1, "onum" 1;
}

h1 { font-size: var(--fs-h1); line-height: 1; font-weight: 500; }
h2 { font-size: var(--fs-h2); line-height: 1.02; }
h3 { font-size: var(--fs-h3); line-height: 1.15; font-weight: 600; letter-spacing: -0.008em; }
h4 { font-size: var(--fs-h4); line-height: 1.25; font-weight: 600; letter-spacing: 0; }

h1 em, h2 em, h3 em {
  font-style:italic;
  font-weight:500;
  color:var(--sand-2);
}

p {
  text-wrap:pretty;
  overflow-wrap:break-word;
}

a {
  color:var(--sand);
  text-decoration-line:underline;
  text-decoration-thickness:1px;
  text-decoration-color:rgba(198, 161, 95, 0.55);
  text-underline-offset:0.22em;
  transition:color var(--dur-2) var(--ease-out), text-decoration-color var(--dur-2) var(--ease-out);
}

a:hover {
  color:var(--ochre);
  text-decoration-color:var(--ochre);
}

a:active {
  color:var(--ember);
}

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

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

code, kbd, samp, pre, .mono {
  font-family:var(--fabe-2e4);
  font-feature-settings:"zero" 1, "tnum" 1;
}

code, kbd {
  font-size:0.875em;
  padding:0.08em 0.36em;
  background:var(--panel);
  border:var(--hair-soft);
  border-radius:var(--radius);
  color:var(--ochre);
}

pre {
  max-width:100%;
  overflow-x:auto;
  padding:var(--s-2) var(--s-3);
  background:var(--panel);
  border:var(--hair);
  border-radius:var(--radius);
  font-size:0.875rem;
  line-height:1.6;
}

hr {
  border:0;
  height:1px;
  background:var(--line);
  margin:var(--s-4) 0;
}

abbr[title] {
  text-decoration:underline dotted;
  cursor:help;
}

.icon {
  width:1.125em;
  height:1.125em;
  flex:none;
  fill:none;
  stroke:currentColor;
  display:inline-block;
  vertical-align:-0.18em;
}

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

.eyebrow {
  display:inline-flex;
  align-items:center;
  gap:0.75rem;
  font-family:var(--fabe-2e4);
  font-size:var(--fs-meta);
  font-weight:500;
  letter-spacing:var(--track-meta);
  text-transform:uppercase;
  color:var(--ochre);
  line-height:1.4;
}

.eyebrow::before {
  content:"";
  width:1.5rem;
  height:1px;
  background:currentColor;
  flex:none;
}

.meta {
  font-family:var(--fabe-2e4);
  font-size:var(--fs-meta);
  letter-spacing:0.02em;
  color:var(--dust);
  line-height:1.5;
}

.num {
  font-family:var(--fabe-2e4);
  font-feature-settings:"tnum" 1, "zero" 1;
  color:var(--ochre);
}

.muted { color: var(--dust); }
.accent { color: var(--ember); }

.prose {
  max-width:var(--measure);
  color:var(--sand-2);
}

.prose > * + * {
  margin-top:1.1em;
}

.prose h2 {
  font-size:clamp(1.75rem, 3.6vw, 2.6rem);
  margin-top:2.2em;
  color:var(--sand);
}

.prose h3 {
  font-size:var(--fs-h3);
  margin-top:1.9em;
  color:var(--sand);
}

.prose h4 {
  margin-top:1.6em;
  font-family:var(--fabe-2e4);
  font-size:var(--fs-meta);
  font-weight:500;
  letter-spacing:var(--track-meta);
  text-transform:uppercase;
  color:var(--ochre);
}

.prose h2 + *, .prose h3 + *, .prose h4 + * {
  margin-top:0.6em;
}

.prose ul, .prose ol {
  padding-left:1.25em;
}

.prose li + li {
  margin-top:0.45em;
}

.prose ul li::marker {
  color:var(--ember);
}

.prose ol li::marker {
  font-family:var(--fabe-2e4);
  font-size:0.85em;
  color:var(--ochre);
}

.prose blockquote {
  margin-left:0;
  padding:0.2em 0 0.2em 1.25em;
  border-left:1px solid var(--ember);
  font-family:var(--fabe-79c);
  font-style:italic;
  font-size:1.45rem;
  line-height:1.35;
  color:var(--sand);
}

.prose strong { color: var(--sand); }

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

.prose th, .prose td {
  text-align:left;
  vertical-align:top;
  padding:0.7rem 0.9rem 0.7rem 0;
  border-bottom:var(--hair);
}

.prose th {
  font-family:var(--fabe-2e4);
  font-size:var(--fs-meta);
  font-weight:500;
  letter-spacing:0.04em;
  text-transform:uppercase;
  color:var(--dust);
}

.wrap {
  width:100%;
  max-width:var(--shell-max);
  margin-inline:auto;
  padding-inline:var(--gutter);
}

.wrap--wide {
  max-width:1440px;
}

.measure {
  max-width:var(--measure);
}

.section {
  padding-block:var(--section-pad);
  position:relative;
}

.section--tight {
  padding-block:clamp(2.5rem, 6vh, 4.5rem);
}

.panel-full {
  min-height:100vh;
  min-height:100svh;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.stack {
  display:flex;
  flex-direction:column;
  gap:var(--stack-gap, var(--s-3));
}

.stack > * {
  min-width:0;
}

.stack--sm { --stack-gap: var(--s-2); }
.stack--lg { --stack-gap: var(--s-4); }

.cluster {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:var(--cluster-gap, var(--s-2));
}

.cluster > * {
  min-width:0;
}

.grid {
  display:grid;
  gap:var(--grid-gap, var(--s-4));
  grid-template-columns:repeat(auto-fit, minmax(min(100%, var(--grid-min, 16rem)), 1fr));
}

.grid > * {
  min-width:0;
}

.split {
  display:grid;
  gap:var(--s-4) var(--s-5);
  grid-template-columns:minmax(0, 1fr);
}

.split > * {
  min-width:0;
}

@media (min-width: 900px) {
  .split { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
  .split--even { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .split--flip { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
}

.rule {
  height:1px;
  border:0;
  background:var(--line);
  margin:0;
}

.rule--ember {
  background:var(--ember);
}

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

.hp {
  position:absolute !important;
  left:-10000px !important;
  top:auto !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
}

.no-js-hide { display: none; }
.js .no-js-hide { display: revert; }
.js .js-hide { display: none; }

@media (prefers-reduced-motion: reduce) {
  :root {
    --dur-1:0ms;
    --dur-2:0ms;
    --dur-3:0ms;
    --dur-4:0ms;
    --dur-5:0ms;
  }

  html:focus-within {
    scroll-behavior:auto;
  }

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

@media (prefers-reduced-motion: no-preference) {
  html:focus-within {
    scroll-behavior:smooth;
  }
}

@media print {
  body { background: #FFF; color: #000; }
  a { color: #000; }
}
