/* AIP Platform — aip_teacher single page, reproduced 1:1 from
 * design/mockups/teacher-yejingjun.html + tokens.css. Self-contained and
 * scoped under .aip-teacher so it never leaks to the theme header/footer. */

.aip-teacher {
	--surface: oklch(0.992 0.004 90);
	--paper:   oklch(0.975 0.008 88);
	--paper-2: oklch(0.945 0.014 86);
	--paper-3: oklch(0.905 0.020 84);
	--paper-4: oklch(0.855 0.030 83);
	--line:      oklch(0.850 0.022 82);
	--line-soft: oklch(0.900 0.018 84);
	--ink:      oklch(0.27 0.012 64);
	--ink-soft: oklch(0.46 0.016 62);
	--bark:  oklch(0.40 0.034 68);
	--clay:  oklch(0.60 0.045 62);
	--mist-surface: oklch(0.86 0.020 158);
	--mist:         oklch(0.77 0.028 160);
	--mist-ink:     oklch(0.585 0.040 160);
	--gold:        oklch(0.655 0.078 80);
	--gold-bright: oklch(0.740 0.078 82);
	--gold-deep:   oklch(0.525 0.066 79);
	--gold-hairline: linear-gradient(90deg, transparent, var(--gold-deep) 16%, var(--gold-bright) 50%, var(--gold-deep) 84%, transparent);
	--gold-hairline-v: linear-gradient(180deg, transparent, var(--gold-deep) 16%, var(--gold-bright) 50%, var(--gold-deep) 84%, transparent);
	--seal-deep:  oklch(0.36 0.100 29);
	--seal:       oklch(0.42 0.115 30);
	--seal-bright:oklch(0.475 0.125 31);
	--on-dark: oklch(0.945 0.016 86);
	--shadow-sm: 0 1px 2px rgba(72,54,32,.07), 0 2px 6px rgba(72,54,32,.05);
	--shadow-md: 0 4px 12px rgba(72,54,32,.09), 0 14px 30px rgba(72,54,32,.07);
	--shadow-lg: 0 10px 26px rgba(72,54,32,.11), 0 26px 64px rgba(72,54,32,.10);
	--shadow-seal: 0 6px 22px rgba(122,42,36,.20);
	--grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)' opacity='0.05'/%3E%3C/svg%3E");
	--gua-wash: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cg fill='none' stroke='%238a6d3b' stroke-width='3' stroke-linecap='round'%3E%3Cline x1='30' y1='34' x2='150' y2='34'/%3E%3Cline x1='30' y1='52' x2='72' y2='52'/%3E%3Cline x1='108' y1='52' x2='150' y2='52'/%3E%3Cline x1='30' y1='70' x2='150' y2='70'/%3E%3Cline x1='30' y1='118' x2='72' y2='118'/%3E%3Cline x1='108' y1='118' x2='150' y2='118'/%3E%3Cline x1='30' y1='136' x2='150' y2='136'/%3E%3Cline x1='30' y1='154' x2='72' y2='154'/%3E%3Cline x1='108' y1='154' x2='150' y2='154'/%3E%3C/g%3E%3C/svg%3E");
	--torn: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='14' viewBox='0 0 180 14'%3E%3Cpath d='M0 14 V6 C12 9 20 2 33 5 C44 7 52 1 64 4 C76 7 84 2 97 5 C108 8 117 2 129 5 C141 8 150 3 162 5 C170 6 175 9 180 6 V14 Z' fill='%23000'/%3E%3C/svg%3E");
	--font-display: "Noto Serif TC", "Source Han Serif TC", "Songti TC", serif;
	--font-body: "Noto Sans TC", "PingFang TC", system-ui, sans-serif;
	--font-en-display: "Playfair Display", Georgia, serif;
	--font-en-body: "Source Sans 3", system-ui, sans-serif;
	--fs-display: clamp(2.4rem, 5vw, 3.5rem);
	--fs-h1: clamp(1.9rem, 3.4vw, 2.5rem);
	--fs-h2: clamp(1.5rem, 2.4vw, 1.875rem);
	--fs-body: 1.0625rem;
	--fs-small: 0.8125rem;
	--sp-xs: 4px; --sp-sm: 8px; --sp-md: 16px; --sp-lg: 24px; --sp-xl: 40px;
	--sp-section: 96px; --sp-air: 120px;
	--r-sm: 4px; --r-md: 8px; --r-lg: 12px;
	--maxw: 1200px;
	--ease: cubic-bezier(0.22, 1, 0.36, 1);
	--dur-fast: 240ms; --dur: 420ms; --dur-slow: 600ms;
	--sp-d: 108px;

	width: 100%; max-width: 100%; margin-inline: 0;
	background-color: var(--paper); color: var(--ink);
	font-family: var(--font-body); font-size: var(--fs-body); line-height: 1.75; text-align: left;
}
.aip-teacher * { box-sizing: border-box; }
.aip-teacher h1, .aip-teacher h2, .aip-teacher h3, .aip-teacher h4 { font-family: var(--font-display); color: var(--ink); line-height: 1.2; font-weight: 700; margin: 0; }
.aip-teacher h2 { font-size: var(--fs-h2); }
.aip-teacher p { margin: 0 0 1em; }
.aip-teacher a { color: var(--seal); text-decoration: none; }
.aip-teacher img { display: block; max-width: 100%; }
.aip-teacher .wrap { max-width: var(--maxw); margin-inline: auto; padding-inline: var(--sp-lg); }
.aip-teacher section { padding-block: var(--sp-d); position: relative; }
.aip-teacher .zone-paper { background: var(--paper); }
.aip-teacher .zone-paper2 { background: var(--paper-2); }
.aip-teacher .overline { font-family: var(--font-body); font-size: var(--fs-small); letter-spacing: 0.22em; text-transform: uppercase; color: var(--clay); font-weight: 600; }
.aip-teacher .en-script { font-family: var(--font-en-display); font-style: italic; color: var(--clay); }
.aip-teacher .rule-gold { height: 1px; border: 0; background: var(--gold-hairline); }
.aip-teacher .btn { display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-body); font-size: 1rem; font-weight: 600; padding: 13px 30px; border-radius: var(--r-sm); cursor: pointer; transition: background var(--dur) var(--ease), color var(--dur) var(--ease), transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease); border: 1px solid transparent; }
.aip-teacher .btn-primary { background: var(--seal); color: var(--on-dark); box-shadow: var(--shadow-sm); }
.aip-teacher .btn-primary:hover { background: var(--seal-bright); transform: translateY(-1px); box-shadow: var(--shadow-seal); }
.aip-teacher .btn-ghost { background: transparent; color: var(--bark); border-color: var(--bark); }
.aip-teacher .btn-ghost:hover { background: var(--bark); color: var(--on-dark); }
.aip-teacher .seal-chip { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 6px; background: var(--seal); color: var(--on-dark); font-family: var(--font-display); font-weight: 700; font-size: 1.1rem; box-shadow: inset 0 0 0 1px color-mix(in oklch, var(--gold-bright) 70%, transparent), 0 1px 0 rgba(0,0,0,.12); }
@media (prefers-reduced-motion: no-preference) {
	.aip-teacher .reveal { opacity: 1; transform: none; transition: opacity .7s var(--ease), transform .7s var(--ease); }
	.aip-teacher .reveal.in { opacity: 1; transform: none; }
}
.aip-teacher .hexgrain { position: relative; isolation: isolate; }
.aip-teacher .hexgrain > .wrap, .aip-teacher .hexgrain > .inner { position: relative; z-index: 1; }
.aip-teacher .hexgrain::after { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; background-image: var(--gua-wash); background-repeat: repeat; background-position: center top; background-size: 200px auto; opacity: .055; mix-blend-mode: multiply; }
.aip-teacher .seam { height: 0; position: relative; z-index: 3; }
.aip-teacher .seam::before { content:""; position:absolute; left:8%; right:8%; top:0; height:1px; background: var(--gold-hairline); opacity:.7; }
.aip-teacher .seam::after { content:""; position:absolute; left:8%; right:8%; top:-6px; height:7px; background: color-mix(in oklch, var(--gold) 30%, transparent); -webkit-mask: var(--torn) repeat-x top center / 180px 7px; mask: var(--torn) repeat-x top center / 180px 7px; opacity:.5; }
.aip-teacher .sec-head-d{ display:grid; grid-template-columns:auto 1fr; column-gap: var(--sp-md); align-items:center; max-width:46em; margin-bottom: var(--sp-xl); position:relative; }
.aip-teacher .sec-head-d .sh-chip{ grid-row: 1 / span 2; align-self:start; display:inline-grid; place-items:center; width:42px; height:42px; border-radius:7px; font-family:var(--font-display); font-weight:700; font-size:1.18rem; color: var(--gold-deep); background: color-mix(in srgb, var(--surface) 72%, transparent); box-shadow: inset 0 0 0 1px color-mix(in oklch, var(--gold-bright) 62%, var(--line)); }
.aip-teacher .sec-head-d .sh-rule{ grid-column: 2; align-self:end; height:1px; width:100%; max-width:280px; background: var(--gold-hairline); opacity:.85; margin-bottom: 8px; }
.aip-teacher .sec-head-d .overline{ grid-column:2; display:block; margin-bottom: 8px; }
.aip-teacher .sec-head-d h2{ grid-column:2; font-size: var(--fs-h1); }
@media (max-width:560px){ .aip-teacher .sec-head-d{ column-gap: var(--sp-sm); } .aip-teacher .sec-head-d .sh-rule{ max-width:160px; } }

