:root { --ink:#1f2933; --paper:#fffcf5; --accent:#315b52; --accent-soft:#e7f0ed; --muted:#68736f; --line:#d8dfdc; --card:#fffefa; }
* { box-sizing:border-box; } html { background:var(--paper); scrollbar-gutter:stable both-edges; }
body { color:var(--ink); font-family:Georgia, 'Times New Roman', serif; line-height:1.68; margin:0; min-width:0; overflow-x:clip; }
.site-shell { margin:0 auto; max-width:48rem; padding:0 clamp(1rem,4vw,1.5rem); }.site-header { border-bottom:1px solid var(--line); display:grid; gap:.8rem; margin-bottom:clamp(2rem,5vw,3.25rem); padding:1.35rem 0 1rem; }
.brand { color:var(--ink); font-size:1.4rem; font-weight:700; text-decoration:none; width:max-content; }.site-nav { display:flex; flex-wrap:wrap; gap:.35rem; margin:0; padding:0; }
.site-nav a { border-radius:.25rem; font-family:system-ui,sans-serif; font-size:.88rem; padding:.3rem .46rem; text-decoration:none; }.site-nav a[aria-current="page"] { background:var(--accent-soft); color:var(--ink); font-weight:700; }
a { color:var(--accent); text-decoration-thickness:1px; text-underline-offset:.16em; } .site-main { min-height:68vh; } p,li,td,th,a { overflow-wrap:break-word; }
h1,h2,h3 { line-height:1.18; } h1 { font-size:clamp(2.15rem,7vw,3.5rem); letter-spacing:-.025em; margin:0 0 1.35rem; } h2 { font-size:clamp(1.45rem,4vw,2rem); margin:2.7rem 0 .85rem; } h3 { font-size:1.15rem; margin-top:1.7rem; }
.page-heading + .reading-progress { margin-top:-.65rem; } blockquote { border-left:3px solid var(--accent); margin:1.45rem 0; padding:.15rem 1rem; } blockquote > :first-child { margin-top:0; } blockquote > :last-child { margin-bottom:0; }
table { border-collapse:collapse; font-size:.92rem; table-layout:fixed; width:100%; } th,td { border-bottom:1px solid var(--line); overflow-wrap:anywhere; padding:.48rem .65rem; text-align:left; vertical-align:top; white-space:normal; }
.cards { display:grid; gap:.85rem; grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr)); margin:1.35rem 0; }.card { background:var(--card); border:1px solid var(--line); min-width:0; padding:1.05rem 1.1rem; }.card h2 { font-size:1.18rem; margin:.05rem 0 .45rem; }.card p { margin:.3rem 0; }.card .tags { margin-top:.7rem; }
.reading-list { counter-reset:step; display:grid; gap:.75rem; list-style:none; margin:1.35rem 0; padding:0; }.reading-list > li { counter-increment:step; position:relative; }.reading-list .card { padding-left:4rem; position:relative; }.reading-list .card::before { align-items:center; background:var(--accent); border-radius:50%; color:#fff; content:counter(step); display:flex; font-family:system-ui,sans-serif; font-size:.82rem; font-weight:700; height:1.8rem; justify-content:center; left:1.1rem; position:absolute; top:1.15rem; width:1.8rem; }
.reading-progress { align-items:center; border-bottom:1px solid var(--line); border-top:1px solid var(--line); display:flex; flex-wrap:wrap; font-family:system-ui,sans-serif; gap:.55rem 1rem; justify-content:space-between; margin:1.35rem 0 2rem; padding:.8rem 0; }.reading-progress__label { color:var(--muted); font-size:.84rem; }.reading-progress__links { display:flex; flex-wrap:wrap; gap:.65rem; }.reading-progress__links a { font-size:.88rem; font-weight:650; text-decoration:none; }
.tags { color:var(--muted); font-family:system-ui,sans-serif; font-size:.83rem; }.site-footer { border-top:1px solid var(--line); color:var(--muted); font-family:system-ui,sans-serif; font-size:.84rem; margin-top:3.5rem; padding:1rem 0 2rem; }
@media (max-width:720px) { body { line-height:1.6; }.site-shell { padding:0 1rem; }.site-header { margin-bottom:2rem; }.site-nav a { font-size:.84rem; }.reading-progress { align-items:flex-start; flex-direction:column; }.reading-list .card { padding-left:3.75rem; } table.responsive-table,table.responsive-table tbody,table.responsive-table tr,table.responsive-table td { display:block; width:100%; } table.responsive-table thead { clip:rect(0 0 0 0); clip-path:inset(50%); height:1px; margin:-1px; overflow:hidden; padding:0; position:absolute; width:1px; } table.responsive-table tr { background:var(--card); border:1px solid var(--line); border-radius:.35rem; margin:0 0 .85rem; padding:.15rem .85rem; } table.responsive-table td { border-bottom:1px solid var(--line); display:grid; gap:.65rem; grid-template-columns:minmax(6.5rem,38%) minmax(0,1fr); padding:.55rem 0; } table.responsive-table td:last-child { border-bottom:0; } table.responsive-table td::before { color:var(--muted); content:attr(data-label); font-family:system-ui,sans-serif; font-size:.78rem; font-weight:700; line-height:1.35; } }
@media (max-width:340px) { .site-nav { gap:.1rem; }.site-nav a { font-size:.72rem; padding:.25rem .2rem; } table.responsive-table td { grid-template-columns:1fr; gap:.18rem; } }
@media (prefers-color-scheme:dark) { :root { --ink:#ecf0ec; --paper:#18211f; --accent:#91c7ba; --accent-soft:#294139; --muted:#aab7b2; --line:#46534f; --card:#1d2926; } }
