/* Team member / professor profile — editorial header + ruled sections. */

/* ── Profile hero ───────────────────────────────────────── */
.profile-hero {
    padding-block: clamp(48px, 8vw, 96px) clamp(32px, 5vw, 56px);
    border-bottom: var(--hair);
}
.profile-hero__bar {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--sp-4);
}
.profile-hero__name {
    font-size: var(--fs-display);
    font-weight: 800;
    letter-spacing: -.025em;
    margin-bottom: .15em;
}
.profile-hero__role {
    margin: 0;
    color: var(--muted);
    font-size: clamp(1rem, 1.5vw, 1.15rem);
}
.profile-hero__back { flex: 0 0 auto; }

/* ── Layout ─────────────────────────────────────────────── */
.profile-layout {
    display: grid;
    grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
    gap: clamp(28px, 5vw, 72px);
    align-items: start;
}

/* ── Sidebar: identity + contact ────────────────────────── */
.profile-side {
    position: sticky;
    top: calc(var(--header-h) + var(--sp-4));
}
.profile-identity__img {
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: center top;
    border: var(--hair);
    background: var(--paper-soft);
}
.profile-identity__name {
    margin: var(--sp-3) 0 2px;
    font-size: 1.35rem;
    font-weight: 800;
    letter-spacing: -.02em;
}
.profile-identity__role {
    margin: 0;
    font-size: var(--fs-tiny);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--accent-ink);
}

.profile-contact {
    list-style: none;
    margin: var(--sp-3) 0 0;
    padding: 0;
    border-top: var(--rule-heavy);
}
.profile-contact > li { margin: 0; border-bottom: var(--hair); }
.profile-contact__item {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 11px 2px;
    font-size: var(--fs-small);
    color: var(--ink-soft);
    overflow-wrap: anywhere;
}
.profile-contact__item i { color: var(--accent-ink); font-size: .95rem; line-height: 1; flex: 0 0 auto; }
a.profile-contact__item { font-weight: 600; color: var(--ink); }
a.profile-contact__item:hover { color: var(--accent-ink); }

/* ── Main: ruled section blocks ─────────────────────────── */
.profile-main { min-width: 0; }
.profile-block {
    border-top: var(--rule-heavy);
    padding-top: var(--sp-3);
    margin-bottom: clamp(36px, 5vw, 56px);
}
.profile-block:last-child { margin-bottom: 0; }
.profile-block__title {
    margin-bottom: var(--sp-3);
    font-size: var(--fs-tiny);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: var(--track-caps);
    color: var(--ink);
}
.profile-block__eyebrow {
    margin: 0 0 6px;
    font-size: var(--fs-tiny);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: var(--track-caps);
    color: var(--accent-ink);
}
.profile-block__title--plain {
    font-size: var(--fs-h2);
    text-transform: none;
    letter-spacing: -.015em;
}

/* Timeline (education / experience / projects) */
.profile-timeline > li:first-child { border-top: 0; }
.profile-timeline__period {
    flex: 0 0 150px;
    font-size: var(--fs-small);
    font-variant-numeric: tabular-nums;
    color: var(--muted);
}
.profile-timeline__body { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }

/* Publications */
.profile-pubs > li:first-child { border-top: 0; }
.profile-pubs__content { min-width: 0; }
.profile-pubs__title { margin: 0; font-weight: 700; }
.profile-pubs__authors { margin: 4px 0 0; font-size: var(--fs-small); color: var(--muted); }
.profile-pubs__venue { margin: 4px 0 0; font-size: var(--fs-small); color: var(--muted); }

/* Grouped entries (services / talks) */
.profile-cols {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--sp-4) clamp(24px, 4vw, 48px);
}
.profile-subsection { min-width: 0; }
.profile-subsection__label {
    margin: 0 0 var(--sp-2);
    font-size: var(--fs-tiny);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--accent-ink);
}
.profile-entries {
    list-style: none;
    margin: 0;
    padding: 0;
}
.profile-entries li {
    margin: 0;
    padding-block: 10px;
    border-bottom: var(--hair);
    font-size: var(--fs-small);
}
.profile-entries__primary { display: block; font-weight: 600; overflow-wrap: anywhere; }
.profile-entries__secondary { display: block; margin-top: 2px; color: var(--muted); }

/* Teaching */
.profile-courses > li:first-child { border-top: 0; }
.profile-courses__code {
    flex: 0 0 150px;
    font-size: var(--fs-tiny);
    font-weight: 700;
    letter-spacing: .04em;
    color: var(--accent-ink);
    font-variant-numeric: tabular-nums;
}
.profile-courses__name { flex: 1 1 auto; min-width: 0; }

/* Empty message */
.profile-empty {
    margin: 0;
    padding: var(--sp-3) 0;
    border-bottom: var(--hair);
    color: var(--muted);
    font-size: var(--fs-small);
}

/* ── Responsive ─────────────────────────────────────────── */
@media (max-width: 1023px) {
    .profile-layout { grid-template-columns: 1fr; }
    .profile-side { position: static; max-width: 420px; }
    .profile-cols { grid-template-columns: 1fr; }
}

@media (max-width: 639px) {
    .profile-hero__bar {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--sp-3);
    }
    .profile-timeline > li,
    .profile-courses > li {
        flex-direction: column;
        gap: 4px;
    }
    .profile-timeline__period,
    .profile-courses__code { flex-basis: auto; }
}
