.theme-toggle[data-astro-cid-l6lhmie6]{border:1px solid var(--border);border-radius:var(--radius);width:2rem;height:2rem;color:var(--muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;margin-left:.25rem;padding:0;transition:color .15s,background .15s,border-color .15s;display:inline-flex}.theme-toggle[data-astro-cid-l6lhmie6]:hover{color:var(--text);background:var(--accent-soft);border-color:var(--border-strong)}.theme-toggle[data-astro-cid-l6lhmie6]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.theme-toggle[data-astro-cid-l6lhmie6] svg[data-astro-cid-l6lhmie6]{width:1.05rem;height:1.05rem}[data-theme=dark] .icon-moon[data-astro-cid-l6lhmie6],[data-theme=light] .icon-sun[data-astro-cid-l6lhmie6]{display:none}[data-theme=dark] .icon-sun[data-astro-cid-l6lhmie6],[data-theme=light] .icon-moon[data-astro-cid-l6lhmie6]{display:block}:root,[data-theme=dark]{--navy:#102838;--steel:#345068;--bg:#0c1822;--bg-elevated:#122533;--text:#e8eef2;--text-soft:#c5d0d8;--muted:#8fa3b0;--accent:#8eb4c8;--accent-hover:#a8c8d8;--accent-soft:#163042;--border:#1e3344;--border-strong:#2a4558;--code-bg:#152838;--mark:#5a7a90;--font-sans:"Source Sans 3", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--max-width:40rem;--radius:.5rem;--shadow:0 1px 2px #00000040, 0 8px 24px #0000004d;--color-scheme:dark}[data-theme=light]{--bg:#f4f7f9;--bg-elevated:#fff;--text:#102838;--text-soft:#2a3640;--muted:#5a6e7c;--accent:#102838;--accent-hover:#345068;--accent-soft:#e4ebf0;--border:#d5dee5;--border-strong:#b8c5cf;--code-bg:#e8eef2;--mark:#345068;--shadow:0 1px 2px #1028380f, 0 4px 16px #10283814;--color-scheme:light}*,:before,:after{box-sizing:border-box}html{font-family:var(--font-sans);color:var(--text);background:var(--bg);color-scheme:var(--color-scheme);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:1.0625rem;line-height:1.65}body{flex-direction:column;min-height:100vh;margin:0;display:flex}::selection{background:var(--accent-soft);color:var(--text)}.skip-link{z-index:100;position:absolute;left:-9999px}.skip-link:focus{background:var(--accent);color:var(--bg-elevated);border-radius:var(--radius);padding:.5rem 1rem;font-weight:500;text-decoration:none;top:1rem;left:1rem}header{z-index:10;background:var(--bg);background:color-mix(in srgb, var(--bg) 88%, transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);position:sticky;top:0}nav.site-nav{max-width:calc(var(--max-width) + 3rem);justify-content:space-between;align-items:center;gap:1rem;margin:0 auto;padding:.65rem 1.5rem;display:flex}.site-name{font-family:var(--font-sans);color:var(--text);letter-spacing:-.01em;font-size:1rem;font-weight:600;text-decoration:none}.site-name:hover{color:var(--accent)}.nav-links{align-items:center;gap:.125rem;display:flex}.nav-links a{color:var(--muted);border-radius:var(--radius);padding:.25rem .55rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:color .15s,background .15s}.nav-links a:hover{color:var(--text);background:var(--accent-soft)}.nav-links a.active{color:var(--accent);background:var(--accent-soft)}main{max-width:calc(var(--max-width) + 3rem);flex:1;width:100%;margin:0 auto;padding:3rem 1.5rem 5rem}h1,h2,h3{font-family:var(--font-sans);letter-spacing:-.02em;color:var(--text);font-weight:600;line-height:1.25}h1{margin:0 0 1.25rem;font-size:clamp(1.875rem,4vw,2.375rem)}h2{margin:0 0 1rem;font-size:1.25rem}h3{margin:0 0 .75rem;font-size:1.0625rem}p{color:var(--text-soft);margin:0 0 1.125rem}p:last-child{margin-bottom:0}strong{color:var(--text);font-weight:600}a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:1px;transition:color .15s}a:hover{color:var(--accent-hover)}a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}ul,ol{color:var(--text-soft);margin:0 0 1.125rem;padding-left:1.375rem}li{margin-bottom:.375rem}li::marker{color:var(--mark)}code{font-family:var(--font-mono);background:var(--code-bg);border:1px solid var(--border);border-radius:.3rem;padding:.15rem .4rem;font-size:.84em}pre{font-family:var(--font-mono);background:var(--code-bg);border:1px solid var(--border);border-radius:var(--radius);margin:0 0 1.25rem;padding:1rem 1.125rem;font-size:.875rem;line-height:1.55;overflow-x:auto}pre code{font-size:inherit;background:0 0;border:none;padding:0}blockquote{border-left:3px solid var(--mark);color:var(--muted);margin:1.5rem 0;padding:.25rem 0 .25rem 1.25rem;font-style:italic}hr{border:none;border-top:1px solid var(--border);margin:2.5rem 0}.section-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.5rem;padding-bottom:.75rem;display:flex}.section-heading h2{margin:0}.text-link{white-space:nowrap;font-size:.9375rem;font-weight:500;text-decoration:none}.text-link:hover{text-decoration:underline}.post-list{margin:0;padding:0;list-style:none}.post-list li{border-bottom:1px solid var(--border);margin-bottom:0;padding:1.375rem 0}.post-list li:first-child{padding-top:0}.post-list li:last-child{border-bottom:none;padding-bottom:0}.post-list a{color:inherit;margin-bottom:.35rem;text-decoration:none;display:block}.post-list a:hover .post-title{color:var(--accent)}.post-title{font-family:var(--font-sans);color:var(--text);font-size:1.125rem;font-weight:600;transition:color .15s;display:block}.post-description{color:var(--muted);margin-top:.25rem;font-size:.9375rem;line-height:1.5;display:block}time{letter-spacing:.02em;text-transform:uppercase;color:var(--muted);font-size:.8125rem;font-weight:500}.page-intro{margin-bottom:3.5rem}.page-intro h1{margin-bottom:1.5rem}.page-intro p{font-size:1.0625rem}.post-header{border-bottom:1px solid var(--border);margin-bottom:2.25rem;padding-bottom:1.5rem}.post-header h1{margin-bottom:.75rem}.post-content h2{margin-top:2.25rem;margin-bottom:.75rem}.post-content h3{margin-top:1.75rem}.back-link{border-top:1px solid var(--border);margin-top:3rem;padding-top:1.5rem;font-size:.9375rem}.back-link a{font-weight:500;text-decoration:none}.back-link a:hover{text-decoration:underline}footer{border-top:1px solid var(--border);padding:1.25rem 1.5rem 1.75rem}.footer-inner{max-width:calc(var(--max-width) + 3rem);justify-content:center;margin:0 auto;display:flex}.footer-links{gap:1.25rem;display:flex}.footer-links a{color:var(--muted);font-size:.8125rem;font-weight:500;text-decoration:none}.footer-links a:hover{color:var(--accent)}@media (width<=480px){main{padding-top:2.25rem}nav.site-nav{flex-direction:column;align-items:flex-start;gap:.75rem}.nav-links{width:100%}}
