@import "syntax.css";.katex-display{overflow-x:auto;overflow-y:hidden;padding:var(--space-md)0;margin:var(--space-lg)0;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color)}.katex{font-size:calc(1em * var(--font-scale))}@media(max-width:700px){.katex-display>.katex{font-size:.9em}}:root{--max-width:680px;--content-padding:4rem;--background-color:#fbf9f5;--text-color:#2b2b2b;--secondary-color:#5a5a5a;--tertiary-color:#8a8a8a;--border-color:#e5e5e5;--accent-color:#6b5b47;--subtle-bg:#f4f1ea;--code-bg:#f0ede9;--mark-bg:#f5ebd7;--body-font:"Zilla Slab", serif;--mono-font:"Source Code Pro", monospace;--code-font:"Source Code Pro", monospace;--base-size:18px;--line-height:1.8;--letter-spacing:0.015em;--h1-size:1.85rem;--h2-size:1.5rem;--h3-size:1.25rem;--body-size:1rem;--small-size:0.9rem;--tiny-size:0.8rem;--space-xs:0.5rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:2rem;--space-xl:3rem;--space-xxl:4rem;--font-scale:1;--line-height-scale:1;hyphens:auto;-webkit-hyphens:auto;-moz-hyphens:auto}[data-theme=sepia]{--background-color:#f5ebd7;--text-color:#3d3227;--secondary-color:#6b5b47;--tertiary-color:#8a7968;--border-color:#d9c9b3;--accent-color:#6b5b47;--subtle-bg:#efe5d1;--code-bg:#eae0cc;--mark-bg:#e8d5b7}[data-theme=dark]{--background-color:#1e1e1e;--text-color:#d4d4d4;--secondary-color:#9a9a9a;--tertiary-color:#6a6a6a;--border-color:#3a3a3a;--accent-color:#a89b8c;--subtle-bg:#2a2a2a;--code-bg:#252525;--mark-bg:#3a3520}*{margin:0;padding:0;box-sizing:border-box}html{overflow-x:hidden;overscroll-behavior:none;width:100%;height:100%;touch-action:pan-y;scroll-behavior:smooth;font-size:var(--base-size)}body{overflow-x:hidden;overscroll-behavior:none;width:100%;min-height:100%;color:var(--text-color);font-family:var(--body-font);font-size:calc(var(--body-size) * var(--font-scale));line-height:calc(var(--line-height) * var(--line-height-scale));letter-spacing:var(--letter-spacing);background-color:var(--background-color);padding:0 var(--content-padding);touch-action:pan-y;transition:background-color 300ms ease,color 300ms ease;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.page-transition{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--background-color);z-index:9999;pointer-events:none;opacity:0;transition:none}.page-transition.flash{animation:einkFlash 400ms ease-out}@keyframes einkFlash{0%{opacity:0}30%{opacity:.2}50%{opacity:.3}70%{opacity:.2}100%{opacity:0}}body::before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;background:radial-gradient( ellipse at center,transparent 50%,rgba(0,0,0,3%) 100% );z-index:1;opacity:0;transition:opacity 500ms ease}.reader-nav{position:fixed;top:0;left:0;right:0;height:60px;background:var(--background-color);border-bottom:1px solid var(--border-color);z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:0 var(--content-padding);transition:transform 200ms ease,opacity 200ms ease}.reader-nav.hidden{transform:translateY(-100%);opacity:0}.nav-left,.nav-center,.nav-right{display:flex;align-items:center;gap:var(--space-sm);flex:1}.nav-left{justify-content:flex-start}.nav-center{justify-content:center}.nav-right{justify-content:flex-end}.nav-button{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem;font-family:var(--body-font);font-size:var(--small-size);color:var(--text-color);text-decoration:none;background:0 0;border:none;transition:all 200ms ease;letter-spacing:.01em;opacity:.6}.nav-button:hover{opacity:1}.nav-button svg{flex-shrink:0}.nav-location{font-family:var(--body-font);font-size:var(--small-size);color:var(--secondary-color);letter-spacing:.02em;font-weight:300}.nav-title{font-family:var(--body-font);font-size:1rem;font-weight:500;color:var(--text-color);text-decoration:none;letter-spacing:.02em;transition:opacity 200ms ease}.nav-title:hover{opacity:.7}.nav-icon-link{display:inline-flex;align-items:center;padding:.4rem;color:var(--text-color);opacity:.6;transition:opacity 200ms ease;text-decoration:none}.nav-icon-link:hover{opacity:1}.breadcrumb{display:flex;align-items:center;gap:.5rem;font-family:var(--body-font);font-weight:300;color:var(--secondary-color);font-size:.8rem;margin-bottom:0;flex-wrap:wrap;letter-spacing:.02em}.breadcrumb a{color:var(--secondary-color);text-decoration:none;transition:all 200ms ease}.breadcrumb a:hover{color:var(--accent-color)}.breadcrumb-separator{color:var(--tertiary-color);opacity:.5;user-select:none}.breadcrumb-series{color:var(--accent-color);font-weight:500}.breadcrumb-current{color:var(--text-color);font-weight:400}header{max-width:var(--max-width);position:relative;z-index:2;margin:0 auto;padding-top:calc(60px + var(--space-xl));margin-bottom:var(--space-sm)}article header{padding-top:0;margin-top:0;margin-bottom:var(--space-sm)}.header-content{display:flex;align-items:center;justify-content:space-between}main{max-width:var(--max-width);margin:0 auto;padding-bottom:var(--space-xxl);position:relative;z-index:2}body::after{content:"";position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' /%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03' /%3E%3C/svg%3E");z-index:1;mix-blend-mode:multiply}.reading-progress{position:fixed;top:0;left:0;width:100%;height:2px;background:var(--border-color);z-index:1000;opacity:0;transition:opacity 200ms ease}.reading-progress.visible{opacity:1}.reading-progress-bar{height:100%;background:var(--accent-color);width:0%;transition:width 100ms ease}.reading-controls{position:fixed;bottom:var(--space-lg);right:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-sm);z-index:999}.control-button{width:48px;height:48px;border-radius:24px;border:1px solid var(--border-color);background:var(--background-color);color:var(--text-color);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 200ms ease;font-family:var(--body-font);font-size:var(--body-size);box-shadow:0 2px 8px rgba(0,0,0,8%)}.control-button:hover{border-color:var(--accent-color);transform:scale(1)}.control-button:active{transform:scale(1)}.control-button.active{background:var(--accent-color);color:var(--background-color);border-color:var(--accent-color)}.theme-toggle{font-size:20px}.font-controls{display:flex;flex-direction:column;gap:4px}.font-size-up,.font-size-down{font-weight:500;line-height:1}.series-nav-controls{display:flex;justify-content:space-between;margin-top:var(--space-lg);gap:var(--space-md)}.series-nav-button{flex:1;padding:var(--space-md);border:1px solid var(--border-color);background:var(--background-color);color:var(--text-color);text-decoration:none;text-align:center;transition:all 300ms ease;font-size:var(--small-size);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:var(--space-xs)}.series-nav-button:hover{border-color:var(--accent-color);background:var(--subtle-bg);transform:translateY(-1px)}.series-nav-button:disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.series-nav-button .arrow{font-size:1em}.name-link{text-decoration:none;color:inherit;transition:opacity 200ms ease}.name-link:hover{opacity:.7}.name{font-family:var(--body-font);font-size:1rem;font-weight:500;margin-bottom:0;letter-spacing:.02em}h1,h2,h3,.post-title{font-family:var(--body-font);font-weight:700;letter-spacing:-.01em;line-height:1}h1,.post-title{font-size:calc(var(--h1-size) * var(--font-scale));font-weight:300;margin-bottom:var(--space-sm);margin-top:0}h2{font-size:calc(var(--h2-size) * var(--font-scale));font-weight:700;margin-top:var(--space-xl);margin-bottom:var(--space-md)}h3{font-size:calc(var(--h3-size) * var(--font-scale));font-weight:700;margin-top:var(--space-lg);margin-bottom:var(--space-sm)}h1[id],h2[id],h3[id]{position:relative;scroll-margin-top:var(--space-lg);cursor:pointer}h1[id]:hover::before,h2[id]:hover::before,h3[id]:hover::before{content:"#";position:absolute;left:-2rem;color:var(--secondary-color);opacity:.4;font-weight:400;text-decoration:none;transition:opacity 200ms ease}p{margin-bottom:var(--space-md);hyphens:auto}a{color:var(--text-color);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:var(--border-color);transition:all 300ms ease}a:hover{text-decoration-color:var(--accent-color);opacity:.9}del{text-decoration:line-through;opacity:.5;text-decoration-color:var(--secondary-color)}mark{background-color:var(--mark-bg);padding:.2em .3em;border-radius:2px;font-weight:500;color:var(--text-color)}.tldr{background-color:var(--subtle-bg);border:1px solid var(--border-color);border-radius:0;padding:var(--space-lg);margin:var(--space-xl)0;font-weight:400;font-size:1em;line-height:2;box-shadow:none}.tldr strong{font-weight:700;font-size:1em}.library{display:grid;gap:var(--space-lg);margin-top:var(--space-xxl)}.library-book{border:1px solid var(--border-color);background:var(--background-color);transition:border-color 300ms ease}.library-book:hover{border-color:var(--accent-color)}.library-book-link{display:flex;gap:var(--space-md);padding:var(--space-lg);text-decoration:none;color:inherit}.book-spine{width:8px;flex-shrink:0;border-radius:0}.book-content{flex:1;min-width:0}.book-title{font-family:var(--body-font);font-weight:700;font-size:var(--h2-size);margin:0 0 var(--space-xs);line-height:1}.book-meta{font-size:var(--small-size);color:var(--secondary-color);margin:0;font-weight:300}.library-article{padding:var(--space-md)0;border-bottom:1px solid var(--border-color)}.library-article:last-child{border-bottom:none}.article-link{text-decoration:none;color:inherit}.article-title{font-family:var(--body-font);font-weight:600;font-size:var(--h3-size);margin:0 0 var(--space-xs);line-height:1;transition:color 300ms ease}.article-link:hover .article-title{color:var(--accent-color)}.article-meta{font-size:var(--small-size);color:var(--secondary-color);margin:0;font-weight:300}.meta-separator{margin:0 .5em;opacity:.5}.post-meta{display:flex;gap:var(--space-md);align-items:center;font-size:var(--small-size);color:var(--secondary-color);margin-top:var(--space-xs)}.reading-time{font-weight:300;letter-spacing:.02em}.reading-time::before{content:"📖 ";opacity:.6}.post-date{font-family:var(--body-font);font-weight:300;color:var(--secondary-color);font-size:var(--small-size);margin-bottom:var(--space-lg);letter-spacing:.02em}.draft-badge{font-family:var(--body-font);font-weight:500;font-size:var(--tiny-size);color:var(--accent-color);margin-left:var(--space-xs);opacity:.8}}.series-list{list-style:none;margin:var(--space-sm)0 0;padding:0}.series-item{margin:var(--space-xs)0;padding:0;font-size:var(--small-size)}.series-item a{text-decoration:none;color:var(--text-color);transition:all 300ms ease;border-bottom:1px solid transparent}.series-item a:hover{color:var(--accent-color);border-bottom-color:var(--accent-color)}.series-item.current{font-weight:500}.series-current{color:var(--text-color)}.you-are-here{font-family:var(--body-font);font-weight:400;font-size:var(--tiny-size);color:var(--tertiary-color);font-style:italic;margin-left:var(--space-xs)}.series-item.upcoming{opacity:.5}.series-upcoming{color:var(--secondary-color);cursor:default}.coming-soon{font-family:var(--body-font);font-weight:400;font-size:var(--tiny-size);color:var(--tertiary-color);font-style:italic;margin-left:var(--space-xs);background-color:initial;border:1px solid var(--border-color);padding:.2rem .5rem;border-radius:0}ul,ol{margin-left:var(--space-lg);margin-bottom:var(--space-md)}li{margin-bottom:var(--space-xs)}blockquote{margin:var(--space-xl)0;padding-left:var(--space-lg);border-left:2px solid var(--text-color);font-style:italic;opacity:.9;font-size:1em}blockquote p{margin-bottom:var(--space-sm)}blockquote p:last-child{margin-bottom:0}code{font-family:var(--code-font);font-size:.9em;font-weight:500;letter-spacing:-.01em}:not(pre)>code{background-color:var(--code-bg);color:var(--text-color);padding:.2em .5em;border-radius:3px;border:1px solid var(--border-color);vertical-align:baseline}pre{background-color:var(--code-bg);padding:var(--space-md);border-radius:0;overflow-x:auto;margin:var(--space-xl)0;line-height:2;border:1px solid var(--border-color)}pre code{background-color:initial;padding:0;border-radius:0;border:none;\n}\n\n @media (max-width: 700px){ :root { --content-padding: 1.5rem; --base-size: 17px; --h1-size: 1.6rem; --h2-size: 1.35rem; --h3-size: 1.15rem; } header { padding-top: var(--space-xl); margin-bottom: var(--space-lg); } .name { font-size: 1.05rem; } .reading-controls { bottom: var(--space-md); right: var(--space-md); } .control-button { width: 44px; height: 44px; }}@media(max-width:500px){:root{--content-padding:1rem;--base-size:16px}}.series-nav-controls{display:flex;justify-content:space-between;margin-top:var(--space-lg);gap:var(--space-md)}.series-nav-button{flex:1;padding:var(--space-md);border:1px solid var(--border-color);background:var(--background-color);color:var(--text-color);text-decoration:none;text-align:center;transition:all 300ms ease;font-size:var(--small-size);font-family:var(--body-font);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:var(--space-xs)}.series-nav-button:hover{border-color:var(--accent-color);background:var(--subtle-bg);transform:translateY(-1px);box-shadow:0 2px 4px rgba(0,0,0,5%)}.series-nav-button:disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.series-nav-button .arrow{font-size:1em}.reader-navigation{margin:var(--space-xxl)0;border:1px solid var(--border-color);background:var(--background-color)}.reader-nav-header{padding:var(--space-lg);border-bottom:1px solid var(--border-color);background-color:var(--background-color)}.series-info{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.series-label{font-weight:500;font-size:var(--base-size);letter-spacing:.02em}.chapter-position{font-size:var(--small-size);color:var(--secondary-color);font-weight:300}.reader-nav-main{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border-color)}.reader-nav-main:has(.nav-chapter.prev.disabled){grid-template-columns:1fr}.reader-nav-main:has(.nav-chapter.prev.disabled) .nav-chapter.next{grid-column:1}.nav-chapter{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-lg);background:var(--background-color);text-decoration:none;color:var(--text-color);transition:all 300ms ease;min-height:100px;position:relative}.nav-chapter.prev{justify-content:flex-start}.nav-chapter.next{justify-content:space-between}.nav-chapter.next .nav-arrow{margin-left:auto}.nav-chapter:hover:not(.disabled){background:var(--subtle-bg);transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,6%);z-index:1}.nav-chapter.disabled{opacity:.3;cursor:not-allowed}.nav-chapter.prev.disabled{display:none}.nav-arrow{font-size:2rem;color:var(--accent-color);font-weight:300;flex-shrink:0;align-self:center}.nav-chapter-content{display:flex;flex-direction:column;gap:var(--space-xs)}.nav-chapter.prev .nav-chapter-content{align-items:flex-start;text-align:left}.nav-chapter.next .nav-chapter-content{align-items:flex-end;text-align:right}.nav-chapter-label{font-size:var(--tiny-size);text-transform:uppercase;letter-spacing:.1em;color:var(--secondary-color);font-weight:500}.nav-chapter-title{font-size:var(--small-size);font-weight:400;color:var(--text-color);max-width:20ch}.nav-chapter-meta{font-size:var(--tiny-size);color:var(--tertiary-color);font-weight:400;margin-top:.3rem}.reader-nav-chapters{border-top:1px solid var(--border-color)}.chapters-toggle{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md)var(--space-lg);cursor:pointer;font-size:var(--small-size);font-weight:500;color:var(--text-color);user-select:none;list-style:none;transition:background 200ms ease;background:var(--background-color)}.chapters-toggle:hover{background:var(--subtle-bg)}.chapters-toggle::-webkit-details-marker{display:none}.chapters-toggle svg{transition:transform 200ms ease;flex-shrink:0;opacity:.5}.reader-nav-chapters[open] .chapters-toggle svg{transform:rotate(200deg)}.chapters-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--border-color)}.chapters-list li{margin:0;padding:0}.chapter-item{border-bottom:1px solid var(--border-color);margin:0}.chapter-item:last-child{border-bottom:none}.chapter-item.active{background:var(--subtle-bg)}.chapter-item.upcoming{opacity:.5}.chapter-item-link,.chapter-item-content{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md)var(--space-lg);text-decoration:none;color:var(--text-color);transition:all 200ms ease;width:100%;box-sizing:border-box}.chapter-item-link:hover{background:var(--subtle-bg);padding-left:calc(var(--space-lg) + 4px)}.chapter-num{font-weight:700;color:var(--accent-color);min-width:2em;font-size:var(--small-size)}.chapter-name{flex:1;font-size:var(--small-size)}.chapter-meta{font-size:var(--tiny-size);color:var(--tertiary-color);margin-left:auto;padding-left:var(--space-sm);white-space:nowrap;flex-shrink:0}.chapter-current{color:var(--accent-color);font-size:var(--small-size);font-weight:500;flex-shrink:0}.chapter-soon{font-size:var(--tiny-size);color:var(--tertiary-color);font-style:italic;padding:.2em .5em;border:1px solid var(--border-color);white-space:nowrap;flex-shrink:0;line-height:1}@media(max-width:700px){.reader-nav-main{grid-template-columns:1fr}.nav-chapter{min-height:80px}.nav-chapter.next{justify-content:flex-start}.nav-chapter.next .nav-chapter-content{align-items:flex-start;text-align:left}.nav-chapter-title{max-width:100%}.reader-nav{padding:0 var(--space-md);height:56px}.nav-center{position:absolute;left:50%;transform:translateX(-50%)}.nav-button{font-size:.8rem;padding:.4rem}.nav-button svg{width:14px;height:14px}.breadcrumb{font-size:.8rem;margin-bottom:var(--space-md)}header{padding-top:calc(56px + var(--space-lg))}}