.teaching-focus{min-width:0;margin:20px 0;container-type:inline-size}.tf-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.tf-instruction{font-size:12px;color:var(--muted);margin:14px 0}.tf-stage{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:70px;align-items:center;padding:28px 24px;border:1px solid var(--line);border-radius:12px;background:radial-gradient(ellipse at center,#eaf6f8,#fdfdfb 78%);min-height:330px}.tf-parents,.tf-focus{display:flex;flex-direction:column;align-items:center;gap:24px;min-width:0;position:relative;z-index:1}.tf-parents>.eyebrow,.tf-focus>.eyebrow{margin:0;text-align:center;font-size:9px;letter-spacing:1px}.tf-person{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%;max-width:180px;min-width:0;background:none;border:0;padding:5px;color:var(--ink);text-align:center;font:inherit;line-height:1.3}.tf-person .avatar{width:76px;height:76px;border:2px solid var(--cyan);background:white;box-shadow:0 0 0 5px #fff9;flex:none}.tf-current .avatar{width:102px;height:102px;border-width:3px}.tf-person b{font-size:14px;overflow-wrap:anywhere}.tf-current b{font-size:19px}.tf-person-meta,.tf-context{font-size:11px;color:var(--muted)}.tf-teacher{cursor:pointer;border-radius:7px;transition:background .15s}.tf-teacher:hover{background:#1296b414}.tf-teacher:focus-visible,.tf-records button:focus-visible{outline:2px solid var(--cyan-dark);outline-offset:4px}.tf-context{font-size:10px;max-width:180px}.tf-focus>.text-link{font-size:11px;text-align:center}.tf-empty{font-size:12px;color:var(--muted);text-align:center}.tf-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}.tf-lines>path{fill:none;stroke:var(--cyan);stroke-width:1.7;opacity:.75}.tf-caption{margin:13px 0}.tf-records{font-size:12px;border-top:1px solid var(--line);padding-top:12px}.tf-records summary{cursor:pointer;color:var(--cyan-dark);padding:8px 0;min-height:40px}.tf-records ul{list-style:none;padding:0}.tf-records li{padding:12px 0;border-bottom:1px solid var(--line)}.tf-records p{margin:8px 0;color:var(--muted);overflow-wrap:anywhere}.tf-records button{background:none;padding:8px 0;white-space:normal;text-align:left;min-height:44px}.tf-records a{min-height:32px}.tf-toolbar>.text-link{background:none;padding:8px 0;text-align:left;white-space:normal}.tf-toolbar>button{min-height:44px}
@container(max-width:480px){.tf-stage{padding:22px 10px;gap:32px}.tf-person .avatar{width:58px;height:58px}.tf-current .avatar{width:72px;height:72px}.tf-person b{font-size:12px}.tf-current b{font-size:14px}.tf-person-meta{font-size:10px}.tf-context{display:none}.tf-parents,.tf-focus{gap:20px}.tf-stage .eyebrow{font-size:8px;letter-spacing:.6px}.tf-focus>.text-link{font-size:10px}}
@media(prefers-reduced-motion:reduce){.teaching-focus *{transition:none!important;animation:none!important}}

/* Kim's selected path keeps Donovan and Claude at the same generation. */
.tf-chain{grid-template-columns:repeat(var(--tf-columns,4),minmax(0,1fr));gap:12px;padding:28px 12px}
.tf-chain-column{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;min-width:0;position:relative;z-index:1}
.tf-chain-column>.eyebrow{font-size:8px;letter-spacing:.6px;text-align:center;margin:0}
.tf-chain-people{display:flex;flex-direction:column;align-items:center;gap:24px;width:100%;min-width:0}
.tf-chain-node{width:100%;display:flex;justify-content:center;min-width:0}
.tf-chain .tf-person .avatar{width:64px;height:64px}
.tf-chain .tf-current .avatar{width:82px;height:82px}
.tf-chain .tf-person b{font-size:12px}
.tf-chain .tf-current b{font-size:14px}
.tf-chain .tf-person-meta{font-size:10px}
.tf-chain .tf-context{display:none}
@container(max-width:560px){
 .tf-chain{display:flex;flex-direction:column;gap:32px;padding:24px 14px}
 .tf-chain-column{width:100%;gap:14px}
 .tf-chain-people{flex-direction:row;justify-content:center;gap:20px}
 .tf-chain-node{max-width:140px}
}

/* Give the relationship graph the full profile width. */
.profile-grid:has(.teaching-focus){grid-template-columns:minmax(0,1fr)}
.profile-grid:has(.teaching-focus)>aside{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}
.profile-grid:has(.teaching-focus)>aside>.card{margin-top:0!important}
.tf-chain{min-height:420px;padding:48px 36px;gap:28px}
.tf-chain .tf-person .avatar{width:82px;height:82px}
.tf-chain .tf-current .avatar{width:102px;height:102px}
.tf-chain .tf-person b{font-size:14px}
.tf-chain .tf-current b{font-size:17px}
.tf-chain .tf-person-meta{font-size:11px}
@container(max-width:700px){
 .tf-chain{display:flex;flex-direction:column;gap:40px;padding:38px 28px}
 .tf-chain-column{width:100%;gap:14px}
 .tf-chain-people{flex-direction:row;justify-content:center;gap:20px}
 .tf-chain-node{max-width:140px}
}
@container(max-width:420px){
 .tf-chain{padding:32px 22px}
 .tf-chain .tf-person .avatar{width:58px;height:58px}
 .tf-chain .tf-current .avatar{width:76px;height:76px}
 .tf-chain .tf-person b{font-size:12px}
 .tf-chain .tf-current b{font-size:14px}
 .tf-chain-people{gap:10px}
}
@media(max-width:760px){.profile-grid:has(.teaching-focus)>aside{grid-template-columns:minmax(0,1fr)}}
