
:root{color-scheme:light dark;--bg:#f8f7f3;--panel:#ffffff;--text:#161616;--muted:#5f646c;--line:#d9d6cc;--accent:#1d4f91;--accent-2:#7a1f2a;--button:#101820;--button-text:#fff;--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,'DejaVu Sans',sans-serif;}
:root[data-theme="dark"]{--bg:#111315;--panel:#181b1f;--text:#f1efe8;--muted:#b8b7ae;--line:#34383f;--accent:#8db7f2;--accent-2:#f0a3ad;--button:#f1efe8;--button-text:#111315;}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:17px;line-height:1.65;text-rendering:optimizeLegibility}a{color:var(--accent);text-underline-offset:3px}img{max-width:100%;height:auto}.skip-link{position:absolute;left:-999px;top:8px;background:var(--button);color:var(--button-text);padding:.6rem 1rem;z-index:10}.skip-link:focus{left:8px}.site-header{border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:4}.nav-shell{max-width:1180px;margin:auto;display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem}.brand{display:flex;align-items:center;gap:.65rem;color:var(--text);text-decoration:none;font-weight:700}.brand-mark{display:inline-grid;place-items:center;width:2.1rem;height:2.1rem;border:1px solid var(--line);font-size:.75rem;letter-spacing:.08em}.nav-links{margin-left:auto;display:flex;gap:.8rem;align-items:center}.nav-links a{color:var(--muted);text-decoration:none;font-size:.93rem}.nav-links a.active,.nav-links a:hover{color:var(--text)}button,.button{font:inherit}.theme-toggle,.nav-toggle{border:1px solid var(--line);background:transparent;color:var(--text);padding:.45rem .7rem}.nav-toggle{display:none}.button{display:inline-flex;align-items:center;justify-content:center;min-height:2.7rem;padding:.55rem 1rem;border:1px solid var(--line);color:var(--text);text-decoration:none;background:transparent}.button.primary{background:var(--button);color:var(--button-text);border-color:var(--button)}.button.small{min-height:2.2rem;font-size:.9rem}main{max-width:1120px;margin:auto;padding:0 1.25rem 5rem}.hero{padding:7rem 0 5rem}.center{text-align:center;max-width:980px;margin:auto}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.75rem;color:var(--accent);font-weight:700;margin:0 0 .8rem}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.12;margin:0 0 1rem}h1{font-size:clamp(3rem,8vw,7rem)}h2{font-size:clamp(1.8rem,3.5vw,3rem)}h3{font-size:1.35rem}.subtitle{font-family:var(--serif);font-size:clamp(1.35rem,3vw,2.2rem);margin:0 auto 2rem;max-width:850px}.hero-question{font-family:var(--serif);font-size:clamp(1.5rem,3vw,2.6rem);max-width:900px;margin:2rem auto;color:var(--accent-2)}.lead{font-size:1.22rem;color:var(--muted);max-width:820px}.center .lead{margin-left:auto;margin-right:auto}.button-row{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.5rem}.center-buttons{justify-content:center}.grid{display:grid;gap:1.5rem;margin:4rem 0}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid article,.band,.contact-panel,.cover,.figure-card,.update,.stack article{background:var(--panel);border:1px solid var(--line);padding:1.6rem}.compact article{padding:1.35rem}.band{margin:4rem 0}.section-head{max-width:760px;margin-bottom:1.5rem}.framework{display:grid;gap:.35rem;justify-items:center;font-family:var(--serif);font-size:1.7rem;padding:1.5rem;border:1px solid var(--line);background:var(--panel)}.topic-list,.download-list{display:flex;flex-wrap:wrap;gap:.75rem}.topic-list a,.download-list a{border:1px solid var(--line);padding:.8rem 1rem;text-decoration:none;color:var(--text);background:var(--panel)}.page-title{padding:5rem 0 2.5rem;max-width:900px}.page-title h1{font-size:clamp(2.5rem,5vw,4.8rem)}.prose{max-width:850px}.prose p,.prose li{color:var(--muted)}.clean-list{padding-left:1.2rem}.toc-list{columns:2;column-gap:3rem}.book-grid{grid-template-columns:320px 1fr;align-items:stretch}.cover{min-height:430px;display:grid;place-items:center;background:var(--panel);text-align:center}.cover span{display:block;font-family:var(--serif);font-size:2.5rem;line-height:1.05}.cover small{display:block;margin-top:1.5rem;color:var(--muted)}.details-list{display:grid;gap:.8rem;margin:2rem 0}details{background:var(--panel);border:1px solid var(--line);padding:1rem 1.2rem}summary{cursor:pointer;font-family:var(--serif);font-size:1.35rem}.figures-list{display:grid;gap:2rem}.figure-card{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:1.5rem;align-items:start}.figure-card img{border:1px solid var(--line);background:#fff}.stack{display:grid;gap:1rem;margin:2rem 0}.update time,.meta{color:var(--muted);font-size:.92rem}.contact-panel form{display:grid;gap:1rem;max-width:760px}.contact-panel label{display:grid;gap:.35rem}input,textarea{width:100%;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);padding:.75rem}.site-footer{border-top:1px solid var(--line);max-width:1120px;margin:0 auto;padding:2rem 1.25rem 3rem;display:flex;justify-content:space-between;gap:2rem;color:var(--muted);font-size:.92rem}
@media (max-width:850px){.nav-shell{flex-wrap:wrap}.nav-toggle{display:inline-flex;margin-left:auto}.nav-links{display:none;flex-basis:100%;flex-direction:column;align-items:flex-start;margin-left:0;padding-top:1rem}.nav-links.open{display:flex}.theme-toggle{margin-left:0}.grid.two,.grid.three,.book-grid,.figure-card{grid-template-columns:1fr}.hero{padding-top:4rem}.toc-list{columns:1}.site-footer{display:block}.site-footer>div+div{margin-top:1rem}}
@media (prefers-reduced-motion:no-preference){main section{animation:fade .35s ease both}@keyframes fade{from{opacity:.01;transform:translateY(6px)}to{opacity:1;transform:none}}}
@media print{.site-header,.site-footer,.button,.theme-toggle,.nav-toggle,.skip-link{display:none!important}body{background:white;color:black;font-size:12pt}main{max-width:none;padding:0}a{color:black;text-decoration:none}.grid,.figure-card{display:block}.grid article,.band,.contact-panel,.cover,.figure-card,.update,.stack article,details{border:1px solid #aaa;break-inside:avoid;background:white}h1{font-size:32pt}h2{font-size:22pt}}
