@font-face {
  font-family: "Literata";
  src: url("../fonts/literata-variable.ttf") format("truetype");
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
}

.homepage {
  width: 100%;
  max-width: 808px; /* 736px of content plus 36px of padding on each side. */
  margin: 48px auto 64px;
  padding-inline: 36px;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.home-masthead { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 12px 24px; }
.home-name { margin: 0; font-size: 22px; line-height: 1.3; font-weight: 500; }
.home-social { display: flex; align-self: center; align-items: center; margin-left: auto; gap: 12px; }
.home-social a { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; text-decoration: none; }
.home-social .home-about-link { width: auto; font-size: 15px; margin-right: 4px; }
.home-about-link:hover { text-decoration: underline; }
.home-social svg { width: 20px; height: 20px; }
.home-headline {
  margin: 64px 0 48px;
  font-family: "Literata", Georgia, serif;
  font-size: 60px;
  font-weight: 650;
  font-style: normal;
  font-optical-sizing: auto;
  line-height: 1.04;
  letter-spacing: -.025em;
  text-wrap: balance;
}
.project-tabs { display: flex; align-items: flex-end; gap: 10px; padding-top: 6px; border-bottom: 3px solid #ced3cb; }
#tab-cmm { --tab-outline: #bf456d; --tab-fill: #fbe2e9; --tab-hover: #f7cfdb; --tab-ink: #812c48; }
#tab-materials { --tab-outline: #008ba7; --tab-fill: #d9f2f6; --tab-hover: #bfe9f0; --tab-ink: #005e72; }
.project-tabs button {
  appearance: none;
  position: relative;
  min-width: 120px;
  min-height: 48px;
  margin-bottom: -3px;
  padding: 10px 24px;
  border: 3px solid var(--tab-outline);
  border-radius: 12px 12px 0 0;
  background: var(--tab-fill);
  color: var(--tab-ink);
  font: 500 15px/1.5 system-ui, sans-serif;
  cursor: pointer;
}
.project-tabs button[aria-selected="true"] { z-index: 1; padding-top: 16px; border-bottom-color: var(--tab-fill); font-weight: 700; }
.project-tabs button:hover { background: var(--tab-hover); }
.project-tabs button[aria-selected="true"]:hover { border-bottom-color: var(--tab-hover); }
.homepage :is(button, a, [role="tabpanel"]):focus-visible { outline: 2px solid #24594f; outline-offset: 5px; }
.project-panels { display: grid; min-height: 180px; margin-top: 24px; }
.project-panel { grid-area: 1 / 1; align-self: start; min-width: 0; margin: 0; }
/* Both panels participate in sizing, reserving space for the taller project. */
.project-panel[aria-hidden="true"] { visibility: hidden; pointer-events: none; }
.project-panel h2 { margin: 0 0 12px; font: 500 19px/1.35 system-ui, sans-serif; letter-spacing: normal; }
.project-panel p { margin: 0 0 16px; font: 400 16px/1.6 system-ui, sans-serif; }
.project-panel a { font: 400 15px/1.6 system-ui, sans-serif; }
@media (max-width: 640px) {
  .homepage { margin-top: 32px; padding-inline: 24px; }
  .home-headline { font-size: clamp(34px, 7.2vw, 46px); }
  .home-social { gap: 8px; }
  .home-social a { width: 28px; }
}
