/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,"SF Mono",Menlo,Monaco,Consolas,monospace;--spacing:.25rem;--shadow-md:0 4px 12px oklch(0% 0 0/.12);--shadow-lg:0 8px 24px oklch(0% 0 0/.16);--ease-in-out:cubic-bezier(.4,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-primary:oklch(55% .25 265);--color-primary-hover:oklch(48% .25 265);--color-secondary:oklch(42% .12 175);--color-secondary-hover:oklch(35% .12 175);--color-accent:oklch(70% .24 50);--color-success:oklch(42% .12 145);--color-success-muted:oklch(50% .15 145);--color-surface:oklch(99% 0 0);--color-surface-elevated:oklch(100% 0 0);--color-surface-muted:oklch(96% .01 265);--color-text:oklch(15% .02 265);--color-text-muted:oklch(40% .02 265);--color-text-inverted:oklch(98% 0 0);--color-border:oklch(88% .01 265);--color-border-focus:oklch(55% .25 265);--color-code-bg:oklch(96% .01 265);--font-display:"Atkinson Hyperlegible",system-ui,-apple-system,sans-serif;--font-body:"Atkinson Hyperlegible",system-ui,-apple-system,sans-serif;--spacing-content:720px;--spacing-wide:1200px;--ease-bounce:cubic-bezier(.34,1.56,.64,1);--ease-smooth:cubic-bezier(.4,0,.2,1);--shadow-glow:0 0 40px oklch(55% .25 265/.3)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);background-color:var(--color-surface);color:var(--color-text);transition:background-color .3s var(--ease-smooth),color .3s var(--ease-smooth)}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);color:var(--color-text);font-weight:700;line-height:1.2}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.5rem}h4{font-size:1.25rem}a{color:var(--color-primary);transition:color .2s var(--ease-smooth);text-decoration:none}a:hover{color:var(--color-primary-hover)}code{font-family:var(--font-mono);background-color:var(--color-code-bg);border-radius:.25rem;padding:.2em .4em;font-size:.875em}pre{font-family:var(--font-mono);background-color:var(--color-code-bg);border-radius:.75rem;padding:1.25rem;font-size:.875rem;line-height:1.6;overflow-x:auto}pre>code{font-size:inherit;background:0 0;padding:0}:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.skip-link{background:var(--color-primary);color:var(--color-text-inverted);z-index:9999;transition:top .2s var(--ease-smooth);border-radius:.5rem;padding:.75rem 1.5rem;font-weight:600;position:absolute;top:-100%;left:50%;transform:translate(-50%)}.skip-link:focus{top:1rem}@media(prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}}@layer components{.mermaid-wrapper{margin:2rem 0}.mermaid-container{background-color:var(--color-surface-muted);border:1px solid var(--color-border);cursor:pointer;transition:background-color .3s var(--ease-smooth),border-color .3s var(--ease-smooth),box-shadow .2s var(--ease-smooth);border-radius:.75rem;padding:1.5rem;position:relative;overflow-x:auto}.mermaid-container:hover,.mermaid-container:focus-visible{border-color:var(--color-primary);box-shadow:0 0 0 2px #275bff33}@supports (color:color-mix(in lab,red,red)){.mermaid-container:hover,.mermaid-container:focus-visible{box-shadow:0 0 0 2px color-mix(in oklch,var(--color-primary)20%,transparent)}}.mermaid-container:focus-visible{outline:none}.mermaid-diagram{justify-content:center;min-height:100px;display:flex}.mermaid-diagram svg{max-width:100%;height:auto}.mermaid-error{background-color:oklch(95% .05 30);border-color:#ed7665}.dark .mermaid-error{background-color:#290c08;border-color:#861309}.mermaid-error-message{color:#97271b;background-color:#fed2cb;border-radius:.375rem;margin-bottom:1rem;padding:.5rem .75rem;font-size:.875rem;font-weight:500}.dark .mermaid-error-message{color:#f09080;background-color:#361713}.mermaid-fallback{font-family:var(--font-mono);background-color:var(--color-code-bg);border-radius:.5rem;margin:0;padding:1rem;font-size:.8rem;overflow-x:auto}.mermaid-fallback code{background:0 0;padding:0}.mermaid-expand-hint{color:var(--color-text-muted);background-color:var(--color-surface);border:1px solid var(--color-border);opacity:0;transition:opacity .2s var(--ease-smooth),transform .2s var(--ease-smooth);pointer-events:none;border-radius:.375rem;align-items:center;gap:.375rem;padding:.375rem .625rem;font-size:.75rem;font-weight:500;display:flex;position:absolute;bottom:.75rem;right:.75rem;transform:translateY(4px)}.mermaid-expand-hint svg{width:.875rem;height:.875rem}.mermaid-container:hover .mermaid-expand-hint,.mermaid-container:focus-visible .mermaid-expand-hint{opacity:1;transform:translateY(0)}.mermaid-lightbox{z-index:9999;justify-content:center;align-items:center;padding:2rem;display:flex;position:fixed;inset:0}.mermaid-lightbox[hidden]{display:none}.mermaid-lightbox-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#000c;position:absolute;inset:0}.dark .mermaid-lightbox-backdrop{background-color:#000000e6}.mermaid-lightbox-content{background-color:var(--color-surface-muted);border:1px solid var(--color-border);width:min(95vw,1400px);max-height:90vh;box-shadow:var(--shadow-lg);animation:lightbox-enter .2s var(--ease-smooth);padding:3.5rem 2rem 2rem;border-radius:1rem;position:relative;overflow:auto}@keyframes lightbox-enter{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.mermaid-lightbox-close{width:2.5rem;height:2.5rem;color:var(--color-text-muted);background-color:var(--color-surface-muted);border:1px solid var(--color-border);cursor:pointer;transition:background-color .2s var(--ease-smooth),color .2s var(--ease-smooth),border-color .2s var(--ease-smooth);border-radius:9999px;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:.75rem;right:.75rem}.mermaid-lightbox-close:hover,.mermaid-lightbox-close:focus-visible{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-inverted)}.mermaid-lightbox-close:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.mermaid-lightbox-close svg{width:1.25rem;height:1.25rem}.mermaid-lightbox-diagram{justify-content:center;align-items:center;width:100%;min-height:200px;display:flex}.mermaid-lightbox-diagram svg{width:100%;height:auto;max-height:80vh}@media(max-width:640px){.mermaid-container{border-radius:.5rem;padding:1rem}.mermaid-diagram{min-height:80px}.mermaid-expand-hint span{display:none}.mermaid-lightbox{padding:1rem}.mermaid-lightbox-content{padding:3rem 1rem 1rem}}@media(prefers-reduced-motion:reduce){.mermaid-lightbox-content{animation:none}}.prose{color:var(--color-text);font-size:1.125rem;line-height:1.8}.prose>*+*{margin-top:1.5rem}.prose h2{color:var(--color-text);margin-top:3rem;margin-bottom:1rem;font-size:1.75rem;font-weight:700}.prose h3{color:var(--color-text);margin-top:2.5rem;margin-bottom:.75rem;font-size:1.375rem;font-weight:700}.prose h4{color:var(--color-text);margin-top:2rem;margin-bottom:.5rem;font-size:1.125rem;font-weight:700}.prose p{margin-bottom:1.5rem}.prose a{color:var(--color-primary);text-decoration:underline;-webkit-text-decoration-color:var(--color-primary);text-decoration-color:var(--color-primary);text-decoration-color:#275bff66}@supports (color:color-mix(in lab,red,red)){.prose a{-webkit-text-decoration-color:color-mix(in oklch,var(--color-primary)40%,transparent);text-decoration-color:color-mix(in oklch,var(--color-primary)40%,transparent)}}.prose a{text-underline-offset:3px;transition:color .2s var(--ease-smooth),text-decoration-color .2s var(--ease-smooth)}.prose a:hover{color:var(--color-primary-hover);-webkit-text-decoration-color:var(--color-primary);text-decoration-color:var(--color-primary)}.prose strong{color:var(--color-text);font-weight:700}.prose em{font-style:italic}.prose ul,.prose ol{margin-bottom:1.5rem;padding-left:1.5rem}.prose ul{list-style-type:disc}.prose ol{list-style-type:decimal}.prose li{margin-bottom:.5rem;padding-left:.25rem}.prose li::marker{color:var(--color-primary)}.prose blockquote{border-left:4px solid var(--color-primary);background:var(--color-surface-muted);color:var(--color-text-muted);border-radius:0 .5rem .5rem 0;margin:2rem 0;padding:1rem 0 1rem 1.5rem;font-style:italic}.prose blockquote p:last-child{margin-bottom:0}.prose code{font-family:var(--font-mono);background-color:var(--color-code-bg);color:var(--color-text);border-radius:.25rem;padding:.2em .4em;font-size:.875em}.prose pre{font-family:var(--font-mono);background-color:var(--color-code-bg);border:1px solid var(--color-border);border-radius:.75rem;margin:2rem 0;padding:1.5rem;font-size:.875rem;line-height:1.7;overflow-x:auto}.prose pre code{font-size:inherit;color:inherit;background:0 0;padding:0}.prose pre[data-theme=github-light],.prose pre[data-theme=github-dark]{background-color:var(--color-code-bg)!important}.prose hr{border:none;border-top:1px solid var(--color-border);margin:3rem 0}.prose img{border-radius:.75rem;max-width:100%;height:auto;margin:2rem 0}.prose table{border-collapse:collapse;width:100%;margin:2rem 0;font-size:.95rem}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--color-border);padding:.75rem 1rem}.prose th{background-color:var(--color-surface-muted);color:var(--color-text);font-weight:700}.prose tr:hover td{background-color:var(--color-surface-muted)}@media(max-width:640px){.prose{font-size:1rem}.prose h2{font-size:1.5rem}.prose h3{font-size:1.25rem}.prose pre{border-radius:.5rem;padding:1rem;font-size:.8rem}}}@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.static{position:static}.sticky{position:sticky}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.block{display:block}.flex{display:flex}.hidden{display:none}.inline{display:inline}.min-h-screen{min-height:100vh}.max-w-content{max-width:var(--spacing-content)}.max-w-wide{max-width:var(--spacing-wide)}.flex-1{flex:1}.flex-shrink,.shrink{flex-shrink:1}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.border{border-style:var(--tw-border-style);border-width:1px}.bg-\[var\(--color-surface\)\]{background-color:var(--color-surface)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-8{padding-block:calc(var(--spacing)*8)}.text-\[var\(--color-text\)\]{color:var(--color-text)}.lowercase{text-transform:lowercase}.italic{font-style:italic}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}@media(min-width:40rem){.sm\:px-6{padding-inline:calc(var(--spacing)*6)}}@media(min-width:48rem){.md\:py-12{padding-block:calc(var(--spacing)*12)}}@media(min-width:64rem){.lg\:px-8{padding-inline:calc(var(--spacing)*8)}}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.max-w-content{max-width:min(var(--spacing-content),calc(100% - 2rem));margin:0 auto}.max-w-wide{max-width:var(--spacing-wide);margin:0 auto}}.dark{--color-primary:oklch(70% .22 265);--color-primary-hover:oklch(75% .22 265);--color-secondary:oklch(72% .18 175);--color-secondary-hover:oklch(78% .18 175);--color-accent:oklch(75% .22 50);--color-accent-hover:oklch(80% .22 50);--color-success:oklch(65% .18 145);--color-success-muted:oklch(75% .18 145);--color-surface:oklch(12% .02 265);--color-surface-elevated:oklch(18% .02 265);--color-surface-muted:oklch(22% .02 265);--color-text:oklch(95% .01 265);--color-text-muted:oklch(70% .02 265);--color-border:oklch(28% .02 265);--color-code-bg:oklch(18% .02 265);--shadow-sm:0 1px 2px oklch(0% 0 0/.3);--shadow-md:0 4px 12px oklch(0% 0 0/.4);--shadow-lg:0 8px 24px oklch(0% 0 0/.5);--shadow-glow:0 0 40px oklch(70% .22 265/.25)}@font-face{font-family:Atkinson Hyperlegible;src:url(/fonts/atkinson-regular.woff)format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Atkinson Hyperlegible;src:url(/fonts/atkinson-bold.woff)format("woff");font-weight:700;font-style:normal;font-display:swap}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}.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-n5ps2okq]{--toggle-size: 2.75rem;--icon-size: 1.25rem;position:relative;display:flex;align-items:center;justify-content:center;width:var(--toggle-size);height:var(--toggle-size);padding:0;border:none;border-radius:50%;background:var(--color-surface-muted);color:var(--color-text);cursor:pointer;overflow:hidden;transition:background-color .2s var(--ease-smooth),box-shadow .3s var(--ease-smooth),transform .2s var(--ease-bounce)}.theme-toggle[data-astro-cid-n5ps2okq]:before{content:"";position:absolute;inset:0;border-radius:50%;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);opacity:0;transition:opacity .3s var(--ease-smooth)}.theme-toggle[data-astro-cid-n5ps2okq]:hover{transform:scale(1.05);box-shadow:var(--shadow-glow)}.theme-toggle[data-astro-cid-n5ps2okq]:hover:before{opacity:.15}.theme-toggle[data-astro-cid-n5ps2okq]:active{transform:scale(.95)}.theme-toggle[data-astro-cid-n5ps2okq]:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:3px}.toggle-icon[data-astro-cid-n5ps2okq]{position:relative;display:flex;align-items:center;justify-content:center;width:var(--icon-size);height:var(--icon-size)}.toggle-icon[data-astro-cid-n5ps2okq] svg[data-astro-cid-n5ps2okq]{position:absolute;width:100%;height:100%;transition:transform .5s var(--ease-bounce),opacity .3s var(--ease-smooth)}.sun-icon[data-astro-cid-n5ps2okq]{opacity:0;transform:rotate(-90deg) scale(.5)}.moon-icon[data-astro-cid-n5ps2okq],.dark .sun-icon[data-astro-cid-n5ps2okq]{opacity:1;transform:rotate(0) scale(1)}.dark .moon-icon[data-astro-cid-n5ps2okq]{opacity:0;transform:rotate(90deg) scale(.5)}.theme-toggle[data-astro-cid-n5ps2okq]:hover .moon-icon[data-astro-cid-n5ps2okq]{animation:wiggle .6s ease-in-out}.dark .theme-toggle[data-astro-cid-n5ps2okq]:hover .sun-icon[data-astro-cid-n5ps2okq]{animation:spin-glow .6s ease-in-out}.dark .theme-toggle[data-astro-cid-n5ps2okq]:hover .moon-icon[data-astro-cid-n5ps2okq]{animation:none}@keyframes wiggle{0%,to{transform:rotate(0) scale(1)}25%{transform:rotate(-10deg) scale(1.1)}75%{transform:rotate(10deg) scale(1.1)}}@keyframes spin-glow{0%{transform:rotate(0) scale(1);filter:brightness(1)}50%{transform:rotate(180deg) scale(1.15);filter:brightness(1.3)}to{transform:rotate(360deg) scale(1);filter:brightness(1)}}.search-button[data-astro-cid-fvjdv5vs]{display:flex;align-items:center;justify-content:center;gap:.5rem;width:auto;height:2.75rem;padding:0 .875rem;border:none;border-radius:.5rem;background:var(--color-surface-muted);color:var(--color-text);cursor:pointer;transition:background-color .2s var(--ease-smooth)}.search-button[data-astro-cid-fvjdv5vs]:hover{background:var(--color-border)}.search-icon[data-astro-cid-fvjdv5vs]{width:1.125rem;height:1.125rem}.search-hint[data-astro-cid-fvjdv5vs]{display:none;font-size:.75rem;font-weight:600;color:var(--color-text-muted);opacity:.7}@media(min-width:768px){.search-hint[data-astro-cid-fvjdv5vs]{display:block}}.site-header[data-astro-cid-wirv62s5]{position:sticky;top:0;z-index:40;width:100%;border-bottom:1px solid var(--color-border);background:var(--color-surface);background:color-mix(in oklch,var(--color-surface) 85%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.nav-container[data-astro-cid-wirv62s5]{display:flex;align-items:center;justify-content:space-between;padding:0 1rem;height:4rem}@media(min-width:768px){.nav-container[data-astro-cid-wirv62s5]{padding:0 1.5rem;height:4.5rem}}.site-logo[data-astro-cid-wirv62s5]{text-decoration:none;transition:opacity .2s var(--ease-smooth)}.site-logo[data-astro-cid-wirv62s5]:hover{opacity:.8}.logo-text[data-astro-cid-wirv62s5]{font-size:1.25rem;font-weight:700;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}@media(min-width:768px){.logo-text[data-astro-cid-wirv62s5]{font-size:1.5rem}}.nav-desktop[data-astro-cid-wirv62s5]{display:none;align-items:center;gap:.5rem}@media(min-width:768px){.nav-desktop[data-astro-cid-wirv62s5]{display:flex}}.nav-link[data-astro-cid-wirv62s5]{padding:.5rem 1rem;font-size:.95rem;font-weight:500;color:var(--color-text-muted);text-decoration:none;border-radius:.5rem;transition:color .2s var(--ease-smooth),background-color .2s var(--ease-smooth)}.nav-link[data-astro-cid-wirv62s5]:hover{color:var(--color-text);background:var(--color-surface-muted)}.nav-link[data-astro-cid-wirv62s5].active{color:var(--color-primary);font-weight:600}.nav-actions[data-astro-cid-wirv62s5]{display:flex;align-items:center;gap:.5rem}.mobile-menu-btn[data-astro-cid-wirv62s5]{display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;padding:0;border:none;border-radius:.5rem;background:var(--color-surface-muted);color:var(--color-text);cursor:pointer;transition:background-color .2s var(--ease-smooth)}.mobile-menu-btn[data-astro-cid-wirv62s5]:hover{background:var(--color-border)}@media(min-width:768px){.mobile-menu-btn[data-astro-cid-wirv62s5]{display:none}}.mobile-menu-btn[data-astro-cid-wirv62s5] svg[data-astro-cid-wirv62s5]{width:1.25rem;height:1.25rem}.close-icon[data-astro-cid-wirv62s5],.mobile-menu-btn[data-astro-cid-wirv62s5][aria-expanded=true] .menu-icon[data-astro-cid-wirv62s5]{display:none}.mobile-menu-btn[data-astro-cid-wirv62s5][aria-expanded=true] .close-icon[data-astro-cid-wirv62s5]{display:block}.mobile-menu[data-astro-cid-wirv62s5]{display:none;border-top:1px solid var(--color-border);background:var(--color-surface)}.mobile-menu[data-astro-cid-wirv62s5][aria-hidden=false]{display:block}@media(min-width:768px){.mobile-menu[data-astro-cid-wirv62s5]{display:none!important}}.mobile-menu-content[data-astro-cid-wirv62s5]{display:flex;flex-direction:column;padding:1rem;gap:.25rem}.mobile-link[data-astro-cid-wirv62s5]{display:flex;align-items:center;padding:.875rem 1rem;font-size:1rem;font-weight:500;color:var(--color-text);text-decoration:none;border-radius:.5rem;transition:background-color .2s var(--ease-smooth)}.mobile-link[data-astro-cid-wirv62s5]:hover{background:var(--color-surface-muted)}.mobile-link[data-astro-cid-wirv62s5].active{color:var(--color-primary);font-weight:600;background:var(--color-surface-muted)}.site-footer[data-astro-cid-vxqgfrqq]{margin-top:auto;border-top:1px solid var(--color-border);background:var(--color-surface-elevated)}.gradient-line[data-astro-cid-vxqgfrqq]{height:3px;background:linear-gradient(90deg,var(--color-primary) 0%,var(--color-secondary) 50%,var(--color-accent) 100%)}.footer-content[data-astro-cid-vxqgfrqq]{max-width:var(--spacing-wide);margin:0 auto;padding:3rem 1rem}@media(min-width:768px){.footer-content[data-astro-cid-vxqgfrqq]{padding:4rem 1.5rem}}.footer-grid[data-astro-cid-vxqgfrqq]{display:grid;gap:2rem}@media(min-width:768px){.footer-grid[data-astro-cid-vxqgfrqq]{grid-template-columns:2fr 1fr 1fr;gap:3rem}}.footer-brand[data-astro-cid-vxqgfrqq]{max-width:20rem}.brand-name[data-astro-cid-vxqgfrqq]{margin:0 0 .5rem;font-size:1.25rem;font-weight:700;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.brand-tagline[data-astro-cid-vxqgfrqq]{margin:0;font-size:.95rem;color:var(--color-text-muted);line-height:1.6}.footer-heading[data-astro-cid-vxqgfrqq]{margin:0 0 1rem;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.footer-links[data-astro-cid-vxqgfrqq]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.footer-links[data-astro-cid-vxqgfrqq] a[data-astro-cid-vxqgfrqq]{display:inline-flex;align-items:center;gap:.5rem;font-size:.95rem;color:var(--color-text-muted);text-decoration:none;transition:color .2s var(--ease-smooth)}.footer-links[data-astro-cid-vxqgfrqq] a[data-astro-cid-vxqgfrqq]:hover{color:var(--color-primary)}.rss-icon[data-astro-cid-vxqgfrqq]{width:1rem;height:1rem}.footer-bottom[data-astro-cid-vxqgfrqq]{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--color-border);text-align:center}.footer-bottom[data-astro-cid-vxqgfrqq] p[data-astro-cid-vxqgfrqq]{margin:0;font-size:.875rem;color:var(--color-text-muted)}.sr-only[data-astro-cid-svqo375e]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.search-modal[data-astro-cid-svqo375e]{position:fixed;inset:0;z-index:50;display:none;align-items:flex-start;justify-content:center;padding:4rem 1rem 1rem;overflow-y:auto}.search-modal[data-astro-cid-svqo375e][aria-hidden=false]{display:flex}@media(min-width:768px){.search-modal[data-astro-cid-svqo375e]{padding-top:8rem}}.search-backdrop[data-astro-cid-svqo375e]{position:fixed;inset:0;z-index:1;background:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:fadeIn .2s var(--ease-smooth)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.search-container[data-astro-cid-svqo375e]{position:relative;z-index:2;width:100%;max-width:42rem;max-height:calc(100vh - 8rem);display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:.75rem;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;animation:slideIn .2s var(--ease-smooth)}@keyframes slideIn{0%{opacity:0;transform:translateY(-1rem)}to{opacity:1;transform:translateY(0)}}.search-header[data-astro-cid-svqo375e]{padding:1rem;border-bottom:1px solid var(--color-border)}.search-input-wrapper[data-astro-cid-svqo375e]{display:flex;align-items:center;gap:.75rem}.search-input-icon[data-astro-cid-svqo375e]{width:1.25rem;height:1.25rem;color:var(--color-text-muted);flex-shrink:0}.search-input[data-astro-cid-svqo375e]{flex:1;min-width:0;border:none;outline:none;background:transparent;color:var(--color-text);font-size:1rem;line-height:1.5}.search-input[data-astro-cid-svqo375e]::placeholder{color:var(--color-text-muted)}.search-close[data-astro-cid-svqo375e]{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:none;border-radius:.375rem;background:transparent;color:var(--color-text-muted);cursor:pointer;flex-shrink:0;transition:background-color .2s var(--ease-smooth),color .2s var(--ease-smooth)}.search-close[data-astro-cid-svqo375e]:hover{background:var(--color-surface-muted);color:var(--color-text)}.search-close[data-astro-cid-svqo375e] svg[data-astro-cid-svqo375e]{width:1.125rem;height:1.125rem}.search-results-container[data-astro-cid-svqo375e]{flex:1;min-height:0;overflow-y:auto;padding:.5rem}.search-state[data-astro-cid-svqo375e]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1.5rem;text-align:center}.state-icon[data-astro-cid-svqo375e]{width:3rem;height:3rem;color:var(--color-text-muted);opacity:.4;margin-bottom:1rem}.state-title[data-astro-cid-svqo375e]{margin:0 0 .5rem;font-size:1.125rem;font-weight:600;color:var(--color-text)}.state-text[data-astro-cid-svqo375e]{margin:0;font-size:.95rem;color:var(--color-text-muted)}.loading-spinner[data-astro-cid-svqo375e]{width:2rem;height:2rem;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .6s linear infinite;margin-bottom:1rem}@keyframes spin{to{transform:rotate(360deg)}}.search-results[data-astro-cid-svqo375e]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.25rem}.search-result-item{display:flex;flex-direction:column;gap:.5rem;padding:.875rem 1rem;border-radius:.5rem;text-decoration:none;color:inherit;transition:background-color .2s var(--ease-smooth);cursor:pointer}.search-result-item:hover,.search-result-item.selected{background:var(--color-surface-muted)}.search-result-header{display:flex;align-items:center;gap:.5rem}.search-result-type{display:inline-flex;align-items:center;padding:.125rem .5rem;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;border-radius:.25rem;flex-shrink:0}.search-result-type.post{background:color-mix(in oklch,var(--color-primary) 15%,transparent);color:var(--color-primary)}.search-result-type.project{background:color-mix(in oklch,var(--color-secondary) 15%,transparent);color:var(--color-secondary)}.search-result-type.label{background:color-mix(in oklch,var(--color-accent) 15%,transparent);color:var(--color-accent)}.search-result-title{margin:0;font-size:.95rem;font-weight:600;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result-excerpt{margin:0;font-size:.875rem;line-height:1.5;color:var(--color-text-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.search-result-excerpt mark{background:color-mix(in oklch,var(--color-primary) 25%,transparent);color:var(--color-text);border-radius:.125rem;padding:0 .125rem}.search-result-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.search-result-tags{display:flex;align-items:center;gap:.25rem;flex-wrap:wrap}.search-result-tag{display:inline-flex;align-items:center;padding:.125rem .375rem;font-size:.7rem;font-weight:500;background:var(--color-surface-elevated);color:var(--color-text-muted);border-radius:.25rem}.label-list[data-astro-cid-tw4neezj]{display:flex;flex-wrap:wrap;gap:.5rem}.label-tag[data-astro-cid-tw4neezj]{display:inline-flex;align-items:center;padding:.25rem .75rem;font-size:.75rem;font-weight:600;text-transform:lowercase;text-decoration:none;background:var(--tag-bg, var(--color-surface-muted));color:var(--tag-text, var(--color-text-muted));border-radius:9999px;border:1px solid var(--tag-border, transparent);transition:background-color .15s var(--ease-smooth),color .15s var(--ease-smooth),border-color .15s var(--ease-smooth),transform .15s var(--ease-bounce)}.label-tag[data-astro-cid-tw4neezj].color-0{--tag-bg: color-mix(in oklch, var(--color-primary) 10%, var(--color-surface-muted));--tag-text: color-mix(in oklch, var(--color-primary) 70%, var(--color-text));--tag-border: color-mix(in oklch, var(--color-primary) 15%, transparent);--tag-hover: var(--color-primary)}.label-tag[data-astro-cid-tw4neezj].color-1{--tag-bg: color-mix(in oklch, var(--color-secondary) 10%, var(--color-surface-muted));--tag-text: color-mix(in oklch, var(--color-secondary) 70%, var(--color-text));--tag-border: color-mix(in oklch, var(--color-secondary) 15%, transparent);--tag-hover: var(--color-secondary)}.label-tag[data-astro-cid-tw4neezj].color-2{--tag-bg: color-mix(in oklch, var(--color-accent) 10%, var(--color-surface-muted));--tag-text: color-mix(in oklch, var(--color-accent) 70%, var(--color-text));--tag-border: color-mix(in oklch, var(--color-accent) 15%, transparent);--tag-hover: var(--color-accent)}.label-tag[data-astro-cid-tw4neezj].color-3{--tag-bg: color-mix(in oklch, oklch(.65 .18 160) 10%, var(--color-surface-muted));--tag-text: oklch(.4 .12 160);--tag-border: color-mix(in oklch, oklch(.65 .18 160) 15%, transparent);--tag-hover: oklch(.65 .18 160)}.label-tag[data-astro-cid-tw4neezj].color-4{--tag-bg: color-mix(in oklch, oklch(.65 .15 280) 10%, var(--color-surface-muted));--tag-text: color-mix(in oklch, oklch(.65 .15 280) 70%, var(--color-text));--tag-border: color-mix(in oklch, oklch(.65 .15 280) 15%, transparent);--tag-hover: oklch(.65 .15 280)}.label-tag[data-astro-cid-tw4neezj].color-5{--tag-bg: color-mix(in oklch, oklch(.7 .14 40) 10%, var(--color-surface-muted));--tag-text: color-mix(in oklch, oklch(.7 .14 40) 70%, var(--color-text));--tag-border: color-mix(in oklch, oklch(.7 .14 40) 15%, transparent);--tag-hover: oklch(.7 .14 40)}.label-tag[data-astro-cid-tw4neezj].color-6{--tag-bg: color-mix(in oklch, oklch(.6 .16 340) 10%, var(--color-surface-muted));--tag-text: color-mix(in oklch, oklch(.6 .16 340) 70%, var(--color-text));--tag-border: color-mix(in oklch, oklch(.6 .16 340) 15%, transparent);--tag-hover: oklch(.6 .16 340)}.label-tag[data-astro-cid-tw4neezj].color-7{--tag-bg: color-mix(in oklch, oklch(.55 .12 220) 10%, var(--color-surface-muted));--tag-text: color-mix(in oklch, oklch(.55 .12 220) 70%, var(--color-text));--tag-border: color-mix(in oklch, oklch(.55 .12 220) 15%, transparent);--tag-hover: oklch(.55 .12 220)}.label-tag[data-astro-cid-tw4neezj]:hover{background:var(--tag-hover, var(--color-primary));color:var(--color-text-inverted);border-color:var(--tag-hover, var(--color-primary));transform:translateY(-1px)}.reading-time[data-astro-cid-l2wiyisc]{font-size:.85rem;color:var(--color-text-muted)}.content-card[data-astro-cid-4tdsycll]{position:relative;background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:1rem;padding:1.5rem;transition:transform .3s var(--ease-bounce),border-color .3s var(--ease-smooth),box-shadow .3s var(--ease-smooth);overflow:hidden}.content-card[data-astro-cid-4tdsycll]:hover{transform:translateY(-4px);border-color:var(--color-primary);border-color:color-mix(in oklch,var(--color-primary) 50%,transparent);box-shadow:var(--shadow-lg)}.glow-effect[data-astro-cid-4tdsycll]{position:absolute;inset:0;border-radius:inherit;background:linear-gradient(135deg,transparent 0%,transparent 100%);background:linear-gradient(135deg,color-mix(in oklch,var(--color-primary) 8%,transparent),color-mix(in oklch,var(--color-secondary) 5%,transparent));opacity:0;transition:opacity .3s var(--ease-smooth);pointer-events:none}.content-card[data-astro-cid-4tdsycll]:hover .glow-effect[data-astro-cid-4tdsycll]{opacity:1}.card-link[data-astro-cid-4tdsycll]{position:relative;display:block;text-decoration:none;color:inherit}.card-header[data-astro-cid-4tdsycll]{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.type-badge[data-astro-cid-4tdsycll]{display:inline-flex;align-items:center;padding:.25rem .75rem;border-radius:9999px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.type-badge[data-astro-cid-4tdsycll].post{background:color-mix(in oklch,var(--color-primary) 15%,var(--color-surface-elevated));color:var(--color-primary)}.type-badge[data-astro-cid-4tdsycll].project{background:color-mix(in oklch,var(--color-secondary) 20%,var(--color-surface-elevated));color:var(--color-secondary)}.date[data-astro-cid-4tdsycll],.card-reading-time[data-astro-cid-4tdsycll]{font-size:.85rem;color:var(--color-text-muted)}.card-reading-time[data-astro-cid-4tdsycll]:before{content:"·";margin-right:.5rem}.card-title[data-astro-cid-4tdsycll]{margin:0 0 .5rem;font-size:1.35rem;font-weight:700;line-height:1.3;color:var(--color-text);transition:color .2s var(--ease-smooth)}.content-card[data-astro-cid-4tdsycll]:hover .card-title[data-astro-cid-4tdsycll]{color:var(--color-primary)}.excerpt[data-astro-cid-4tdsycll]{margin:0;color:var(--color-text-muted);font-size:.95rem;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-clamp:2;overflow:hidden}.card-tags[data-astro-cid-4tdsycll]{margin-top:.75rem;position:relative;z-index:1}.read-more[data-astro-cid-4tdsycll]{display:flex;align-items:center;gap:.5rem;margin-top:1rem;font-size:.9rem;font-weight:600;color:var(--color-primary);opacity:0;transform:translate(-8px);transition:opacity .3s var(--ease-smooth),transform .3s var(--ease-smooth)}.content-card[data-astro-cid-4tdsycll]:hover .read-more[data-astro-cid-4tdsycll]{opacity:1;transform:translate(0)}.arrow[data-astro-cid-4tdsycll]{width:1rem;height:1rem;transition:transform .3s var(--ease-bounce)}.content-card[data-astro-cid-4tdsycll]:hover .arrow[data-astro-cid-4tdsycll]{transform:translate(4px)}.card-link[data-astro-cid-4tdsycll]:focus-visible{outline:none}.card-link[data-astro-cid-4tdsycll]:focus-visible .card-title[data-astro-cid-4tdsycll]{color:var(--color-primary);text-decoration:underline;text-underline-offset:3px}@media(max-width:640px){.content-card[data-astro-cid-4tdsycll]{padding:1.25rem}.card-title[data-astro-cid-4tdsycll]{font-size:1.15rem}.read-more[data-astro-cid-4tdsycll]{opacity:1;transform:translate(0)}}.related-content[data-astro-cid-l7oamqyz]{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--color-border)}.related-heading[data-astro-cid-l7oamqyz]{margin:0 0 1.5rem;font-size:1.5rem;font-weight:700;color:var(--color-text)}.related-grid[data-astro-cid-l7oamqyz]{display:grid;gap:1.5rem}@media(min-width:640px){.related-grid[data-astro-cid-l7oamqyz]{grid-template-columns:repeat(2,1fr)}}
