:root{--paper:#f4f1e7;--ink:#12372a;--muted:#56685e;--line:#ccd3bd;--lime:#b9f34e;--serif:Georgia,"Songti SC","Noto Serif CJK SC",serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.75 system-ui,"Microsoft YaHei",sans-serif}a{color:inherit}a:focus-visible{outline:3px solid #be550c;outline-offset:4px}img{display:block;max-width:100%;height:auto}.skip{position:fixed;top:-80px;left:12px;z-index:10;background:var(--lime);padding:10px}.skip:focus{top:10px}.sidebar{position:fixed;inset:0 auto 0 0;width:260px;padding:30px 22px;background:#08281e;color:#f8f5e9;display:flex;flex-direction:column;gap:26px}.brand{font-family:var(--serif);font-size:25px;font-weight:700;text-decoration:none;line-height:1.5}.brand small{display:block;font:11px/2 system-ui;letter-spacing:.12em}.languages{display:flex;gap:7px;flex-wrap:wrap}.languages a{padding:6px 9px;background:var(--paper);color:var(--ink);font-size:14px;text-decoration:none;border-radius:3px}.languages a[aria-current]{background:var(--lime);font-weight:750}.site-nav{display:grid;gap:14px}.site-nav a{padding:8px 0;text-decoration:none}.sidebar-note{font-size:14px;color:#cde2bd}.legal{margin-top:auto;font-size:14px}main{margin-left:260px;padding:38px clamp(22px,4vw,75px);max-width:1920px}.breadcrumb{font-size:14px;margin-bottom:28px;overflow-wrap:anywhere}.breadcrumb a{text-underline-offset:4px}.hero{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);align-items:center;gap:clamp(24px,4vw,64px)}figure{margin:0;border:10px solid #fffdf6;box-shadow:0 12px 35px #183d2312;background:#e6eadc}figure img{width:100%;aspect-ratio:4/3;object-fit:contain}.eyebrow{font-size:13px;letter-spacing:.05em;font-weight:750;margin:0 0 12px}h1{font:700 clamp(32px,3.3vw,60px)/1.22 var(--serif);margin:0 0 22px;overflow-wrap:break-word}h2{font:700 25px/1.4 var(--serif);margin:0 0 15px}.summary{color:var(--muted);font-size:18px}.author{font-size:14px}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.button{display:inline-flex;align-items:center;min-height:48px;padding:10px 18px;border:1px solid var(--ink);text-decoration:none;font-size:16px;font-weight:750}.primary{background:var(--ink);color:#fffdf6}.teaching{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:55px;padding-top:30px;border-top:1px solid var(--line)}.teaching p{color:var(--muted);margin:12px 0}.related{margin-top:38px;border-top:1px solid var(--line);padding-top:25px}.related a{display:inline-block;margin:5px 25px 5px 0;text-underline-offset:5px}.directory-header{max-width:850px;margin-bottom:35px}.directory-header p{color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.resource-card{border:1px solid var(--line);background:#edf0e1;display:flex;flex-direction:column}.preview img{width:100%;aspect-ratio:4/3;object-fit:contain;background:#e3e8d8}.card-copy{padding:20px;display:flex;flex-direction:column;flex:1}.card-copy h2{font-size:23px}.card-copy h2 a{text-decoration:none}.card-copy p{font-size:16px;color:var(--muted);margin-top:0}.text-link{margin-top:auto;font-weight:700;text-underline-offset:4px}footer{margin-top:44px;border-top:1px solid var(--line);padding:20px 0;color:var(--muted);font-size:14px}.faq{margin-top:34px;border-top:1px solid var(--line);padding-top:25px}.faq h3{font-size:19px;margin:24px 0 8px}.faq p{color:var(--muted)}@media(max-width:1150px){.sidebar{width:220px;padding:24px 16px}main{margin-left:220px;padding:28px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{gap:25px}h1{font-size:36px}}@media(max-width:760px){.sidebar{position:static;width:auto;padding:18px 22px;gap:14px}.brand{font-size:23px}.site-nav{display:flex;gap:22px;font-size:15px;flex-wrap:wrap}.sidebar-note,.legal{display:none}main{margin:0;padding:22px}.hero,.teaching{grid-template-columns:1fr}.hero{gap:27px}h1{font-size:34px}.cards{grid-template-columns:1fr}.teaching{margin-top:32px;gap:22px}.summary{font-size:17px}.actions{margin-top:20px}.button{font-size:15px}.breadcrumb{font-size:13px}figure{border-width:7px}footer:after{content:""}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Resource introductions: compact teaching disclosures beside the original cover. */
.resource-intro{padding-top:24px;padding-bottom:16px}
.resource-intro .breadcrumb{margin-bottom:24px}
.resource-intro .hero{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(24px,3vw,48px)}
.resource-intro .hero figure{align-self:center}
.resource-intro h1{font-size:clamp(28px,2.5vw,44px);line-height:1.2;margin-bottom:16px}
.resource-intro .summary{font-size:16px;line-height:1.65;margin:0}
.resource-intro .author{margin:8px 0 0;font-size:13px}
.resource-intro .actions{margin-top:20px;gap:10px}
.resource-intro .button{font-size:15px;padding:9px 14px}
.resource-intro .teaching{display:block;margin-top:25px;padding-top:0;border-top:1px solid var(--line)}
.teaching-detail{border-bottom:1px solid var(--line)}
.teaching-detail summary{position:relative;cursor:pointer;padding:14px 30px 14px 0;list-style:none}
.teaching-detail summary::-webkit-details-marker{display:none}
.teaching-detail summary:after{content:'';position:absolute;right:5px;top:24px;width:9px;height:9px;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);transform:rotate(45deg)}
.teaching-detail[open]>summary:after{transform:rotate(225deg);top:29px}
.teaching-detail summary:focus-visible{outline:3px solid #be550c;outline-offset:3px}
.detail-heading{display:block;font:700 21px/1.4 var(--serif)}
.detail-preview{display:block;color:var(--muted);font-size:15px;line-height:1.6;margin-top:5px}
.detail-body{padding:0 0 14px;font-size:15px;line-height:1.75}
.detail-body p{margin:6px 0 12px}
.resource-intro .faq{margin:0;border-top:0;padding-top:0}
.resource-intro .faq h3{font-size:16px;line-height:1.5;margin:12px 0 6px}
.expand-hint{font-size:13px;color:var(--muted);margin:12px 0 0}
.resource-intro footer{margin-top:25px;padding:12px 0 0;font-size:12px}
@media(min-width:761px){.resource-intro{min-height:100svh;display:flex;flex-direction:column}.resource-intro .hero{flex:1}.resource-intro footer{flex-shrink:0}.sidebar{overflow-y:auto}}
@media(max-width:1150px) and (min-width:761px){.resource-intro{padding:24px}.resource-intro .hero{gap:24px}.resource-intro h1{font-size:30px}.resource-intro .button{font-size:14px}}
@media(max-width:760px){.resource-intro .hero{grid-template-columns:1fr;gap:24px}.resource-intro h1{font-size:32px}.resource-intro{padding:22px}.resource-intro .teaching{margin-top:24px}.resource-intro .breadcrumb{margin-bottom:20px}}
