:root{--bg: #f5f5f5;--fg: #1f1f1f;--muted: #635d97;--surface: #cfcfde;--surface-subtle: #ececef;--rule: rgba(0, 0, 0, .14);--rule-strong: #1f1f1f;--accent: #b25ae2;--accent-text: #1f1f1f;--code-bg: #282a36;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-serif: Charter, "Georgia Pro", Georgia, Cambria, "Times New Roman", Times, serif;--font-mono: "Fira Code", "SF Mono", Monaco, Consolas, "Courier New", monospace}:root[data-theme=dark-jeal]{--bg: #28212c;--fg: #f8f8f2;--muted: #9470a9;--surface: #504158;--surface-subtle: #322937;--rule: rgba(255, 255, 255, .14);--rule-strong: #f8f8f2;--accent: #b25ae2;--accent-text: #28212c;--code-bg: #282a36}@media(prefers-color-scheme:dark){:root:not([data-theme]){--bg: #28212c;--fg: #f8f8f2;--muted: #9470a9;--surface: #504158;--surface-subtle: #322937;--rule: rgba(255, 255, 255, .14);--rule-strong: #f8f8f2;--accent: #b25ae2;--accent-text: #28212c;--code-bg: #282a36}}*,*:before,*:after{box-sizing:border-box;border-radius:0}*{box-shadow:none}html{font-size:16px}html,body{margin:0;padding:0;background:var(--bg);color:var(--fg);font-family:var(--font-sans)}body{min-height:100vh;--strip: 6px;--header-h: 55px}body:before{content:"";position:fixed;top:0;left:0;right:0;height:var(--strip);background:var(--accent);z-index:100}::selection{background:var(--accent);color:var(--accent-text)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}a{color:var(--fg)}.container{max-width:764px;margin:0 auto;padding:calc(32px + var(--strip)) 32px 0}.site-header{position:sticky;top:var(--strip);z-index:50;background:var(--bg);border-bottom:1px solid var(--rule)}.site-header .container{display:flex;align-items:center;justify-content:space-between;gap:16px;height:calc(var(--header-h) - 1px);padding-block:0}.wordmark{text-decoration:none;color:var(--fg);display:inline-flex}.site-header .wordmark svg{height:calc(var(--header-h) - 10px);width:auto;display:block}.header-actions{display:flex;align-items:center;gap:8px;height:100%}.site-nav{display:flex;height:100%}.site-nav a{display:inline-flex;align-items:center;padding:0 12px;font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);text-decoration:none;border-bottom:2px solid transparent}.site-nav a:hover{color:var(--fg)}.site-nav a[aria-current=page]{color:var(--accent);border-bottom-color:var(--accent)}.menu-toggle{display:none;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:none;border:1px solid var(--rule);color:var(--muted);cursor:pointer}.menu-toggle:hover{color:var(--accent);border-color:var(--accent)}.menu-line{transform-box:fill-box;transform-origin:center;transition:transform .15s ease,opacity .15s ease}.menu-open .menu-line-1{transform:translateY(6px) rotate(45deg)}.menu-open .menu-line-2{opacity:0}.menu-open .menu-line-3{transform:translateY(-6px) rotate(-45deg)}@media(prefers-reduced-motion:reduce){.menu-line{transition:none}}.site-footer{margin-top:64px;border-top:1px solid var(--rule)}.site-footer .container{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:32px 24px;font-family:var(--font-mono);font-size:11.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.site-footer nav{display:flex;gap:24px}.site-footer a{color:var(--muted);text-decoration:none}.site-footer a:hover{color:var(--accent)}.meta{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:none;border:1px solid var(--rule);cursor:pointer;color:var(--muted);padding:0}.theme-toggle:hover{color:var(--accent);border-color:var(--accent)}.theme-toggle svg{display:block}.prose{max-width:700px;margin-inline:auto;font-family:var(--font-serif);font-size:17px;line-height:1.7}.prose h1{font-family:var(--font-sans);font-size:clamp(32px,5vw,56px);font-weight:800;line-height:1.05;letter-spacing:-.035em;text-wrap:balance;margin:0 0 .5em}.prose h2{font-family:var(--font-sans);font-size:22px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;border-top:2px solid var(--rule-strong);padding-top:1.2em;margin-top:2.2em;margin-bottom:.5em}.prose h3{font-family:var(--font-sans);font-size:18px;font-weight:700;margin-top:1.8em;margin-bottom:.4em}.prose p{margin:0 0 1.25em}.prose a{color:var(--fg);text-decoration:underline;text-decoration-color:var(--rule)}.prose a:hover{color:var(--accent);text-decoration-color:var(--accent)}.prose code{font-family:var(--font-mono);font-size:.85em;background:var(--surface);padding:0 .15ch}.prose pre{margin:0 0 1.25em}.prose pre code{background:none;padding:0;font-size:inherit}.prose details{margin:0 0 1.25em;border-bottom:1px solid var(--rule);background:var(--surface-subtle)}.prose summary{display:flex;align-items:baseline;gap:12px;font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);cursor:pointer;list-style:none;padding:10px 12px}.prose summary::-webkit-details-marker{display:none}.prose summary:before{content:"+";color:var(--accent)}.prose summary:hover{color:var(--accent)}.prose details[open] summary:before{content:"-"}.prose details[open]>:not(summary){margin-inline:12px;margin-top:12px}.prose details[open] summary{border-bottom:1px solid var(--rule)}.prose blockquote{margin:0 0 1.25em;padding-left:16px;border-left:2px solid var(--rule-strong);color:var(--muted)}.astro-code{font-family:var(--font-mono);font-size:13px;line-height:1.65;padding:1rem 1.25rem;overflow-x:auto;border-top:2px solid var(--rule-strong);background:var(--code-bg)!important;color:var(--shiki-light)}.astro-code span{color:var(--shiki-light);font-style:var(--shiki-light-font-style);font-weight:var(--shiki-light-font-weight);text-decoration:var(--shiki-light-text-decoration)}.prose table{width:100%;border-collapse:collapse;margin:0 0 1.25em;font-family:var(--font-sans);font-size:14px}.prose th{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);text-align:left;border-bottom:2px solid var(--rule-strong);padding:6px 12px 6px 0}.prose td{padding:6px 12px 6px 0;border-bottom:1px solid var(--rule);font-variant-numeric:tabular-nums}.prose th:last-child,.prose td:last-child{padding-right:0}.prose th[align=right],.prose td[align=right]{text-align:right}.footnotes{border-top:1px solid var(--rule);margin-top:3em;padding-top:1em;font-family:var(--font-serif);font-size:14px;color:var(--muted)}.footnotes ol{margin:0;padding-left:1.2em}.footnotes li{margin-bottom:.4em}.footnotes a{color:var(--muted)}.footnotes a:hover{color:var(--accent)}.prose blockquote code{background:none;padding:0}.rail{display:none}.prose h2,.prose h3{scroll-margin-top:calc(var(--strip) + var(--header-h) + 16px)}.rail-tags{display:none}@media(min-width:1220px){.post-body.with-rail{display:grid;grid-template-columns:700px 220px;column-gap:40px}.rail{display:block;grid-column:2;grid-row:1;min-width:0}.post-body.with-rail .prose{grid-column:1;grid-row:1}.rail-tags{display:block;margin-bottom:2rem;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.rail-tags-list{margin:0}.toc{position:sticky;top:calc(var(--strip) + var(--header-h) + 24px);max-height:calc(100vh - var(--strip) - var(--header-h) - 48px);overflow-y:auto}.toc-title{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);border-bottom:2px solid var(--rule-strong);padding-bottom:8px;margin-bottom:8px}.toc ul{list-style:none;margin:0;padding:0}.toc li{border-left:2px solid transparent}.toc-sub{padding-left:14px}.toc a{display:block;padding:6px 10px;font-family:var(--font-sans);font-size:13px;line-height:1.45;color:var(--muted);text-decoration:none}.toc a:hover{color:var(--fg)}.toc li[aria-current=location] a{color:var(--accent)}.toc li[aria-current=location]{border-left-color:var(--accent)}}.post-list{max-width:700px;margin-inline:auto}.post-list .post-row{display:grid;grid-template-columns:3.5rem 1fr auto;align-items:baseline;column-gap:16px;padding-block:28px;border-bottom:1px solid var(--rule);text-decoration:none}.post-list .post-row:hover{background:var(--surface)}.post-list .row-num{font-family:var(--font-mono);font-size:13px;color:var(--accent)}.post-list .row-title{font-family:var(--font-sans);font-size:26px;font-weight:700;letter-spacing:-.02em;color:var(--fg);text-decoration:none}.post-list .row-desc{font-family:var(--font-sans);font-size:15px;color:var(--muted);margin-top:.3em}.post-list .row-tags{font-family:var(--font-mono);font-size:11.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-top:.45em}.post-list .row-date{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);text-align:right;white-space:nowrap}.empty-state{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);text-align:center;padding-block:64px}.error-404{text-align:center;padding-block:96px}.error-404 .error-404-code{display:block;font-family:var(--font-mono);font-size:80px;font-weight:800;text-transform:uppercase;color:var(--accent);letter-spacing:-.035em}.error-404 .serif-line{font-family:var(--font-serif);font-size:18px;color:var(--muted);margin:1em 0 2em}.error-404 a{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--fg);text-decoration:none}.error-404 a:hover{color:var(--accent)}@media(max-width:768px){.menu-toggle{display:inline-flex}.site-nav{position:fixed;top:calc(var(--strip) + var(--header-h));left:0;right:0;bottom:0;height:auto;display:none;flex-direction:column;padding:8px 20px;background:var(--bg)}.menu-open .site-nav{display:flex}.site-nav a{display:flex;align-items:center;height:auto;padding:20px 8px;font-size:16px;border-bottom:1px solid var(--rule);border-left:2px solid transparent}.site-nav a[aria-current=page]{border-left-color:var(--accent);background:none}.container{padding:calc(32px + var(--strip)) 20px 0}.site-header .container{height:auto;padding:10px 20px}}@media(max-width:640px){.post-list .post-row{grid-template-columns:1fr;padding-block:20px}.post-list .row-num{display:none}.post-list .row-date{text-align:left;margin-top:.3em}}
