<3/products/personal-site/components/

SiteShell.module.css

.shell {
  max-width: var(--page-width);
  margin: 0 auto;
  padding: var(--page-top) var(--page-gutter) var(--page-bottom);
}
.header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-related);
  text-align: center;
  padding-bottom: var(--space-section);
}
.photo {
  display: block;
  width: 48px;
  height: 48px;
  margin: 0;
  object-fit: cover;
  border-radius: 50%;
}
.name { margin: 0; font-weight: 500; color: var(--ink-strong); }
.divider { margin: 0; border: 0; border-top: 1px solid var(--hairline); }
.navigation { position: relative; display: flex; margin: var(--space-detail) 0; }
.activeSegment {
  position: absolute;
  inset: 0 auto 0 0;
  width: calc(100% / 3);
  border-radius: 4px;
  background: rgb(0 0 0 / 2%);
  pointer-events: none;
  transition: transform 240ms cubic-bezier(0.22, 1, 0.36, 1);
}
.navigation .navLink {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1;
  min-width: 44px;
  height: 44px;
  color: rgb(0 0 0 / 20%);
  text-decoration: none;
  border-radius: 3px;
}
.navigation .navLink:hover,
.navigation .navLink:focus-visible { color: var(--caption); }
.navigation .navLink[aria-current="page"] { color: var(--ink-strong); }
.navLink svg { stroke-width: 2.2; }
@media (prefers-reduced-motion: reduce) {
  .activeSegment, .navLink { transition: none; }
}
.main {
  display: flex;
  flex-direction: column;
  gap: var(--space-related);
  min-width: 0;
  padding-top: var(--space-section);
}
.main > * { margin-block: 0; }
.intro { display: flex; flex-direction: column; align-items: center; gap: var(--space-related); }
.intro > * { margin: 0; }
.intro img { display: block; width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.intro > p { font-weight: 500; }