/* v2 typography scale */
.v2-theme { font-size: 15px; line-height: 1.55; }

.v2-h1 {
    font-family: var(--v2-f-head);
    font-size: clamp(44px, 5.2vw, 76px);
    line-height: 1.0;
    letter-spacing: -2px;
    font-weight: 500;
    color: var(--v2-text);
    margin: 0 0 24px;
    max-width: 1000px;
}

.v2-h1-hero {
    font-family: var(--v2-f-head);
    font-size: clamp(40px, 5.4vw, 78px);
    line-height: 1.02;
    letter-spacing: -2px;
    font-weight: 500;
    color: var(--v2-text);
    margin: 0 0 24px;
}

.v2-h2 {
    font-family: var(--v2-f-head);
    font-size: clamp(32px, 3.6vw, 52px);
    line-height: 1.05;
    letter-spacing: -1.2px;
    font-weight: 500;
    color: var(--v2-text);
    margin: 10px 0 0;
}

.v2-h3 {
    font-family: var(--v2-f-head);
    font-size: 22px;
    font-weight: 500;
    letter-spacing: -0.4px;
    color: var(--v2-text);
    margin: 0;
}

.v2-para {
    font-size: 17px;
    line-height: 1.55;
    color: var(--v2-text-lead);
    margin: 0 0 16px;
    max-width: 640px;
}
.v2-para-dim {
    font-size: 14px;
    line-height: 1.65;
    color: var(--v2-dim);
    margin: 0;
    max-width: 640px;
}

.v2-mono {
    font-family: var(--v2-f-mono);
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 500;
    font-size: 11px;
    color: var(--v2-muted);
}
.v2-mono-accent { color: var(--v2-accent); }
.v2-mono-dim { color: var(--v2-muted-deep); }
.v2-mono-10 { font-size: 10px; }
.v2-mono-12 { font-size: 12px; }
.v2-mono-13 { font-size: 13px; }

/* The accent "." at the end of section titles */
.v2-dot { color: var(--v2-accent); }

/* ── Rich-text rendering (Quill output on project pages) ────────────────
 * The admin writes HTML via Quill — project lead / challenge paragraphs,
 * solution descriptions, homepage card leads. Resets default <p> margins
 * so the spacing matches the v2 grid and styles lists / headings inside
 * the same visual system. Apply by adding `.v2-rich` to any container that
 * receives admin HTML.
 */
.v2-rich > p                { margin: 0 0 10px; }
.v2-rich > p:last-child     { margin-bottom: 0; }
.v2-rich > ul,
.v2-rich > ol               { margin: 0 0 10px; padding-left: 22px; }
.v2-rich > ul li,
.v2-rich > ol li            { margin: 0 0 4px; }
.v2-rich > h2,
.v2-rich > h3,
.v2-rich > h4 {
    font-family: var(--v2-f-head);
    font-weight: 500;
    letter-spacing: -0.2px;
    color: var(--v2-text);
    margin: 14px 0 8px;
}
.v2-rich > h2 { font-size: 22px; }
.v2-rich > h3 { font-size: 18px; }
.v2-rich > h4 { font-size: 16px; }
.v2-rich a {
    color: var(--v2-accent);
    text-decoration: none;
    border-bottom: 1px solid rgba(255, 122, 26, 0.35);
    transition: border-color 0.15s;
}
.v2-rich a:hover { border-bottom-color: var(--v2-accent); }
.v2-rich strong { color: var(--v2-text); font-weight: 500; }
.v2-rich em     { font-style: italic; }
