:root{--accent: #ef5285;--ink: #333333;--ink-strong: #1a1a1a;--muted: #898781;--line: #e1e0d9;--bg: #ffffff;--sidebar-bg: #2b2b2b;--sidebar-ink: #f5f5f3}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg)}body{font-family:Roboto,system-ui,-apple-system,Segoe UI,sans-serif;font-size:16px;line-height:1.6;color:var(--ink)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app{display:flex;min-height:100vh}.sidebar{width:260px;flex:0 0 260px;background:var(--sidebar-bg);color:var(--sidebar-ink);padding:40px 28px;position:sticky;top:0;align-self:flex-start;height:100vh}.site-title{margin:0 0 8px;font-size:24px;font-weight:700}.site-title a{color:var(--sidebar-ink)}.site-title a:hover{text-decoration:none;color:#fff}.site-tagline{color:#b9b8b2;margin:0 0 28px;font-size:14px}.site-nav{display:flex;flex-direction:column;gap:2px}.site-nav a{color:#d7d6d0;padding:7px 0;font-size:15px;border-bottom:1px solid rgba(255,255,255,.06)}.site-nav a:hover{color:#fff;text-decoration:none}.site-nav a.active{color:var(--accent)}.copyright{margin-top:32px;color:#8f8e88;font-size:12px}.content{flex:1 1 auto;padding:48px 56px;max-width:1200px}.nav-toggle{display:none;position:fixed;top:12px;left:12px;z-index:20;background:var(--sidebar-bg);color:#fff;border:none;border-radius:5px;padding:8px 12px;font-size:14px;cursor:pointer}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:28px}.card{display:flex;flex-direction:column}.card-image img{width:100%;height:auto;border-radius:4px;display:block}.card-body{padding-top:10px}.card-body h4{margin:0 0 4px;font-size:18px}.card-body h4 a{color:var(--ink-strong)}.card-body h4 .ext{color:var(--muted);font-size:.8em}.card-date{color:var(--muted);font-size:13px;margin:0 0 6px}.card-desc{color:var(--ink);font-size:14px;margin:6px 0 0}.chips{display:inline-block}.chip{display:inline-block;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);border:1px solid var(--accent);border-radius:3px;padding:1px 8px;margin:0 6px 6px 0}.chip:hover{background:var(--accent);color:#fff;text-decoration:none}.chips-small .chip{font-size:10px;padding:0 6px}.prose{max-width:720px}.prose h1{font-size:34px;line-height:1.15;margin:0 0 18px;color:var(--ink-strong)}.prose h2{font-size:24px;margin:34px 0 12px;color:var(--ink-strong)}.prose h3{font-size:19px;margin:26px 0 10px;color:var(--ink-strong)}.prose p,.prose li{color:var(--ink)}.prose .lead{color:#555;font-size:17px}.prose blockquote{border-left:3px solid var(--accent);margin:18px 0;padding:6px 0 6px 18px;color:#444}.prose pre{background:#f6f6f4;border:1px solid var(--line);border-radius:5px;padding:14px 16px;overflow-x:auto;font-size:14px}.prose code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.prose :not(pre)>code{background:#f0efec;padding:1px 5px;border-radius:3px;font-size:.92em}.prose img{max-width:100%;height:auto;border-radius:4px}.prose iframe{max-width:100%;border:0}.math-block{margin:18px 0;overflow-x:auto}.bibliography{padding-left:22px}.biblio-entry{margin:0 0 22px}.biblio-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.biblio-title{font-size:18px;font-weight:700;color:var(--ink-strong)}.biblio-title:hover{color:var(--accent);text-decoration:none}.biblio-year{color:var(--muted);font-size:14px;white-space:nowrap}.biblio-desc{margin:4px 0 6px}.biblio-links a{font-size:13px}.biblio-links .sep{color:#ccc;margin:0 6px}.pdf-viewer{background:#4a4a4a;min-height:100vh}.pdf-bar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:14px;padding:10px 16px;background:#2b2b2b;color:#fff}.pdf-back{color:#9ec5f4;font-size:13px;white-space:nowrap}.pdf-title{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdf-spacer{flex:1}.pdf-bar button,.pdf-dl{background:#444;color:#fff;border:1px solid #666;border-radius:4px;padding:4px 10px;font-size:13px;cursor:pointer}.pdf-dl:hover,.pdf-bar button:hover{background:#555;text-decoration:none}.pdf-status{padding:48px 20px;text-align:center;color:#ddd}.pdf-pages{display:flex;flex-direction:column;align-items:center;gap:16px;padding:20px 8px 64px}.pdf-pages canvas{max-width:100%;box-shadow:0 2px 12px #00000080;background:#fff}@media (max-width: 800px){.nav-toggle{display:block}.app{flex-direction:column}.sidebar{position:fixed;left:0;top:0;bottom:0;transform:translate(-100%);transition:transform .2s ease;z-index:15;height:100vh}.sidebar.open{transform:translate(0)}.content{padding:64px 20px 40px}}
