/* HugoBlox overrides reuse the site's paper, type and motion tokens. */
.intro h1 { font-size: clamp(2rem, 5vw, 3.5rem); letter-spacing: -0.025em; }
.intro h1 span { display: inline-block; font-size: 0.52em; color: var(--color-muted); margin-left: 0.4em; letter-spacing: 0; }
.intro .role { font: 400 clamp(1rem, 1.7vw, 1.25rem)/1.65 var(--font-body); margin-top: var(--space-xs); }
.intro-subtitle { margin-top: var(--space-sm); color: var(--color-accent); }
.intro-copy + .intro-copy { margin-top: var(--space-xs); }
.masthead-academic { isolation: isolate; position: sticky; top: 0; z-index: 20; padding-block: 0.75rem; background: transparent; border: 0; }
.masthead-academic::before { content: none; }
.masthead-inner { display: flex; align-items: center; justify-content: flex-start; gap: 2px; width: max-content; max-width: min(calc(100% - 1.5rem), 68rem); margin-inline: auto; padding: 5px 6px; border-radius: 999px; background: #ffffffe0; backdrop-filter: blur(16px) saturate(1.1); box-shadow: 0 1px 0 #0000000f, 0 10px 30px #2a241610; }
.masthead-meta { display: block; min-width: 0; }
.wordmark { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 44px; padding: 3px 0.85rem 3px 3px; border-radius: 999px; font-size: var(--text-sm); font-weight: 600; }
.wordmark img { width: 30px; height: 30px; border-radius: 9px; }
.wordmark:hover { background: #f1efe8; }
.nav-menu > div::before { content: none; }
.main-nav { margin-left: 0; }
.main-nav > a, .nav-menu summary { min-height: 44px; padding: 0 0.9rem; border: 0; border-radius: 999px; background: none; font-weight: 500; color: #3c3c40; }
.main-nav > a:hover, .main-nav > a:focus-visible, .nav-menu summary:hover, .nav-menu[open] summary { background: #f1efe8; color: var(--color-ink); border-color: transparent; }
.main-nav > a[aria-current="page"] { background: var(--color-ink); color: var(--color-paper); }
.main-nav > a[aria-current="page"]:hover { background: var(--color-ink); color: var(--color-paper); }
.nav-menu > div { top: calc(100% + 0.75rem); border-radius: 14px; background: #fffffff5; backdrop-filter: blur(16px); box-shadow: 0 1px 0 #0000000a, 0 18px 40px #2a241614; }
.nav-menu > div a { border-radius: 9px; }
.language-link { min-height: 44px; padding: 0 0.9rem; margin-left: 2px; border: 1px solid color-mix(in srgb, var(--color-rule) 80%, transparent); border-radius: 999px; font-size: var(--text-sm); letter-spacing: 0.04em; text-decoration: none; }
.language-link:hover { background: #f1efe8; }
@media (max-width: 48rem) { .language-link { padding-inline: 0.65rem; font-size: var(--text-xs); } }
@media (max-width: 48rem) {
  .masthead-academic { padding-block: 0.5rem; }
  .masthead-inner { max-width: calc(100% - 1rem); overflow-x: auto; scrollbar-width: none; }
  .masthead-inner::-webkit-scrollbar { display: none; }
  .wordmark span { display: none; }
  .main-nav { flex-wrap: nowrap; gap: 0; margin-left: 0; }
  .main-nav > a, .nav-menu summary { padding-inline: 0.7rem; }
}
.main-nav > a, .nav-menu summary { transition: background-color var(--dur-short) ease, color var(--dur-short) ease; }
.nav-menu { position: relative; }
.nav-menu summary { list-style: none; display: inline-flex; align-items: center; justify-content: center; gap: 0.6rem; font-size: var(--text-sm); cursor: pointer; }
.nav-menu summary::after { content: ''; width: 0.4rem; height: 0.4rem; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-0.12rem) rotate(45deg); transition: transform var(--dur-short) ease; }
.nav-menu[open] summary::after { transform: translateY(0.12rem) rotate(225deg); }
.nav-menu summary::-webkit-details-marker { display: none; }
.nav-menu summary:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 5px; }
.nav-menu > div { isolation: isolate; position: absolute; top: calc(100% + 0.75rem); left: 0; min-width: 9rem; padding: 0.375rem; z-index: 30; background: #fffffff5; backdrop-filter: blur(16px); border: 1px solid color-mix(in srgb, var(--color-rule) 65%, transparent); border-radius: 14px; box-shadow: 0 1px 0 #0000000a, 0 18px 40px #2a241614; }
.nav-menu > div a { display: flex; border: 0; border-radius: 4px; justify-content: space-between; gap: var(--space-lg); padding-inline: var(--space-sm); }
.nav-menu > div a::after { content: ''; flex: 0 0 0.35rem; height: 0.35rem; border-right: 1.5px solid currentColor; border-top: 1.5px solid currentColor; transform: rotate(45deg); opacity: 0.6; }
.nav-menu > div a:last-child { margin-top: 0.25rem; border-top: 1px solid color-mix(in srgb, var(--color-rule) 65%, transparent); border-top-left-radius: 0; border-top-right-radius: 0; }
.section-heading { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: var(--space-md); }
.section-heading > a, .archive-links, .eyebrow { color: var(--color-accent); font-size: var(--text-sm); }
.contribution h3 a { color: inherit; }
.summary { margin-top: var(--space-md); }
.overview-entry h3 a, .note-preview h3 a { text-decoration: none; }
.overview-entry h3 a:hover, .note-preview h3 a:hover { text-decoration: underline; }
.research-overview .entry-heading { grid-template-columns: minmax(0, 1fr); gap: var(--space-xs); }
.entry-timing { display: flex; align-items: baseline; flex-wrap: wrap; gap: var(--space-2xs) var(--space-sm); font-size: var(--text-xs); }
.research-overview .entry-supervisor { max-width: 100%; white-space: normal; }
.interests-copy li + li { margin-top: var(--space-md); }
.archive-links { display: flex; flex-wrap: wrap; gap: var(--space-lg); margin-top: var(--space-lg); }
.experience-links { padding-block: var(--space-xl); border-top: 1px solid var(--color-rule); margin-top: var(--space-2xl); }
.detail-page, .archive-page { padding-block: var(--space-2xl) var(--space-3xl); min-height: 65vh; }
.detail-header { padding-bottom: var(--space-xl); border-bottom: 1px solid var(--color-rule); }
.detail-header h1 { margin-top: var(--space-sm); max-width: 30ch; }
.detail-header .entry-timing { margin-top: var(--space-md); }
.experience-page > .detail-header + .document-section { margin-top: 0; border-top: 0; }
.photo-controls { display: flex; align-items: center; gap: var(--space-xs); margin-top: var(--space-sm); }
.photo-controls[hidden] { display: none; }
.photo-controls button { min-width: 44px; min-height: 44px; padding: var(--space-2xs) var(--space-sm); background: transparent; color: var(--color-accent); border: 1px solid var(--color-rule); border-radius: 6px; font: inherit; font-size: var(--text-xs); cursor: pointer; }
.photo-controls button:disabled { opacity: 0.5; cursor: default; }
.intro .personal-statement { margin-top: var(--space-md); max-width: 75ch; }
.github-mark { display: inline-block; width: 1em; height: 1em; margin-inline-start: var(--space-xs); vertical-align: -0.1em; }
.article-content { margin-top: var(--space-xl); }
.article-content > p, .article-content > ul { max-width: 80ch; }
.article-content p + p { margin-top: var(--space-md); }
.article-content h2 { margin-block: var(--space-xl) var(--space-md); }
.article-content .project-figure { max-width: 60rem; margin-inline: auto; }
.archive-page .entry + .entry { margin-top: var(--space-xl); }
.empty-state { margin-top: var(--space-xl); padding-block: var(--space-xl); color: var(--color-muted); border-bottom: 1px solid var(--color-rule); }
.records-grid { display: grid; gap: var(--space-xl); margin-top: var(--space-xl); }
.records-grid > a { padding-block: var(--space-xl); border-block: 1px solid var(--color-rule); display: flex; justify-content: space-between; align-items: center; text-decoration: none; }
.photo-groups { margin-top: var(--space-xl); }
.photo-group + .photo-group { margin-top: var(--space-2xl); }
.photo-grid { display: grid; gap: var(--space-xl); margin-top: var(--space-lg); }
.photo-grid .figure-link { display: block; overflow: hidden; }
.photo-grid img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.photo-grid figcaption { font-size: var(--text-sm); }
.photo-grid figcaption p { font-size: var(--text-xs); color: var(--color-muted); }
#education > div > .entry, #publications > div > .publication { margin-top: 0; }
#publications > div > .publication { padding-top: 0; border-top: 0; }
@media (min-width: 40rem) {
  .photo-grid, .notes-overview { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-xl); }
  .notes-overview .entry + .entry { padding-top: 0; border-top: 0; }
  .records-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 60rem) {
  .intro-copy, .intro .personal-statement { max-width: none; }
  .research-overview { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: var(--space-xl); row-gap: 0; }
  .research-overview .entry, .research-overview .entry-body { display: grid; grid-template-rows: subgrid; grid-row: span 5; row-gap: 0; }
  .research-overview .entry + .entry { padding-top: 0; border: 0; }
  .project-overview { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-2xl); }
  .project-overview .entry + .entry { padding-top: 0; border: 0; }
  .project-overview .entry-heading { grid-template-columns: minmax(0, 1fr); gap: var(--space-xs); }
  #education, #skills, #academic-interests, #publications { grid-template-columns: 11.5rem minmax(0, 1fr); }
}
@media (max-width: 59.999rem) { .masthead-inner { gap: 2px; flex-wrap: nowrap; } }
@media (max-width: 39.999rem) {
  :root { --anchor-offset: 9rem; }
  .main-nav { flex-wrap: nowrap; justify-content: flex-start; }
  .main-nav a, .nav-menu summary { padding-inline: 0.6rem; font-size: var(--text-xs); }
  .intro h1 span { font-size: 0.6em; }
  .language-link { font-size: var(--text-xs); }
}
@media print {
  .cv-section .application-icon { display: none; }
  .cv-source { margin-top: 3pt; font-size: inherit; }
  .cv-section .summary { margin-top: 3pt; max-width: none; }
  .cv-view { background: white; }
  .cv-section .interests-copy { margin-top: 0; max-width: none; }
  .cv-section .interests-copy li + li { margin-top: 2pt; }
  .cv-section .entry-timing { font-size: 8pt; }
  .cv-section .entry-supervisor { font-size: inherit; }
  html[lang="en-US"] .cv-document { font-size: 8.3pt; line-height: 1.35; }
  html[lang="en-US"] .cv-heading p { font-size: 8.3pt; margin-top: 3pt; }
  html[lang="en-US"] .cv-section { margin-top: 5pt; }
  html[lang="en-US"] .cv-section .entry, html[lang="en-US"] .cv-section .publication { margin-top: 3pt; }
  html[lang="en-US"] .cv-section li + li { margin-top: 1pt; }
  html[lang="en-US"] .cv-section .authors { line-height: inherit; }
  html[lang="en-US"] .cv-section .entry h3, html[lang="en-US"] .cv-section .publication h3 { font-size: 8.6pt; }
}