/* HERO */
.aip-teacher .teacher-hero{ overflow:hidden; }
.aip-teacher .teacher-hero .wrap{ display:grid; grid-template-columns: minmax(280px, 0.86fr) 1fr; gap: clamp(40px, 6vw, 88px); align-items:center; }
.aip-teacher .teacher-hero::before{ content:""; position:absolute; inset:0 auto 0 0; width:54%; z-index:0; pointer-events:none; background: radial-gradient(58% 50% at 26% 30%, color-mix(in srgb, var(--clay) 24%, transparent), transparent 64%), radial-gradient(46% 44% at 14% 78%, color-mix(in srgb, var(--gold) 18%, transparent), transparent 66%); filter: saturate(1.04); }
.aip-teacher .portrait-frame{ position:relative; aspect-ratio:4/5; border-radius:var(--r-md); overflow:hidden; background:var(--paper-2); border:1px solid color-mix(in oklch, var(--gold) 36%, var(--line)); box-shadow: var(--shadow-lg), inset 0 0 0 1px color-mix(in oklch, var(--gold-bright) 40%, transparent); max-width: 440px; margin-inline:auto; width:100%; }
.aip-teacher .portrait-frame img{ width:100%; height:100%; object-fit:cover; object-position:center 22%; }
	.aip-teacher .duotone img,
	.aip-teacher .duotone-mist img{ filter:none; }
	.aip-teacher .duotone::after,
	.aip-teacher .duotone::before,
	.aip-teacher .duotone-mist::after,
	.aip-teacher .duotone-mist::before{ content:none; }
