/* Scoped additions use the existing site's fonts, colours and spacing. */
@font-face { font-family: InterLocal; src: url('../fonts/Inter-Light-Subset.woff2') format('woff2'); font-style: normal; font-weight: 300; font-display: swap; }
.profile-section-header { display: grid; gap: 1.5rem; max-width: 60rem; }
.profile-section-header h2 { text-transform: uppercase; overflow-wrap: anywhere; }
.author-background { display: grid; gap: 2rem; min-width: 0; scroll-margin-top: 6rem; }
.author-education { display: grid; gap: 2.5rem; }
.author-education__item { display: grid; align-content: start; gap: 1.5rem; min-width: 0; border-top: 1px solid var(--border); padding-top: 1.5rem; }
.author-education__item h3 { font-size: 1.5rem; font-weight: 400; line-height: 1.2; }
.author-education__description { display: grid; align-content: start; gap: .75rem; color: var(--secondary-foreground); font-size: 1rem; line-height: 1.5; }
.author-education__details { display: grid; gap: 1.25rem; margin: 0; }
.author-education__details > div { display: grid; gap: .5rem; }
.author-education__details dt { font-family: var(--font-mono), monospace; font-size: .75rem; line-height: 1.5; color: var(--muted-foreground); }
.author-education__details dd { margin: 0; font-size: 1rem; line-height: 1.5; }
.author-competencies { display: grid; margin: 0; padding: 0; list-style: none; }
.author-competencies li { display: flex; align-items: center; min-width: 0; border-bottom: 1px solid var(--border); padding-block: 1.25rem; font-size: 1rem; line-height: 1.4; }
.author-competencies li:first-child { border-top: 1px solid var(--border); }
@media (min-width: 49.75rem) {
  .author-background { gap: 3rem; }
  .author-education, .author-competencies { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 3rem; }
  .author-education { row-gap: 1.5rem; }
  .author-education__item { grid-row: span 3; grid-template-rows: subgrid; padding-top: 2rem; }
  .author-competencies { grid-auto-flow: column; grid-template-rows: repeat(6, auto); }
  .author-competencies li { font-size: 1.125rem; padding-block: 1.5rem; }
  .author-competencies li:nth-child(7) { border-top: 1px solid var(--border); }
}
@media (min-width: 64rem) {
  .author-education, .author-competencies { column-gap: 6rem; }
}
.profile-section-header > p:not(.profile-eyebrow) { max-width: 48rem; color: var(--secondary-foreground); font-family: var(--font-mono), monospace; font-size: .875rem; line-height: 1.5; }
.profile-eyebrow { color: var(--muted-foreground); font-family: var(--font-mono), monospace; font-size: .75rem; line-height: 1.4; }
.profile-nav { display: flex; gap: 1rem 2rem; flex-wrap: wrap; font-family: var(--font-mono), monospace; font-size: .75rem; line-height: 1.4; }
.profile-nav a, .profile-inline-link, .source-text-button { text-decoration: underline; text-underline-offset: .25rem; }
.profile-inline-link { display: inline-flex; align-items: center; gap: 1rem; font-family: var(--font-mono), monospace; font-size: .875rem; line-height: 1.4; }
.profile-inline-link img, .profile-project-preview a img { width: 1.25rem; height: 1.25rem; }
.profile-projects, .profile-history, .source-catalogue, .profile-roles { display: grid; gap: 3rem; min-width: 0; }
.profile-projects__grid { display: grid; gap: 2rem; }
.profile-project-preview { display: grid; align-content: start; gap: 1.5rem; padding-block: 2rem; border-block: 1px solid var(--border); min-width: 0; }
.profile-project-preview h3 { font-size: 1.5rem; line-height: 1.2; text-transform: uppercase; }
.profile-project-preview dl { display: grid; gap: 1.5rem; margin: 0; }
.profile-project-preview dl > div { display: grid; gap: .5rem; }
.profile-project-preview dd { margin: 0; font-size: 2.25rem; line-height: 1; }
.profile-project-preview dt { font-family: var(--font-mono), monospace; font-size: .75rem; line-height: 1.4; color: var(--muted-foreground); }
.profile-project-preview > a { display: flex; justify-content: space-between; gap: 1rem; font-family: var(--font-mono), monospace; font-size: .875rem; text-decoration: underline; text-underline-offset: .25rem; }
.profile-history__list { padding: 0; margin: 0; list-style: none; }
.profile-history__list > li { display: grid; gap: 1rem; padding-block: 2rem; border-top: 1px solid var(--border); scroll-margin-top: 6rem; }
.profile-history__period { font-family: var(--font-mono), monospace; font-size: .875rem; }
.profile-history__list h3 { margin-bottom: 1rem; font-size: 1.25rem; line-height: 1.3; }
.profile-history__list p, .profile-roles__copy { max-width: 52rem; font-family: var(--font-mono), monospace; font-size: .875rem; line-height: 1.6; color: var(--secondary-foreground); }
.profile-history__sources { display: flex; flex-wrap: wrap; gap: .75rem; padding: 0; margin-top: 1rem; list-style: none; }
.profile-history__sources a { display: inline-flex; align-items: center; min-height: 2.75rem; padding: .5rem .75rem; border: 1px solid var(--border); font-family: var(--font-mono), monospace; font-size: .75rem; }
.profile-history__sources a:hover { background: var(--muted); }
.profile-roles__copy { display: grid; gap: 1rem; }
.source-catalogue { scroll-margin-top: 6rem; }
.source-catalogue--mentions .source-mentions-intro { max-width: none; }
.source-catalogue--mentions .source-mentions-total { justify-self: end; font-family: var(--font-sans), sans-serif; font-size: clamp(3rem, 7vw, 6rem); font-weight: 300; font-variant-numeric: tabular-nums; letter-spacing: -.06em; line-height: 1; }
@media (min-width: 49.75rem) {
  .source-catalogue--mentions .source-mentions-intro { grid-template-columns: minmax(0, 1fr) auto; column-gap: 4rem; }
  .source-catalogue--mentions .source-mentions-intro > h2, .source-catalogue--mentions .source-mentions-intro > p { grid-column: 1; }
  .source-catalogue--mentions .source-mentions-total { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
}
.source-catalogue [hidden] { display: none !important; }
.source-catalogue__overview { display: flex; flex-wrap: wrap; gap: 1rem 2rem; font-family: var(--font-mono), monospace; font-size: .75rem; line-height: 1.5; }
.source-catalogue__overview strong { font-weight: 500; color: var(--foreground); }
.source-controls { display: grid; gap: 1rem; }
.source-controls__toolbar { display: flex; align-items: end; gap: 1rem; flex-wrap: wrap; }
.source-search { flex: 1 1 24rem; display: grid; gap: .5rem; min-width: 0; }
.source-search > span, .source-filter-fields label > span, .source-field-label { color: var(--muted-foreground); font-family: var(--font-mono), monospace; font-size: .75rem; line-height: 1.4; }
.source-search input, .source-filter-fields select { width: 100%; min-width: 0; min-height: 2.75rem; border: 1px solid var(--border); background: var(--background); padding: .75rem; color: var(--foreground); font-family: var(--font-mono), monospace; font-size: .875rem; }
.source-search input::placeholder { color: var(--muted-foreground); }
.source-text-button { min-height: 2.75rem; padding: .5rem; font-family: var(--font-mono), monospace; font-size: .75rem; }
.source-filter-panel { border-block: 1px solid var(--border); }
.source-filter-panel > summary { display: flex; align-items: center; justify-content: space-between; min-height: 2.75rem; padding-block: .75rem; cursor: pointer; font-family: var(--font-mono), monospace; font-size: .875rem; }
.source-filter-fields { display: grid; gap: 1rem; padding-block: 1rem; }
.source-filter-fields label { display: grid; gap: .5rem; min-width: 0; }
.source-filter-fields .source-external-choice { display: flex; align-items: center; gap: .75rem; min-height: 2.75rem; }
.source-external-choice input { width: 1.25rem; height: 1.25rem; accent-color: var(--foreground); }
.source-filter-status, .source-empty { font-family: var(--font-mono), monospace; font-size: .75rem; line-height: 1.5; }
.source-empty { padding-block: 2rem; }
.source-catalogue__groups { display: grid; gap: 1.5rem; }
.source-group { min-width: 0; border-top: 1px solid var(--foreground); }
.source-group > summary { display: flex; align-items: center; gap: 1rem; padding-block: 1.5rem; cursor: pointer; }
.source-group > summary h3 { flex: 1; min-width: 0; overflow-wrap: anywhere; font-size: 1.25rem; line-height: 1.3; }
.source-group > summary > span { font-family: var(--font-mono), monospace; font-size: .75rem; color: var(--muted-foreground); }
.source-record { border-top: 1px solid var(--border); min-width: 0; scroll-margin-top: 6rem; }
.source-record > summary { display: grid; grid-template-columns: 3rem minmax(0, 1fr) 1.25rem; align-items: center; gap: .75rem; min-height: 3.75rem; padding-block: 1rem; cursor: pointer; }
.source-record > summary:hover { background: var(--muted); }
.source-record > summary h4 { font-family: var(--font-mono), monospace; font-size: .875rem; font-weight: 400; line-height: 1.5; overflow-wrap: anywhere; }
.source-record__id, .source-record__date { font-family: var(--font-mono), monospace; font-size: .75rem; color: var(--muted-foreground); }
.source-record__date { display: none; }
.source-catalogue summary { list-style: none; }
.source-catalogue summary::-webkit-details-marker { display: none; }
.source-catalogue summary > img { flex-shrink: 0; width: 1.25rem; height: 1.25rem; transition: transform .15s; }
.source-catalogue details[open] > summary > img { transform: rotate(45deg); }
.source-record__fields { display: grid; gap: 1.75rem; padding: 1rem 0 2rem; font-family: var(--font-mono), monospace; font-size: .875rem; line-height: 1.6; }
.source-record__fields > div { min-width: 0; }
.source-field-label { margin-bottom: .75rem; }
.source-record__fields p + p { margin-top: .75rem; }
.source-record__fields a { display: block; overflow-wrap: anywhere; text-decoration: underline; text-underline-offset: .2rem; }
.source-kind { display: block; margin-bottom: .75rem; font-size: .75rem; }
.source-topic { margin-top: 1rem; }
.source-tags { display: flex; flex-wrap: wrap; gap: .5rem; padding: 0; margin-block: 1rem; list-style: none; }
.source-tags li { border: 1px solid var(--border); padding: .25rem .5rem; font-size: .625rem; line-height: 1.4; }
.source-record__meaning { padding-top: 1rem; border-top: 1px solid var(--border); }
.source-record__meaning .portfolio-label { font-size: .75rem; color: var(--muted-foreground); }
.source-record__meaning .portfolio-title { margin-block: .75rem; font-size: 1rem; }
.source-record__meaning .metrics { display: flex; gap: 1rem; flex-wrap: wrap; margin-block: 1.25rem; }
.source-record__meaning .metric { display: grid; gap: .5rem; flex: 1 1 8rem; min-width: 0; }
.source-record__meaning .metric-value { font-size: 1.75rem; font-weight: 400; line-height: 1.2; }
.source-record__meaning .metric-label { display: block; overflow-wrap: anywhere; font-size: .75rem; line-height: 1.4; color: var(--muted-foreground); }
.source-record__meaning .competency { margin-top: 1rem; }
.source-catalogue--mentions { padding-bottom: 2rem; }
.source-catalogue--mentions .source-catalogue__groups { gap: 0; }
.source-catalogue--mentions .source-group { border-top-color: var(--border); }
.source-catalogue--mentions .source-group:last-child { border-bottom: 1px solid var(--border); }
.source-catalogue--mentions .source-group > summary .source-group__title { display: block; flex: 1; min-width: 0; margin: 0; padding: 0; overflow-wrap: anywhere; font-family: var(--font-sans); font-size: 1.25rem; font-weight: 300; line-height: 1.3; letter-spacing: .04em; color: inherit; white-space: pre-line; }
.source-catalogue--mentions .source-group > summary .source-group__count { white-space: nowrap; }
.source-catalogue--mentions .source-group__link-count-word { display: none; }
.source-catalogue--mentions .source-group > summary { min-height: 6.25rem; }
.source-catalogue--mentions .source-record__fields--compact { grid-template-columns: minmax(0, 1fr); }
.source-catalogue--mentions .source-record .source-record__title { margin: 0 0 .75rem; font: inherit; white-space: pre-line; }
.source-catalogue--mentions .source-record__links a { padding-block: .25rem; }
@media (min-width: 30rem) {
  .source-catalogue--mentions .source-group > summary { min-height: 5rem; }
  .source-catalogue--mentions .source-group__link-count-word { display: inline; }
}
.source-catalogue :is(input, select, button, summary, a):focus-visible, .profile-nav a:focus-visible, .profile-inline-link:focus-visible, .profile-history__sources a:focus-visible { outline: 2px solid var(--foreground); outline-offset: 4px; }
@media (min-width: 49.75rem) {
  .source-catalogue--mentions .source-record__fields--compact { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); column-gap: 3rem; }
  .profile-projects__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3rem; }
  .profile-history__list > li { grid-template-columns: 10rem minmax(0, 1fr); gap: 2rem; }
  .source-filter-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .source-record > summary { grid-template-columns: 3.5rem minmax(0, 1fr) 8rem 1.25rem; gap: 1rem; }
  .source-record__date { display: block; text-align: right; }
  .source-record__fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .source-record__meaning { padding-top: 0; border-top: 0; }
}
@media (min-width: 64rem) {
  .source-record__fields { grid-template-columns: minmax(0, 1.1fr) minmax(0, .5fr) minmax(0, 1.5fr) minmax(0, 1.8fr); gap: 2rem; padding-block: 1.5rem 2.5rem; }
  .source-catalogue--mentions .source-record__fields--compact { column-gap: 6rem; }
  .source-group > summary h3 { font-size: 1.5rem; }
  .source-catalogue--mentions .source-group > summary .source-group__title { font-size: 1.5rem; letter-spacing: .03em; }
  .source-filter-fields { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .profile-project-preview dd { font-size: 3rem; }
}
@media (prefers-reduced-motion: reduce) { .source-catalogue summary > img { transition: none; } }
@media print {
  .source-catalogue [hidden] { display: none !important; }
  .source-controls, .source-catalogue summary > img { display: none !important; }
  .source-record__fields { grid-template-columns: 1fr 1fr; }
  .source-record { break-inside: avoid; }
  .source-record__fields a { color: #000; }
  body.source-print-mode > :not(main) { display: none !important; }
  body.source-print-mode main > :not(.source-catalogue) { display: none !important; }
  body.source-print-mode main { display: block; margin: 0; }
  body.source-print-mode .source-catalogue { width: 100%; padding: 0; margin: 0; }
  .source-catalogue { content-visibility: visible !important; }
}
