:root{--bg: #0a0a0a;--bg-elev: #070708;--fg: #ebebeb;--fg-muted: rgba(235, 235, 235, .55);--fg-faint: rgba(235, 235, 235, .4);--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .18);--border-hover: rgba(255, 255, 255, .35);--accent: #ffffff;--font-serif: "IBM Plex Serif", "IBM Plex Sans SC", ui-serif, Georgia, serif;--font-sans: "IBM Plex Sans", "IBM Plex Sans SC", ui-sans-serif, system-ui, sans-serif;--font-cjk-serif: "IBM Plex Serif", "Noto Serif SC", ui-serif, Georgia, serif;--font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--sidebar-w: 280px;--sidebar-w-md: 240px;--content-w: 700px;--content-w-wide: 980px;--topbar-h: 56px;--t-fast: .15s ease;--t-base: .2s ease}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{min-height:100vh}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}img,picture,video{max-width:100%;display:block}button{font:inherit;color:inherit;background:transparent;border:none;cursor:pointer;padding:0}:focus-visible{outline:1px solid var(--accent);outline-offset:2px}::selection{background:var(--fg);color:var(--bg)}.prose{font-size:17px;line-height:1.7;color:var(--fg)}.prose{font-family:"IBM Plex Serif","Noto Serif SC",Georgia,serif}.prose p{line-height:1.8;margin:0 0 1.4em}.prose h2{font-family:var(--font-serif);font-weight:600;font-size:1.6em;line-height:1.2;margin:2em 0 .6em;letter-spacing:-.01em}.prose h3{font-family:var(--font-serif);font-weight:600;font-size:1.25em;margin:1.6em 0 .4em}.prose a{border-bottom:1px solid var(--border-strong)}.prose a:hover{border-bottom-color:var(--accent);text-decoration:none}.prose blockquote{margin:1.5em 0;padding:.2em 0 .2em 1.2em;border-left:2px solid var(--accent);font-style:italic;color:var(--fg-muted)}.prose code{font-family:var(--font-mono);font-size:.9em;background:var(--bg-elev);padding:.1em .35em;border-radius:2px}.prose pre{font-family:var(--font-mono);font-size:14px;background:var(--bg-elev);border:1px solid var(--border);border-radius:3px;padding:16px 18px;overflow-x:auto;margin:1.5em 0}.prose pre code{background:transparent;padding:0}.prose figure{margin:1.8em 0}.prose figure img{width:100%;height:auto;border-radius:2px}.prose figcaption{font-family:var(--font-mono);font-size:12px;color:var(--fg-muted);margin-top:10px;letter-spacing:.02em}.prose figure.wide{margin-inline:calc((var(--content-w) - var(--content-w-wide)) / 2);max-width:var(--content-w-wide)}@media(max-width:1320px){.prose figure.wide{margin-inline:0;max-width:100%}}.prose hr{border:none;border-top:1px solid var(--border);margin:2.4em 0}.sidebar[data-astro-cid-ssfzsv2f]{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-w);background:var(--bg-elev);border-right:1px solid var(--border);overflow-y:auto;z-index:20}.inner[data-astro-cid-ssfzsv2f]{padding:32px 28px 28px;display:flex;flex-direction:column;min-height:100%}.brand-link[data-astro-cid-ssfzsv2f]{display:block;margin-bottom:22px}.brand-link[data-astro-cid-ssfzsv2f]:hover{text-decoration:none}.brand[data-astro-cid-ssfzsv2f]{font-family:var(--font-serif);font-weight:700;font-size:28px;letter-spacing:-.015em;line-height:1;margin:0 0 8px;color:var(--fg)}.tagline[data-astro-cid-ssfzsv2f]{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;color:var(--fg-faint)}.about[data-astro-cid-ssfzsv2f]{font-size:13px;line-height:1.55;color:var(--fg-muted);margin:0 0 24px}.group[data-astro-cid-ssfzsv2f]{margin-bottom:22px;display:flex;flex-direction:column}.label[data-astro-cid-ssfzsv2f]{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-faint);margin-bottom:10px}.link[data-astro-cid-ssfzsv2f]{font-size:14px;color:var(--fg);padding:4px 0;transition:color var(--t-base);text-align:left;display:flex;align-items:center;justify-content:space-between;gap:10px}.link[data-astro-cid-ssfzsv2f]:hover{color:var(--accent);text-decoration:none}.tag-count[data-astro-cid-ssfzsv2f]{font-family:var(--font-mono);font-size:11px;color:var(--fg-faint)}.kbd[data-astro-cid-ssfzsv2f]{font-family:var(--font-mono);font-size:10px;color:var(--fg-faint);border:1px solid var(--border-strong);border-radius:3px;padding:2px 5px}.search-trigger[data-astro-cid-ssfzsv2f]{width:100%;cursor:pointer}.footer[data-astro-cid-ssfzsv2f]{margin-top:auto;padding-top:20px;border-top:1px solid var(--border);font-family:var(--font-mono);font-size:10px;color:var(--fg-faint);letter-spacing:.06em}.topbar[data-astro-cid-xekifi7y]{display:none;position:sticky;top:0;z-index:30;height:var(--topbar-h);padding:0 18px;background:var(--bg);border-bottom:1px solid var(--border);align-items:center;justify-content:space-between}.brand[data-astro-cid-xekifi7y]{font-family:var(--font-serif);font-weight:700;font-size:18px;letter-spacing:-.01em}.nav-toggle[data-astro-cid-xekifi7y],.search-btn[data-astro-cid-xekifi7y]{color:var(--fg);width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:3px}.nav-toggle[data-astro-cid-xekifi7y]:hover,.search-btn[data-astro-cid-xekifi7y]:hover{background:var(--bg-elev)}@media(max-width:699px){.topbar[data-astro-cid-xekifi7y]{display:flex}}.modal[data-astro-cid-qk3db3zz]{position:fixed;inset:0;z-index:40;display:flex;align-items:flex-start;justify-content:center;padding:12vh 20px 20px}.modal[data-astro-cid-qk3db3zz][hidden]{display:none}.backdrop[data-astro-cid-qk3db3zz]{position:absolute;inset:0;background:#0009;backdrop-filter:blur(8px);animation:fade .15s ease}.panel[data-astro-cid-qk3db3zz]{position:relative;width:min(640px,100%);background:var(--bg-elev);border:1px solid var(--border);border-radius:4px;overflow:hidden;box-shadow:0 24px 80px #000000b3;animation:slide .15s ease;max-height:80vh;display:flex;flex-direction:column}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes slide{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.input-wrap[data-astro-cid-qk3db3zz]{display:flex;align-items:center;gap:10px;padding:18px 20px;border-bottom:1px solid var(--border);color:var(--fg-muted)}.input-wrap[data-astro-cid-qk3db3zz] input[data-astro-cid-qk3db3zz]{flex:1;background:transparent;border:none;outline:none;color:var(--fg);font-family:var(--font-sans);font-size:16px}.kbd[data-astro-cid-qk3db3zz]{font-family:var(--font-mono);font-size:10px;color:var(--fg-faint);border:1px solid var(--border-strong);border-radius:3px;padding:2px 5px}.results[data-astro-cid-qk3db3zz]{overflow-y:auto;padding:8px 0}.results[data-astro-cid-qk3db3zz] .notice{padding:16px 20px;font-family:var(--font-mono);font-size:12px;color:var(--fg-muted);margin:0}.results[data-astro-cid-qk3db3zz] .notice code{background:var(--bg);padding:1px 6px;border-radius:2px}.results[data-astro-cid-qk3db3zz] .hit{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:2px 10px;padding:12px 20px;border-bottom:1px solid var(--border);color:var(--fg);text-decoration:none}.results[data-astro-cid-qk3db3zz] .hit:last-child{border-bottom:none}.results[data-astro-cid-qk3db3zz] .hit:hover{background:var(--bg);text-decoration:none}.results[data-astro-cid-qk3db3zz] .hit-title{font-family:var(--font-serif);font-weight:600;font-size:15px}.results[data-astro-cid-qk3db3zz] .hit-excerpt{font-size:13px;color:var(--fg-muted);grid-column:1 / 2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.results[data-astro-cid-qk3db3zz] .hit-date{grid-column:2 / 3;grid-row:1 / 2;font-family:var(--font-mono);font-size:11px;color:var(--fg-faint)}.results[data-astro-cid-qk3db3zz] mark{background:transparent;color:var(--fg);border-bottom:1px solid var(--accent)}.page{padding:40px 40px 80px;margin-left:var(--sidebar-w);max-width:100%}@media(max-width:1099px){.page{margin-left:var(--sidebar-w-md);padding:32px 28px 64px}.sidebar{width:var(--sidebar-w-md)}}@media(max-width:699px){.page{margin-left:0;padding:24px 20px 64px}.sidebar{transform:translate(-100%);transition:transform var(--t-base)}.sidebar.is-open{transform:translate(0);box-shadow:0 12px 48px #0009}body.sidebar-open{overflow:hidden}}