.aip-teacher .portrait-frame .colophon{ position:absolute; left:12px; bottom:12px; z-index:2; writing-mode: vertical-rl; text-orientation: upright; background: var(--seal); color: var(--on-dark); font-family:var(--font-display); font-weight:700; font-size:.8rem; letter-spacing:.28em; padding:11px 6px; border-radius:4px; box-shadow: inset 0 0 0 1px color-mix(in oklch, var(--gold-bright) 65%, transparent), var(--shadow-seal); }
.aip-teacher .portrait-frame.ph{ display:grid; place-items:center; background: repeating-linear-gradient(45deg, color-mix(in srgb, var(--gold) 7%, transparent) 0px, color-mix(in srgb, var(--gold) 7%, transparent) 1px, transparent 1px, transparent 12px), var(--paper-2); border-style: dashed; border-color: color-mix(in oklch, var(--gold) 50%, var(--line)); }
.aip-teacher .portrait-frame .needsreal{ position:absolute; right:8px; top:8px; z-index:3; font-size:.66rem; line-height:1.2; text-align:center; color:var(--on-dark); background: color-mix(in oklch, var(--bark) 88%, transparent); padding:4px 8px; border-radius:4px; box-shadow:var(--shadow-sm); }
.aip-teacher .teacher-hero .meta{ position:relative; z-index:1; }
.aip-teacher .teacher-hero .en-script{ font-size:1.05rem; letter-spacing:.04em; }
.aip-teacher .teacher-hero h1{ font-size: var(--fs-display); font-weight:900; letter-spacing:.04em; margin: var(--sp-sm) 0 var(--sp-md); line-height:1.18; }
.aip-teacher .teacher-hero .title-line{ font-family:var(--font-display); font-size:1.22rem; color:var(--bark); line-height:1.6; max-width:24em; margin:0 0 var(--sp-md); }
.aip-teacher .lineage-row{ display:flex; align-items:center; gap:var(--sp-md); padding: var(--sp-md) 0; margin-bottom: var(--sp-md); border-block:1px solid color-mix(in oklch, var(--gold) 24%, var(--line)); }
.aip-teacher .lineage-row .txt{ color:var(--ink-soft); font-size:.98rem; line-height:1.55; }
.aip-teacher .lineage-row .txt b{ color:var(--ink); font-weight:700; }
.aip-teacher .lineage-row .yr{ font-family:var(--font-en-body); color:var(--clay); font-size:.82rem; letter-spacing:.04em; }
.aip-teacher .teacher-hero .ctas{ display:flex; gap:var(--sp-md); flex-wrap:wrap; }
@media (max-width:880px){ .aip-teacher .teacher-hero .wrap{ grid-template-columns:1fr; gap:var(--sp-xl); } .aip-teacher .teacher-hero::before{ width:100%; } .aip-teacher .portrait-frame{ max-width:340px; } }

