/* About: editorial profile, signal-path diagram, skills, and experience. */
body { background:#FBFAF6; }
.ap-about-header,.ap-about-main,.ap-about-footer { inline-size:min(calc(100% - 3rem),72rem); margin-inline:auto; }
.ap-about-header { display:flex; align-items:center; justify-content:space-between; padding-block:1.4rem 2.8rem; gap:2rem; }
.ap-about-identity { display:inline-flex; align-items:center; gap:.65rem; min-block-size:48px; text-decoration:none; flex:none; }
.ap-about-identity__mark { inline-size:28px; block-size:28px; transform-origin:50% 50%; transition:transform 650ms cubic-bezier(.22,.68,.2,1); }
.ap-about-identity:is(:hover,:focus-visible) .ap-about-identity__mark { transform:rotate(120deg); }
.ap-about-identity__name { font-size:1.45rem; font-weight:600; line-height:1.2; letter-spacing:-.045em; }
.ap-about-navigation { display:flex; flex-wrap:wrap; gap:.35rem 1.4rem; }
.ap-about-navigation a { display:inline-flex; min-block-size:44px; align-items:center; font-size:.85rem; text-decoration:none; border-block-end:1px solid transparent; }
.ap-about-navigation a:is(:hover,[aria-current="page"]) { border-color:#0B6B4F; color:#0B6B4F; }
.ap-about-title { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:1rem; margin-block-end:2rem; }
.ap-about-title::before,.ap-about-title::after { content:""; block-size:1px; background:#BFC8BD; }
.ap-about-title > * { padding:.6rem 1.3rem; border:1px solid #BFC8BD; background:#F4F3EC; font-size:1.5rem; font-weight:400; letter-spacing:-.035em; line-height:1.2; }
.ap-about-intro { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:clamp(2rem,4vw,4.5rem); align-items:center; border:1px solid #BFC8BD; background:#FEFEFC; padding:clamp(1.25rem,3.5vw,3rem); }
.ap-about-intro__copy { min-inline-size:0; }
.ap-about-kicker { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:.6875rem; color:#536950; letter-spacing:.08em; text-transform:uppercase; line-height:1.7; }
.ap-about-intro h1 { font-size:clamp(2.8rem,1.4rem + 4.2vw,4.8rem); font-weight:400; letter-spacing:-.065em; line-height:1.02; margin-block:1.05rem 1.5rem; }
.ap-about-bio { font-size:clamp(1.125rem,1rem + .4vw,1.3rem); max-inline-size:41ch; line-height:1.65; color:#35493D; }
.ap-about-bio--secondary { margin-block-start:1rem; font-size:1rem; color:#59645E; line-height:1.75; max-inline-size:49ch; }
.ap-about-actions { display:flex; flex-wrap:wrap; align-items:center; gap:1rem 1.35rem; margin-block-start:1.75rem; }
.ap-about-link { display:inline-flex; align-items:center; justify-content:space-between; gap:1rem; min-block-size:46px; padding:.65rem .95rem; border:1px solid #BFC8BD; font-size:.8125rem; text-decoration:none; transition:background-color 160ms ease; }
.ap-about-link:hover { border-color:#1C2924; background:#F0F3EC; }
.ap-about-link--primary { background:#0B6B4F; border-color:#0B6B4F; color:#FEFEFC; }
.ap-about-link--primary:hover { background:#16503F; border-color:#16503F; }
.ap-about-text-link { display:inline-flex; align-items:center; min-block-size:44px; gap:.8rem; font-size:.8125rem; text-decoration:none; text-underline-offset:.25em; }
.ap-about-text-link:hover { text-decoration:underline; }
.ap-about-profile { margin:0; min-inline-size:0; border:1px solid #AEBBAC; background:#F4F6EE; }
.ap-about-profile__label { padding:.9rem 1rem; border-block-end:1px solid #BBC8B7; display:flex; justify-content:space-between; gap:1rem; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:.625rem; color:#50644C; text-transform:uppercase; letter-spacing:.07em; }
.ap-about-profile__diagram { display:block; inline-size:100%; block-size:auto; font-family:ui-sans-serif,system-ui,sans-serif; }
.ap-about-profile figcaption { border-block-start:1px solid #BBC8B7; display:flex; flex-direction:column; gap:.3rem; padding:1rem; }
.ap-about-profile figcaption strong { color:#1C2924; font-size:.875rem; font-weight:500; letter-spacing:-.02em; }
.ap-about-profile figcaption span { font-size:.6875rem; color:#59645E; }
.ap-about-education { display:grid; grid-template-columns:auto minmax(0,1fr) minmax(0,1fr); align-items:center; gap:1.5rem; margin-block-start:1rem; padding:1.5rem clamp(1.25rem,3.5vw,3rem); border:1px solid #BFC8BD; background:#F4F3EC; }
.ap-about-monogram { inline-size:48px; block-size:48px; display:grid; place-items:center; border:1px solid #C1CCBB; background:#EDF1E7; color:#0B6B4F; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:1.1rem; letter-spacing:-.04em; flex:none; }
.ap-about-monogram--clemson { background:#F6EBDF; border-color:#D9C4B1; color:#884B2B; font-size:.9375rem; }
.ap-about-education h2 { font-size:1.0625rem; font-weight:500; margin-block-start:.2rem; }
.ap-about-education dd { color:#59645E; font-size:.8125rem; margin-block-start:.1rem; }
.ap-about-education dl { display:grid; gap:.8rem; }
.ap-about-education dt { font-size:.875rem; font-weight:500; }
.ap-about-skills,.ap-about-history { padding-block-start:4.5rem; }
.ap-about-section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:2rem; margin-block-end:1.5rem; }
.ap-about-section-heading h2 { font-size:clamp(1.75rem,1.2rem + 1.4vw,2.35rem); line-height:1.15; letter-spacing:-.045em; font-weight:400; margin-block-start:.5rem; }
.ap-about-section-heading > p { max-inline-size:31ch; font-size:.8125rem; color:#59645E; line-height:1.65; }
.ap-about-skills__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border:1px solid #BFC8BD; background:#FEFEFC; }
.ap-about-skill-group { padding:1.65rem; display:flex; flex-direction:column; min-inline-size:0; }
.ap-about-skill-group + .ap-about-skill-group { border-inline-start:1px solid #BFC8BD; }
.ap-about-skill-group__number { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:.625rem; letter-spacing:.08em; color:#0B6B4F; }
.ap-about-skill-group:nth-child(2) .ap-about-skill-group__number { color:#884B2B; }
.ap-about-skill-group:nth-child(3) .ap-about-skill-group__number { color:#4D6098; }
.ap-about-skill-group h3 { margin-block:.9rem .65rem; font-size:1.05rem; font-weight:500; letter-spacing:-.02em; }
.ap-about-skill-group > p { font-size:.875rem; color:#59645E; line-height:1.7; }
.ap-about-skill-group ul { margin-block:1.15rem 1rem; padding-block-start:1rem; border-block-start:1px solid #DEE3D9; font-size:.75rem; line-height:1.8; color:#35493D; }
.ap-about-skill-group .ap-about-text-link { margin-block-start:auto; align-self:flex-start; }
.ap-about-history__list { list-style:none; display:grid; gap:1.5rem; position:relative; }
.ap-about-history__list::before { content:""; position:absolute; inset-inline-start:9.5rem; inset-block:1.5rem 0; inline-size:1px; background:#BFC8BD; }
.ap-about-history__item { display:grid; grid-template-columns:8.25rem minmax(0,1fr); column-gap:2.5rem; align-items:start; position:relative; }
.ap-about-date { padding-block-start:1.05rem; color:#59645E; font-size:.75rem; line-height:1.8; font-variant-numeric:tabular-nums; }
.ap-about-date strong { display:block; color:#1C2924; font-size:.875rem; font-weight:500; }
.ap-about-job { position:relative; min-inline-size:0; border:1px solid #BFC8BD; background:#FEFEFC; }
.ap-about-job::before { content:""; position:absolute; inset-inline-start:-1.5rem; inset-block-start:1.5rem; inline-size:.5rem; block-size:.5rem; background:#FBFAF6; border:1px solid #718173; }
.ap-about-job__header { display:grid; grid-template-columns:48px minmax(0,1fr) auto; align-items:center; gap:1rem; padding:1.2rem 1.5rem; background:#F6F6F0; border-block-end:1px solid #D4DAD1; }
.ap-about-job h3 { font-size:clamp(1.0625rem,1rem + .5vw,1.4rem); font-weight:500; letter-spacing:-.025em; line-height:1.3; }
.ap-about-job__role { color:#59645E; font-size:.8125rem; margin-block-start:.3rem; }
.ap-about-tag { display:inline-flex; justify-content:center; align-items:center; padding:.3rem .55rem; border:1px solid #BBC6B8; color:#46534B; font-size:.625rem; white-space:nowrap; line-height:1.5; }
.ap-about-tag--current { border-color:#0B6B4F; color:#0B6B4F; gap:.45rem; }
.ap-about-tag--current::before { content:""; display:block; inline-size:5px; block-size:5px; border-radius:50%; background:currentColor; }
.ap-about-job--academic .ap-about-tag { border-color:#C8AD9E; color:#854531; }
.ap-about-job__body { padding:1.25rem 1.5rem; }
.ap-about-job__body > p { color:#46534B; max-inline-size:72ch; font-size:.9375rem; line-height:1.75; }
.ap-about-job__body > .ap-about-job__focus { margin-block-start:.85rem; font-size:.6875rem; color:#566C53; line-height:1.7; }
.ap-about-job__body .ap-about-text-link { margin-block-start:.5rem; color:#0B6B4F; }
.ap-about-contact { margin-block:4.5rem 0; border:1px solid #BFC8BD; background:#F0F3E9; padding:2rem; display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.ap-about-contact h2 { font-size:clamp(1.6rem,1.2rem + 1vw,2rem); font-weight:400; letter-spacing:-.045em; line-height:1.2; margin-block:.55rem .65rem; }
.ap-about-contact p:not(.ap-about-kicker) { font-size:.875rem; color:#59645E; max-inline-size:48ch; }
.ap-about-contact__links { display:flex; flex-direction:column; gap:.75rem; flex:none; }
.ap-about-contact__links nav { display:flex; gap:1.25rem; }
.ap-about-contact__links nav a { display:inline-flex; align-items:center; gap:.3rem; min-block-size:44px; font-size:.75rem; text-decoration:none; }
.ap-about-contact__links nav a:hover { text-decoration:underline; text-underline-offset:.25em; }
.ap-about-footer { display:flex; justify-content:space-between; gap:1rem; padding-block:1.5rem; color:#59645E; font-size:.75rem; }
.ap-about-footer a { min-block-size:44px; display:inline-flex; align-items:center; gap:.6rem; text-underline-offset:.2em; }
.ap-about-footer span { align-self:center; }
@media(max-width:60rem) {
  .ap-about-intro { grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:2rem; }
  .ap-about-bio { font-size:1.1rem; }
  .ap-about-bio--secondary { font-size:.9375rem; }
  .ap-about-skill-group { padding:1.25rem; }
  .ap-about-skill-group h3 { font-size:.975rem; }
  .ap-about-job__header { grid-template-columns:48px minmax(0,1fr); }
  .ap-about-tag { grid-column:2; justify-self:start; }
}
@media(max-width:46rem) {
  .ap-about-header,.ap-about-main,.ap-about-footer { inline-size:calc(100% - 2rem); }
  .ap-about-header { padding-block:1rem 2rem; gap:1rem; flex-wrap:wrap; }
  .ap-about-navigation { gap:.25rem 1.2rem; }
  .ap-about-navigation a { font-size:.8125rem; }
  .ap-about-identity__name { font-size:1.3rem; }
  .ap-about-title { margin-block-end:1.5rem; }
  .ap-about-intro { grid-template-columns:minmax(0,1fr); gap:2rem; padding:1.5rem; }
  .ap-about-intro h1 { font-size:3.3rem; }
  .ap-about-bio { max-inline-size:100%; }
  .ap-about-profile { inline-size:min(100%,25rem); justify-self:center; }
  .ap-about-education { grid-template-columns:48px minmax(0,1fr); gap:1rem; }
  .ap-about-education dl { grid-column:1 / -1; grid-template-columns:repeat(2,minmax(0,1fr)); padding-block-start:1rem; border-block-start:1px solid #CFD6CA; gap:1rem; }
  .ap-about-section-heading { align-items:flex-start; flex-direction:column; gap:.8rem; }
  .ap-about-section-heading > p { max-inline-size:45ch; }
  .ap-about-skills,.ap-about-history { padding-block-start:3.25rem; }
  .ap-about-skills__grid { grid-template-columns:minmax(0,1fr); }
  .ap-about-skill-group { padding:1.5rem; }
  .ap-about-skill-group + .ap-about-skill-group { border-inline-start:none; border-block-start:1px solid #BFC8BD; }
  .ap-about-skill-group h3 { font-size:1.125rem; }
  .ap-about-skill-group > p { max-inline-size:52ch; }
  .ap-about-skill-group ul { margin-block:.9rem .3rem; }
  .ap-about-history__list { gap:1.75rem; padding-inline-start:1.5rem; }
  .ap-about-history__list::before { inset-inline-start:.25rem; inset-block-start:.8rem; }
  .ap-about-history__item { grid-template-columns:minmax(0,1fr); }
  .ap-about-date { padding-block:0 .75rem; display:flex; align-items:baseline; gap:.65rem; flex-wrap:wrap; }
  .ap-about-job::before { inset-inline-start:-1.55rem; inset-block-start:-2.15rem; }
  .ap-about-job__header,.ap-about-job__body { padding:1rem; }
  .ap-about-job__header { gap:.75rem; }
  .ap-about-contact { margin-block-start:3.25rem; padding:1.5rem; align-items:flex-start; flex-direction:column; gap:1.5rem; }
}
@media(max-width:25rem) {
  .ap-about-intro { padding:1.15rem; }
  .ap-about-education dl { grid-template-columns:minmax(0,1fr); }
  .ap-about-contact { padding:1.15rem; }
  .ap-about-link { font-size:.75rem; }
  .ap-about-footer { font-size:.6875rem; }
}
@media(prefers-reduced-motion:reduce) {
  .ap-about-identity__mark,.ap-about-link { transition:none; }
  .ap-about-identity:is(:hover,:focus-visible) .ap-about-identity__mark { transform:none; }
}
@media(forced-colors:active) {
  .ap-about-title::before,.ap-about-title::after,.ap-about-history__list::before { background:CanvasText; }
  .ap-about-job::before { border-color:CanvasText; background:Canvas; }
  .ap-about-monogram { border-color:CanvasText; }
  .ap-about-link--primary { border:1px solid LinkText; color:LinkText; background:Canvas; }
}
