/* Self-hosted faces. Latin ranges keep a cached English font from drawing Arabic
   (missing glyphs, then a jump). Arabic faces use optional so a late download
   cannot restyle the page after first paint. */
@font-face {
  font-family:'IBM Plex Sans';
  src:url('../fonts/ibm-plex/IBMPlexSans-Regular.woff2') format('woff2');
  font-weight:400;
  font-style:normal;
  font-display:swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family:'IBM Plex Sans';
  src:url('../fonts/ibm-plex/IBMPlexSans-Italic.woff2') format('woff2');
  font-weight:400;
  font-style:italic;
  font-display:swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family:'IBM Plex Sans';
  src:url('../fonts/ibm-plex/IBMPlexSans-SemiBold.woff2') format('woff2');
  font-weight:500 600;
  font-style:normal;
  font-display:swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family:'IBM Plex Sans Arabic';
  src:url('../fonts/ibm-plex/IBMPlexSansArabic-Regular.woff2') format('woff2');
  font-weight:300 400;
  font-style:normal;
  font-display:optional;
}
@font-face {
  font-family:'IBM Plex Sans Arabic';
  src:url('../fonts/ibm-plex/IBMPlexSansArabic-SemiBold.woff2') format('woff2');
  font-weight:500 600;
  font-style:normal;
  font-display:optional;
}
@font-face {
  font-family:'IBM Plex Serif';
  src:url('../fonts/ibm-plex/IBMPlexSerif-Regular.woff2') format('woff2');
  font-weight:400;
  font-style:normal;
  font-display:swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family:'IBM Plex Serif';
  src:url('../fonts/ibm-plex/IBMPlexSerif-SemiBold.woff2') format('woff2');
  font-weight:500 600;
  font-style:normal;
  font-display:swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family:'Noto Naskh Arabic';
  src:url('../fonts/noto-naskh/NotoNaskhArabic-400.woff2') format('woff2');
  font-weight:400;
  font-style:normal;
  font-display:optional;
}
@font-face {
  font-family:'Noto Naskh Arabic';
  src:url('../fonts/noto-naskh/NotoNaskhArabic-500.woff2') format('woff2');
  font-weight:500;
  font-style:normal;
  font-display:optional;
}
@font-face {
  font-family:'Noto Naskh Arabic';
  src:url('../fonts/noto-naskh/NotoNaskhArabic-600.woff2') format('woff2');
  font-weight:600;
  font-style:normal;
  font-display:optional;
}
@font-face {
  font-family:'Noto Naskh Arabic';
  src:url('../fonts/noto-naskh/NotoNaskhArabic-700.woff2') format('woff2');
  font-weight:700;
  font-style:normal;
  font-display:optional;
}

:root {
  --page:#eeece6; --panel:#f6f4ee; --card:#efebe2; --chip:#e6e0d3;
  --ink:#1c1a17; --ink-2:#3a352d; --muted:#6b655c; --muted-2:#8a8272;
  --line:#cdc6b8; --line-soft:#e0d9cb; --line-strong:#b6ae9d;
  --accent:#1f3f6b; --accent-hover:#142a49; --accent-soft:#b9c4d6;
  --on-ink:#f6f4ee; --wash-a:rgba(96,80,52,.13); --wash-b:rgba(96,80,52,.05);
  --font-sans:'IBM Plex Sans','IBM Plex Sans Arabic',sans-serif;
  --font-serif:'IBM Plex Serif','Noto Naskh Arabic',serif;
}
:root[lang="ar"] {
  --font-sans:'IBM Plex Sans Arabic','IBM Plex Sans',sans-serif;
  --font-serif:'Noto Naskh Arabic','IBM Plex Serif',serif;
}
:root[lang="ar"] :is(
  .nav-link,
  .nav-tool,
  .nav-btn,
  .eyebrow,
  .section-label,
  .site-footer,
  .text-link,
  .btn,
  .hp-action,
  .page-title
) {
  letter-spacing: 0;
  text-transform: none;
}
:root[data-theme="dark"] {
  --page:#131310; --panel:#1c1c18; --card:#232320; --chip:#2a2a25;
  --ink:#ece7dd; --ink-2:#c8c2b6; --muted:#9b948a; --muted-2:#7d766c;
  --line:#33322c; --line-soft:#282720; --line-strong:#454338;
  --accent:#9cb9e2; --accent-hover:#c2d4ef; --accent-soft:#3c4a5e;
  --on-ink:#131310; --wash-a:rgba(255,255,255,.07); --wash-b:rgba(255,255,255,.02);
}
body { margin:0; background:var(--page); color:var(--ink); }
a { color:var(--accent); transition:color .2s ease; }
a:hover { color:var(--accent-hover); }

