:root{--color-background:#fbfaf7;--color-surface:#f2efe9;--color-text:#1d1c1a;--color-text-secondary:#6d6862;--color-divider:#e2ded7;--color-link:#2f5f4b;--color-hover:#f4f2ec;--color-selection:#dce8e1;--font-mono:ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--color-text);background:var(--color-background);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-background:#12120f;--color-surface:#1a1a16;--color-text:#e8e5de;--color-text-secondary:#8b877f;--color-divider:#2a2926;--color-link:#7fc0a2;--color-hover:#22221d;--color-selection:#23382e;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--color-background:#12120f;--color-surface:#1a1a16;--color-text:#e8e5de;--color-text-secondary:#8b877f;--color-divider:#2a2926;--color-link:#7fc0a2;--color-hover:#22221d;--color-selection:#23382e;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{color:var(--color-text);background:var(--color-background);margin:0;font-size:16px;line-height:1.7}a{color:var(--color-link);text-underline-offset:.18em;text-decoration-line:underline;text-decoration-thickness:1px}a:focus-visible,button:focus-visible{outline:2px solid var(--color-link);outline-offset:3px}::selection{background:var(--color-selection)}.reading-progress{z-index:10;pointer-events:none;width:100%;height:3px;position:fixed;top:0;left:0}.reading-progress>span{background:var(--color-link);transform-origin:0;width:100%;height:100%;display:block}.site-header,.page-shell{width:min(100% - 40px,700px);margin:0 auto}.site-header{grid-template-columns:minmax(0,1fr) auto;align-items:start;column-gap:16px;padding:72px 0 24px;display:grid}.site-title{letter-spacing:-.02em;grid-column:1;margin:0;font-size:clamp(1.5rem,4.5vw,1.9rem);font-weight:600;line-height:1.25}.site-intro{max-width:30rem;color:var(--color-text-secondary);grid-area:2/1/auto/-1;margin:10px 0 0}.portfolio-link{font-family:var(--font-mono);grid-area:3/1;justify-self:start;margin-top:18px;font-size:.85rem;text-decoration:none}.site-title,.site-intro,.post-title,.post-excerpt,.article-title{word-break:keep-all;overflow-wrap:anywhere}.theme-toggle{border:1px solid var(--color-divider);min-height:44px;color:var(--color-text-secondary);font:inherit;font-family:var(--font-mono);cursor:pointer;background:0 0;border-radius:4px;grid-area:1/2;align-items:center;padding:0 12px;font-size:.8rem;display:inline-flex}.theme-toggle:hover{color:var(--color-link);border-color:var(--color-link)}.page-shell{padding:0 0 96px}.category-nav{border-bottom:1px solid var(--color-divider);margin-top:32px}.category-nav ul{flex-wrap:wrap;gap:0 20px;margin:0;padding:0;list-style:none;display:flex}.category-nav a{color:var(--color-text-secondary);font-family:var(--font-mono);border-bottom:2px solid #0000;padding:12px 0;font-size:.85rem;text-decoration:none;display:block}.category-nav a:hover,.portfolio-link:hover{color:var(--color-text)}.portfolio-link:hover{color:var(--color-link);text-underline-offset:.2em;text-decoration:underline}.category-nav a[aria-current=page]{color:var(--color-link);border-bottom-color:var(--color-link)}.post-index{margin-top:44px}.post-index>h2{color:var(--color-text-secondary);font-family:var(--font-mono);margin:0 0 16px;font-size:.8rem;font-weight:400;line-height:1.5}.book-index>h3,.other-posts>h3{color:var(--color-text-secondary);font-family:var(--font-mono);margin:0 0 16px;font-size:.8rem;font-weight:400}.book-index>h3:before,.other-posts>h3:before{content:"# "}.book-group{margin-top:30px}.book-title{color:var(--color-link);font-family:var(--font-mono);margin:0 0 8px;font-size:.95rem;font-weight:400}.other-posts{margin-top:44px}.post-list{counter-reset:post;margin:0;padding:0;list-style:none}.post-list>li{min-width:0}.post-row{border-bottom:1px solid var(--color-divider);padding:14px 12px 14px 0;display:block}.post-row:hover{background:var(--color-hover)}.post-meta{color:var(--color-text-secondary);font-family:var(--font-mono);flex-wrap:wrap;gap:3px 8px;margin:5px 0 0;font-size:.78rem;line-height:1.5;display:flex}.post-meta>:not(:first-child):before{content:"·";margin-right:8px}.post-row-meta{justify-content:space-between;align-items:center;gap:12px;display:flex}.post-title{margin:0;font-size:1.02rem;font-weight:500;line-height:1.55}.post-title:before{counter-increment:post;content:counter(post, decimal-leading-zero) " ";color:var(--color-text-secondary);font-family:var(--font-mono);margin-right:8px;font-size:.85rem}.post-title a{color:var(--color-text);text-decoration:none}.post-row:hover .post-title a{color:var(--color-link)}.post-list .post-meta,.post-list .post-excerpt{margin-left:32px}.post-excerpt,.empty-state{color:var(--color-text-secondary)}.post-excerpt{margin:6px 0 0;font-size:.88rem;line-height:1.65}.empty-state{border-top:1px solid var(--color-divider);border-bottom:1px solid var(--color-divider);text-align:center;margin:24px 0 0;padding:72px 16px;font-size:.95rem}.article-page{padding-top:48px}.article-toolbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:40px;display:flex}.back-link{font-family:var(--font-mono);font-size:.85rem;text-decoration:none;display:inline-block}.back-link:hover{text-underline-offset:.2em;text-decoration:underline}.article-navigation{border-top:1px solid var(--color-divider);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:20px;margin-top:64px;padding-top:24px;display:grid}.article-navigation a{color:var(--color-text);text-decoration:none}.article-navigation-previous,.article-navigation-next{border:1px solid var(--color-divider);background:var(--color-surface);min-width:0;min-height:72px;box-shadow:none;border-radius:8px;flex-direction:column;justify-content:center;gap:4px;padding:12px 14px;transition:border-color .15s,background-color .15s,transform .15s;display:flex}.article-navigation-next{text-align:right;grid-column:3}.article-navigation-list{border:1px solid var(--color-divider);background:var(--color-surface);border-radius:6px;grid-column:2;justify-content:center;align-items:center;min-height:44px;padding:0 14px;font-size:.9rem;font-weight:600;display:inline-flex;color:var(--color-text-secondary)!important}.article-navigation span{color:var(--color-text-secondary);font-size:.8rem}.article-navigation strong{text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:600;overflow:hidden}.article-navigation-previous:hover,.article-navigation-next:hover{border-color:var(--color-text-secondary);background:var(--color-hover);transform:translateY(-1px)}.article-navigation-list:hover{border-color:var(--color-text-secondary);background:var(--color-hover)}.article-navigation a:focus-visible{outline:2px solid var(--color-link);outline-offset:3px}.article-header{border-bottom:1px solid var(--color-divider);padding-bottom:28px}.article-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 20px;display:flex}.view-count{color:var(--color-text-secondary);white-space:nowrap;flex:none;align-items:center;gap:4px;font-size:.875rem;display:inline-flex}.article-title{letter-spacing:-.03em;margin:0 0 14px;font-size:clamp(1.8rem,6vw,2.3rem);line-height:1.3}.article-content{margin-top:36px;font-size:1.06rem;line-height:1.9}.article-content p,.article-content ul,.article-content ol,.article-content blockquote,.article-content figure,.article-content pre{margin:0 0 1.5em}.table-of-contents{border:1px solid var(--color-divider);border-radius:4px;margin-bottom:40px;padding:20px 22px}.table-of-contents strong{margin-bottom:8px;display:block}.table-of-contents ul{margin:0;padding:0;list-style:none}.table-of-contents li+li{margin-top:4px}.table-of-contents-level-2{padding-left:1em}.table-of-contents-level-3{padding-left:2em}.table-of-contents a{color:var(--color-text);text-underline-offset:3px}.article-content p{word-break:keep-all;overflow-wrap:anywhere}.article-content h2,.article-content h3,.article-content h4{letter-spacing:-.02em;margin:2em 0 .65em;scroll-margin-top:24px;line-height:1.4}.article-content h2{font-size:1.55rem}.article-content h3{font-size:1.4rem}.article-content h4{font-size:1.15rem}.article-content blockquote{border-left:3px solid var(--color-divider);color:var(--color-text-secondary);padding-left:18px}.article-content hr{border:0;border-top:1px solid var(--color-divider);margin:40px 0}.article-content figure img{border-radius:4px;width:100%;height:auto;display:block}.article-content figcaption{color:var(--color-text-secondary);text-align:center;margin-top:8px;font-size:.875rem}.article-content pre{border:1px solid var(--color-divider);background:var(--color-surface);border-radius:4px;padding:18px 20px;font-size:.88rem;line-height:1.65;overflow-x:auto}.article-content code{font-family:var(--font-mono);font-size:.9em}.error-state p{margin:0 0 16px}.error-state button{border:1px solid var(--color-divider);color:var(--color-text);font:inherit;cursor:pointer;background:0 0;border-radius:4px;padding:8px 14px}.error-state button:focus-visible{outline:2px solid var(--color-link);outline-offset:3px}@media (max-width:640px){.site-header,.page-shell{width:min(100% - 32px,700px)}.site-header{padding:48px 0 20px}.article-page{padding-top:24px}.post-index{margin-top:32px}.article-navigation{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.article-navigation-next{grid-column:2}.article-navigation-list{grid-area:2/1/auto/-1;justify-self:center}}@media (max-width:380px){.site-header{grid-template-columns:minmax(0,1fr)}.theme-toggle{grid-area:4/1;justify-self:start;margin-top:12px}}
