/* Authoritative typography audit and correction — 2026-07-29
   Loaded last on every page. This file resolves conflicts from earlier
   page-specific styles and applies one semantic typography system. */

:root {
  --type-heading: "Raleway", Arial, sans-serif;
  --type-h2: "Lora", Georgia, serif;
  --type-body: "Inter", Arial, sans-serif;
  --type-ink: #2d2d2d;
  --type-accent: #023fa1;
  --type-panel: #2d2d2d;

  --type-body-size: 18px;
  --type-body-leading: 1.55;
  --type-reading-measure: 72ch;

  --type-h1-size: 36px;
  --type-h2-size: 27px;
  --type-h3-size: 22px;
  --type-h4-size: 19px;
  --type-h5-size: 16px;
  --type-h6-size: 16px;
  --type-heading-leading: 1.15;
}

html {
  font-size: 100%;
}

html body.page-home,
html body.page-profile,
html body.page-resume,
html body.page-contact,
html body.project-page {
  color: var(--type-ink) !important;
  font-family: var(--type-body) !important;
  font-size: var(--type-body-size) !important;
  font-style: normal !important;
  font-weight: 400 !important;
  line-height: var(--type-body-leading) !important;
}

/* Body copy: one family, size, weight, spacing, and line-height everywhere. */
html body.page-home main p,
html body.page-home main li,
html body.page-home main dd,
html body.page-home main dt,
html body.page-profile main.about-page p,
html body.page-profile main.about-page li,
html body.page-profile main.about-page dd,
html body.page-profile main.about-page dt,
html body.page-resume main.resume-editorial p,
html body.page-resume main.resume-editorial li,
html body.page-resume main.resume-editorial dd,
html body.page-contact main p,
html body.page-contact main li,
html body.project-page main.project-main p,
html body.project-page main.project-main li,
html body.project-page main.project-main dd,
html body.project-page main.project-main dt,
html body.page-profile p.about-section__body,
html body.page-resume p.resume-editorial__summary,
html body.page-resume p.resume-editorial__company,
html body.page-resume p.resume-editorial__date,
html body.page-resume p.resume-editorial__location,
html body.page-resume .resume-editorial__job-copy li,
html body.page-resume .resume-editorial__education li,
html body.page-resume .resume-editorial__skills dd,
html body.page-contact span.contact-item__value,
html body.project-page p.project-summary,
html body.project-page p.project-meta-line,
html body.project-page .source-media-section p,
html body.project-page .source-case-section p,
html body.project-page figcaption {
  color: var(--type-ink) !important;
  font-family: var(--type-body) !important;
  font-size: var(--type-body-size) !important;
  font-style: normal !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  line-height: var(--type-body-leading) !important;
}

html body.page-profile p.about-section__body,
html body.page-resume p.resume-editorial__summary,
html body.page-resume .resume-editorial__job-copy,
html body.page-resume .resume-editorial__education,
html body.page-resume .resume-editorial__skills,
html body.page-contact .contact-content,
html body.project-page p.project-summary,
html body.project-page .source-media-section p,
html body.project-page .source-case-section p {
  max-inline-size: var(--type-reading-measure) !important;
}

html body.page-home strong,
html body.page-profile strong,
html body.page-resume strong,
html body.page-contact strong,
html body.project-page strong,
html body.page-home b,
html body.page-profile b,
html body.page-resume b,
html body.page-contact b,
html body.project-page b {
  font-family: inherit !important;
  font-style: normal !important;
  font-weight: 600 !important;
}

html body.page-home em,
html body.page-profile em,
html body.page-resume em,
html body.page-contact em,
html body.project-page em,
html body.page-home i,
html body.page-profile i,
html body.page-resume i,
html body.page-contact i,
html body.project-page i {
  font-family: inherit !important;
  font-style: normal !important;
  font-weight: inherit !important;
}

/* Shared heading reset. */
html body.page-home h1,
html body.page-home h2,
html body.page-home h3,
html body.page-home h4,
html body.page-home h5,
html body.page-home h6,
html body.page-profile h1,
html body.page-profile h2,
html body.page-profile h3,
html body.page-profile h4,
html body.page-profile h5,
html body.page-profile h6,
html body.page-resume h1,
html body.page-resume h2,
html body.page-resume h3,
html body.page-resume h4,
html body.page-resume h5,
html body.page-resume h6,
html body.page-contact h1,
html body.page-contact h2,
html body.page-contact h3,
html body.page-contact h4,
html body.page-contact h5,
html body.page-contact h6,
html body.project-page h1,
html body.project-page h2,
html body.project-page h3,
html body.project-page h4,
html body.project-page h5,
html body.project-page h6 {
  margin-top: 0;
  font-style: normal !important;
  line-height: var(--type-heading-leading) !important;
  text-transform: none !important;
  text-wrap: balance;
}

