/* Fluid typography and comfortable touch targets across phone sizes. */
html { font-size:100%; -webkit-text-size-adjust:100%; }
body { padding-bottom:env(safe-area-inset-bottom, 0px); }
.top { gap:1rem; flex-wrap:wrap; }
.top > * { min-width:0; overflow-wrap:anywhere; }
.link { min-height:5rem; touch-action:manipulation; }
.link > span:last-child { flex:1; }
.label { font-size:1rem; line-height:1.4; overflow-wrap:break-word; }
.description { font-size:.875rem; line-height:1.5; overflow-wrap:anywhere; }
h1 { font-size:2.375rem; overflow-wrap:break-word; }
.intro { font-size:1rem; }
.link:active { background:#e3ece3; }
.link.featured:active { background:#286548; }
@media (max-width:600px) {
  body::before { height:13rem; }
  .top { padding:1.25rem max(1rem, env(safe-area-inset-left)); justify-content:center; }
  .wordmark { font-size:.75rem; letter-spacing:.14em; text-align:center; }
  .top small { display:none; }
  .shell { width:calc(100% - 1.5rem); max-width:32.5rem; margin:.5rem auto 0; }
  .profile { padding:1.75rem 1rem 1.25rem; border-radius:1.25rem 1.25rem 0 0; }
  .monogram { width:4.25rem; height:4.25rem; font-size:1.875rem; margin-bottom:1.25rem; }
  h1 { font-size:2rem; letter-spacing:-.04em; margin-bottom:.5rem; }
  .rule { margin:1rem auto 0; }
  .links { padding:.25rem .75rem 1.25rem; border-radius:0 0 1.25rem 1.25rem; }
  .section-label { font-size:.75rem; margin:0 .25rem .875rem; }
  .link { padding:1rem .875rem; gap:.75rem; margin-bottom:.75rem; border-radius:.75rem; }
  .icon { width:2.25rem; height:2.25rem; }
  .brand-logo { width:2.75rem; height:2.75rem; }
  .label { font-size:1rem; margin-bottom:.25rem; }
  .footer { padding:1.25rem .75rem max(1.5rem, env(safe-area-inset-bottom)); }
}
@media (max-width:350px) {
  .shell { width:calc(100% - 1rem); }
  .links { padding-left:.5rem; padding-right:.5rem; }
  .link { padding:.875rem .625rem; gap:.625rem; }
}

.social-links{display:flex;justify-content:center;align-items:center;gap:.375rem;width:fit-content;max-width:100%;flex-wrap:wrap;margin:1.25rem auto 0;padding:.375rem .625rem;background:#287660;border-radius:.75rem}.social-link{display:grid;place-items:center;width:3rem;height:3rem;flex-shrink:0;color:#fff;border-radius:.5rem;touch-action:manipulation}.social-link svg{width:1.625rem;height:1.625rem;fill:currentColor}.social-link:hover{background:#ffffff20}.social-link:active{background:#ffffff35}.social-link:focus-visible{outline:3px solid #fff;outline-offset:-3px}
.profile-photo{display:block;width:120px;height:120px;object-fit:cover;object-position:57% 24%;border-radius:50%;margin:0 auto 22px;border:1px solid #d9e4d6;outline:6px solid #f6f8f4}@media(max-width:600px){.profile-photo{width:100px;height:100px;margin-bottom:1.25rem}}
