.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}.theme-toggle[data-astro-cid-x3pjskd3]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:transparent;border:none;border-radius:var(--border-radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast);flex-shrink:0}.theme-toggle[data-astro-cid-x3pjskd3]:hover{color:var(--color-text);background:var(--color-bg-secondary)}.theme-toggle[data-astro-cid-x3pjskd3]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.icon-sun[data-astro-cid-x3pjskd3]{display:none}.icon-moon[data-astro-cid-x3pjskd3],[data-theme=light] .icon-sun[data-astro-cid-x3pjskd3]{display:block}[data-theme=light] .icon-moon[data-astro-cid-x3pjskd3]{display:none}.site-nav[data-astro-cid-pux6a34n]{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem 2rem;border-bottom:1px solid var(--color-border);background:var(--color-bg);padding:.75rem clamp(1rem,4vw,2rem);margin-bottom:var(--space-md)}.nav-brand[data-astro-cid-pux6a34n]{flex-shrink:0;color:var(--color-text);font-family:var(--font-display);font-size:1.125rem;font-weight:600;text-decoration:none}.nav-brand[data-astro-cid-pux6a34n]:hover{color:var(--color-text)}.nav-list[data-astro-cid-pux6a34n]{flex:1;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:0 1.5rem;min-width:0;list-style:none;margin:0;padding:0}.nav-item[data-astro-cid-pux6a34n]{margin:0}.nav-link[data-astro-cid-pux6a34n]{display:inline-block;padding:.5rem 0;color:var(--color-text-secondary);font-size:.9375rem;line-height:1.4;text-decoration:none;transition:color .2s ease}.nav-link[data-astro-cid-pux6a34n]:hover{color:var(--color-accent)}.nav-link--active[data-astro-cid-pux6a34n]{color:var(--color-text);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.4em}.nav-end[data-astro-cid-pux6a34n]{flex-shrink:0;display:flex;align-items:center}@media(max-width:720px){.nav-brand[data-astro-cid-pux6a34n]{flex:1}.nav-end[data-astro-cid-pux6a34n]{order:2}.nav-list[data-astro-cid-pux6a34n]{order:3;flex:0 0 100%;justify-content:flex-start;gap:0 1.125rem}}.site-footer[data-astro-cid-sz7xmlte]{border-top:1px solid var(--color-border);padding:2rem clamp(1rem,4vw,2rem);margin-top:auto}.footer-container[data-astro-cid-sz7xmlte]{max-width:68rem;margin:0 auto;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem 2rem}.copyright[data-astro-cid-sz7xmlte]{display:block;font-size:.875rem;color:var(--color-text-secondary)}.ai-note[data-astro-cid-sz7xmlte]{max-width:34rem;margin:.35rem 0 0;color:var(--color-text-muted);font-size:.875rem;line-height:1.55}.footer-social[data-astro-cid-sz7xmlte]{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem}.footer-social[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{font-size:.875rem;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}:root{--color-bg: #f3f5f8;--color-bg-secondary: #e9edf2;--color-bg-elevated: #ffffff;--color-text: #1c2129;--color-text-secondary: #4a5361;--color-text-muted: #636c79;--color-border: #cfd6df;--color-border-subtle: #dfe4ea;--color-accent: #1f4fd8;--color-accent-hover: #173ba6;--color-accent-muted: rgba(31, 79, 216, .1);--font-display: Charter, "Bitstream Charter", "Sitka Text", Cambria, Georgia, serif;--font-body: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--space-4xl: 6rem;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-size-5xl: 3rem;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--max-width-prose: 65ch;--max-width-content: 1200px;--border-radius-sm: .25rem;--border-radius-md: .5rem;--border-radius-lg: 1rem;--shadow-sm: 0 1px 2px rgba(28, 33, 41, .06);--shadow-md: 0 4px 6px rgba(28, 33, 41, .08);--shadow-lg: 0 10px 25px rgba(28, 33, 41, .1);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease}[data-theme=dark]{--color-bg: #14171c;--color-bg-secondary: #1b1f26;--color-bg-elevated: #232830;--color-text: #e6e9ee;--color-text-secondary: #aab2bd;--color-text-muted: #8a93a0;--color-border: #2f3640;--color-border-subtle: #252b33;--color-accent: #8fb0ff;--color-accent-hover: #b3c8ff;--color-accent-muted: rgba(143, 176, 255, .14);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .4)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--font-size-base);line-height:var(--line-height-normal);min-height:100vh;overflow-wrap:break-word}a{color:var(--color-accent);text-decoration:none;transition:color .2s ease}a:hover{color:var(--color-accent-hover)}a:focus-visible,button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}img{max-width:100%;height:auto;display:block}ul,ol{list-style-position:inside}code{font-family:ui-monospace,JetBrains Mono,Cascadia Code,Menlo,Consolas,Courier New,monospace;font-size:.9em;background-color:var(--color-bg-secondary);padding:.125rem .25rem;border-radius:var(--border-radius-sm)}pre{background-color:var(--color-bg-secondary);padding:var(--space-md);border-radius:var(--border-radius-md);overflow-x:auto}pre code{background-color:transparent;padding:0}.container{max-width:var(--max-width-content);margin-left:auto;margin-right:auto;padding-left:var(--space-lg);padding-right:var(--space-lg)}.prose{max-width:var(--max-width-prose)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text);margin-top:0;margin-bottom:var(--space-md);text-wrap:balance}h1{font-size:var(--font-size-5xl);line-height:1.1;letter-spacing:-.01em;margin-bottom:var(--space-lg)}h2{font-size:var(--font-size-4xl);letter-spacing:-.005em}h3{font-size:var(--font-size-3xl)}h4{font-size:var(--font-size-2xl)}h5{font-size:var(--font-size-xl)}h6{font-size:var(--font-size-lg)}.prose h2{margin-top:var(--space-3xl);margin-bottom:var(--space-lg)}.prose h3{margin-top:var(--space-2xl)}.prose h4{margin-top:var(--space-xl)}.prose h5,.prose h6{margin-top:var(--space-lg)}p{margin-bottom:var(--space-lg);line-height:var(--line-height-relaxed);color:var(--color-text-secondary)}p:last-child{margin-bottom:0}.lead{font-size:var(--font-size-xl);line-height:var(--line-height-relaxed);color:var(--color-text);margin-bottom:var(--space-xl)}ul,ol{margin-bottom:var(--space-lg);padding-left:var(--space-xl);color:var(--color-text-secondary)}ul{list-style-type:disc}ol{list-style-type:decimal}li{margin-bottom:var(--space-sm);line-height:var(--line-height-relaxed)}li:last-child{margin-bottom:0}ul ul,ol ol,ul ol,ol ul{margin-top:var(--space-sm);margin-bottom:var(--space-sm)}time{font-variant-numeric:tabular-nums}blockquote{border-left:2px solid var(--color-border);padding-left:var(--space-lg);margin:var(--space-xl) 0;font-style:italic;color:var(--color-text-secondary)}blockquote p{margin-bottom:var(--space-md)}hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-3xl) 0}strong,b{font-weight:var(--font-weight-semibold);color:var(--color-text)}em,i{font-style:italic}small{font-size:var(--font-size-sm);color:var(--color-text-muted)}.prose a{color:var(--color-accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;transition:all .2s ease}.prose a:hover{color:var(--color-accent-hover);text-decoration-thickness:2px}.prose code{font-size:var(--font-size-sm)}.prose pre{margin:var(--space-xl) 0}table{width:100%;border-collapse:collapse;margin:var(--space-xl) 0}th,td{padding:var(--space-sm) var(--space-md);text-align:left;border-bottom:1px solid var(--color-border)}th{font-weight:var(--font-weight-semibold);color:var(--color-text)}td{color:var(--color-text-secondary)}.text-muted{color:var(--color-text-muted)}.text-secondary{color:var(--color-text-secondary)}.text-primary{color:var(--color-text)}.text-center{text-align:center}.text-right{text-align:right}@media(max-width:768px){h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}.lead{font-size:var(--font-size-lg)}}.page-container{max-width:800px;margin:0 auto;padding:2rem 1.5rem}.page-header{margin-bottom:3rem}.page-title{font-size:2.5rem;margin-bottom:1rem;font-weight:700;letter-spacing:0}.page-intro{font-size:1.125rem;line-height:1.7;color:var(--color-text-secondary);max-width:700px}.tag{font-size:.75rem;padding:.25rem .625rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-secondary)}.tags-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.card-list{display:flex;flex-direction:column;gap:2rem}.card-list--compact{gap:1.5rem}.state-mark{display:inline-block;flex-shrink:0;width:.75rem;height:.75rem;border:1.5px solid currentColor}.state-mark--built{background:currentColor}.state-mark--progress{box-shadow:inset .375rem 0 0 currentColor}.state-mark--planned{border-style:dashed}.state-mark--archived{color:var(--color-text-muted)}.empty-state{color:var(--color-text-secondary);font-style:italic;font-size:1.125rem}@media(max-width:768px){.page-container{padding:1.5rem 1rem}.page-title{font-size:2rem}.page-intro{font-size:1rem}.tags-list{gap:.375rem}.tag{font-size:.6875rem;padding:.1875rem .5rem}}body{display:flex;flex-direction:column;min-height:100vh}main[data-astro-cid-37fxchfa]{flex:1}.site-header[data-astro-cid-37fxchfa]{position:sticky;top:0;z-index:100}@media(max-width:720px){.site-header[data-astro-cid-37fxchfa]{position:static}}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}
