html,body{max-width:100%;overflow-x:clip}
.hero h1{font-size:clamp(50px,6.4vw,88px)}
.lesson>header h1,.lesson-card h3,.related-lessons strong,.page-title h1,.unit-cover h1{overflow-wrap:anywhere;word-break:break-word}
.trail a{min-width:0;overflow:hidden;text-overflow:ellipsis}
.mast nav a[aria-current="page"]{color:var(--purple);text-decoration:underline;text-underline-offset:7px}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--lime);outline-offset:4px}
.lesson dl div{flex:1}
.lesson-toc{display:grid;grid-template-columns:150px 1fr;margin:42px 0;background:#ebe5fa;border:1px solid #cfc4ec;padding:28px}
.lesson-toc strong{color:var(--purple)}
.lesson-toc ol{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 30px;padding-left:22px}
.lesson-toc a{text-decoration:underline;text-decoration-color:#b9aadf;text-underline-offset:4px}
.lesson-text>section{scroll-margin-top:25px}
.misread span{display:block;color:#a73923;font:900 12px/1.4 monospace;letter-spacing:.12em;margin-bottom:8px}
.misread p{font:17px/1.9 "Noto Serif SC","Songti SC",serif;margin:0}
.lesson-faq,.lesson-sources{margin-top:55px;border-top:2px solid var(--ink);padding-top:25px}
.lesson-faq>header,.lesson-sources>header,.related-lessons>header{display:grid;grid-template-columns:180px 1fr;align-items:end;margin-bottom:18px}
.lesson-faq header span,.lesson-sources header span,.related-lessons header span{font:800 11px/1.4 monospace;letter-spacing:.14em;color:var(--unit,var(--purple))}
.lesson-faq h2,.lesson-sources h2,.related-lessons h2{font-size:30px;margin:0}
.lesson-faq details{background:white;border-bottom:1px solid var(--line);padding:22px 25px}
.lesson-faq summary{cursor:pointer;font-weight:900;font-size:18px;list-style-position:outside;margin-left:18px}
.lesson-faq details p{font:16px/1.9 "Noto Serif SC","Songti SC",serif;margin:15px 0 0 18px;max-width:900px}
.lesson-sources ol{list-style:none;margin:0;padding:0;background:white}
.lesson-sources li{display:grid;grid-template-columns:1fr 160px;gap:25px;align-items:center;padding:22px 25px;border-bottom:1px solid var(--line)}
.lesson-sources li p{margin:5px 0 0;color:var(--muted)}
.lesson-sources li>a{color:var(--green);font-weight:900;text-align:right}
.related-lessons{width:min(var(--max),calc(100% - 56px));margin:0 auto 45px;border-top:2px solid var(--ink);padding-top:25px}
.related-lessons>div{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.related-lessons>div>a{display:flex;min-height:190px;flex-direction:column;background:white;border:1px solid var(--line);padding:24px}
.related-lessons small{color:var(--purple);font-weight:800}
.related-lessons strong{font-size:20px;line-height:1.5;margin:14px 0}
.related-lessons a span{margin-top:auto;color:var(--green);font-weight:900}
.lesson-actions{justify-content:space-between}
.lesson-actions a{display:flex;max-width:48%;flex:1;flex-direction:column;background:white!important;color:var(--ink)!important;border:1px solid var(--line);padding:16px 20px}
.lesson-actions a:last-child{text-align:right;margin-left:auto;border-color:var(--purple)}
.lesson-actions small{color:var(--purple);font-weight:900}
.lesson-actions span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.contact-board a:hover{background:white}
@media(max-width:820px){
  .hero h1{font-size:44px;letter-spacing:-.045em}
  .lesson-toc{grid-template-columns:1fr;gap:12px;padding:22px 18px}
  .lesson-toc ol{grid-template-columns:1fr}
  .lesson-faq>header,.lesson-sources>header,.related-lessons>header{grid-template-columns:1fr;gap:5px}
  .lesson-faq h2,.lesson-sources h2,.related-lessons h2{font-size:24px}
  .lesson-sources li{grid-template-columns:1fr}
  .lesson-sources li>a{text-align:left}
  .related-lessons{width:calc(100% - 30px)}
  .related-lessons>div{grid-template-columns:1fr}
  .related-lessons>div>a{min-height:150px}
  .lesson-actions{display:grid;grid-template-columns:1fr}
  .lesson-actions a{max-width:none;width:100%}
  .lesson-actions a:last-child{text-align:left}
}
