:root{color-scheme:light;--color-bg:#fbfaf7;--color-surface:#fff;--color-text:#1f2328;--color-muted:#646b75;--color-border:#e2ded6;--color-accent:#1f5fbf;--color-accent-soft:#e6eefb;--color-highlight:#fff6d6;--color-highlight-border:#e6c95c;--color-code-bg:#f3f1ec;--color-button:#1f5fbf;--color-button-text:#fff;--color-backdrop:#14161a8c;--color-terminal-bg:#1b1e23;--color-terminal-bar:#24282e;--color-terminal-border:#343a42;--color-terminal-text:#d7dce2;--color-terminal-muted:#8b949e;--color-terminal-prompt:#7ee787;--color-terminal-key:#79c0ff;--font-body:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-heading:var(--font-body);--font-mono:ui-monospace, "Cascadia Code", Consolas, "Liberation Mono", monospace;--width-page:68rem;--width-text:46rem;--radius:8px;--header-height:3.5rem}:root[data-theme=dark]{color-scheme:dark;--color-bg:#15171a;--color-surface:#1d2024;--color-text:#e6e8eb;--color-muted:#9aa2ad;--color-border:#30353c;--color-accent:#7fb0ff;--color-accent-soft:#1f2c42;--color-highlight:#2e2a17;--color-highlight-border:#8a7424;--color-code-bg:#22262b;--color-backdrop:#000000a6}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 1rem)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--color-bg);min-height:100vh;color:var(--color-text);font-family:var(--font-body);flex-direction:column;margin:0;line-height:1.6;display:flex}main{flex:1}h1,h2,h3,h4{font-family:var(--font-heading);line-height:1.25}a{color:var(--color-accent)}img{max-width:100%;height:auto}.container{width:100%;max-width:var(--width-page);margin:0 auto;padding:2rem 1rem 3rem}.container.narrow{max-width:var(--width-text)}.muted{color:var(--color-muted)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{z-index:20;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.5rem .75rem;position:absolute;top:.5rem;left:-999px}.skip-link:focus{left:.5rem}.page-title{margin:0 0 .25rem;font-size:2rem}.page-subtitle{color:var(--color-muted);margin:0 0 1.5rem}.empty{text-align:center;color:var(--color-muted);border:1px dashed var(--color-border);border-radius:var(--radius);padding:2rem 1rem}.site-header{z-index:10;background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0}.site-header-inner{max-width:var(--width-page);min-height:var(--header-height);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.25rem 1.5rem;margin:0 auto;padding:.5rem 1rem;display:flex}.brand{color:var(--color-text);font-size:1.1rem;font-weight:700;text-decoration:none}.site-nav{flex-wrap:wrap;align-items:center;gap:.25rem;display:flex}.nav-link{border-radius:var(--radius);color:var(--color-text);padding:.35rem .7rem;text-decoration:none}a.nav-link:hover,.nav-link[aria-current=page]{background:var(--color-accent-soft);color:var(--color-accent)}.nav-wip{color:var(--color-muted);cursor:default;user-select:none}.site-footer{border-top:1px solid var(--color-border);text-align:center;color:var(--color-muted);padding:1.25rem 1rem;font-size:.9rem}.hero{min-height:calc(100vh - var(--header-height));max-width:var(--width-page);grid-template-columns:minmax(0,1fr);align-content:center;align-items:center;gap:2.5rem;margin:0 auto;padding:2rem 1rem;display:grid}@media (width>=60rem){.hero.has-terminal{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}}.hero.centered{text-align:center}.hero.centered .hero-intro,.hero.centered .search-trigger{margin-left:auto;margin-right:auto}.hero.centered .hero-actions{justify-content:center}.scroll-hint{text-decoration:none}.wip{min-height:calc(100vh - var(--header-height) - 8rem);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.wip-mark{font-family:var(--font-mono);letter-spacing:.2em;color:var(--color-muted);margin:0 0 .5rem;font-size:3rem;font-weight:700}.wip p{margin:.35rem 0}.wip-progress{align-items:center;gap:.75rem;width:100%;max-width:30rem;margin-top:1.75rem;display:flex}.wip-label{font-family:var(--font-mono);font-weight:700}.wip-bar{background:var(--color-code-bg);border:1px solid var(--color-border);border-radius:999px;flex:1;min-width:0;height:.75rem;overflow:hidden}.wip-bar-fill{background:var(--color-accent);border-radius:999px;height:100%}.hero-status{background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;align-items:center;gap:.5rem;margin:0 0 1.25rem;padding:.3rem .85rem;font-size:.9rem;display:inline-flex}.status-dot{background:#2da44e;border-radius:50%;width:.5rem;height:.5rem}.hero-kicker{color:var(--color-muted);margin:0;font-size:1.2rem}.hero h1{margin:.25rem 0 .75rem;font-size:clamp(2rem,5.5vw,3.5rem)}.hero-role{min-height:1.6em;font-family:var(--font-mono);margin:0 0 1rem;font-size:1.1rem}.hero-role .prompt{color:var(--color-accent);margin-right:.5rem}.cursor{vertical-align:text-bottom;background:currentColor;width:.55em;height:1.1em;margin-left:.1em;animation:1.1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.cursor{animation:none}}.hero-intro{max-width:36rem;color:var(--color-muted);margin:0 0 1.5rem;font-size:1.05rem}.search-trigger{width:100%;max-width:36rem;font:inherit;text-align:left;color:var(--color-muted);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);cursor:text;align-items:center;gap:.6rem;padding:.75rem 1rem;display:flex}.search-trigger:hover{border-color:var(--color-accent)}.search-trigger span{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.search-icon{flex:none;width:1.1rem;height:1.1rem}kbd{font-family:var(--font-mono);color:var(--color-muted);background:var(--color-bg);border:1px solid var(--color-border);border-radius:5px;padding:.1rem .4rem;font-size:.75rem}.hero-actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1.5rem;display:flex}.button{color:var(--color-button-text);background:var(--color-button);border:1px solid var(--color-button);border-radius:var(--radius);padding:.6rem 1.1rem;font-weight:600;text-decoration:none;display:inline-block}.button.secondary{color:var(--color-text);background:var(--color-surface);border-color:var(--color-border)}.hero-links{border-left:1px solid var(--color-border);flex-wrap:wrap;gap:.25rem 1rem;padding-left:.75rem;display:flex}.terminal{font-family:var(--font-mono);color:var(--color-terminal-text);background:var(--color-terminal-bg);border:1px solid var(--color-terminal-border);border-radius:12px;font-size:.9rem;overflow:hidden}.terminal-bar{background:var(--color-terminal-bar);border-bottom:1px solid var(--color-terminal-border);align-items:center;gap:.4rem;padding:.7rem .9rem;display:flex;position:relative}.terminal-dot{border-radius:50%;width:.7rem;height:.7rem}.terminal-title{color:var(--color-terminal-muted);pointer-events:none;place-items:center;font-size:.8rem;display:grid;position:absolute;inset:0}.terminal-body{padding:1.25rem}.terminal-profile{border-bottom:1px solid var(--color-terminal-border);align-items:center;gap:.9rem;margin-bottom:1rem;padding-bottom:1rem;display:flex}.terminal-avatar{object-fit:cover;background:var(--color-terminal-bar);border:1px solid var(--color-terminal-border);border-radius:10px;flex:none;place-items:center;width:3.5rem;height:3.5rem;font-size:1.5rem;font-weight:700;display:grid}.terminal-name{font-family:var(--font-body);margin:0;font-size:1.1rem;font-weight:700}.terminal-handle{color:var(--color-terminal-key);margin:0;font-size:.8rem}.terminal-line{margin:.6rem 0 .2rem}.terminal-line:before,.terminal-end:before{content:"$";color:var(--color-terminal-prompt);margin-right:.75rem}.terminal-output{color:var(--color-terminal-muted);margin:0}.terminal-info{grid-template-columns:auto minmax(0,1fr);gap:.1rem 1rem;margin:0;display:grid}.terminal-info dt,.terminal-focus{color:var(--color-terminal-key)}.terminal-info dd{color:var(--color-terminal-muted);margin:0}.terminal-focus{flex-wrap:wrap;gap:.1rem 1rem;margin:0;padding:0;list-style:none;display:flex}.terminal-end{margin:.6rem 0 0}.theme-toggle{width:2.25rem;height:2.25rem;color:var(--color-text);border-radius:var(--radius);cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;padding:0;display:grid}.theme-toggle:hover{background:var(--color-accent-soft)}.theme-toggle svg{width:1.15rem;height:1.15rem}:root[data-theme=dark] .theme-toggle .icon-moon,:root:not([data-theme=dark]) .theme-toggle .icon-sun{display:none}.search-dialog{width:min(40rem,100vw - 2rem);max-height:min(34rem,100vh - 4rem);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;margin:4rem auto auto;padding:0;overflow:hidden;box-shadow:0 20px 60px #00000059}.search-dialog[open]{flex-direction:column;display:flex}.search-dialog::backdrop{background:var(--color-backdrop)}.search-head{border-bottom:1px solid var(--color-border);align-items:center;gap:.75rem;padding:.9rem 1.1rem;display:flex}.search-head input{min-width:0;font:inherit;color:var(--color-text);background:0 0;border:0;outline:none;flex:1;padding:.2rem 0;font-size:1.1rem}.search-close{cursor:pointer;background:0 0;border:0;padding:0}.search-body{flex:1;min-height:0;padding:.75rem .6rem;overflow-y:auto}.search-label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted);margin:.25rem .6rem .5rem;font-size:.75rem}.search-results{margin:0;padding:0;list-style:none}.search-result a{color:inherit;border-radius:10px;padding:.7rem .8rem;text-decoration:none;display:block}.search-result[aria-selected=true] a{background:var(--color-accent-soft)}.search-result-title{margin:0;font-weight:700}.search-result-meta{font-family:var(--font-mono);color:var(--color-muted);margin:.1rem 0 0;font-size:.8rem}.search-result-desc{margin:.3rem 0 0;font-size:.95rem}.search-empty{text-align:center;color:var(--color-muted);margin:0;padding:2rem 1rem}.search-foot{color:var(--color-muted);border-top:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;padding:.6rem 1.1rem;font-size:.85rem;display:flex}.search-keys{align-items:center;gap:.35rem;display:flex}.search-keys span{margin-right:.6rem}.section-title{margin:0 0 1rem;font-size:1.5rem}.featured{background:var(--color-highlight);border:1px solid var(--color-highlight-border);border-radius:var(--radius);margin-bottom:2.5rem;padding:1.25rem}.featured-label{letter-spacing:.08em;text-transform:uppercase;margin:0 0 .5rem;font-size:.8rem;font-weight:700}.featured .row{border:0;padding:0}.featured .row-title{font-size:1.5rem}.row-list{margin:0;padding:0;list-style:none}.row{border-top:1px solid var(--color-border);padding:.9rem 0}.row-list>li:first-child .row{border-top:0}.row-title{margin:0;font-size:1.1rem;font-weight:600}.row-title a{text-decoration:none}.row-title a:hover{text-decoration:underline}.row-desc{margin:.25rem 0 0}.meta{color:var(--color-muted);flex-wrap:wrap;gap:.15rem .6rem;margin:.25rem 0 0;font-size:.9rem;display:flex}.meta a{color:inherit}.badge{vertical-align:middle;background:var(--color-highlight);border:1px solid var(--color-highlight-border);border-radius:999px;margin-left:.5rem;padding:.05rem .5rem;font-size:.75rem;font-weight:700;display:inline-block}.tags{flex-wrap:wrap;gap:.35rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.tag{color:var(--color-accent);background:var(--color-accent-soft);border-radius:999px;padding:.1rem .6rem;font-size:.8rem;text-decoration:none;display:inline-block}.group{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:1rem}.group>summary{cursor:pointer;padding:.75rem 1rem;font-weight:700}.group .row-list{border-top:1px solid var(--color-border);padding:0 1rem}.count{color:var(--color-muted);margin-left:.4rem;font-weight:400}.table-wrap{overflow-x:auto}.archive-table{border-collapse:collapse;width:100%}.archive-table th,.archive-table td{text-align:left;border-bottom:1px solid var(--color-border);padding:.6rem .75rem}.archive-table th{color:var(--color-muted);font-size:.85rem}.archive-table td:first-child{white-space:nowrap;color:var(--color-muted)}.pagination{justify-content:space-between;align-items:center;gap:1rem;margin-top:1.5rem;display:flex}.friend-role{margin:1.25rem 0 .5rem;font-size:1.05rem}.friend-list{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.friend{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.9rem 1rem}.friend-name{font-weight:600}.friend-note{color:var(--color-muted);margin:.2rem 0 0;font-size:.9rem}.post{grid-template-columns:minmax(0,1fr);gap:2rem;display:grid}@media (width>=60rem){.post.has-toc{grid-template-columns:minmax(0,1fr) 15rem}.toc{top:calc(var(--header-height) + 1rem);max-height:calc(100vh - var(--header-height) - 2rem);order:2;align-self:start;position:sticky;overflow-y:auto}}.post-header h1{overflow-wrap:anywhere;margin:.25rem 0 .5rem;font-size:clamp(1.8rem,5vw,2.5rem)}.toc{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem;font-size:.9rem}.toc-title{letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted);margin:0 0 .5rem;font-size:.8rem;font-weight:700}.toc ol{margin:0;padding:0;list-style:none}.toc li{margin:.3rem 0}.toc li.depth-3{padding-left:1rem}.toc a{text-decoration:none}.prose{max-width:var(--width-text);overflow-wrap:break-word}.prose h2{border-bottom:1px solid var(--color-border);margin-top:2.25rem;padding-bottom:.3rem}.prose h3{margin-top:1.75rem}.prose pre{border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem;font-size:.9rem;line-height:1.5;overflow-x:auto}.prose code{font-family:var(--font-mono)}.prose :not(pre)>code{background:var(--color-code-bg);border-radius:4px;padding:.1em .35em;font-size:.9em}.prose blockquote{color:var(--color-muted);border-left:4px solid var(--color-border);margin:1rem 0;padding:.25rem 1rem}.prose table{border-collapse:collapse;max-width:100%;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--color-border);padding:.4rem .75rem}.prose img{border-radius:var(--radius)}:root[data-theme=dark] .astro-code,:root[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important}.post-nav{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:.75rem;margin-top:3rem;display:grid}.post-nav a{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.75rem 1rem;text-decoration:none}.post-nav .next{text-align:right}.post-nav small{color:var(--color-muted);display:block}.related{margin-top:2.5rem}