.site {
  min-height:100vh;
  background-color:var(--page);
  background-image:linear-gradient(180deg, var(--wash-a) 0, var(--wash-b) 300px, transparent 640px);
  background-repeat:no-repeat;
  background-attachment:fixed;
  color:var(--ink);
  font-family:var(--font-sans);
  font-size:15px;
}

.site-header {
  max-width:1040px;
  margin:0 auto;
  padding:26px 52px 22px 44px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  flex-wrap:wrap;
}

.site-logo {
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-serif);
  font-size:18px;
  text-decoration:none;
  color:var(--ink);
}

.site-logo-mark {
  display:inline-flex;
  flex-shrink:0;
  perspective:700px;
}

.site-logo-img {
  --logo-scale:1.35;
  width:32px;
  height:32px;
  object-fit:contain;
  flex-shrink:0;
  border-radius:6px;
  transform:scale(var(--logo-scale));
  transform-origin:center;
  transition:transform .15s ease-out;
}

@media (prefers-reduced-motion: reduce) {
  .site-logo-img { transition:none; }
}

.site-logo-img--dark {
  display:none;
}

:root[data-theme="dark"] .site-logo-img--light {
  display:none;
}

:root[data-theme="dark"] .site-logo-img--dark {
  display:block;
}

.site-logo-name {
  line-height:32px;
  transform:translateY(1px);
}

.site-nav {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:0;
}

.nav-pages {
  display:flex;
  gap:16px;
  flex-wrap:wrap;
  align-items:center;
}

.nav-tools {
  display:flex;
  gap:14px;
  align-items:center;
  margin-inline-start:20px;
  padding-inline-start:20px;
  border-inline-start:1px solid var(--line);
}

.nav-link,
.nav-tool {
  display:inline-flex;
  align-items:center;
  gap:7px;
  text-decoration:none;
  color:var(--muted);
  font-size:11.5px;
  letter-spacing:.12em;
  text-transform:uppercase;
  background:none;
  border:none;
  padding:0;
  font-family:var(--font-sans);
  cursor:pointer;
}

.nav-link:hover,
.nav-tool:hover {
  color:var(--ink);
}

.nav-link[data-current="true"],
.nav-link[aria-current="page"] {
  color:var(--ink);
  font-weight:500;
  padding:7px 10px;
  border-radius:6px;
  background:color-mix(in srgb, var(--accent) 10%, transparent);
}

.nav-link[data-current="true"] .nav-ico,
.nav-link[aria-current="page"] .nav-ico {
  color:var(--accent);
}

.nav-tool--theme {
  color:var(--muted);
}

