:root{--font-serif:"Iowan Old Style", "Palatino Linotype", "URW Palladio L", P052, serif;--font-sans:-apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--text-xs:clamp(.75rem, .7rem + .25vw, .875rem);--text-sm:clamp(.875rem, .8rem + .375vw, 1rem);--text-base:clamp(1rem, .9rem + .5vw, 1.125rem);--text-lg:clamp(1.125rem, 1rem + .625vw, 1.25rem);--text-xl:clamp(1.25rem, 1.1rem + .75vw, 1.5rem);--text-2xl:clamp(1.5rem, 1.3rem + 1vw, 2rem);--text-3xl:clamp(2rem, 1.7rem + 1.5vw, 2.5rem);--text-4xl:clamp(2.5rem, 2rem + 2.5vw, 3.5rem);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--max-width:75ch;--content-width:min(95%, var(--max-width));--header-height:4rem;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:1rem;--transition-fast:.15s ease;--transition-normal:.25s ease}[data-theme=dark]{--color-bg:#111110;--color-bg-secondary:#1a1a19;--color-bg-tertiary:#242423;--color-text:#ededec;--color-text-secondary:#a8a8a4;--color-text-muted:#6b6b66;--color-border:#2a2a28;--color-accent:#4d8fe8;--color-accent-hover:#6ba3f0;--color-link:#6ba3f0;--color-link-hover:#9cc2f5;--color-code-bg:#1a1a19;--color-tag-bg:#1a2332;--color-tag-text:#9cc2f5}[data-theme=light]{--color-bg:#fafaf9;--color-bg-secondary:#f3f3f1;--color-bg-tertiary:#eaeae7;--color-text:#1c1c1a;--color-text-secondary:#52524e;--color-text-muted:#8a8a85;--color-border:#deded9;--color-accent:#2d6fd6;--color-accent-hover:#1d5ab8;--color-link:#2d6fd6;--color-link-hover:#1d5ab8;--color-code-bg:#eeeeeb;--color-tag-bg:#e0ecf8;--color-tag-text:#1d4a8a}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-sans);scroll-behavior:smooth;-webkit-text-size-adjust:100%;font-size:16px;line-height:1.7}::selection{background-color:color-mix(in srgb, var(--color-accent) 30%, transparent);color:inherit}body{background-color:var(--color-bg);color:var(--color-text);min-height:100vh;transition:background-color var(--transition-normal), color var(--transition-normal);flex-direction:column;display:flex}h1,h2,h3,h4,h5,h6{letter-spacing:-.02em;margin-top:var(--space-10);margin-bottom:var(--space-4);color:var(--color-text);font-weight:600;line-height:1.3}h1{font-size:var(--text-3xl);letter-spacing:-.03em;margin-top:0;font-weight:600}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg);font-weight:500}h4{font-size:var(--text-base);font-weight:500}p{margin-bottom:var(--space-4)}a{color:var(--color-link);text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--color-link) 25%, transparent);text-underline-offset:.2em;transition:color var(--transition-fast), text-decoration-color var(--transition-fast);text-decoration-thickness:1px}a:hover{color:var(--color-link-hover);text-decoration-color:var(--color-link-hover)}strong{font-weight:600}em{font-style:italic}ul,ol{margin-bottom:var(--space-4);padding-left:var(--space-6)}li{margin-bottom:var(--space-2)}li>ul,li>ol{margin-top:var(--space-2);margin-bottom:0}code{font-family:var(--font-mono);background-color:var(--color-code-bg);border-radius:var(--radius-sm);letter-spacing:-.01em;padding:.15em .35em;font-size:.875em}pre code{font-size:inherit;background:0 0;padding:0}pre{margin-top:var(--space-6);margin-bottom:var(--space-6);overflow-x:auto}.expressive-code{margin-top:var(--space-6);margin-bottom:var(--space-6)}blockquote{border-left:3px solid var(--color-border);padding-left:var(--space-6);margin:var(--space-8) 0;color:var(--color-text-secondary);font-style:italic}blockquote p:last-child{margin-bottom:0}table{border-collapse:collapse;width:100%;margin-bottom:var(--space-6);font-size:var(--text-sm)}th,td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-border)}th{background-color:var(--color-bg-secondary);font-weight:500}tbody tr:hover{background-color:var(--color-bg-secondary)}img{border-radius:var(--radius-md);max-width:100%;height:auto;display:block}figure{margin:var(--space-6) 0}figcaption{text-align:center;font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:var(--space-2)}hr{border:none;border-top:1px solid var(--color-border);height:0;margin:var(--space-12) 0}.skip-link{top:-100%;left:var(--space-4);background:var(--color-accent);color:#fff;padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);z-index:1000;text-decoration:none;position:absolute}.skip-link:focus{top:var(--space-4)}.site-header{background-color:color-mix(in srgb, var(--color-bg) 85%, transparent);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid color-mix(in srgb, var(--color-border) 50%, transparent);z-index:100;transition:background-color var(--transition-normal);position:sticky;top:0}.nav-container{width:var(--content-width);padding:var(--space-4) 0;justify-content:space-between;align-items:center;margin:0 auto;display:flex}.site-title{font-size:var(--text-lg);color:var(--color-text);letter-spacing:-.02em;font-weight:600;text-decoration:none}.site-title:hover{color:var(--color-accent);text-decoration:none}.nav-links{align-items:center;gap:var(--space-4);display:flex}.nav-links a{color:var(--color-text-secondary);font-size:var(--text-sm);text-decoration:none}.nav-links a:hover{color:var(--color-text);text-decoration:none}#theme-toggle{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2);cursor:pointer;color:var(--color-text-secondary);transition:color var(--transition-fast), border-color var(--transition-fast);background:0 0;justify-content:center;align-items:center;display:flex}#theme-toggle:hover{color:var(--color-text);border-color:var(--color-text-muted)}[data-theme=dark] .sun-icon{display:block}[data-theme=dark] .moon-icon,[data-theme=light] .sun-icon{display:none}[data-theme=light] .moon-icon{display:block}main{width:var(--content-width);padding:var(--space-8) 0;flex:1;margin:0 auto}.site-footer{border-top:1px solid color-mix(in srgb, var(--color-border) 50%, transparent);padding:var(--space-8) var(--space-4);text-align:center;font-size:var(--text-xs);color:var(--color-text-muted);letter-spacing:.01em}.post-list{gap:var(--space-1);font-family:var(--font-sans);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.post-list>li{margin:0}.post-card{border-radius:var(--radius-sm)}.post-card-link{align-items:baseline;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-text);transition:background-color var(--transition-fast);grid-template-columns:1.25rem 1fr auto;text-decoration:none;display:grid}.post-card-link:hover{background-color:var(--color-bg-secondary);text-decoration:none}.post-card-link:hover .post-card-title{color:var(--color-accent)}.post-card-arrow{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-text-muted);opacity:0;transition:opacity var(--transition-fast), transform var(--transition-fast), color var(--transition-fast);line-height:1;transform:translate(-.25rem)}.post-card-link:hover .post-card-arrow,.post-card-link:focus-visible .post-card-arrow{opacity:1;color:var(--color-accent);transform:translate(0)}.post-card-title{font-family:var(--font-sans);font-size:var(--text-base);letter-spacing:-.005em;min-width:0;transition:color var(--transition-fast);margin:0;font-weight:500}.post-card-meta{font-family:var(--font-sans);font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:.01em}.search-snippet{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-text-secondary);margin:var(--space-1) 0 0;padding:0 var(--space-3);line-height:1.6}.search-highlight{background-color:color-mix(in srgb, var(--color-accent) 30%, transparent);color:inherit;border-radius:2px}.tag-list{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.tag{font-size:var(--text-xs);background-color:var(--color-tag-bg);color:var(--color-tag-text);padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);transition:background-color var(--transition-fast);text-decoration:none;display:inline-block}.tag:hover{background-color:color-mix(in srgb, var(--color-tag-bg) 70%, var(--color-accent));text-decoration:none}.tag-filters{gap:var(--space-2);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.tag-filter{border:1px solid var(--color-border);padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0}.tag-filter:hover,.tag-filter.active{background-color:var(--color-tag-bg);color:var(--color-tag-text);border-color:#0000}.post-header{margin-bottom:var(--space-6);padding-bottom:var(--space-6);border-bottom:1px solid var(--color-border)}.post-title{margin-bottom:var(--space-4)}.post-meta{gap:var(--space-4);color:var(--color-text-muted);font-size:var(--text-sm);margin-bottom:var(--space-4);letter-spacing:.01em;flex-wrap:wrap;display:flex}.post-content>:first-child{margin-top:0}.katex-display{margin:var(--space-6) 0;overflow:auto hidden}.katex{font-size:1.1em}.page-header{margin-bottom:var(--space-8)}.page-title{margin-bottom:var(--space-2)}.page-description{color:var(--color-text-secondary);font-size:var(--text-lg)}.section{margin-top:var(--space-12)}.section-header{margin-bottom:var(--space-6);justify-content:space-between;align-items:baseline;display:flex}.section-title{font-size:var(--text-2xl);margin:0}.section-link{font-size:var(--text-sm);text-decoration-color:color-mix(in srgb, var(--color-link) 40%, transparent)}@media (width>=1024px){:root{--max-width:90ch}}@media (width>=1280px){:root{--max-width:100ch}}@media (width<=640px){:root{--max-width:65ch;--content-width:min(90%, var(--max-width))}.nav-container{padding:var(--space-3) 0}.nav-links{gap:var(--space-3)}main{padding:var(--space-6) 0}.post-card-link{gap:var(--space-2);padding:var(--space-2);grid-template-columns:1rem 1fr}.post-card-meta{font-size:var(--text-xs);grid-column:2}.post-meta{gap:var(--space-2);flex-direction:column}}
