/* Guillaume Helleu — long-form article typography (theme-aware via CSS vars set per page) */
.article{max-width:768px;margin:0 auto;padding:150px 0 40px}
.article .crumb{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--dim);text-transform:uppercase;border-top:1px solid var(--line);padding-top:13px;margin-bottom:34px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}
.article .crumb a{border-bottom:1px solid var(--dimmer)}
.article .crumb a:hover{border-color:var(--accent)}
.article .crumb .r{color:var(--accent)}
.article h1{font-family:var(--mono);font-weight:500;font-size:clamp(30px,5vw,54px);line-height:1;letter-spacing:.02em;text-transform:uppercase;margin-bottom:14px}
.article .subtitle{font-family:var(--mono);font-size:16px;color:var(--dim);line-height:1.45;margin-bottom:22px}
.article .credit{font-size:13px;color:var(--dim);margin:-8px 0 24px;line-height:1.6}
.article .credit a{color:var(--ink);border-bottom:1px solid var(--accent)}
.article .runline{display:flex;gap:10px;flex-wrap:wrap;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0;margin-bottom:36px;font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--dim);text-transform:uppercase}
.article .runline .tag{border:1px solid var(--line);padding:4px 11px;border-radius:14px}
.article .runline .tag.type{color:var(--accent);border-color:var(--accent)}

.article .prose{font-family:var(--mono)}
.article .prose p{font-size:15.5px;line-height:1.85;margin-bottom:20px;max-width:66ch}
.article .prose .intro{font-size:17px;color:var(--ink);border-left:2px solid var(--accent);padding-left:18px;margin-bottom:30px;line-height:1.75}
.article .prose .q{color:var(--dim);font-style:italic}
.article .prose h2{font-family:var(--mono);font-size:13px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;letter-spacing:-.01em;margin:38px 0 14px;padding-top:18px;border-top:1px solid var(--line)}
.article .prose h3{font-size:16px;font-weight:700;letter-spacing:0;margin:26px 0 12px}
.article .prose ul,.article .prose ol{margin:0 0 20px 0;padding-left:20px;max-width:68ch}
.article .prose li{font-size:15px;line-height:1.75;margin-bottom:9px}
.article .prose a{color:var(--ink);border-bottom:1px solid var(--accent);transition:background .15s}
.article .prose a:hover{background:var(--accent);color:var(--bg)}
.article .prose a[href^="#fn"]{color:var(--accent);border:none;font-size:.82em;padding:0 1px}
.article .prose a[href^="#fn"]:hover{background:transparent}
.article .prose em{font-style:italic}

.article .prose figure{margin:28px 0;border:1px solid var(--line);padding:16px;background:var(--panel)}
.article .prose figure img{width:100%;height:auto;display:block}
.article .prose figcaption{font-family:var(--mono);font-size:11px;color:var(--dim);line-height:1.65;margin-top:12px}
.article .prose .ack{font-size:12.5px;color:var(--dim);border-top:1px solid var(--line);padding-top:16px;margin-top:26px;font-style:italic}
.article .prose ol.footnotes{margin:24px 0 0 0;padding-left:26px;border-top:1px solid var(--line);padding-top:20px}
.article .prose ol.footnotes li{font-family:var(--mono);font-size:11px;color:var(--dim);line-height:1.7;margin-bottom:9px}
.article .prose ol.footnotes a{color:var(--dim);border-bottom:1px solid var(--dimmer);font-size:1em;padding:0}
.article .prose ol.footnotes a:hover{color:var(--ink);background:none}

.article .prose .figrow{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:26px 0}
.article .prose .figrow figure{margin:0}
.article .prose .figrow figcaption{font-size:10px}
.article .prose .src{display:block;margin-top:8px;font-family:var(--mono);font-size:10px;color:var(--dim);line-height:1.5}
.article .prose .src a{color:var(--dim);border-bottom:1px solid var(--dimmer)}

.article .prose ul.links-list{list-style:none;padding-left:0;max-width:100%;border-top:1px solid var(--line)}
.article .prose ul.links-list li{border-bottom:1px solid var(--line);padding:10px 2px;margin:0;font-family:var(--mono);font-size:12px;color:var(--dim);display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}
.article .prose ul.links-list a{white-space:nowrap;color:var(--ink);border-bottom:1px solid var(--accent)}

.article .prose .proj{border-top:1px solid var(--line);padding:16px 0}
.article .prose .proj h4{font-size:14.5px;font-weight:700;margin-bottom:6px}
.article .prose .proj p{font-size:13.5px;line-height:1.65;margin-bottom:8px}
.article .prose .proj .projlinks{font-family:var(--mono);font-size:11px;letter-spacing:.02em;color:var(--dim)}
.article .prose .proj .projlinks a{color:var(--ink);border-bottom:1px solid var(--accent)}

.article .links{margin-top:34px;border-top:1px solid var(--line);padding-top:20px}
.article .links h4{font-family:var(--mono);font-size:11px;color:var(--accent);margin-bottom:12px;text-transform:uppercase;letter-spacing:.06em}
.article .links a{display:inline-block;margin:0 16px 9px 0;font-size:12.5px;color:var(--ink);border-bottom:1px solid var(--dimmer)}
.article .links a:hover{border-color:var(--accent)}

.article .back{display:inline-block;margin-top:26px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--ink);border-bottom:1px solid var(--accent);text-transform:uppercase}
.article .back:hover{background:var(--accent);color:var(--bg)}
.article .srcnote{margin-top:40px;padding-top:18px;border-top:1px solid var(--line);font-family:var(--mono);font-size:11px;color:var(--dimmer);letter-spacing:.04em;line-height:1.7}
.article .srcnote a{color:var(--dim);border-bottom:1px solid var(--dimmer)}
.article .srcnote a:hover{color:var(--ink)}
@media(max-width:640px){.article .prose .figrow{grid-template-columns:1fr}}


/* ---------- course chapters ---------- */
.article .prose .chapter{display:flex;align-items:baseline;gap:14px;margin:44px 0 20px;padding-top:16px;border-top:2px solid var(--ink)}
.article .prose .chapter:first-child{margin-top:8px}
.article .prose .chapter .cnum{font-family:var(--disp);font-size:22px;line-height:1;color:var(--accent)}
.article .prose .chapter .cname{font-family:var(--mono);font-size:13px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.article .prose .chapter::after{content:"";flex:1;border-bottom:1px solid var(--line);transform:translateY(-4px)}
