/* About page (About.dc.html). */

.about-aside .portrait { aspect-ratio: 2 / 3; }
.about-name { margin-top: 22px; font-size: 24px; font-weight: 700; }
.about-name-latin { font-size: 15px; font-style: italic; color: var(--text-70); }
.about-facts { display: flex; flex-direction: column; gap: 6px; margin-top: 16px; font-size: 14.5px; line-height: 1.55; }
.about-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 16px; }

.about-main { max-width: 720px; }
.about-title { margin: 14px 0 0; font-size: clamp(32px, 4vw, 48px); line-height: 1.2; font-weight: 700; }
.about-body {
  display: flex; flex-direction: column; gap: 18px; margin-top: 28px;
  font-size: 17px; line-height: 1.85; color: color-mix(in srgb, var(--color-text) 85%, transparent);
}
.about-body p { margin: 0; }
.about-body strong { color: var(--color-text); }
.about-h2 { margin: 56px 0 8px; font-size: 28px; font-weight: 700; }
.about-quote { margin: 40px 0 0; font-size: clamp(20px, 2vw, 24px); line-height: 1.6; font-style: italic; }

/* — research accordion (native <details>) — */
.research { border-bottom: 1px solid var(--color-divider); }
.research summary {
  display: grid; grid-template-columns: 44px minmax(0, 1fr) 24px; gap: 12px; align-items: baseline;
  padding: 18px 0; cursor: pointer; list-style: none; color: var(--color-text);
}
.research summary::-webkit-details-marker { display: none; }
.research summary:hover { color: var(--color-accent-700); }
.research summary:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.research-n { font-size: 20px; font-weight: 600; color: var(--color-accent-700); }
.research-title { display: block; font-size: 18px; font-weight: 700; line-height: 1.4; }
.research-en { display: block; margin-top: 3px; font-size: 13.5px; font-style: italic; color: color-mix(in srgb, var(--color-text) 65%, transparent); }
.research-sign { font-size: 20px; }
.research-sign::before { content: "+"; }
.research[open] .research-sign::before { content: "−"; }
.research-body { margin: 0 0 20px 56px; font-size: 15.5px; line-height: 1.8; color: var(--text-80); }

/* — teaching cases with photo carousels — */
.cases { padding: 24px 0 80px; scroll-margin-top: 24px; }
.cases-title { margin: 0; font-size: 34px; font-weight: 700; }
.cases-intro { margin: 10px 0 0; font-size: 16px; line-height: 1.7; max-width: 60ch; color: var(--text-75); }
.cases-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 440px), 1fr)); gap: 48px 40px; margin-top: 32px; }
.teach-case { display: flex; flex-direction: column; }
.carousel { position: relative; aspect-ratio: 3 / 2; }
.carousel .frame { position: absolute; inset: 0; }
.carousel .frame[hidden] { display: none; }
.carousel-btn { position: absolute; top: 50%; transform: translateY(-50%); background: var(--color-bg); z-index: 2; font-size: 20px; }
.carousel-btn:hover { transform: translateY(calc(-50% - 2px)); }
.carousel-btn:active { transform: translateY(-50%); }
.carousel-prev { left: 10px; }
.carousel-next { right: 10px; }
.teach-case-meta { display: flex; justify-content: space-between; align-items: baseline; margin-top: 14px; gap: 12px; }
.teach-case-year { font-size: 12px; letter-spacing: .1em; color: var(--text-70); }
.teach-case-pos { font-size: 12px; color: color-mix(in srgb, var(--color-text) 60%, transparent); }
.teach-case-title { margin-top: 6px; font-size: 20px; line-height: 1.35; font-weight: 700; }
.teach-case-desc { margin-top: 8px; font-size: 15px; line-height: 1.7; color: var(--text-75); }
