/* Public Person composition; shared tokens, navigation and icons stay shared. */
.public-person { max-width: 74rem; gap: 0; overflow-wrap: anywhere; }
.public-person__header {
    display: grid;
    grid-template-columns: minmax(0, 19rem) minmax(0, 1fr);
    align-items: center;
    gap: clamp(2rem, 5vw, 4.5rem);
    padding-bottom: 3.5rem;
}
.public-person__portrait-frame {
    width: 100%;
    aspect-ratio: 4 / 5;
    display: grid;
    background: var(--color-surface-soft);
}
.public-person__portrait,
.public-person__avatar { width: 100%; height: 100%; min-width: 0; min-height: 0; }
.public-person__portrait { object-fit: scale-down; }
.public-person__avatar { display: grid; place-items: center; font-size: 5rem; color: var(--color-primary); }
.public-person__avatar .ui-icon { width: 5rem; height: 5rem; }
.public-person__identity { min-width: 0; }
.public-person__identity h1 {
    margin: .75rem 0 1.5rem;
    color: var(--color-navy);
    font-size: clamp(2.625rem, 4.5vw, 4rem);
    line-height: 1.08;
    letter-spacing: -.025em;
}
.public-person__headline-roles { display: grid; gap: 1rem; list-style: none; padding: 0; }
.public-person__headline-roles li { display: grid; gap: .125rem; }
.public-person__headline-roles strong { font-size: 1.1875rem; color: var(--color-navy); }
.public-person__headline-roles span { color: var(--color-text-muted); }
.public-person__languages { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.75rem; }
.public-person__languages a {
    min-width: 44px;
    min-height: 44px;
    padding: .5rem .875rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--color-primary);
    border: 1px solid var(--color-border);
    text-decoration: none;
}
.public-person__languages [aria-current] {
    color: var(--color-primary-strong);
    background: var(--color-surface-soft);
    border-color: var(--color-primary);
    font-weight: 700;
}
.public-person__section { padding-block: 2rem; border-top: 1px solid var(--color-border); min-width: 0; }
.public-person__section h2 {
    margin: 0 0 1.5rem;
    color: var(--color-navy);
    font-size: clamp(1.875rem, 3vw, 2.25rem);
    line-height: 1.2;
}
.public-person__biography { max-width: 70ch; font-size: 1.125rem; line-height: 1.75; }
.public-person__biography p + p { margin-top: 1rem; }
.public-person__relationships { list-style: none; padding: 0; margin: 0; }
.public-person__relationship {
    display: grid;
    grid-template-columns: 7rem minmax(0, 1fr);
    align-items: start;
    gap: 1.5rem;
    padding-block: 1.25rem;
    min-width: 0;
}
.public-person__relationship + .public-person__relationship { border-top: 1px solid var(--color-border); }
.public-person__relationship-type {
    color: var(--color-text-muted);
    font-size: .8125rem;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding-top: .25rem;
}
.public-person__relationship-body { min-width: 0; }
.public-person__relationship-link {
    display: grid;
    gap: .25rem;
    max-width: 100%;
    min-height: 44px;
    padding-block: .375rem;
    color: var(--color-primary);
    font-size: 1.1875rem;
    font-weight: 600;
    text-decoration: none;
}
.public-person__relationship-link-title { display: flex; align-items: baseline; gap: .75rem; }
.public-person__relationship-link-title > span { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.public-person__relationship-link span { min-width: 0; }
.public-person__relationship-link .ui-icon { flex: 0 0 1.125rem; width: 1.125rem; height: 1.125rem; }
.public-person__relationship-name { display: block; color: var(--color-navy); font-size: 1.1875rem; padding-block: .375rem; }
.public-person__relationship-body p,
.public-person__relationship-role { color: var(--color-text-muted); font-size: 1rem; font-weight: 400; }
.public-person__relationship-action { display: block; margin-top: .5rem; color: var(--color-primary); font-size: .875rem; font-weight: 400; }
@media (max-width: 48rem) {
    .public-person__header { grid-template-columns: minmax(0, 1fr); gap: 1.75rem; padding-bottom: 3rem; }
    .public-person__portrait-frame { width: min(12.5rem, 100%); }
    .public-person__relationship { grid-template-columns: minmax(0, 1fr); gap: .25rem; }
}