/* H1: page titles. */
html body.page-home h1,
html body.page-profile h1.about-name,
html body.page-resume main.resume-editorial h1,
html body.page-contact h1.contact-title,
html body.project-page h1.project-title {
  color: var(--type-ink) !important;
  font-family: var(--type-heading) !important;
  font-size: var(--type-h1-size) !important;
  font-style: normal !important;
  font-weight: 400 !important;
  letter-spacing: -0.015em !important;
  line-height: var(--type-heading-leading) !important;
}

/* H2: every H2 uses Lora with no special-case styling. */
html body.page-home h2,
html body.page-profile h2.about-section__title,
html body.page-profile h2.about-section__title--mindset,
html body.page-profile h2.about-section__title--portfolio-motion,
html body.page-profile h2.about-section__title--chosen-path,
html body.page-resume main.resume-editorial h2,
html body.page-contact h2,
html body.project-page main.project-main h2,
html body.project-page h2.learn-more__title,
html body.project-page .source-media-section h2 {
  color: var(--type-accent) !important;
  font-family: var(--type-h2) !important;
  font-size: var(--type-h2-size) !important;
  font-style: normal !important;
  font-weight: 500 !important;
  letter-spacing: -0.01em !important;
  line-height: var(--type-heading-leading) !important;
}

/* H3. */
html body.page-home h3,
html body.page-profile h3,
html body.page-resume main.resume-editorial h3,
html body.page-contact h3,
html body.project-page main.project-main h3 {
  color: var(--type-ink) !important;
  font-family: var(--type-heading) !important;
  font-size: var(--type-h3-size) !important;
  font-style: normal !important;
  font-weight: 500 !important;
  letter-spacing: -0.015em !important;
  line-height: var(--type-heading-leading) !important;
}

/* H4, including the resume role beneath the H1. */
html body.page-home h4,
html body.page-profile h4,
html body.page-resume main.resume-editorial h4,
html body.page-resume main.resume-editorial h4.resume-editorial__role,
html body.page-contact h4,
html body.project-page main.project-main h4 {
  color: var(--type-ink) !important;
  font-family: var(--type-heading) !important;
  font-size: var(--type-h4-size) !important;
  font-style: normal !important;
  font-weight: 500 !important;
  letter-spacing: -0.01em !important;
  line-height: var(--type-heading-leading) !important;
}

/* H5 and H5-equivalent content labels. */
html body.page-home h5,
html body.page-profile h5,
html body.page-resume main.resume-editorial h5,
html body.page-contact h5,
html body.project-page main.project-main h5,
html body.page-resume .resume-editorial__skills dt,
html body.page-contact span.contact-item__label {
  color: var(--type-ink) !important;
  font-family: var(--type-heading) !important;
  font-size: var(--type-h5-size) !important;
  font-style: normal !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  line-height: var(--type-heading-leading) !important;
}

/* H6. */
html body.page-home h6,
html body.page-profile h6,
html body.page-resume main.resume-editorial h6,
html body.page-contact h6,
html body.project-page main.project-main h6 {
  color: var(--type-ink) !important;
  font-family: var(--type-heading) !important;
  font-size: var(--type-h6-size) !important;
  font-style: normal !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  line-height: var(--type-heading-leading) !important;
}

/* Resume supporting text is explicitly assigned to its proper role. */
html body.page-resume p.resume-editorial__eyebrow {
  color: var(--type-accent) !important;
  font-family: var(--type-heading) !important;
  font-size: 16px !important;
  font-style: normal !important;
  font-weight: 500 !important;
  letter-spacing: 0.12em !important;
  line-height: 1.4 !important;
  text-transform: uppercase !important;
}

html body.page-resume p.resume-editorial__company,
html body.page-resume p.resume-editorial__date,
html body.page-resume p.resume-editorial__location,
html body.page-resume p.resume-editorial__summary,
html body.page-resume .resume-editorial__company span,
html body.page-resume .resume-editorial__skills dd {
  color: var(--type-ink) !important;
  font-family: var(--type-body) !important;
  font-size: var(--type-body-size) !important;
  font-style: normal !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  line-height: var(--type-body-leading) !important;
}

