/* lesson.css — public lesson page (light only) */
:root{--paper:#fffdf8;--ink:#1f2230;--muted:#5a6070;--rule:#ddd8ce;--accent:#1d4e6b;--band:#f4f1ea;--max:860px}
*{box-sizing:border-box}
html{background:var(--paper)}
body{margin:0;color:var(--ink);font:16px/1.6 'IBM Plex Sans',system-ui,sans-serif;background:var(--paper)}
.masthead,main{max-width:var(--max);margin:0 auto;padding:0 20px}
.masthead{padding-top:48px;padding-bottom:12px;border-bottom:1px solid var(--rule)}
.kicker{font:600 12px/1 'JetBrains Mono',monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0 0 10px}
h1{font-size:34px;line-height:1.15;margin:0 0 10px;letter-spacing:-.01em}
h2{font-size:22px;margin:40px 0 10px}
.byline,.paper,.muted{color:var(--muted);font-size:14px;margin:4px 0}
.paper a,.credits a{color:var(--accent)}
section{margin:0 0 8px}
details{border:1px solid var(--rule);border-radius:10px;padding:8px 14px;margin:8px 0;background:#fff}
summary{cursor:pointer;font-weight:600}
.pre-body{padding:6px 0 4px}
.widget{margin:18px 0 26px}
code{font-family:'JetBrains Mono',monospace;font-size:.92em;background:var(--band);padding:1px 5px;border-radius:5px}
.credits li{margin:6px 0}
.rights{font-size:13px;color:var(--muted);margin-top:18px}
.kicker a.home{color:var(--accent);text-decoration:none}
.lead{font-size:19px;line-height:1.5;color:var(--ink);max-width:640px}
.cards{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:14px}
.card{border:1px solid var(--rule);border-radius:12px;padding:16px 18px;background:#fff}
.card h3{margin:0 0 6px;font-size:19px}
.card .paper{margin:0 0 8px}
.card .go{display:inline-block;margin-top:6px;font:600 13px 'JetBrains Mono',monospace;color:var(--accent);text-decoration:none}
.btn{display:inline-block;padding:9px 14px;border:1px solid var(--accent);border-radius:999px;color:var(--accent);text-decoration:none;font:600 13px 'JetBrains Mono',monospace;margin:6px 8px 0 0}
.btn.fill{background:var(--accent);color:#fff}
/* contents rail */
.layout{max-width:var(--max);margin:0 auto}
.toc{margin:18px 20px 0;font-size:14px}
.toc-toggle{font:600 12px/1 'JetBrains Mono',monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);background:none;border:1px solid var(--rule);border-radius:999px;padding:7px 12px;cursor:pointer}
.toc-list{list-style:none;margin:8px 0 0;padding:0;border-left:2px solid var(--rule)}
.toc-list li{margin:0}
.toc-list a{display:block;padding:5px 10px;color:var(--muted);text-decoration:none;border-left:2px solid transparent;margin-left:-2px;line-height:1.35}
.toc-list a:hover{color:var(--ink)}
.toc-list a.current{color:var(--accent);border-left-color:var(--accent);font-weight:600}
.toc.closed .toc-list{display:none}
h2{scroll-margin-top:24px}
@media (min-width:1100px){
  .layout{max-width:calc(var(--max) + 300px);display:grid;grid-template-columns:minmax(0,var(--max)) 260px;column-gap:40px;align-items:start}
  .layout main{padding:0 20px}
  .toc{order:2;position:sticky;top:28px;margin:52px 20px 0 0;max-height:calc(100vh - 56px);overflow:auto}
  .toc.closed{width:auto}
}
footer{max-width:var(--max);margin:48px auto 40px;padding:18px 20px 0;border-top:1px solid var(--rule);color:var(--muted);font-size:13px}
footer a{color:var(--accent)}
@media (max-width:600px){h1{font-size:27px}body{font-size:15px}.lead{font-size:17px}}
