.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.breadcrumb { display:flex; flex-wrap:wrap; align-items:baseline; gap:12px; margin:4px 0 24px; color:var(--muted); font-size:14px; }
.breadcrumb a { min-height:44px; display:inline-flex; align-items:center; }
.breadcrumb > span:last-child { max-width:70ch; }
.inner-page { padding-bottom:56px; }
.page-intro { background:var(--paper); padding:38px; border-radius:var(--radius); }
.page-intro h1 { color:var(--purple-dark); font-size:clamp(28px,3vw,40px); }
.page-intro h2 { font-size:24px; }
.page-intro p { max-width:70ch; }
.prose { color:var(--ink); font-size:16px; line-height:1.8; overflow-wrap:anywhere; }
.prose p { margin:0 0 18px; }
.prose h2,.prose h3 { color:var(--purple-dark); font-size:24px; margin:32px 0 14px; }
.prose ul,.prose ol { padding-left:24px; }
.prose li { margin-block:8px; }
.prose table { width:100%; border-collapse:collapse; }
.prose th,.prose td { padding:12px; border:1px solid var(--line); }
.course-head { max-width:950px; margin-block:8px 32px; }
.course-head h1 { font-size:clamp(28px,3.2vw,42px); color:var(--purple-dark); max-width:38ch; }
.course-date { font:500 19px/1.5 var(--serif); color:var(--muted); }
.course-layout { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,1fr); gap:40px; align-items:start; }
.course-body { padding:32px; background:var(--paper); border-radius:var(--radius); }
.course-aside { min-width:0; }
.course-aside img { width:100%; height:auto; border-radius:8px; }
.enrolment { padding:24px; margin-top:20px; border:1px solid var(--line); border-radius:var(--radius); }
.enrolment p { margin:0 0 18px; }
.enrolment .button { width:100%; text-align:center; }
.return-link { margin:36px 0 0; }
.return-link > a { min-height:44px; display:inline-flex; align-items:center; }
.book-intro { display:grid; grid-template-columns:1.3fr .7fr; gap:48px; align-items:center; }
.book-intro > img { max-height:260px; width:100%; object-fit:contain; }
.books-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:42px; margin-top:48px; }
.book { display:grid; grid-template-columns:140px minmax(0,1fr); gap:24px; padding-bottom:24px; border-bottom:1px solid var(--line); align-items:start; }
.book > a { background:var(--paper); padding:12px; border-radius:8px; }
.book img { width:100%; height:200px; object-fit:contain; }
.book h2 { font-size:20px; line-height:1.45; }
.book h2 a { text-decoration:none; }
.book h2 a:hover { text-decoration:underline; }
.book-description { font-size:14px; line-height:1.75; color:var(--muted); }
.book .read-link { margin-top:16px; border-bottom:0; }
.video-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:44px 32px; margin-top:48px; }
.video-item { min-width:0; }
.video-item h2 { font-size:25px; color:var(--purple-dark); }
.video-item .prose { font-size:15px; }
.video-frame { aspect-ratio:16/9; background:var(--purple-dark); border-radius:8px; overflow:hidden; position:relative; }
.video-start { width:100%; height:100%; min-height:120px; border:0; background:transparent; color:var(--paper); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px; font:500 18px/1.5 var(--sans); }
.video-start:hover { background:var(--purple); }
.video-start:focus-visible { outline:3px solid var(--paper); outline-offset:-8px; }
.video-start svg { width:52px; height:52px; stroke-width:1.5; }
.video-frame iframe { width:100%; height:100%; border:0; display:block; }
.video-preview { min-height:100%; color:var(--paper); padding:28px; text-align:center; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; }
.video-frame:has(.video-preview:not([hidden])) { aspect-ratio:auto; min-height:300px; }
.video-preview svg { width:44px; height:44px; }
.video-preview p { font-size:14px; max-width:40ch; margin:0; }
.video-preview strong { font-family:var(--serif); font-size:20px; }
.video-preview a { color:var(--paper); display:inline-flex; align-items:center; min-height:44px; font-size:14px; }
.video-preview a:focus-visible { outline-color:var(--paper); }
.video-fallback { font-size:13px; color:var(--purple-dark); margin:8px 0 24px; }
.video-fallback a { display:inline-flex; align-items:center; min-height:44px; }
.results-list { margin-top:40px; }
.result-row { display:flex; gap:32px; justify-content:space-between; align-items:center; padding:26px 0; border-bottom:1px solid var(--line); }
.result-row h2 { font-size:21px; line-height:1.5; margin:0; max-width:65ch; }
.result-row .button { flex-shrink:0; font-size:14px; }
.legal { max-width:930px; margin-inline:auto; }
.tribute { display:grid; grid-template-columns:1fr 1fr; align-items:start; gap:44px; padding:38px; background:var(--paper); border-radius:var(--radius); }
.tribute h1 { font-size:48px; color:var(--purple-dark); }
.tribute-letter { min-width:0; }
.tribute-letter .prose { font-size:16px; line-height:1.85; }
.tribute-letter .prose:last-child { margin-top:28px; padding-top:24px; border-top:1px solid var(--line); }
.tribute-media { min-width:0; }
.tribute-media .gallery { margin-top:28px; }
.sitemap-list { padding-left:24px; }
.sitemap-list li { padding-block:8px; }
.sitemap-list a { min-height:44px; display:inline-flex; align-items:center; }
[aria-current=page] { text-decoration:underline !important; text-underline-offset:6px; }
@media(max-width:1000px) {
 .book { grid-template-columns:100px minmax(0,1fr); gap:18px; }
 .book img { height:160px; }
 .books-grid { gap:32px 24px; }
 .course-layout { gap:24px; }
 .result-row { flex-direction:column; align-items:flex-start; gap:16px; }
 .tribute { gap:28px; padding:28px; }
}
@media(max-width:760px) {
 .course-layout,.book-intro,.tribute,.video-grid { grid-template-columns:1fr; }
 .course-head h1 { font-size:30px; }
 .course-aside { max-width:600px; }
 .book-intro { gap:24px; }
 .books-grid { grid-template-columns:1fr; }
 .book { grid-template-columns:130px minmax(0,1fr); }
 .book img { height:190px; }
 .page-intro,.course-body { padding:26px; }
 .tribute h1 { font-size:38px; }
 .tribute-media { max-width:600px; width:100%; }
}
@media(max-width:440px) {
 .breadcrumb { font-size:13px; gap:8px; }
 .page-intro,.course-body,.tribute { padding:22px 20px; }
 .book { grid-template-columns:95px minmax(0,1fr); gap:16px; }
 .book > a { padding:6px; }
 .book img { height:150px; }
 .book h2 { font-size:18px; }
 .enrolment { padding:20px; }
 .inner-page { padding-bottom:36px; }
 .result-row h2 { font-size:19px; }
 .result-row .button { width:100%; }
}