/* Interface typography stays separate from content headings and body copy. */
html body.page-home .site-nav__link,
html body.page-profile .site-nav__link,
html body.page-resume .site-nav__link,
html body.page-contact .site-nav__link,
html body.project-page .menu-primary,
html body.project-page .menu-work-toggle,
html body.project-page .menu-work-submenu a,
html body.project-page .menu-panel__label,
html body.project-page .menu-contact__label,
html body.page-home .project-filter__toggle,
html body.page-home .project-filter__menu button,
html body.page-profile .view-switcher-text,
html body.page-profile .explore-work,
html body.page-resume .resume-editorial__download,
html body.project-page .back-link,
html body.project-page .learn-more-card__title,
html body.project-page .source-browser-address,
html body.project-page .source-browser-scroll-label {
  font-family: var(--type-heading) !important;
  font-size: 16px !important;
  font-style: normal !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  line-height: 1.4 !important;
}

/* Homepage project cards: large, left-aligned, and vertically centered. */
html body.page-home .project-card__content {
  box-sizing: border-box !important;
  display: flex !important;
  min-height: 76px !important;
  padding: 0 24px !important;
  align-items: center !important;
  justify-content: flex-start !important;
  background: var(--type-panel) !important;
  text-align: left !important;
}

html body.page-home span.project-card__title {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  align-self: center !important;
  color: #ffffff !important;
  font-family: var(--type-heading) !important;
  font-size: 18px !important;
  font-style: normal !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  line-height: 1.2 !important;
  text-align: left !important;
}

html body.page-home p.project-card__meta {
  display: none !important;
}

@media (min-width: 768px) {
  :root {
    --type-h1-size: 44px;
    --type-h2-size: 34px;
    --type-h3-size: 26px;
    --type-h4-size: 21px;
    --type-h5-size: 17px;
    --type-h6-size: 16px;
    --type-body-leading: 1.5;
  }

  html body.page-home .project-card__content {
    min-height: 80px !important;
    padding-inline: 28px !important;
  }

  html body.page-home span.project-card__title {
    font-size: 19px !important;
  }
}

@media (min-width: 1024px) {
  :root {
    --type-h1-size: 56px;
    --type-h2-size: 42px;
    --type-h3-size: 32px;
    --type-h4-size: 23px;
    --type-h5-size: 19px;
    --type-h6-size: 16px;
    --type-body-leading: 1.55;
  }

  html body.page-home .project-card__content {
    min-height: 84px !important;
    padding-inline: 32px !important;
  }

  html body.page-home span.project-card__title {
    font-size: 20px !important;
  }
}

@media (max-width: 767px) {
  :root {
    --type-reading-measure: 100%;
    --type-body-leading: 1.5;
  }
}

/* High-specificity corrections for legacy profile and resume selectors. */
html body.page-profile #work-view h1.about-name,
html body.page-profile #person-view h1.about-name {
  color: var(--type-ink) !important;
  font-family: var(--type-heading) !important;
  font-size: var(--type-h1-size) !important;
  font-style: normal !important;
  font-weight: 400 !important;
  letter-spacing: -0.015em !important;
  line-height: var(--type-heading-leading) !important;
}

html body.page-profile #work-view h2.about-section__title,
html body.page-profile #person-view h2.about-section__title,
html body.page-profile #person-view h2.about-section__title--mindset,
html body.page-profile #person-view h2.about-section__title--portfolio-motion,
html body.page-profile #person-view h2.about-section__title--chosen-path {
  color: var(--type-accent) !important;
  font-family: var(--type-h2) !important;
  font-size: var(--type-h2-size) !important;
  font-style: normal !important;
  font-weight: 500 !important;
  letter-spacing: -0.01em !important;
  line-height: var(--type-heading-leading) !important;
  text-transform: none !important;
}

html body.page-resume #main-content p.resume-editorial__eyebrow {
  color: var(--type-accent) !important;
  font-family: var(--type-heading) !important;
  font-size: 16px !important;
  font-style: normal !important;
  font-weight: 500 !important;
  letter-spacing: 0.12em !important;
  line-height: 1.4 !important;
  text-transform: uppercase !important;
}
