    :root {
      --ink: #191919;
      --muted: #656565;
      --line: #dedbd5;
      --paper: #faf9f6;
      --accent: #7e2d22;
      --measure: 72rem;
      --pad: clamp(1.25rem, 4vw, 3.75rem);
    }
    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
      margin: 0;
      background: var(--paper);
      color: var(--ink);
      font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      font-size: 16px;
      line-height: 1.55;
    }
    a { color: inherit; text-underline-offset: .18em; }
    a:hover { color: var(--accent); }
    img { display: block; max-width: 100%; }
    .wrap { width: min(100% - (var(--pad) * 2), var(--measure)); margin-inline: auto; }
    .site-header { border-bottom: 1px solid var(--line); padding: 1.5rem 0; }
    .masthead { align-items: baseline; display: flex; gap: 2rem; justify-content: space-between; }
    .identity { font-size: 1.125rem; font-weight: 700; letter-spacing: -.02em; text-decoration: none; }
    .identity span { color: var(--muted); font-size: .82em; font-weight: 400; }
    .nav { display: flex; flex-wrap: wrap; gap: .75rem 1.4rem; }
    .nav a { color: var(--muted); font-size: .9rem; text-decoration: none; }
    .nav a[aria-current="page"] { color: var(--ink); font-weight: 700; }
    main { padding-block: clamp(2.8rem, 7vw, 6.5rem); }
    .eyebrow { color: var(--accent); font-size: .72rem; font-weight: 700; letter-spacing: .11em; margin: 0 0 .8rem; text-transform: uppercase; }
    h1, h2, h3, p { margin-top: 0; }
    h1 { font-size: clamp(2.4rem, 7vw, 5.6rem); font-weight: 500; letter-spacing: -.055em; line-height: .95; margin-bottom: 1.5rem; }
    h2 { font-size: clamp(1.45rem, 3vw, 2.15rem); font-weight: 500; letter-spacing: -.035em; line-height: 1.1; margin-bottom: 1.25rem; }
    .lede { color: var(--muted); font-size: clamp(1.05rem, 2vw, 1.3rem); max-width: 42rem; }
    .home-hero { align-items: start; display: grid; gap: clamp(2rem, 6vw, 5rem); grid-template-columns: minmax(0, 1fr) minmax(16rem, .8fr); }
    .headshot { aspect-ratio: 4 / 5; background: #e6e2db; object-fit: cover; width: 100%; }
    .rule { border: 0; border-top: 1px solid var(--line); margin: clamp(3rem, 8vw, 7rem) 0; }
    .section-heading { align-items: baseline; display: flex; gap: 1rem; justify-content: space-between; }
    .section-heading a { color: var(--muted); font-size: .9rem; }
    .project-list { border-top: 1px solid var(--line); }
    .project { border-bottom: 1px solid var(--line); display: grid; gap: .5rem 1.5rem; grid-template-columns: 6.5rem minmax(0, 1fr) auto; padding: 1.1rem 0; }
    .project-status { color: var(--accent); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
    .project-title { font-weight: 700; }
    .project-role, .project-dates { color: var(--muted); }
    .project-dates { font-size: .9rem; text-align: right; }
    .contact { font-size: clamp(1.35rem, 3vw, 2.2rem); letter-spacing: -.03em; }
    .resume-card { border: 1px solid var(--line); display: grid; gap: 1.5rem; grid-template-columns: 1fr auto; padding: clamp(1.5rem, 4vw, 3rem); }
    .button { background: var(--ink); color: #fff; display: inline-block; font-size: .9rem; font-weight: 700; padding: .75rem 1rem; text-decoration: none; white-space: nowrap; }
    .button:hover { background: var(--accent); color: #fff; }
    .note { color: var(--muted); font-size: .9rem; }
    .photo-grid { display: grid; gap: 1.2rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .photo-grid figure { margin: 0; }
    .photo-grid img { aspect-ratio: 4 / 3; background: #e6e2db; object-fit: cover; width: 100%; }
    figcaption { color: var(--muted); font-size: .82rem; margin-top: .6rem; }
    .press-list { border-top: 1px solid var(--line); }
    .review { border-bottom: 1px solid var(--line); padding: clamp(1.5rem, 4vw, 3rem) 0; }
    blockquote { font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.4rem, 3vw, 2.35rem); letter-spacing: -.025em; line-height: 1.2; margin: 0 0 1rem; max-width: 52rem; }
    cite { color: var(--muted); font-size: .9rem; font-style: normal; }
    .site-footer { border-top: 1px solid var(--line); color: var(--muted); font-size: .82rem; padding: 1.5rem 0 2.5rem; }
    .site-footer .wrap { display: flex; gap: 1rem; justify-content: space-between; }
    @media (max-width: 680px) {
      .masthead { align-items: flex-start; flex-direction: column; gap: 1rem; }
      .home-hero { grid-template-columns: 1fr; }
      .home-hero .headshot { max-width: 27rem; order: -1; }
      .project { grid-template-columns: 1fr; gap: .25rem; }
      .project-dates { text-align: left; }
      .resume-card { grid-template-columns: 1fr; }
      .resume-card .button { justify-self: start; }
      .photo-grid { grid-template-columns: 1fr; }
    }
