:root{--bg:#fbfaf7;--surface:#ffffff;--fg:#1b2733;--muted:#56616d;--accent:#1c5d99;--border:#ddd8cc;--brand:#10243a;--brand-fg:#f4f7fa;--brand-muted:#b9c7d6;--highlight:#f2b84b;--content:46rem;--serif:Charter,"Bitstream Charter","Iowan Old Style","Palatino Linotype",Georgia,serif;--sans:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#0d1a28;--surface:#142538;--fg:#e8edf2;--muted:#a8b6c4;--accent:#8cc0f2;--border:#2a3d52;--brand:#08131f}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font:1.125rem/1.72 var(--serif);-webkit-text-size-adjust:100%}a{color:var(--accent);text-underline-offset:0.18em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}a:focus-visible{outline:3px solid var(--highlight);outline-offset:2px;border-radius:2px}.skip-link{position:absolute;left:-999px}.skip-link:focus{left:1rem;top:1rem;z-index:10;background:var(--highlight);color:var(--brand);padding:0.5rem 1rem;border-radius:6px;font-family:var(--sans)}.site-header,.site-footer{background:var(--brand);color:var(--brand-muted);font-family:var(--sans);padding:1rem max(1rem,calc((100% - var(--content)) / 2 + 1rem))}.site-header{display:flex;flex-wrap:wrap;gap:0.75rem 2rem;align-items:center;justify-content:space-between;border-bottom:3px solid var(--highlight)}.brand{display:inline-flex;align-items:center;gap:0.6rem;color:var(--brand-fg);font-weight:700;font-size:1.1rem;letter-spacing:0.01em;text-decoration:none}.brand::before{content:"";width:1.75rem;height:1.75rem;background:url("/assets/favicon.ef53ee5b.svg") center / contain no-repeat;border-radius:6px}.site-header nav{display:flex;flex-wrap:wrap;gap:0.25rem}.site-header nav a{color:var(--brand-muted);text-decoration:none;font-size:0.95rem;padding:0.3rem 0.8rem;border-radius:999px}.site-header nav a:hover{background:rgba(255,255,255,0.1);color:var(--brand-fg)}.site-header nav a[aria-current="page"]{background:var(--highlight);color:var(--brand);font-weight:600}main{max-width:var(--content);margin:0 auto;padding:2rem 1rem 1rem}.breadcrumb{font:0.9rem var(--sans);color:var(--muted);margin-bottom:1.25rem}.breadcrumb a{color:var(--muted)}h1,h2,h3{font-family:var(--sans);line-height:1.25;letter-spacing:-0.01em;text-wrap:balance}h1{font-size:clamp(1.9rem,5vw,2.6rem);margin:0 0 1rem}h1::before{content:"";display:block;width:3rem;height:4px;margin-bottom:1rem;background:var(--highlight);border-radius:2px}main > h1 + p{font-size:1.25rem;line-height:1.6;color:var(--muted)}h2{font-size:1.5rem;margin:2.5rem 0 0.75rem;padding-top:1.25rem;border-top:1px solid var(--border)}h3{font-size:1.2rem;margin:1.75rem 0 0.5rem}h2 a,h3 a{text-decoration:none}h2 a:hover,h3 a:hover{text-decoration:underline}p,ul,ol{margin:0 0 1.1rem}li{margin-bottom:0.35rem}li::marker{color:var(--accent)}img{display:block;max-width:100%;height:auto;margin:1.75rem auto 0.5rem;border:1px solid var(--border);border-radius:12px;box-shadow:0 2px 10px rgba(16,36,58,0.08)}p:has(> img) + p:has(> em:only-child){font:italic 0.92rem/1.5 var(--serif);color:var(--muted);text-align:center;margin-bottom:1.75rem}table{display:block;overflow-x:auto;border-collapse:collapse;width:100%;margin:1.5rem 0;font:0.95rem/1.5 var(--sans)}th,td{border:1px solid var(--border);padding:0.55rem 0.8rem;text-align:left;vertical-align:top}th{background:var(--surface);font-weight:700}tbody tr:nth-child(even){background:color-mix(in srgb,var(--surface) 60%,transparent)}blockquote{margin:1.5rem 0;padding:1rem 1.25rem;background:color-mix(in srgb,var(--highlight) 22%,var(--bg));border:1px solid var(--highlight);border-left-width:6px;border-radius:10px;font:1.05rem/1.5 var(--sans)}blockquote p{margin:0}.book-card{display:grid;grid-template-columns:11rem 1fr;gap:1.5rem 2rem;align-items:start;margin:1.5rem 0 2rem;padding:1.5rem;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 2px 10px rgba(16,36,58,0.08)}.book-card img{width:100%;height:auto;margin:0;border-radius:4px;box-shadow:0 4px 14px rgba(16,36,58,0.25)}.book-card dl{margin:0 0 1.25rem;font-family:var(--sans);font-size:0.97rem}.book-card dl > div{display:grid;grid-template-columns:6.5rem 1fr;gap:0 1rem;padding:0.4rem 0;border-bottom:1px solid var(--border)}.book-card dl > div:last-child{border-bottom:0}.book-card dt{color:var(--muted)}.book-card dd{margin:0;font-weight:600;overflow-wrap:anywhere}.button{display:inline-block;padding:0.65rem 1.4rem;background:var(--highlight);color:var(--brand);font:700 1rem var(--sans);text-decoration:none;border-radius:999px}.button:hover{filter:brightness(1.07)}@media (max-width:36rem){.book-card{grid-template-columns:1fr;justify-items:center}.book-card img{max-width:11rem}.book-card-body{width:100%}}strong{font-weight:700}code{font:0.9em ui-monospace,"SF Mono",Menlo,Consolas,monospace;background:var(--surface);padding:0.1em 0.35em;border-radius:4px}.sitemap-tree{font-family:var(--sans)}.site-footer{display:flex;flex-wrap:wrap;gap:0.5rem 1.5rem;margin-top:4rem;font-size:0.95rem}.site-footer a{color:var(--brand-muted);text-decoration:none}.site-footer a:hover{color:var(--brand-fg);text-decoration:underline}.glossary-index{display:flex;flex-wrap:wrap;gap:0.4rem;margin:1.5rem 0 0.5rem;font-family:var(--sans)}.glossary-index a{min-width:2.25rem;padding:0.3rem 0.5rem;text-align:center;text-decoration:none;font-weight:600;background:var(--surface);border:1px solid var(--border);border-radius:8px}.glossary-index a:hover{background:var(--highlight);border-color:var(--highlight);color:var(--brand)}h2.glossary-letter{display:flex;align-items:center;gap:1rem;margin:2.25rem 0 0.25rem;padding-top:0;border-top:0;color:var(--accent);scroll-margin-top:1rem}h2.glossary-letter::after{content:"";flex:1;border-top:1px solid var(--border)}dl.glossary{margin:0}.glossary-entry{display:grid;grid-template-columns:12rem 1fr;gap:0.25rem 1.5rem;padding:0.9rem 0;border-bottom:1px solid var(--border)}.glossary-entry:last-child{border-bottom:0}.glossary-entry dt{font:700 1rem/1.45 var(--sans)}.glossary-entry dd{margin:0;font-size:1.02rem;line-height:1.6}@media (max-width:36rem){.glossary-entry{grid-template-columns:1fr}}@media (max-width:30rem){body{font-size:1.05rem}.site-header nav a{padding:0.3rem 0.65rem}}