.nav-ico {
  width:15px;
  height:15px;
  display:block;
  flex-shrink:0;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.nav-ico polyline,
.nav-ico line,
.nav-ico polygon,
.nav-ico path,
.nav-ico circle,
.nav-ico rect {
  fill:none;
  stroke:inherit;
}

.nav-btn {
  background:none;
  border:none;
  padding:0;
  font:inherit;
  font-size:11.5px;
  letter-spacing:.14em;
  text-transform:uppercase;
  cursor:pointer;
  color:var(--accent);
  font-family:var(--font-sans);
}
.nav-btn--theme {
  color:var(--muted);
  letter-spacing:0;
  font-size:14px;
  text-transform:none;
}

.panel {
  max-width:1040px;
  margin:0 auto;
  padding:28px 44px 64px;
  background:var(--panel);
  border:0;
  box-shadow:none;
}

.site-footer {
  max-width:1040px;
  margin:28px auto 48px;
  padding:0 20px;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:20px;
  flex-wrap:wrap;
  text-align:center;
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
}
.site-footer a {
  color:var(--muted);
  text-decoration:none;
  text-transform:none;
  letter-spacing:.04em;
}
.site-footer a:hover {
  color:var(--accent);
}

.section { border-top:1px solid var(--line); padding-top:32px; }
.panel > .section:first-child { border-top:0; }
.section--hero { padding-top:28px; }
.section--spaced { margin-top:40px; }
.section--spaced-lg { margin-top:72px; }

.split {
  display:grid;
  grid-template-columns:190px 1fr;
  gap:44px;
}
.split--wide-label { grid-template-columns:200px 1fr; }
.split--school { grid-template-columns:230px 1fr; }

.hero-grid {
  display:grid;
  grid-template-columns:1fr;
  row-gap:0;
  align-items:start;
}
.hero-grid:has(.hero-photo) {
  grid-template-columns:1fr 240px;
  column-gap:60px;
}
.hero-grid .eyebrow { grid-column:1; grid-row:1; }
.hero-grid .page-title--hero { grid-column:1; grid-row:2; }
.hero-grid .home-bio { grid-column:1; grid-row:3; }
.hero-grid .hero-photo {
  grid-column:2;
  grid-row:1 / span 3;
  align-self:start;
  margin-bottom:32px;
}

.two-col {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  align-items:start;
}

.row-grid {
  display:grid;
  grid-template-columns:150px 1fr;
  gap:24px;
  padding:14px 0;
}
.row-grid--cv {
  grid-template-columns:110px 1fr;
  padding:0;
}
.row-grid--cv + .row-grid--cv {
  margin-top:22px;
  padding-top:22px;
  border-top:1px dashed var(--line-soft);
}
.row-grid--cv-tight { padding:0; }
.row-grid:first-child { padding-top:0; }
.row-grid:last-child { padding-bottom:0; }

.section-label {
  margin:0;
  font-size:12.5px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
  font-weight:500;
}

.page-title {
  font-family:var(--font-serif);
  font-weight:400;
  font-size:clamp(38px,4.6vw,58px);
  line-height:1.06;
  letter-spacing:-0.02em;
  margin:0 0 18px;
}
.page-title--hero {
  font-size:clamp(36px,4.6vw,56px);
  line-height:1.08;
  margin:0 0 22px;
}

.lead {
  font-family:var(--font-serif);
  font-size:18.5px;
  line-height:1.7;
  color:var(--ink-2);
}

.eyebrow {
  margin:0 0 22px;
  font-size:11px;
  letter-spacing:.17em;
  text-transform:uppercase;
  color:var(--accent);
  line-height:1.7;
}

.research-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.research-list li {
  position: relative;
  margin: 0 0 8px;
  padding-inline-start: 14px;
  color: var(--ink-2);
  line-height: 1.45;
}
.research-list li::before {
  content: "•";
  position: absolute;
  inset-inline-start: 0;
  color: var(--accent);
}
.text-link {
  font-size:11.5px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--accent);
  text-decoration:none;
  border-bottom:1px solid var(--accent-soft);
  padding-bottom:2px;
  transition:color .2s ease, border-color .2s ease;
}
.text-link:hover {
  color:var(--accent-hover);
  border-bottom-color:var(--accent);
}

.page-head .btn {
  margin-top: 18px;
}
.row-grid--cv > .entry-title {
  margin-bottom: 0;
}

.skill-line {
  margin: 0;
  padding: 10px 0;
  font-size: 14.5px;
  line-height: 1.65;
  color: var(--ink-2);
}
.skill-line:first-child { padding-top: 0; }
.skill-line:last-child { padding-bottom: 0; }