/* method */
.aip-teacher .method-lead{ max-width:42em; }
.aip-teacher .method-lead p{ color:var(--ink-soft); font-size:1.08rem; }
.aip-teacher .method-lead p:first-child::first-letter{ font-family:var(--font-display); font-weight:900; float:left; font-size:3.4em; line-height:.82; padding:6px 14px 0 0; color:var(--seal); background: linear-gradient(180deg, transparent 62%, color-mix(in srgb, var(--gold) 22%, transparent) 0); }
.aip-teacher .method-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,56px); margin-top:var(--sp-xl); }
.aip-teacher .method-card{ background: color-mix(in srgb, var(--surface) 64%, transparent); border:1px solid color-mix(in oklch, var(--gold) 22%, var(--line)); border-radius:var(--r-md); padding: var(--sp-lg) var(--sp-lg) calc(var(--sp-lg) + 4px); box-shadow: var(--shadow-sm); position:relative; }
.aip-teacher .method-card .kicker{ font-family:var(--font-en-display); font-style:italic; color:var(--gold-deep); font-size:.9rem; letter-spacing:.04em; display:block; margin-bottom:6px; }
.aip-teacher .method-card h3{ font-size:1.32rem; margin-bottom:10px; }
.aip-teacher .method-card p{ color:var(--ink-soft); font-size:.98rem; margin:0; }
@media (max-width:760px){ .aip-teacher .method-grid{ grid-template-columns:1fr; gap:var(--sp-xl); } }
.aip-teacher .scope{ margin-top: var(--sp-xl); }
.aip-teacher .scope .scope-label{ font-family:var(--font-display); font-size:1.06rem; color:var(--bark); margin-bottom:var(--sp-md); display:flex; align-items:center; gap:var(--sp-md); }
.aip-teacher .scope .scope-label::after{ content:""; flex:1; height:1px; background:var(--gold-hairline); opacity:.6; }
.aip-teacher .scope-tags{ display:flex; flex-wrap:wrap; gap:10px 12px; padding:0; margin:0; list-style:none; }
.aip-teacher .scope-tags li{ font-family:var(--font-body); font-size:.92rem; color:var(--ink); padding:8px 16px; border-radius:999px; background: color-mix(in srgb, var(--surface) 56%, transparent); border:1px solid color-mix(in oklch, var(--gold) 34%, var(--line)); box-shadow: var(--shadow-sm); }
.aip-teacher .pull-quote{ max-width: 34em; margin: var(--sp-air) auto 0; text-align:center; position:relative; padding: var(--sp-xl) var(--sp-lg) 0; }
.aip-teacher .pull-quote::before{ content:""; position:absolute; top:0; left:50%; transform:translateX(-50%); width:120px; height:1px; background:var(--gold-hairline); opacity:.85; }
.aip-teacher .pull-quote blockquote{ margin:0; font-family:var(--font-display); font-weight:700; color:var(--bark); font-size: clamp(1.4rem, 2.6vw, 1.85rem); line-height:1.7; letter-spacing:.02em; }
.aip-teacher .pull-quote cite{ display:block; margin-top:var(--sp-md); font-style:normal; font-family:var(--font-body); color:var(--clay); font-size:.9rem; letter-spacing:.1em; }
.aip-teacher .pull-quote .sub{ margin-top:var(--sp-md); font-family:var(--font-display); color:var(--ink-soft); font-size:1.06rem; line-height:1.7; }

