/* Homepage only: a single reading column, using the existing site palette. */
.home-page { background: var(--c-surface); color: var(--c-on-surface); font-family: 'Inter', sans-serif; font-size: 16px; line-height: 1.75; }
.home-header, .home-main, .home-footer { width: min(100% - 3rem, 44rem); margin-inline: auto; }
.home-header { display: flex; justify-content: space-between; align-items: center; padding-block: 2rem; }
.home-header nav, .contact-links { display: flex; flex-wrap: wrap; gap: 1.5rem; }
.home-header a { color: var(--c-on-surface-variant); font-size: .875rem; padding-block: .5rem; }
.home-header a[aria-current] { color: var(--c-on-surface); }
.home-page a:hover { color: var(--c-primary); text-decoration: underline; text-underline-offset: .25em; }
.home-page a:focus-visible, .home-page button:focus-visible { outline: 2px solid var(--c-primary); outline-offset: 5px; }
#theme-toggle { display: grid; place-items: center; width: 44px; height: 44px; color: var(--c-on-surface-variant); }
#theme-icon { font-size: 20px; }
.home-main { padding-block: 2.5rem 0; }
.home-main section { margin-bottom: 3.5rem; }
.intro-heading { display: flex; align-items: center; gap: 1.5rem; margin-bottom: 1.5rem; }
.portrait { width: 80px; height: 80px; object-fit: cover; border-radius: 50%; filter: grayscale(1); flex-shrink: 0; }
.home-page h1, .home-page h2, .home-page h3 { font-family: 'Inter', sans-serif; color: var(--c-on-surface); }
.home-page h1 { font-size: clamp(1.9rem, 5vw, 2.75rem); line-height: 1.15; letter-spacing: -.035em; font-weight: 500; margin: 0; }
.home-page h2 { font-size: .875rem; font-weight: 500; margin: 0; color: var(--c-on-surface-variant); }
.home-page h3 { font-size: 1.125rem; line-height: 1.45; font-weight: 500; margin: 0 0 .6rem; }
.home-main p { margin: 0 0 .85rem; color: var(--c-on-surface-variant); }
.home-main a { color: var(--c-primary); }
.intro > a, .project a, .section-label > a { font-size: .875rem; }
.selected-projects > h2 { padding-bottom: .25rem; }
.project { padding-block: 1.5rem; border-bottom: 1px solid var(--c-sidebar-border); }
.project:last-child { border-bottom: 0; padding-bottom: 0; }
.project-featured { display: grid; grid-template-columns: minmax(0, 1fr) 100px; align-items: center; gap: 2rem; }
.project-preview { display: block; width: 100px; height: auto; max-height: 180px; object-fit: contain; }
.section-label { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.home-writing { border-top: 1px solid var(--c-sidebar-border); padding-top: 1.5rem; }
.home-writing .post-date { font-size: .8125rem; margin-bottom: .5rem; }
.home-writing h3 a { color: var(--c-on-surface); }
.home-footer { border-top: 1px solid var(--c-sidebar-border); padding-block: 1.5rem 2.5rem; font-size: .8125rem; color: var(--c-on-surface-variant); }
.home-footer p { margin: 1rem 0 0; }
.skip-link { position: absolute; top: -5rem; left: 1rem; padding: .5rem 1rem; background: var(--c-surface); z-index: 10; }
.skip-link:focus { top: 1rem; }
@media (max-width: 480px) {
  .home-header, .home-main, .home-footer { width: calc(100% - 2.5rem); }
  .home-header { padding-block: 1rem; }
  .home-main { padding-top: 1.75rem; }
  .intro-heading { gap: 1rem; }
  .portrait { width: 60px; height: 60px; }
  .project-featured { grid-template-columns: minmax(0, 1fr) 72px; gap: 1rem; }
  .project-preview { width: 72px; }
  .contact-links { gap: .75rem 1.25rem; }
}
@media (max-width: 359px) {
  .intro-heading { align-items: flex-start; flex-direction: column; }
  .project-featured { grid-template-columns: 1fr; }
}
