.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-muted);cursor:pointer;transition:color var(--transition-base),background-color var(--transition-base);position:relative;overflow:hidden}.theme-toggle[data-astro-cid-x3pjskd3]:hover{color:var(--color-text);background:var(--color-accent-muted)}.theme-toggle[data-astro-cid-x3pjskd3]:focus-visible{outline:2px solid var(--color-text);outline-offset:2px}.icon[data-astro-cid-x3pjskd3]{position:absolute;top:50%;left:50%;margin-top:-9px;margin-left:-9px;transition:transform .5s cubic-bezier(.23,1,.32,1),opacity .5s cubic-bezier(.23,1,.32,1)}[data-theme=light] .icon-sun[data-astro-cid-x3pjskd3]{opacity:1;transform:scale(1) rotate(0)}[data-theme=light] .icon-moon[data-astro-cid-x3pjskd3]{opacity:0;transform:scale(0) rotate(90deg)}[data-theme=dark] .icon-sun[data-astro-cid-x3pjskd3]{opacity:0;transform:scale(0) rotate(-90deg)}[data-theme=dark] .icon-moon[data-astro-cid-x3pjskd3]{opacity:1;transform:scale(1) rotate(0)}@media(prefers-reduced-motion:reduce){.icon[data-astro-cid-x3pjskd3]{transition:none}}.site-nav[data-astro-cid-pux6a34n]{display:flex;align-items:center;border-bottom:1px solid var(--color-border);background:var(--color-bg-glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:var(--space-md) 0;margin-bottom:var(--space-md);position:relative}.nav-scroll[data-astro-cid-pux6a34n]{flex:1;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.nav-scroll[data-astro-cid-pux6a34n]::-webkit-scrollbar{display:none}.nav-list[data-astro-cid-pux6a34n]{display:flex;flex-wrap:nowrap;justify-content:center;gap:2.5rem;list-style:none;margin:0;padding:.5rem 1.5rem;min-width:max-content}.nav-item[data-astro-cid-pux6a34n]{margin:0;flex-shrink:0}.nav-link[data-astro-cid-pux6a34n]{color:var(--color-text-muted);font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;text-decoration:none;transition:color var(--transition-base),text-shadow var(--transition-base);white-space:nowrap;position:relative;padding-bottom:.5rem;display:inline-block}.nav-link[data-astro-cid-pux6a34n]:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--color-text);transform:scaleX(0);transform-origin:left;transition:transform var(--transition-base)}.nav-link[data-astro-cid-pux6a34n]:hover{color:var(--color-text);text-shadow:0 0 20px var(--color-accent-glow)}.nav-link[data-astro-cid-pux6a34n]:hover:after{transform:scaleX(1)}.nav-link--active[data-astro-cid-pux6a34n]{color:var(--color-text)}.nav-link--active[data-astro-cid-pux6a34n]:after{transform:scaleX(1);background:var(--color-text)}.nav-progress[data-astro-cid-pux6a34n]{position:absolute;left:0;right:0;bottom:-1px;height:1px;pointer-events:none;background:transparent;overflow:hidden}.nav-progress-bar[data-astro-cid-pux6a34n]{display:block;height:100%;width:0%;background:linear-gradient(90deg,var(--color-text-muted),var(--color-text));transition:width 80ms linear}.nav-end[data-astro-cid-pux6a34n]{flex-shrink:0;display:flex;align-items:center;padding:0 1rem;border-left:1px solid var(--color-border);background:transparent;position:relative}.nav-end[data-astro-cid-pux6a34n]:before{content:"";position:absolute;left:-32px;top:0;bottom:0;width:32px;background:linear-gradient(to right,transparent,var(--color-bg-glass));pointer-events:none}@media(max-width:768px){.nav-list[data-astro-cid-pux6a34n]{justify-content:flex-start;gap:2rem;padding:.5rem 1rem}.nav-link[data-astro-cid-pux6a34n]{font-size:.6875rem}.nav-end[data-astro-cid-pux6a34n]{padding:0 .75rem}.nav-end[data-astro-cid-pux6a34n]:before{left:-20px;width:20px}}.site-footer[data-astro-cid-sz7xmlte]{position:relative;margin-top:auto;background:transparent;padding:0;border-top:none;--wave-base-color: var(--color-text);--footer-bg: var(--color-bg-secondary)}.waves-container[data-astro-cid-sz7xmlte]{position:relative;width:100%;height:100px;margin-bottom:-1px;overflow:hidden;color:var(--wave-base-color)}.waves[data-astro-cid-sz7xmlte]{position:absolute;bottom:0;width:100%;height:100px;min-height:100px}.wave-layer[data-astro-cid-sz7xmlte]{fill:currentColor}.layer-1[data-astro-cid-sz7xmlte]{opacity:.05}.layer-2[data-astro-cid-sz7xmlte]{opacity:.1}.layer-3[data-astro-cid-sz7xmlte]{opacity:.2}.layer-4[data-astro-cid-sz7xmlte]{fill:var(--footer-bg);opacity:1}.parallax[data-astro-cid-sz7xmlte]>use[data-astro-cid-sz7xmlte]{animation:move-forever 25s cubic-bezier(.55,.5,.45,.5) infinite}.parallax[data-astro-cid-sz7xmlte]>use[data-astro-cid-sz7xmlte]:nth-child(1){animation-delay:-2s;animation-duration:7s}.parallax[data-astro-cid-sz7xmlte]>use[data-astro-cid-sz7xmlte]:nth-child(2){animation-delay:-3s;animation-duration:10s}.parallax[data-astro-cid-sz7xmlte]>use[data-astro-cid-sz7xmlte]:nth-child(3){animation-delay:-4s;animation-duration:13s}.parallax[data-astro-cid-sz7xmlte]>use[data-astro-cid-sz7xmlte]:nth-child(4){animation-delay:-5s;animation-duration:20s}@keyframes move-forever{0%{transform:translate3d(-90px,0,0)}to{transform:translate3d(85px,0,0)}}.footer-content-wrapper[data-astro-cid-sz7xmlte]{background-color:var(--footer-bg);padding:2.5rem 1.5rem;transition:background-color var(--transition-base)}.footer-container[data-astro-cid-sz7xmlte]{max-width:1100px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;position:relative;z-index:10}.copyright[data-astro-cid-sz7xmlte]{font-size:.8125rem;color:var(--color-text-secondary);letter-spacing:.01em}.footer-social[data-astro-cid-sz7xmlte]{display:flex;align-items:center;gap:.75rem}.footer-social[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{font-size:.8125rem;color:var(--color-text-secondary);text-decoration:none;transition:color var(--transition-base),text-shadow var(--transition-base);position:relative}.footer-social[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--color-text);transform:scaleX(0);transform-origin:left;transition:transform var(--transition-base)}.footer-social[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--color-text);text-shadow:none}.footer-social[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover:after{transform:scaleX(1)}.separator[data-astro-cid-sz7xmlte]{color:var(--color-border);font-size:.75rem}@media(max-width:768px){.waves[data-astro-cid-sz7xmlte]{height:60px;min-height:60px}.waves-container[data-astro-cid-sz7xmlte]{height:60px}}@media(max-width:640px){.footer-content-wrapper[data-astro-cid-sz7xmlte]{padding:2rem 1rem}.footer-container[data-astro-cid-sz7xmlte]{flex-direction:column;text-align:center;align-items:center;gap:1rem}}:root{--color-bg: #0a0a0a;--color-bg-secondary: #111111;--color-bg-elevated: #161616;--color-bg-glass: rgba(17, 17, 17, .85);--color-text: #f0f0f0;--color-text-secondary: #d4d4d4;--color-text-muted: #a3a3a3;--color-border: #222222;--color-border-subtle: #1a1a1a;--color-border-hover: #333333;--color-accent: #ffffff;--color-accent-hover: #d4d4d4;--color-accent-muted: rgba(255, 255, 255, .08);--color-accent-glow: rgba(255, 255, 255, .05);--gradient-text: linear-gradient(135deg, #f0f0f0 0%, #a8a8a8 100%);--gradient-subtle: linear-gradient(180deg, rgba(255, 255, 255, .02) 0%, transparent 100%);--gradient-card: linear-gradient(180deg, rgba(255, 255, 255, .03) 0%, transparent 50%);--gradient-border: linear-gradient(180deg, rgba(255, 255, 255, .08) 0%, rgba(255, 255, 255, .02) 100%);--gradient-shine: linear-gradient(135deg, rgba(255, 255, 255, .1) 0%, transparent 50%, rgba(255, 255, 255, .05) 100%);--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-family-headings: "Space Grotesk", sans-serif;--font-family-body: "Manrope", sans-serif;--font-family-code: "Menlo", "Monaco", "Courier New", monospace;--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: 2rem;--font-size-4xl: 3rem;--font-size-5xl: 4rem;--line-height-tight: 1.1;--line-height-normal: 1.6;--line-height-relaxed: 1.8;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--max-width-prose: 65ch;--max-width-content: 1280px;--border-radius-sm: .375rem;--border-radius-md: .5rem;--border-radius-lg: 1rem;--border-radius-xl: 1.5rem;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .3), 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .35), 0 2px 4px rgba(0, 0, 0, .2);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .4), 0 4px 8px rgba(0, 0, 0, .25);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .5), 0 8px 16px rgba(0, 0, 0, .3);--shadow-inner: inset 0 1px 2px rgba(0, 0, 0, .2);--shadow-glow: 0 0 40px rgba(255, 255, 255, .03);--shadow-card: 0 1px 3px rgba(0, 0, 0, .3), 0 4px 12px rgba(0, 0, 0, .15);--shadow-card-hover: 0 4px 16px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .2);--transition-micro: .1s cubic-bezier(.4, 0, .2, 1);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .4s cubic-bezier(.4, 0, .2, 1);--transition-spring: .5s cubic-bezier(.34, 1.56, .64, 1);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-out-back: cubic-bezier(.34, 1.56, .64, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1)}[data-theme=light]{--color-bg: #fafafa;--color-bg-secondary: #f5f5f5;--color-bg-elevated: #ffffff;--color-bg-glass: rgba(250, 250, 250, .9);--color-text: #171717;--color-text-secondary: #404040;--color-text-muted: #525252;--color-border: #e5e5e5;--color-border-subtle: #f0f0f0;--color-border-hover: #d4d4d4;--color-accent: #171717;--color-accent-hover: #404040;--color-accent-muted: rgba(23, 23, 23, .04);--color-accent-glow: rgba(23, 23, 23, .03);--gradient-text: linear-gradient(135deg, #171717 0%, #525252 100%);--gradient-subtle: linear-gradient(180deg, rgba(0, 0, 0, .01) 0%, transparent 100%);--gradient-card: linear-gradient(180deg, rgba(0, 0, 0, .01) 0%, transparent 50%);--gradient-border: linear-gradient(180deg, rgba(0, 0, 0, .05) 0%, rgba(0, 0, 0, .02) 100%);--gradient-shine: linear-gradient(135deg, rgba(0, 0, 0, .05) 0%, transparent 50%, rgba(0, 0, 0, .02) 100%);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .03);--shadow-md: 0 4px 12px rgba(0, 0, 0, .06), 0 2px 4px rgba(0, 0, 0, .04);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .08), 0 4px 8px rgba(0, 0, 0, .05);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .1), 0 8px 16px rgba(0, 0, 0, .06);--shadow-card: 0 1px 3px rgba(0, 0, 0, .06), 0 4px 12px rgba(0, 0, 0, .04);--shadow-card-hover: 0 4px 16px rgba(0, 0, 0, .08), 0 8px 24px rgba(0, 0, 0, .06);--shadow-glow: 0 0 40px rgba(0, 0, 0, .02)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}body{background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-family-body);font-size:var(--font-size-base);line-height:var(--line-height-normal);min-height:100vh;transition:background-color var(--transition-base),color var(--transition-base)}a{color:var(--color-accent);text-decoration:none;transition:color .2s ease}a:hover{color:var(--color-accent-hover)}a:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}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{padding:var(--space-md);border-radius:var(--border-radius-md);overflow-x:auto;white-space:pre!important;word-wrap:normal!important;position:relative}.copy-code-button{position:absolute;top:.5rem;right:.5rem;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text-muted);cursor:pointer;opacity:0;transition:opacity .2s ease,background-color .2s ease,color .2s ease}pre:hover .copy-code-button,.copy-code-button:focus-visible{opacity:1}.copy-code-button:hover{background:var(--color-bg-elevated);color:var(--color-text);border-color:var(--color-text-muted)}.copy-code-button.copied{color:#10b981;border-color:#10b981}@media(hover:hover){.copy-code-button:hover:after{content:"Copy";position:absolute;top:50%;right:100%;transform:translateY(-50%);margin-right:.5rem;padding:.25rem .5rem;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);font-size:.75rem;color:var(--color-text);pointer-events:none;opacity:0;animation:tooltip-fade .2s ease forwards}}@keyframes tooltip-fade{0%{opacity:0;transform:translateY(-50%) translate(5px)}to{opacity:1;transform:translateY(-50%) translate(0)}}@media(hover:none){.copy-code-button{opacity:1;background:var(--color-bg-secondary);border-color:var(--color-border-subtle)}}pre code{background-color:transparent;padding:0}[data-theme=dark] pre.astro-code,[data-theme=dark] pre.astro-code span{background-color:#111!important;color:var(--shiki-dark)!important}.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-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--color-text);margin-top:0;margin-bottom:var(--space-md)}h1{font-size:var(--font-size-5xl);letter-spacing:-.02em;margin-bottom:var(--space-lg)}h2{font-size:var(--font-size-4xl);letter-spacing:-.01em}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)}blockquote{border-left:4px solid var(--color-border-hover);padding-left:var(--space-lg);margin:var(--space-xl) 0;font-style:italic}blockquote p{margin-bottom:var(--space-md);color:var(--color-text)}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:2.5rem 1.5rem}.page-header{margin-bottom:3rem}.page-title{font-size:2.25rem;margin-bottom:1rem;font-weight:700;letter-spacing:-.02em;line-height:1.2}.page-intro{font-size:1.0625rem;line-height:1.7;color:var(--color-text-secondary);max-width:700px}.tag{font-size:.75rem;padding:.25rem .625rem;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text-secondary);font-weight:500;transition:border-color var(--transition-base),color var(--transition-base)}.tag:hover{border-color:var(--color-border-hover);color:var(--color-text)}.tags-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem}.card-list{display:flex;flex-direction:column;gap:2rem}.card-list--compact{gap:1.5rem}.empty-state{color:var(--color-text-muted);font-style:italic;font-size:1rem;padding:2rem 0}@media(max-width:768px){.page-container{padding:2rem 1rem}.page-title{font-size:1.75rem}.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}@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}}
