body {
    font-size: 1rem;
    line-height: 1.55;
    text-rendering: geometricPrecision;
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, p, blockquote { margin: 0; }

h1, h2, h3 {
    font-family: var(--font-display);
    font-weight: 700;
    letter-spacing: 0;
    line-height: 0.92;
    text-wrap: balance;
}

h1 { font-size: clamp(2.35rem, 5.6cqi, 6.2rem); max-width: 14ch; }
h2 { font-size: clamp(1.9rem, 3.65cqi, 4.4rem); max-width: 15ch; }
h3 { font-size: clamp(1.25rem, 2.05cqi, 2.55rem); max-width: 16ch; }

p {
    color: var(--text-soft);
    font-size: clamp(1rem, 1.35cqi, 1.25rem);
    line-height: 1.65;
}

.eyebrow {
    color: var(--accent);
    font-family: var(--font-eyebrow);
    font-size: clamp(0.76rem, 0.92cqi, 0.9rem);
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.35;
    text-transform: none;
}

.serif, blockquote, .hero-type h1 span {
    font-family: var(--font-serif);
    font-style: normal;
    font-weight: 700;
}

blockquote {
    color: var(--text);
    font-size: clamp(1.45rem, 3cqi, 3.6rem);
    line-height: 1.1;
    text-wrap: balance;
}

address { font-style: normal; }

.skip-link {
    position: fixed;
    top: 1rem;
    left: 1rem;
    z-index: 50;
    padding: 0.75rem 1rem;
    background: var(--text);
    color: var(--paper);
    transform: translateY(-150%);
    transition: transform var(--duration-slow) var(--ease-lux);
}

.skip-link:focus { transform: translateY(0); }

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