.nav.svelte-1h32yp1{z-index:100;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);background:color-mix(in srgb, var(--bg) 85%, transparent);position:sticky;top:0}.nav-inner.svelte-1h32yp1{align-items:center;gap:1.5rem;max-width:1100px;height:58px;margin:0 auto;padding:0 1.5rem;display:flex}.nav-logo.svelte-1h32yp1{color:var(--text);flex-shrink:0;align-items:center;gap:.5rem;text-decoration:none;display:flex}.logo-text.svelte-1h32yp1{font-family:var(--font-mono);letter-spacing:-.02em;font-size:.9rem;font-weight:500}.nav-center.svelte-1h32yp1{flex:1;justify-content:center;display:flex}.nav-links.svelte-1h32yp1{align-items:center;gap:.25rem;display:flex}.nav-link.svelte-1h32yp1{color:var(--text-2);border-radius:6px;padding:.4rem .75rem;font-size:.85rem;text-decoration:none;transition:color .15s,background .15s}.nav-link.svelte-1h32yp1:hover,.nav-link.active.svelte-1h32yp1{color:var(--text);background:var(--bg-2)}.search-bar.svelte-1h32yp1{background:var(--surface);border:1px solid var(--border);border-radius:8px;align-items:center;gap:.5rem;width:100%;max-width:400px;padding:.4rem .75rem;display:flex}.search-icon.svelte-1h32yp1{color:var(--text-3);flex-shrink:0}.search-input.svelte-1h32yp1{font-family:var(--font-body);color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:.875rem}.search-input.svelte-1h32yp1::placeholder{color:var(--text-3)}.kbd.svelte-1h32yp1{font-family:var(--font-mono);color:var(--text-3);background:var(--bg-2);border:1px solid var(--border);border-radius:4px;flex-shrink:0;padding:.1rem .4rem;font-size:.7rem}.nav-actions.svelte-1h32yp1{flex-shrink:0;align-items:center;gap:.25rem;display:flex}.icon-btn.svelte-1h32yp1{width:36px;height:36px;color:var(--text-2);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;transition:color .15s,background .15s;display:flex}.icon-btn.svelte-1h32yp1:hover{color:var(--text);background:var(--bg-2)}@media (width<=600px){.nav-links.svelte-1h32yp1{display:none}.nav-inner.svelte-1h32yp1{gap:.75rem;padding:0 1rem}}.post-card.svelte-podw4w{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:box-shadow .2s,transform .2s,border-color .2s;overflow:hidden;container-type:inline-size}.post-card.svelte-podw4w:hover{box-shadow:var(--shadow-hover);border-color:color-mix(in srgb, var(--accent) 30%, var(--border));transform:translateY(-2px)}.card-link.svelte-podw4w{color:inherit;text-decoration:none;display:block}.card-body.svelte-podw4w{flex-direction:column;gap:.75rem;padding:1.5rem;display:flex}.card-meta.svelte-podw4w{color:var(--text-3);font-size:.78rem;font-family:var(--font-mono);align-items:center;gap:.5rem;display:flex}.meta-sep.svelte-podw4w{color:var(--border)}.card-title.svelte-podw4w{color:var(--text);letter-spacing:-.02em;font-size:1.2rem;font-weight:600;line-height:1.35}.card-excerpt.svelte-podw4w{color:var(--text-2);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.875rem;line-height:1.6;display:-webkit-box;overflow:hidden}.card-tags.svelte-podw4w{flex-wrap:wrap;gap:.4rem;display:flex}.tag.svelte-podw4w{font-family:var(--font-mono);color:var(--tag-text);background:var(--tag-bg);cursor:pointer;border:1px solid #0000;border-radius:4px;padding:.2rem .55rem;font-size:.72rem;line-height:1;transition:all .15s}.tag.svelte-podw4w:hover,.tag.active.svelte-podw4w{background:var(--accent);color:#fff}.card-footer.svelte-podw4w{border-top:1px solid var(--border);margin-top:.25rem;padding-top:.75rem}.read-more.svelte-podw4w{color:var(--accent);letter-spacing:.01em;font-size:.8rem;font-weight:500;transition:gap .15s}.post-card.svelte-podw4w:hover .read-more:where(.svelte-podw4w){letter-spacing:.03em}@container (width<=300px){.card-body.svelte-podw4w{padding:1rem}.card-title.svelte-podw4w{font-size:1rem}}.home.svelte-bk2mis{min-height:80vh}.home-header.svelte-bk2mis{background:var(--bg);border-bottom:1px solid var(--border);padding:4rem 1.5rem 3rem}.header-inner.svelte-bk2mis{max-width:1100px;margin:0 auto}.header-label.svelte-bk2mis{font-family:var(--font-mono);color:var(--accent);letter-spacing:.05em;margin-bottom:.75rem;font-size:.78rem}.header-title.svelte-bk2mis{font-family:var(--font-display);letter-spacing:-.04em;color:var(--text);margin-bottom:1.25rem;font-size:clamp(3rem,8vw,6rem);line-height:.95}.accent.svelte-bk2mis{color:var(--accent)}.header-sub.svelte-bk2mis{color:var(--text-2);max-width:480px;font-size:1.05rem;line-height:1.6}.content-wrap.svelte-bk2mis{max-width:1100px;margin:0 auto;padding:2rem 1.5rem 4rem}.tags-bar.svelte-bk2mis{flex-wrap:wrap;gap:.5rem;margin-bottom:2rem;display:flex}.filter-tag.svelte-bk2mis{font-family:var(--font-mono);color:var(--text-2);background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:.35rem .75rem;font-size:.78rem;transition:all .15s}.filter-tag.svelte-bk2mis:hover{color:var(--text);border-color:var(--text-3)}.filter-tag.active.svelte-bk2mis{color:var(--accent);border-color:var(--accent);background:var(--accent-dim)}.results-info.svelte-bk2mis{color:var(--text-2);align-items:center;gap:.75rem;margin-bottom:1.5rem;font-size:.85rem;display:flex}.filter-badge.svelte-bk2mis{background:var(--accent-dim);color:var(--accent);font-family:var(--font-mono);border-radius:4px;padding:.2rem .6rem;font-size:.78rem}.clear-btn.svelte-bk2mis{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem;text-decoration:underline}.posts-grid.svelte-bk2mis{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;display:grid}.pagination.svelte-bk2mis{flex-wrap:wrap;align-items:center;gap:.375rem;margin-top:2.5rem;display:flex}.page-btn.svelte-bk2mis{min-width:36px;height:36px;font-family:var(--font-mono);color:var(--text-2);background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:7px;justify-content:center;align-items:center;padding:0 .5rem;font-size:.8rem;line-height:1;transition:all .15s;display:flex}.page-btn.svelte-bk2mis:hover:not(:disabled){color:var(--text);border-color:var(--text-3)}.page-btn.active.svelte-bk2mis{color:#fff;background:var(--accent);border-color:var(--accent)}.page-btn.svelte-bk2mis:disabled{opacity:.35;cursor:not-allowed}.page-arrow.svelte-bk2mis{color:var(--text-3)}.page-ellipsis.svelte-bk2mis{font-family:var(--font-mono);color:var(--text-3);-webkit-user-select:none;user-select:none;padding:0 .25rem;font-size:.8rem}.page-info.svelte-bk2mis{font-family:var(--font-mono);color:var(--text-3);margin-left:auto;font-size:.72rem}.skeleton-card.svelte-bk2mis{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.75rem;padding:1.5rem;display:flex}.skeleton-meta.svelte-bk2mis,.skeleton-title.svelte-bk2mis,.skeleton-text.svelte-bk2mis{background:var(--bg-2);border-radius:4px;animation:1.5s ease-in-out infinite svelte-bk2mis-shimmer}.skeleton-meta.svelte-bk2mis{width:40%;height:12px}.skeleton-title.svelte-bk2mis{width:90%;height:20px}.skeleton-title.short.svelte-bk2mis{width:60%}.skeleton-text.svelte-bk2mis{width:100%;height:14px}.skeleton-text.short.svelte-bk2mis{width:75%}@keyframes svelte-bk2mis-shimmer{0%,to{opacity:.5}50%{opacity:1}}.empty-state.svelte-bk2mis{text-align:center;color:var(--text-3);flex-direction:column;align-items:center;gap:1rem;padding:5rem 1rem;display:flex}.empty-state.svelte-bk2mis h3:where(.svelte-bk2mis){color:var(--text-2);font-size:1.2rem;font-weight:500}.empty-state.svelte-bk2mis p:where(.svelte-bk2mis){max-width:400px;font-size:.875rem;line-height:1.6}.empty-state.svelte-bk2mis code:where(.svelte-bk2mis){font-family:var(--font-mono);background:var(--bg-2);color:var(--accent);border-radius:3px;padding:.1rem .35rem;font-size:.82rem}@media (width<=600px){.home-header.svelte-bk2mis{padding:2.5rem 1rem 2rem}.content-wrap.svelte-bk2mis{padding:1.5rem 1rem 3rem}.posts-grid.svelte-bk2mis{grid-template-columns:1fr}.page-info.svelte-bk2mis{display:none}}.progress-wrap.svelte-18rcjdz{z-index:99;background:var(--border);align-items:center;height:3px;display:flex;position:fixed;top:58px;left:0;right:0}.progress-bar.svelte-18rcjdz{background:var(--accent);height:100%;box-shadow:0 0 6px var(--accent-glow);transition:width .1s linear}.progress-label.svelte-18rcjdz{font-family:var(--font-mono);color:var(--text-3);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);pointer-events:none;opacity:.85;border-radius:20px;padding:.3rem .65rem;font-size:.72rem;transition:opacity .3s;position:fixed;bottom:1.5rem;right:1.5rem}@media (width<=600px){.progress-label.svelte-18rcjdz{display:none}}.toc.svelte-1dzzduv{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-height:calc(100vh - 100px);padding:1.25rem;position:sticky;top:80px;overflow-y:auto}.toc-label.svelte-1dzzduv{font-size:.72rem;font-family:var(--font-mono);color:var(--text-3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.75rem}.toc-list.svelte-1dzzduv{flex-direction:column;gap:.1rem;list-style:none;display:flex}.toc-item.h3.svelte-1dzzduv{padding-left:1rem}.toc-link.svelte-1dzzduv{color:var(--text-3);border-left:2px solid #0000;border-radius:5px;padding:.3rem .5rem;font-size:.8rem;line-height:1.4;text-decoration:none;transition:all .15s;display:block}.toc-link.svelte-1dzzduv:hover{color:var(--text);background:var(--bg-2)}.toc-link.active.svelte-1dzzduv{color:var(--accent);border-left-color:var(--accent);background:var(--accent-dim)}.toc.svelte-1dzzduv::-webkit-scrollbar{width:3px}.toc.svelte-1dzzduv::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.post-page.svelte-c9epd3{max-width:1100px;margin:0 auto;padding:2rem 1.5rem 5rem}.loading-state.svelte-c9epd3{min-height:60vh;color:var(--text-3);flex-direction:column;justify-content:center;align-items:center;gap:1rem;font-size:.9rem;display:flex}.spinner.svelte-c9epd3{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.7s linear infinite svelte-c9epd3-spin}@keyframes svelte-c9epd3-spin{to{transform:rotate(360deg)}}.error-state.svelte-c9epd3{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1rem;min-height:60vh;display:flex}.post-layout.svelte-c9epd3{grid-template-columns:1fr 240px;align-items:start;gap:3rem;display:grid}.toc-aside.svelte-c9epd3{order:2}.post-article.svelte-c9epd3{order:1;min-width:0}.back-link.svelte-c9epd3{color:var(--text-3);align-items:center;gap:.4rem;margin-bottom:2rem;font-size:.82rem;text-decoration:none;transition:color .15s;display:inline-flex}.back-link.svelte-c9epd3:hover{color:var(--text)}.post-header.svelte-c9epd3{margin-bottom:2.5rem}.post-tags.svelte-c9epd3{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.tag.svelte-c9epd3{font-family:var(--font-mono);color:var(--tag-text);background:var(--tag-bg);border-radius:4px;padding:.2rem .55rem;font-size:.72rem;text-decoration:none;transition:all .15s}.tag.svelte-c9epd3:hover{background:var(--accent);color:#fff}.post-title.svelte-c9epd3{font-family:var(--font-display);letter-spacing:-.03em;color:var(--text);margin-bottom:1rem;font-size:clamp(2rem,5vw,3.25rem);font-style:italic;font-weight:400;line-height:1.1}.post-meta.svelte-c9epd3{color:var(--text-3);font-size:.8rem;font-family:var(--font-mono);align-items:center;gap:.5rem;margin-bottom:1.25rem;display:flex}.sep.svelte-c9epd3{color:var(--border)}.post-lead.svelte-c9epd3{color:var(--text-2);border-left:3px solid var(--accent);background:var(--accent-dim);border-radius:0 6px 6px 0;padding:1rem 1.25rem;font-size:1.1rem;line-height:1.65}.post-cover.svelte-c9epd3{border-radius:var(--radius);border:1px solid var(--border);margin-bottom:2.5rem;overflow:hidden}.cover-image.svelte-c9epd3{object-fit:cover;width:100%;max-height:400px;display:block}.mobile-toc.svelte-c9epd3{background:var(--surface);border:1px solid var(--border);border-radius:8px;margin-bottom:2rem;display:none;overflow:hidden}.mobile-toc.svelte-c9epd3 summary:where(.svelte-c9epd3){cursor:pointer;color:var(--text-2);padding:.85rem 1rem;font-size:.85rem;font-weight:500;list-style:none}.mobile-toc.svelte-c9epd3 summary:where(.svelte-c9epd3):after{content:" ↓";color:var(--text-3)}.mobile-toc[open].svelte-c9epd3 summary:where(.svelte-c9epd3):after{content:" ↑"}.mobile-toc-list.svelte-c9epd3{flex-direction:column;gap:.25rem;padding:0 1rem .85rem;list-style:none;display:flex}.mobile-toc-list.svelte-c9epd3 li.h3:where(.svelte-c9epd3){padding-left:1rem}.mobile-toc-list.svelte-c9epd3 a:where(.svelte-c9epd3){color:var(--text-2);font-size:.82rem;text-decoration:none}.post-content-body{color:var(--text);font-size:1.05rem;line-height:1.75}.post-content-body h1,.post-content-body h2,.post-content-body h3,.post-content-body h4{font-family:var(--font-body);color:var(--text);letter-spacing:-.02em;margin:2.5rem 0 1rem;font-weight:600;line-height:1.3;position:relative}.post-content-body h1{font-size:2rem}.post-content-body h2{border-bottom:1px solid var(--border);padding-bottom:.5rem;font-size:1.5rem}.post-content-body h3{font-size:1.2rem}.post-content-body h4{font-size:1rem}.heading-anchor{color:var(--text-3);opacity:0;margin-right:.5rem;font-size:.85em;text-decoration:none;transition:opacity .15s}.post-heading:hover .heading-anchor{opacity:1}.post-content-body p{margin:1.25rem 0}.post-content-body a{color:var(--accent);text-decoration:underline;-webkit-text-decoration-color:var(--accent-dim);text-decoration-color:var(--accent-dim);transition:text-decoration-color .15s}.post-content-body a:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.post-content-body ul,.post-content-body ol{flex-direction:column;gap:.4rem;margin:1.25rem 0;padding-left:1.5rem;display:flex}.post-content-body li{line-height:1.65}.post-content-body blockquote,.devlog-quote{border-left:3px solid var(--accent);background:var(--accent-dim);color:var(--text-2);border-radius:0 8px 8px 0;margin:1.75rem 0;padding:1rem 1.25rem;font-style:italic}.post-content-body hr{border:none;border-top:1px solid var(--border);margin:2.5rem 0}.code-block{border:1px solid var(--border);background:var(--code-bg);border-radius:10px;margin:1.75rem 0;overflow:hidden}.code-header{background:color-mix(in srgb, var(--code-bg) 80%, white 10%);border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;padding:.65rem 1rem;display:flex}.code-lang{font-family:var(--font-mono);color:#ffffff59;text-transform:uppercase;letter-spacing:.06em;font-size:.72rem}.copy-btn{font-family:var(--font-mono);color:#fff6;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:4px;padding:.2rem .6rem;font-size:.72rem;transition:all .15s}.copy-btn:hover{color:#fffc;background:#ffffff1f}.copy-btn.copied{color:#7ee787;border-color:#7ee7874d}.code-block pre{margin:0;padding:1.25rem;overflow-x:auto}.code-block code{font-family:var(--font-mono);color:var(--code-text);font-size:.875rem;line-height:1.6}.post-content-body :not(pre)>code{font-family:var(--font-mono);background:var(--bg-2);color:var(--accent);border:1px solid var(--border);border-radius:4px;padding:.15em .4em;font-size:.85em}.post-image{text-align:center;margin:2rem 0}.post-img{border:1px solid var(--border);border-radius:8px;max-width:100%}.svg-img{max-height:400px;color:var(--accent)}figcaption{color:var(--text-3);margin-top:.5rem;font-size:.8rem;font-style:italic}.post-content-body table{border-collapse:collapse;width:100%;margin:1.75rem 0;font-size:.9rem}.post-content-body th,.post-content-body td{border:1px solid var(--border);text-align:left;padding:.75rem 1rem}.post-content-body th{background:var(--bg-2);color:var(--text-2);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}.post-content-body tr:hover td{background:var(--bg-2)}.hljs{color:#c0caf5}.hljs-keyword{color:#bb9af7}.hljs-string{color:#9ece6a}.hljs-comment{color:#565f89;font-style:italic}.hljs-number{color:#ff9e64}.hljs-function{color:#7aa2f7}.hljs-variable{color:#e0af68}.hljs-class{color:#2ac3de}.hljs-tag{color:#f7768e}.hljs-attr{color:#73daca}.hljs-title{color:#7aa2f7}.hljs-type{color:#2ac3de}.hljs-built_in,.hljs-literal{color:#ff9e64}.hljs-params{color:#e0af68}.hljs-selector-tag{color:#f7768e}.hljs-selector-class,.hljs-property{color:#73daca}.hljs-punctuation{color:#9aa5ce}.hljs-operator{color:#89ddff}.hljs-meta{color:#565f89}.post-footer.svelte-c9epd3{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:3rem;padding-top:2rem;display:flex}.footer-actions.svelte-c9epd3{flex-wrap:wrap;gap:.75rem;display:flex}.action-btn.svelte-c9epd3{color:var(--text-2);background:var(--surface);border:1px solid var(--border);cursor:pointer;font-size:.8rem;font-family:var(--font-body);border-radius:7px;align-items:center;gap:.5rem;padding:.5rem .9rem;transition:all .15s;display:flex}.action-btn.svelte-c9epd3:hover{color:var(--text);border-color:var(--text-3);background:var(--bg-2)}.back-link-footer.svelte-c9epd3{color:var(--text-3);font-size:.82rem;text-decoration:none;transition:color .15s}.back-link-footer.svelte-c9epd3:hover{color:var(--text)}@media (width<=900px){.post-layout.svelte-c9epd3{grid-template-columns:1fr}.toc-aside.svelte-c9epd3{display:none}.mobile-toc.svelte-c9epd3{display:block}}@media (width<=600px){.post-page.svelte-c9epd3{padding:1.5rem 1rem 4rem}.post-title.svelte-c9epd3{font-size:2rem}}.footer.svelte-jz8lnl{border-top:1px solid var(--border);padding:1.5rem}.footer-inner.svelte-jz8lnl{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;max-width:1100px;margin:0 auto;display:flex}.footer-left.svelte-jz8lnl{color:var(--text-3);align-items:center;gap:.5rem;font-size:.8rem;display:flex}.footer-brand.svelte-jz8lnl{font-family:var(--font-mono);color:var(--text-2);font-weight:500}.footer-right.svelte-jz8lnl{align-items:center;gap:.5rem;display:flex}.portfolio-link.svelte-jz8lnl{color:var(--text-3);align-items:center;gap:.35rem;font-size:.78rem;text-decoration:none;transition:color .15s;display:flex}.portfolio-link.svelte-jz8lnl:hover{color:var(--accent)}.footer-sep.svelte-jz8lnl{color:var(--border);font-size:.78rem}.footer-year.svelte-jz8lnl{font-family:var(--font-mono);color:var(--text-3);font-size:.78rem}*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f8f7f4;--bg-2:#efefeb;--surface:#fff;--border:#e5e3de;--text:#1a1a1a;--text-2:#5a5a5a;--text-3:#8a8a8a;--accent:#e63950;--accent-hover:#c72d41;--accent-dim:#e639501a;--accent-glow:#e6395033;--code-bg:#1a1b26;--code-text:#c0caf5;--tag-bg:#e6395014;--tag-text:#c72d41;--shadow:0 1px 3px #00000014, 0 4px 12px #0000000a;--shadow-hover:0 4px 12px #0000001f, 0 8px 24px #00000014;--radius:10px;--font-display:"Instrument Serif", Georgia, serif;--font-body:"Geist", system-ui, sans-serif;--font-mono:"DM Mono", "Fira Code", monospace}[data-theme=dark]{--bg:#0d0e14;--bg-2:#12131a;--surface:#161722;--border:#252635;--text:#e8e8f0;--text-2:#a0a0b8;--text-3:#606078;--accent:#e63950;--accent-hover:#f04d62;--accent-dim:#e639501f;--accent-glow:#e6395040;--code-bg:#0d0e14;--code-text:#c0caf5;--tag-bg:#e639501f;--tag-text:#f06b7d;--shadow:0 1px 3px #0000004d, 0 4px 12px #0003;--shadow-hover:0 4px 16px #0006, 0 8px 32px #0000004d}body{font-family:var(--font-body);background:var(--bg);color:var(--text);min-height:100vh;line-height:1.6;transition:background .2s,color .2s}::selection{background:var(--accent-dim);color:var(--accent)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-3)}.app.svelte-1n46o8q{flex-direction:column;min-height:100vh;display:flex}.main-content.svelte-1n46o8q{flex:1}.not-found.svelte-1n46o8q{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1rem;min-height:60vh;display:flex}.not-found.svelte-1n46o8q h1:where(.svelte-1n46o8q){font-size:6rem;font-family:var(--font-display);color:var(--accent);line-height:1}.not-found.svelte-1n46o8q p:where(.svelte-1n46o8q){color:var(--text-2);font-size:1.1rem}.btn-link.svelte-1n46o8q{color:var(--accent);border:1px solid var(--accent-dim);border-radius:6px;padding:.5rem 1rem;font-size:.9rem;text-decoration:none;transition:all .2s}.btn-link.svelte-1n46o8q:hover{background:var(--accent-dim)}