/* works */
.aip-teacher .zone-3{ background:var(--paper-3); position:relative; }
.aip-teacher .zone-3::before{ content:""; position:absolute; inset:0; pointer-events:none; background-image:var(--grain); mix-blend-mode:multiply; opacity:.55; }
.aip-teacher .zone-3 > section{ position:relative; z-index:1; }
.aip-teacher .works{ display:grid; grid-template-columns: 1.55fr 1fr; gap: clamp(40px,6vw,88px); align-items:start; }
.aip-teacher .works-lead .stats{ display:flex; flex-wrap:wrap; gap: var(--sp-lg) var(--sp-xl); margin: 0 0 var(--sp-lg); padding:0; list-style:none; }
.aip-teacher .works-lead .stats .n{ font-family:var(--font-display); font-weight:700; font-size:2.1rem; line-height:1; color:var(--gold-deep); display:block; }
.aip-teacher .works-lead .stats .n .en{ display:block; font-family:var(--font-en-display); font-style:italic; font-size:.82rem; color:var(--gold); letter-spacing:.06em; margin-top:5px; }
.aip-teacher .works-lead .stats .lbl{ display:block; margin-top:8px; font-size:.92rem; color:var(--ink-soft); }
.aip-teacher .works-lead p{ color:var(--ink-soft); }
.aip-teacher .works-lead p:first-of-type::first-letter{ font-family:var(--font-display); font-weight:900; float:left; font-size:3.2em; line-height:.82; padding:6px 12px 0 0; color:var(--seal); }
.aip-teacher .domain-list{ margin: var(--sp-lg) 0 0; padding:0; list-style:none; }
.aip-teacher .domain-list .label{ display:block; font-family:var(--font-display); font-size:1.02rem; color:var(--bark); margin-bottom:6px; }
.aip-teacher .domain-list .rule-gold{ margin-bottom:var(--sp-sm); }
.aip-teacher .domain-list .drow{ display:flex; align-items:baseline; gap:var(--sp-md); padding:13px 0; border-bottom:1px solid var(--line); }
.aip-teacher .domain-list .drow .seq{ font-family:var(--font-en-display); font-style:italic; color:var(--gold-deep); font-size:.9rem; min-width:1.8em; }
.aip-teacher .domain-list .drow h4{ font-family:var(--font-display); font-weight:500; font-size:1.06rem; color:var(--ink); margin:0; }
.aip-teacher .domain-list .drow .d-note{ color:var(--ink-soft); font-size:.88rem; margin-left:auto; text-align:right; }
@media (max-width:560px){ .aip-teacher .domain-list .drow{ flex-wrap:wrap; } .aip-teacher .domain-list .drow .d-note{ margin-left:0; width:100%; text-align:left; } }
.aip-teacher .course-side .label{ display:block; font-family:var(--font-display); font-size:1.02rem; color:var(--bark); margin-bottom:6px; }
.aip-teacher .course-side .rule-gold{ margin-bottom:var(--sp-sm); }
.aip-teacher .course-side .crow{ display:flex; align-items:center; gap:var(--sp-md); padding:14px 0; border-bottom:1px solid var(--line); transition: padding-left var(--dur) var(--ease); color:var(--ink); }
.aip-teacher .course-side .crow:hover{ padding-left:8px; }
.aip-teacher .course-side .crow .cn{ font-family:var(--font-display); font-weight:500; font-size:1.06rem; transition:color var(--dur) var(--ease); }
.aip-teacher .course-side .crow:hover .cn{ color:var(--seal); }
.aip-teacher .course-side .crow .flag{ margin-left:auto; flex:none; font-size:.7rem; letter-spacing:.08em; font-weight:600; padding:3px 9px; border-radius:999px; color:var(--seal); border:1px solid color-mix(in oklch, var(--seal) 45%, var(--line)); background: color-mix(in srgb, var(--seal) 7%, transparent); }
.aip-teacher .course-side .crow .flag.try{ color:var(--gold-deep); border-color: color-mix(in oklch, var(--gold) 50%, var(--line)); background: color-mix(in srgb, var(--gold) 10%, transparent); }
.aip-teacher .course-side .more{ display:inline-flex; align-items:center; gap:7px; margin-top:var(--sp-lg); font-family:var(--font-body); font-weight:600; color:var(--seal); }
@media (max-width:860px){ .aip-teacher .works{ grid-template-columns:1fr; gap:var(--sp-xl); } }
.aip-teacher .yt-block{ margin-top: var(--sp-air); max-width:46em; }
.aip-teacher .yt-block .label{ display:flex; align-items:center; gap:var(--sp-md); font-family:var(--font-display); font-size:1.06rem; color:var(--bark); margin-bottom:var(--sp-md); }
.aip-teacher .yt-block .label::after{ content:""; flex:1; height:1px; background:var(--gold-hairline); opacity:.6; }
.aip-teacher .yt-links{ display:flex; flex-wrap:wrap; gap:10px 12px; padding:0; margin:0; list-style:none; }
.aip-teacher .yt-links a{ display:inline-flex; align-items:center; gap:8px; font-family:var(--font-body); font-size:.92rem; color:var(--bark); padding:9px 15px 9px 13px; border-radius:var(--r-sm); background: color-mix(in srgb, var(--surface) 56%, transparent); border:1px solid color-mix(in oklch, var(--gold) 28%, var(--line)); box-shadow: var(--shadow-sm); transition: color var(--dur) var(--ease), border-color var(--dur) var(--ease); }
.aip-teacher .yt-links a svg{ width:17px; height:17px; flex:none; color:var(--seal); }
.aip-teacher .yt-links a:hover{ color:var(--seal); border-color: color-mix(in oklch, var(--seal) 40%, var(--line)); }
.aip-teacher .yt-block .yt-note{ margin-top:var(--sp-md); font-size:.82rem; color:var(--clay); }