.contact-link-item {
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:12px 16px;
  align-items:center;
  padding:14px 0;
}
.contact-link-item:last-child { padding-bottom:0; }
.contact-link-item:first-child { padding-top:0; }
.contact-link-main {
  display:grid;
  grid-template-columns:36px minmax(0, 1fr);
  gap:16px;
  align-items:start;
  min-width:0;
  text-decoration:none;
  color:inherit;
}
.contact-link-mark {
  width:30px;
  height:30px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--accent);
  margin-top:2px;
  transition:color .2s ease;
}
.contact-link-main:hover .contact-link-mark {
  color:var(--accent-hover);
}
.contact-link-mark .nav-ico {
  width:18px;
  height:18px;
}
.contact-link-copy {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  min-width:0;
}
.contact-link-main .entry-title {
  display:block;
  color:var(--ink);
  transition:color .2s ease;
}
.contact-link-main:hover .entry-title {
  color:var(--accent);
}
.contact-link-main .entry-meta {
  display:block;
  width:max-content;
  max-width:100%;
  margin-top:2px;
  color:var(--accent);
  transition:color .2s ease;
}
.contact-link-main:hover .entry-meta {
  color:var(--accent-hover);
}
.contact-copy {
  display:inline-flex;
  align-items:center;
  gap:7px;
  border:1px solid var(--line);
  border-radius:6px;
  padding:7px 11px;
  background:var(--panel);
  color:var(--muted);
  font:inherit;
  font-family:var(--font-sans);
  font-size:11px;
  letter-spacing:.12em;
  text-transform:uppercase;
  cursor:pointer;
  white-space:nowrap;
  transition:color .2s ease, border-color .2s ease, background-color .2s ease;
}
.contact-copy:hover {
  color:var(--accent);
  border-color:var(--accent-soft);
  background:color-mix(in srgb, var(--accent) 8%, var(--panel));
}
.contact-copy.is-copied {
  color:var(--accent);
  border-color:var(--accent-soft);
}
.contact-copy-ico {
  width:14px;
  height:14px;
  display:block;
  flex-shrink:0;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.contact-copy-icon { display:inline-flex; }
.contact-copy-icon--done { display:none; }
.contact-copy.is-copied .contact-copy-icon--idle { display:none; }
.contact-copy.is-copied .contact-copy-icon--done { display:inline-flex; }
.contact-copy-label { line-height:1; }

.btn {
  padding:12px 22px;
  text-decoration:none;
  font-size:11.5px;
  letter-spacing:.14em;
  text-transform:uppercase;
  display:inline-flex;
  align-items:center;
  gap:8px;
  transition:color .2s ease, background-color .2s ease, border-color .2s ease;
}
.btn-ico {
  width:15px;
  height:15px;
  display:block;
  flex-shrink:0;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.btn-ico polyline,
.btn-ico line,
.btn-ico polygon,
.btn-ico path,
.btn-ico circle,
.btn-ico rect {
  fill:none;
  stroke:inherit;
}
.btn--primary {
  background:var(--ink);
  color:var(--on-ink);
  border:1px solid var(--ink);
}
.btn--primary:hover {
  background:var(--accent);
  border-color:var(--accent);
  color:var(--on-ink);
}
.btn--secondary {
  border:1px solid var(--line-strong);
  color:var(--ink);
  background:transparent;
}
.btn--secondary:hover {
  color:var(--accent);
  border-color:var(--accent);
  background:color-mix(in srgb, var(--accent) 8%, transparent);
}
.btn--text {
  color:var(--accent);
  padding:12px 0;
  border:0;
  background:transparent;
}
.btn--text:hover {
  color:var(--accent-hover);
}

.hero-photo {
  width:100%;
  height:auto;
  aspect-ratio:4/5;
  object-fit:cover;
  object-position:center 18%;
  display:block;
  border:1px solid var(--line);
  border-radius:3px;
  filter:sepia(.1) saturate(.94) contrast(.98);
  margin-bottom:28px;
}

.page-head { padding-top: 28px; padding-bottom: 8px; }
.page-lead {
  margin: 0;
  font-size: 14.5px;
  line-height: 1.7;
  color: var(--muted);
  max-width: 60ch;
}

.date-year {
  font-family: var(--font-serif);
  font-size: 17px;
  line-height: 1.4;
  color: var(--accent);
  padding-top: 2px;
  overflow-wrap: anywhere;
}
.date-range {
  font-size: 12.5px;
  letter-spacing: .03em;
  color: var(--accent);
  padding-top: 5px;
  line-height: 1.5;
}

.entry-title {
  margin: 0 0 6px;
  font-family: var(--font-serif);
  font-size: 20px;
  line-height: 1.35;
  font-weight: 400;
}
.entry-title--sm {
  font-size: 18.5px;
  line-height: 1.4;
  margin-bottom: 5px;
}
a.entry-title {
  display: block;
  color: inherit;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
  text-decoration-color: color-mix(in srgb, var(--accent) 45%, transparent);
}
a.entry-title:hover {
  color: var(--accent);
  text-decoration-color: var(--accent);
}
.entry-meta {
  margin: 0;
  font-size: 14px;
  line-height: 1.65;
  color: var(--muted);
}
.entry-note {
  margin: 4px 0 0;
  font-size: 13px;
  letter-spacing: .03em;
  line-height: 1.55;
  color: var(--muted-2);
}
.entry-note + .entry-note {
  margin-top: 10px;
}
.entry-note--thesis {
  max-width: 62ch;
  text-wrap: pretty;
}
.entry-note .text-link {
  font-size: inherit;
  letter-spacing: inherit;
  text-transform: none;
  border-bottom: 0;
  padding-bottom: 0;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.22em;
  text-decoration-color: color-mix(in srgb, var(--accent) 45%, transparent);
}
.award-entry {
  display: flex;
  gap: 20px;
  align-items: start;
  justify-content: space-between;
}
.award-thumb {
  flex-shrink: 0;
  display: block;
  border: 1px solid var(--line-soft);
  border-radius: 4px;
  overflow: hidden;
  line-height: 0;
}
.award-thumb img {
  display: block;
  width: 96px;
  height: auto;
  max-height: 128px;
  object-fit: cover;
}
.stacked-entry { padding: 0 0 16px; }
.stacked-entry:last-child { padding-bottom: 0; }

.pub-cite strong {
  font-weight: 600;
  color: inherit;
  background: transparent;
}
.pub-cite a {
  color: inherit;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
  text-decoration-color: color-mix(in srgb, var(--accent) 55%, transparent);
}
.pub-cite a:hover {
  color: var(--accent);
  text-decoration-color: var(--accent);
}
.pub-content-ltr {
  direction: ltr;
  text-align: left;
  unicode-bidi: isolate;
}
.pub-cite {
  margin: 0;
  padding: 0 0 14px;
  font-family: var(--font-serif);
  font-size: 17px;
  line-height: 1.7;
  color: var(--ink-2);
  text-wrap: pretty;
}
.pub-cite:last-child { padding-bottom: 0; }
.pub-cite + .pub-cite {
  padding-top: 14px;
}
.pub-cite + .pub-cite {
  padding-top: 14px;
}

/* Home: outbound actions + Now */
.home-bio {
  /* em follows the type size in both scripts. ch is narrower in Noto Naskh and leaves a hole beside the portrait. */
  max-width: 35em;
  margin: 0 0 28px;
}

.hp-ico {
  width: 18px;
  height: 18px;
  display: block;
  flex-shrink: 0;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.hp-ico polyline,
.hp-ico line,
.hp-ico polygon,
.hp-ico path,
.hp-ico circle,
.hp-ico rect {
  fill: none;
  stroke: inherit;
}

.hp-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 28px;
  margin: 4px 0 8px;
  padding: 20px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.hp-action {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  color: var(--accent);
  font-size: 12px;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.hp-action:hover {
  color: var(--accent-hover);
}
.hp-action .hp-ico {
  width: 15px;
  height: 15px;
  color: inherit;
}

.hp-now {
  margin-top: 12px;
  padding-top: 8px;
}
.hp-now .section-label {
  margin-bottom: 16px;
}
.hp-now-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.hp-now-list li {
  margin: 0 0 14px;
}
.hp-now-years {
  display: block;
  margin: 0 0 4px;
  font-size: 12.5px;
  letter-spacing: .03em;
  color: var(--accent);
  line-height: 1.4;
}
.hp-now-list strong {
  display: block;
  font-size: 15px;
  font-weight: 500;
  margin-bottom: 4px;
}
.hp-now-list span:not(.hp-now-years) {
  font-size: 13px;
  color: var(--muted);
}

@media (max-width: 1040px) {
  .site-header {
    padding-inline: 28px;
    row-gap: 14px;
  }
  .site-nav {
    flex: 1 0 100%;
    justify-content: flex-start;
    flex-wrap: nowrap;
  }
  .nav-pages,
  .nav-tools {
    flex-wrap: nowrap;
  }
  .nav-pages { gap: 12px; }
  .nav-tools {
    margin-inline-start: 14px;
    padding-inline-start: 14px;
    gap: 12px;
  }
  .nav-link,
  .nav-tool {
    white-space: nowrap;
  }
}

@media (max-width: 720px) {
  .site-header { padding:20px 20px 18px; gap:16px; }
  .site-nav,
  .nav-pages,
  .nav-tools {
    flex-wrap: nowrap;
  }
  .nav-pages { gap: 2px; }
  .nav-tools {
    margin-inline-start: 8px;
    padding-inline-start: 8px;
    gap: 2px;
  }
  .nav-link,
  .nav-tool {
    box-sizing: border-box;
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    justify-content: center;
    gap: 0;
    padding: 0;
  }
  .nav-link-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
  .nav-link[data-current="true"],
  .nav-link[aria-current="page"] {
    color: var(--ink);
    background: color-mix(in srgb, var(--accent) 10%, transparent);
    border-radius: 6px;
    font-weight: 500;
    padding: 0;
  }
  .panel { padding:28px 20px 56px; margin-bottom:32px; }
  .hero-grid,
  .hero-grid:has(.hero-photo),
  .split,
  .split--wide-label,
  .split--school,
  .two-col {
    grid-template-columns:1fr;
    gap:28px;
  }
  .hero-grid,
  .hero-grid:has(.hero-photo) {
    gap:0;
  }
  .hero-grid .eyebrow,
  .hero-grid .page-title--hero,
  .hero-grid .home-bio,
  .hero-grid .hero-photo {
    grid-column:1;
  }
  .hero-grid .eyebrow { grid-row:1; }
  .hero-grid .page-title--hero { grid-row:2; margin-bottom:18px; }
  .hero-grid .hero-photo { grid-row:3; margin:0 0 22px; }
  .hero-grid .home-bio { grid-row:4; }
  .hero-photo {
    max-width:240px;
  }
  .row-grid,
  .row-grid--cv {
    grid-template-columns:1fr;
    gap:8px;
  }
  .hp-actions {
    gap:14px 20px;
  }
}

@media (max-width: 420px) {
  .nav-link,
  .nav-tool {
    width: 32px;
    height: 32px;
    flex-basis: 32px;
  }
  .nav-pages { gap: 0; }
  .nav-tools {
    margin-inline-start: 6px;
    padding-inline-start: 6px;
    gap: 0;
  }
}

.nav-tool[aria-expanded="true"] { color:var(--accent); }
.cmd[hidden] { display:none; }
.cmd {
  position:fixed;
  z-index:30;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:color-mix(in srgb, var(--ink) 28%, transparent);
  opacity:0;
  transition:opacity 420ms ease-out;
}
.cmd.is-open { opacity:1; }
.cmd-dialog {
  display:flex;
  flex-direction:column;
  width:min(560px, 100%);
  max-height:min(520px, calc(100vh - 48px));
  overflow:hidden;
  padding:10px 0 14px;
  box-sizing:border-box;
  background:var(--panel);
  border:1px solid var(--line);
  color:var(--ink);
  font-family:var(--font-sans);
  font-size:14.5px;
  line-height:1.4;
}
.cmd-fx {
  position:relative;
  z-index:1;
  width:min(560px, 100%);
}
.cmd-fx .cmd-dialog { width:100%; }
.cmd-filters {
  position:absolute;
  width:0;
  height:0;
  overflow:hidden;
}
@media (prefers-reduced-motion: reduce) {
  .cmd,
  .cmd-dialog { transition:none; }
}
html.theme-flood::view-transition-old(root),
html.theme-flood::view-transition-new(root) {
  animation:none;
  mix-blend-mode:normal;
}
html[data-arrive] .site,
html[data-paging] .site { overflow:clip; }
html[data-arrive] .site-header,
html[data-paging] .site-header {
  position:relative;
  z-index:3;
}
html[data-arrive] .site-header::before,
html[data-paging] .site-header::before {
  content:"";
  position:absolute;
  z-index:-1;
  inset:0 -100vmax;
  background-color:var(--page);
  background-image:linear-gradient(180deg, var(--wash-a) 0, var(--wash-b) 300px, transparent 640px);
  background-repeat:no-repeat;
  background-attachment:fixed;
}
.page-fx-layer {
  position:fixed;
  z-index:2;
  right:0;
  bottom:0;
  left:0;
  overflow:hidden;
  pointer-events:none;
}
.btn.is-tapped {
  position:relative;
  overflow:hidden;
}
.hp-action.is-tapped { position:relative; }
.tap-ripple {
  position:absolute;
  border-radius:50%;
  background:currentColor;
  pointer-events:none;
}
.hp-action .tap-ripple {
  background:none;
  border:1px solid currentColor;
}
.wake-layer {
  position:fixed;
  z-index:1;
  inset:0;
  overflow:hidden;
  pointer-events:none;
}
.wake-ring {
  position:absolute;
  width:44px;
  height:44px;
  border:1px solid var(--accent);
  border-radius:50%;
}
.cmd-results {
  list-style:none;
  margin:0;
  padding:0;
  overflow-y:auto;
  scrollbar-width:thin;
  scrollbar-color:var(--line) transparent;
}
.cmd-results[hidden] { display:none; }
.cmd-rule {
  height:1px;
  margin:4px 18px;
  background:var(--line-soft);
}
.cmd-result {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  width:100%;
  margin:0;
  padding:8px 18px;
  border:0;
  background:none;
  color:var(--ink);
  font:inherit;
  line-height:1.3;
  text-align:start;
  cursor:pointer;
}
.cmd-result:hover {
  background:color-mix(in srgb, var(--ink) 5%, transparent);
}
.cmd-result-label {
  flex:1;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.cmd-kind {
  flex:none;
  color:var(--muted);
  font-family:ui-monospace,'Cascadia Mono','Segoe UI Mono',Consolas,monospace;
  font-size:11.5px;
}
.cmd-result[aria-selected="true"],
.cmd-result[aria-selected="true"]:hover {
  background:color-mix(in srgb, var(--accent) 10%, transparent);
}
.cmd-result[aria-selected="true"] .cmd-result-label { color:var(--accent); }
.cmd-target { scroll-margin-top:24px; }
.cmd-target:target {
  background:color-mix(in srgb, var(--accent) 8%, transparent);
}
.cmd-note {
  margin:0;
  padding:0 18px 8px;
  color:var(--muted);
  font-size:13px;
}
.cmd-note[hidden] { display:none; }
[lang="ar"] .cmd-note { font-family:var(--font-sans); }
.cmd-line {
  display:flex;
  align-items:center;
  flex-shrink:0;
  margin:0;
  padding:4px 18px 0;
}
.cmd-dialog:has(.cmd-results:not([hidden])) .cmd-line,
.cmd-dialog:has(.cmd-note:not([hidden])) .cmd-line {
  margin-top:8px;
  padding-top:12px;
  border-top:1px solid var(--line-soft);
}
.cmd-input {
  flex:1;
  min-width:0;
  border:0;
  padding:0;
  background:transparent;
  color:inherit;
  font:inherit;
  line-height:inherit;
  outline:none;
  caret-color:var(--ink);
}
.cmd-input::placeholder {
  color:var(--muted);
  opacity:1;
}
