.profile .profile-location { width: 220px; margin-bottom: 22px; }
.profile .profile-photo { width: 220px; height: 210px; max-width: 100%; aspect-ratio: auto; object-fit: contain; rotate: -4deg; }
.profile .location-caption { margin-top: 8px; }
.profile .contact-card h2 { text-wrap: balance; }
.contact-card.is-wide { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); }
.contact-card.is-wide h2 { font-size: clamp(28px, 3.5vw, 46px); }
.mobile-nav-toggle, .mobile-nav-toggle[hidden] { display: none; }
.mobile-menu { width: min(360px, calc(100vw - 32px)); max-height: calc(100svh - 24px); margin: 0; inset: 12px 16px auto auto; padding: 20px; overflow-y: auto; border: 1px solid var(--line); border-radius: 16px; background: var(--paper); color: var(--ink); box-shadow: 0 16px 60px #1b263226; }
.mobile-menu::backdrop { background: #1b263240; backdrop-filter: blur(3px); }
.mobile-menu-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 8px; }
.mobile-menu-header h2 { font-size: 18px; font-weight: 650; }
.mobile-menu-close { display: grid; place-items: center; width: 44px; height: 44px; margin: -8px -8px -8px 0; padding: 0; border: 0; background: transparent; color: var(--ink); border-radius: 8px; cursor: pointer; }
.mobile-menu-close:hover { background: var(--subtle); }
.mobile-menu .section-nav { display: flex; flex-direction: column; gap: 4px; max-width: none; margin: 0; }
.mobile-menu .nav-link { min-height: 48px; padding: 10px 12px; border: 0; border-radius: 8px; color: var(--ink); font-size: 16px; font-weight: 500; line-height:1.4; }
.mobile-menu .nav-link::before { content:none; display:none; }
.mobile-menu .nav-link:hover { background:color-mix(in srgb,var(--ink) 4%,transparent); color:var(--ink); }
.mobile-menu .nav-link.is-active { background:var(--subtle); color:var(--ink); font-weight:500; }
.mobile-menu .nav-link .icon { color: var(--muted); }
.mobile-menu-contact { padding-top:20px; }
.mobile-menu-contact .contact-actions { margin-top:0; }
html.mobile-nav-open { overflow: hidden; }
@media (min-width: 901px) and (max-height: 879px) {
  .profile .profile-location { width: 166px; margin-bottom: 16px; }
  .profile .profile-photo { width: 166px; height: 150px; }
  .profile .location-caption { font-size: 11px; }
}
@media (min-width: 901px) and (max-height: 700px) {
  .profile .profile-location { width: 140px; margin-bottom: 12px; }
  .profile .profile-photo { width: 140px; height: 126px; }
}
@media (max-width: 900px) {
  .home-page .profile { padding-bottom: 24px; margin-bottom: 32px; border-bottom:0; }
  .home-page .profile-top { display: grid; grid-template-columns: 108px minmax(0, 1fr); grid-template-rows: 1fr 1fr; column-gap: 20px; row-gap: 8px; align-items: start; }
  .home-page .profile-location { display: contents; }
  .home-page .profile-photo { grid-column: 1; grid-row: 1 / span 2; width: 108px; height: 128px; max-width: none; margin: 0; }
  .home-page .location-caption { grid-column: 2; grid-row: 2; align-self: start; justify-items: start; gap: 0; margin: 0; text-align: left; font-size: 11px; }
  .home-page .profile h1 { grid-column: 2; grid-row: 1; align-self: end; font-size: 26px; line-height: 1.1; }
  .home-page .profile-role { display: none; }
  .home-page .profile .section-nav { grid-column: 1 / -1; grid-row: 3; }
  .mobile-nav-toggle:not([hidden]) { position: fixed; z-index: 30; top: 12px; right: 16px; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); color: var(--ink); box-shadow: 0 3px 16px #1b263214; cursor: pointer; }
  .mobile-nav-toggle svg { width: 22px; height: 22px; }
  .page-section { scroll-margin-top: 64px; }
  .contact-card.is-wide { grid-template-columns: 1fr; }
  .contact-card.is-wide h2 { font-size: clamp(26px, 5.5vw, 40px); text-wrap: balance; }
}
@media (max-width: 360px) {
  .home-page .profile-top { grid-template-columns: 88px minmax(0, 1fr); column-gap: 14px; }
  .home-page .profile-photo { width: 88px; height: 122px; }
  .home-page .profile h1 { font-size: 24px; }
  .home-page .profile-role { font-size: 11px; }
  .home-page .location-caption { font-size: 10px; }
}