/* lineage band */
.aip-teacher .mist-band{ position:relative; background: linear-gradient(180deg, var(--paper-2), color-mix(in oklch, var(--mist-surface) 38%, var(--paper-2))); border-block:1px solid var(--line); overflow:hidden; }
.aip-teacher .mist-band::before{ content:""; position:absolute; inset:0; background-image:var(--gua-wash); background-size:200px; opacity:.06; mix-blend-mode:multiply; pointer-events:none; }
.aip-teacher .mist-band::after{ content:""; position:absolute; top:0; left:0; right:0; height:1px; background:var(--gold-hairline); opacity:.7; }
.aip-teacher .mist-band > .wrap{ position:relative; z-index:1; }
.aip-teacher .heritage-line{ display:flex; flex-wrap:wrap; gap:14px var(--sp-md); align-items:center; color:var(--ink-soft); font-family:var(--font-display); font-size:1.18rem; }
.aip-teacher .heritage-line .node{ display:inline-flex; align-items:baseline; gap:8px; }
.aip-teacher .heritage-line b{ color:var(--ink); font-weight:700; font-size:1.28rem; }
.aip-teacher .heritage-line .node.is-self b{ color:var(--seal); }
.aip-teacher .heritage-line .yr{ font-family:var(--font-en-body); color:var(--clay); font-size:.82rem; }
.aip-teacher .heritage-line .arrow{ width:40px; height:1px; background:var(--gold-hairline); position:relative; }
.aip-teacher .heritage-line .arrow::after{ content:""; position:absolute; right:0; top:-3px; width:7px; height:7px; border-top:1px solid var(--gold); border-right:1px solid var(--gold); transform:rotate(45deg); }
@media (max-width:560px){ .aip-teacher .heritage-line .arrow{ width:20px; } .aip-teacher .heritage-line{ font-size:1.05rem; } }
.aip-teacher .lineage-portraits{ display:grid; grid-template-columns:minmax(216px, 320px) minmax(0, 1fr); gap: clamp(24px,4vw,56px); align-items:start; margin-top: var(--sp-xl); }
.aip-teacher .lineage-portraits.no-portraits{ grid-template-columns: minmax(0, 1fr); }
.aip-teacher .lineage-portrait-grid{ display:grid; grid-template-columns:repeat(2, minmax(96px, 136px)); gap:var(--sp-lg); align-items:start; }
.aip-teacher .lin-pf{ position:relative; width:100%; aspect-ratio:4/5; border-radius:var(--r-md); overflow:hidden; background:var(--paper-2); border:1px solid color-mix(in oklch, var(--gold) 30%, var(--line)); box-shadow:var(--shadow-md); }
.aip-teacher .lin-pf img{ width:100%; height:100%; object-fit:cover; }
.aip-teacher .lin-pf figcaption{ position:absolute; left:0; right:0; bottom:0; padding:6px 8px; font-size:.74rem; line-height:1.3; text-align:center; color:var(--on-dark); background: color-mix(in oklch, var(--bark) 80%, transparent); }
.aip-teacher .lin-pf figcaption .yr{ display:block; font-family:var(--font-en-body); opacity:.85; font-size:.68rem; }
.aip-teacher .lin-pf.ph{ display:grid; place-items:center; border-style:dashed; border-color: color-mix(in oklch, var(--gold) 50%, var(--line)); }
.aip-teacher .lin-pf .needsreal{ position:absolute; right:5px; top:5px; z-index:3; font-size:.6rem; line-height:1.2; text-align:center; color:var(--on-dark); background: color-mix(in oklch, var(--bark) 88%, transparent); padding:3px 6px; border-radius:4px; box-shadow:var(--shadow-sm); }
.aip-teacher .lineage-quote{ color:var(--ink-soft); font-family:var(--font-display); font-size:1.12rem; line-height:1.8; max-width:30em; position:relative; padding-top:var(--sp-md); }
.aip-teacher .lineage-quote::before{ content:""; position:absolute; top:0; left:0; width:40px; height:1px; background:var(--gold-hairline); }
.aip-teacher .lineage-quote b{ color:var(--ink); font-weight:700; }
@media (max-width:760px){ .aip-teacher .lineage-portraits{ grid-template-columns:1fr; gap:var(--sp-lg); } .aip-teacher .lineage-portrait-grid{ grid-template-columns:repeat(2, minmax(96px, 136px)); } .aip-teacher .lineage-quote{ grid-column:1 / -1; } }

/* CTA */
.aip-teacher .cta-close{ text-align:center; }
.aip-teacher .cta-close .inner{ max-width:42em; margin-inline:auto; }
.aip-teacher .cta-close h2{ font-size: var(--fs-h1); margin-bottom: var(--sp-md); }
.aip-teacher .cta-close p{ color:var(--ink-soft); max-width:30em; margin:0 auto var(--sp-xl); }
.aip-teacher .cta-close .ctas{ display:flex; gap:var(--sp-md); justify-content:center; flex-wrap:wrap; }
