@import url("./tokens.css");

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--ds-ground); color: var(--ds-body); font: var(--ds-font-weight-body) var(--ds-font-size-base)/var(--ds-line-height-body) var(--ds-font-sans); }
a { color: var(--ds-accent-text); text-underline-offset: .18em; }
a:hover { color: var(--ds-accent-hover); }
a:focus-visible { outline: 0.125rem solid var(--ds-focus); outline-offset: var(--ds-spacing-1); }
.skip { position: absolute; left: var(--ds-spacing-4); top: -10rem; z-index: 5; background: var(--ds-ground); padding: var(--ds-spacing-3); }
.skip:focus { top: var(--ds-spacing-3); }
.frame { width: min(100% - 2 * var(--ds-spacing-6), 70rem); margin-inline: auto; }
.mast { display: flex; align-items: center; justify-content: space-between; gap: var(--ds-spacing-6); min-height: var(--ds-spacing-20); border-bottom: 1px solid var(--ds-rule); }
.brand { color: var(--ds-ink); text-decoration: none; font-size: var(--ds-font-size-xl); font-weight: var(--ds-font-weight-heading); letter-spacing: var(--ds-letter-spacing-display); }
.brand small { display: block; color: var(--ds-muted); font-size: var(--ds-font-size-xs); font-weight: var(--ds-font-weight-body); line-height: 1.2; letter-spacing: var(--ds-letter-spacing-base); }
nav { display: flex; flex-wrap: wrap; gap: var(--ds-spacing-6); }
nav a { color: var(--ds-body); font-size: var(--ds-font-size-sm); text-decoration: none; }
nav a[aria-current="page"] { color: var(--ds-accent-text); text-decoration: underline; }
main { min-height: 65vh; }
.hero { padding-block: clamp(var(--ds-spacing-12), 8vw, var(--ds-spacing-20)); max-width: 47.5rem; }
.hero h1 { font-size: clamp(var(--ds-display-min), 10vw, var(--ds-font-size-8xl)); margin-bottom: var(--ds-spacing-2); }
.promise { color: var(--ds-ink); font-size: clamp(var(--ds-font-size-2xl), 4vw, var(--ds-font-size-3xl)); line-height: var(--ds-line-height-sub); font-weight: var(--ds-font-weight-heading); max-width: 30ch; margin-bottom: var(--ds-spacing-8); }
.eyebrow { margin: 0 0 var(--ds-spacing-4); color: var(--ds-muted); font: var(--ds-font-weight-label) var(--ds-font-size-xs)/1.5 var(--ds-font-mono); letter-spacing: var(--ds-letter-spacing-eyebrow); text-transform: uppercase; }
h1, h2, h3 { color: var(--ds-ink); font-weight: var(--ds-font-weight-heading); }
h1 { margin: 0 0 var(--ds-spacing-6); font-size: clamp(var(--ds-font-size-4xl), 6vw, var(--ds-font-size-7xl)); line-height: var(--ds-line-height-tight); letter-spacing: var(--ds-letter-spacing-display); }
h2 { margin: 0 0 var(--ds-spacing-3); font-size: var(--ds-font-size-2xl); line-height: var(--ds-line-height-sub); }
h3 { margin: 0 0 var(--ds-spacing-2); font-size: var(--ds-font-size-lg); }
p { margin: 0 0 var(--ds-spacing-4); }
.lede { font-size: var(--ds-font-size-xl); line-height: var(--ds-line-height-snug); color: var(--ds-body); max-width: 58ch; }
.cta { display: inline-flex; min-height: 2.75rem; align-items: center; background: var(--ds-accent); color: var(--ds-ground); padding: var(--ds-spacing-3) var(--ds-spacing-5); border-radius: var(--ds-radius-md); text-decoration: none; font-weight: var(--ds-font-weight-label); }
.cta:hover { background: var(--ds-accent-hover); color: var(--ds-ground); }
.text-link { display: inline-flex; min-height: 2.75rem; align-items: center; }
.feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--ds-spacing-8); border-top: 1px solid var(--ds-rule); padding-block: var(--ds-spacing-10) var(--ds-spacing-20); }
.feature-grid article { max-width: 32ch; }
.prose { max-width: 45rem; padding-block: var(--ds-spacing-12) var(--ds-spacing-20); }
.prose section { padding-top: var(--ds-spacing-8); margin-top: var(--ds-spacing-8); border-top: 1px solid var(--ds-rule); }
.prose section:first-of-type { margin-top: 0; }
.note { color: var(--ds-muted); font-size: var(--ds-font-size-sm); }
footer { border-top: 1px solid var(--ds-rule); padding-block: var(--ds-spacing-8); color: var(--ds-muted); font-size: var(--ds-font-size-sm); }
.footer-inner { display: flex; justify-content: space-between; gap: var(--ds-spacing-6); flex-wrap: wrap; }
.footer-inner p { margin: 0; }
.footer-inner nav a { color: var(--ds-muted); }
@media (max-width: 43.75rem) { .mast { align-items: flex-start; flex-direction: column; padding-block: var(--ds-spacing-5); } nav { gap: var(--ds-spacing-4); } .feature-grid { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
