
    .hd{ display:flex; align-items:center; justify-content:space-between; border-bottom:2px solid var(--ink); padding-bottom:4px; margin-bottom:6px; }
    .hd h1{ font-size:1.2em; margin:0; font-weight:800; } .hd .who{ font-size:.82em; color:var(--muted); }
    .kstrap{ font-size:.8em; color:var(--muted); margin:-3px 0 8px; }
    .ko-grid{ column-count:2; column-gap:11px; }
    .koc{ break-inside:avoid; border:1px solid var(--line); border-radius:7px; padding:calc(7px + var(--sp1)) 10px; margin:0 0 calc(10px + var(--sp1)); }
    .kch{ display:flex; align-items:center; gap:5px; font-size:.72em; font-weight:800; text-transform:uppercase; letter-spacing:.5px; color:var(--red); border-bottom:1px solid var(--line); padding-bottom:calc(3px + var(--sp1)*0.4); margin-bottom:calc(5px + var(--sp1)*0.5); }
    .kci{ display:inline-flex; } .kci svg{ width:14px; height:14px; }
    .kf{ background:var(--sec-formula-bg); } .kf .kch{ color:var(--sec-formula); }
    .frow{ display:flex; align-items:center; gap:8px; padding:calc(4px + var(--sp1)*0.6) 0; border-bottom:1px dotted var(--line); }
    .frow:last-child{ border-bottom:none; }
    .fdia{ flex-shrink:0; } .fdia svg{ display:block; }
    .ftxt{ flex:1; } .fname{ font-weight:700; font-size:.84em; margin-right:5px; } .ftex{ font-size:1em; }
    .fnote{ font-size:.75em; color:var(--muted); font-style:italic; display:block; margin-top:1px; }
    .kd{ text-align:center; background:var(--ash); } .kfig svg{ max-height:150px; width:auto; max-width:100%; }
    .kcap{ font-size:.8em; color:#333; margin-top:3px; }
    .kw{ background:var(--sec-worked-bg); } .kw .kch{ color:var(--sec-worked); }
    .wex2{ margin:3px 0 calc(6px + var(--sp1)*0.8); } .wt{ font-weight:700; font-size:.85em; } .wq2{ font-weight:400; color:var(--muted); }
    .ws2{ font-size:.92em; margin:calc(1px + var(--sp1)*0.3) 0 calc(1px + var(--sp1)*0.3) 8px; }
    .kv{ background:var(--sec-words-bg); } .kv .kch{ color:var(--sec-words); }
    .vrow{ display:flex; align-items:center; gap:8px; font-size:.85em; padding:calc(3px + var(--sp1)*0.6) 0; border-bottom:1px dotted var(--line); }
    .vrow:last-child{ border-bottom:none; } .vdia{ flex-shrink:0; } .vdia svg{ display:block; } .vtxt b{ color:var(--sec-words); }
    .km{ background:var(--sec-mistake-bg); } .km .kch{ color:var(--sec-mistake); }
    .mrow2{ font-size:.84em; margin-top:calc(4px + var(--sp1)*0.5); } .mfix{ font-size:.82em; color:var(--ink); margin:0 0 calc(3px + var(--sp1)*0.4) 14px; }
    .koexam{ margin-top:calc(5px + var(--sp1)*0.5); border-top:1px dashed #d8c3b3; padding-top:calc(4px + var(--sp1)*0.4); }
    .koexh{ display:block; font-size:.64em; font-weight:800; text-transform:uppercase; letter-spacing:.4px; color:var(--sec-exam); margin-bottom:2px; }
    .koexr{ font-size:.8em; color:#312e81; margin:2px 0; }
    .x{ color:#b91c1c; font-weight:800; } .ok{ color:var(--green); font-weight:800; }
    .trow{ font-size:.85em; margin:calc(3px + var(--sp1)*0.5) 0; }
    .kt{ background:var(--ash); } .kt .kch{ color:var(--sec-table); }
    /* cloze page */
    .brk{ break-before:page; }
    .intro{ font-size:.88em; color:var(--muted); margin:0 0 10px; }
    .rsec{ break-inside:avoid; border:1px solid var(--line); border-radius:7px; padding:calc(8px + var(--sp2)) 12px; margin:0 0 calc(11px + var(--sp2)); }
    .rh{ font-size:.78em; font-weight:800; text-transform:uppercase; letter-spacing:.5px; color:var(--red); margin-bottom:calc(6px + var(--sp2)*0.5); }
    .rrow{ font-size:.95em; display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; padding:calc(7px + var(--sp2)*0.8) 0; border-bottom:1px dotted var(--line); }
    .rrow:last-child{ border-bottom:none; } .rq{ font-weight:700; min-width:120px; }
    .blk{ flex:1; min-width:150px; border-bottom:1px solid var(--ink); height:1.15em; }
    .ib{ display:inline-block; width:52px; border-bottom:1px solid var(--ink); }
    .labwrap{ display:flex; gap:16px; align-items:center; flex-wrap:wrap; }
    .labfig{ flex:0 0 210px; text-align:center; } .labfig svg{ max-height:200px; }
    .labside{ flex:1; min-width:190px; }
    .labbank{ font-size:.9em; background:var(--ash); border:1px solid var(--line); border-radius:6px; padding:6px 10px; margin-bottom:10px; }
    .labbank .lbh{ font-weight:800; text-transform:uppercase; font-size:.72em; letter-spacing:.5px; color:var(--red); display:block; margin-bottom:2px; }
    .lablines{ display:flex; flex-direction:column; gap:11px; }
    .labln{ display:flex; align-items:baseline; gap:8px; font-size:.95em; }
    .labln b{ width:1.2em; } .labln .ll{ flex:1; border-bottom:1px solid var(--ink); height:1.15em; }
    /* state-the-theorem section: mini diagram + a writing line beside it */
    .strow{ display:flex; align-items:center; gap:12px; padding:calc(6px + var(--sp2)*0.8) 0; border-bottom:1px dotted var(--line); }
    .strow:last-child{ border-bottom:none; }
    .stfig{ flex:0 0 auto; } .stfig svg{ display:block; }
    .stll{ flex:1; border-bottom:1px solid var(--ink); height:1.15em; }