@import"https://fonts.googleapis.com/css2?family=Ubuntu:wght@300;400;500&display=swap";:root{--bg-color: #ffffff;--bg-color-muted: #f8f9fa;--text-color: #000000;--text-muted: #000000;--link-color: #000000;--link-hover-color: #2563eb;--border-color: rgba(0, 0, 0, .08);--hover-bg: rgba(0, 0, 0, .02);--mesh-color-1: rgba(59, 130, 246, .08);--mesh-color-2: rgba(37, 99, 235, .05);--glow-color: rgba(59, 130, 246, .12);--top-glow-color: rgba(0, 0, 0, .02);--font-sans: "JetBrains Mono", monospace;--font-mono: "JetBrains Mono", monospace;--transition-base: .2s cubic-bezier(.4, 0, .2, 1)}[data-theme=dark]{--bg-color: #0a0a0a;--bg-color-muted: #141414;--text-color: #e5e5e5;--text-muted: #a3a3a3;--link-color: #e5e5e5;--link-hover-color: #60a5fa;--border-color: rgba(255, 255, 255, .08);--hover-bg: rgba(255, 255, 255, .02);--mesh-color-1: rgba(59, 130, 246, .08);--mesh-color-2: rgba(37, 99, 235, .05);--glow-color: rgba(59, 130, 246, .15);--top-glow-color: rgba(255, 255, 255, .02)}.theme-transition{--theme-transition: var(--transition-base)}.theme-transition button,.theme-transition input,.theme-transition textarea,.theme-transition select,.theme-transition pre,.theme-transition code,.theme-transition blockquote,.theme-transition .card{transition:background-color var(--theme-transition),border-color var(--theme-transition),box-shadow var(--theme-transition)}.theme-transition *{transition-property:background-color,border-color,box-shadow;transition-duration:var(--theme-transition)}@keyframes gradient{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUpFade{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.initial-load{animation:none!important}.initial-load .animate-fade{animation:fadeIn .5s var(--transition-base) both}.initial-load .animate-slide-up{animation:slideUpFade .5s var(--transition-base) both}.initial-load .animate-scale{animation:scaleIn .3s var(--transition-base) both}.initial-load .stagger-1{animation-delay:.1s}.initial-load .stagger-2{animation-delay:.15s}.initial-load .stagger-3{animation-delay:.2s}@media(prefers-reduced-motion:no-preference){.hover-lift{transition:transform var(--transition-base)}.hover-lift:hover{transform:translateY(-2px)}.hover-scale{transition:transform var(--transition-base)}.hover-scale:hover{transform:scale(1.02)}.link-underline{position:relative}.link-underline:after{content:"";position:absolute;width:100%;height:1px;bottom:-2px;left:0;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform var(--transition-base)}.link-underline:hover:after{transform:scaleX(1);transform-origin:left}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@property --noise-opacity{syntax: "<number>"; initial-value: .1; inherits: false;}:root{--font-primary: "Ubuntu", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "Ubuntu Mono", Consolas, "Courier New", monospace;--text-xs: .9375rem;--text-sm: 1.0625rem;--text-base: .9375rem;--text-lg: 1.1875rem;--text-xl: 1.3125rem;--text-2xl: 1.4375rem;--text-3xl: 1.6875rem;--link-animation-duration: .3s}@keyframes linkUnderline{0%{width:0}to{width:100%}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-primary);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;letter-spacing:0;scrollbar-gutter:stable;overflow-x:hidden}body{position:relative;background:var(--bg-color);min-height:100vh;width:100%;margin:0;font-family:var(--font-primary);color:var(--text-color);font-size:var(--text-base);font-weight:400;letter-spacing:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}.astro-code *{font-size:var(--text-xs)}main{width:100%;max-width:750px;margin:0 auto;padding:2rem 0;position:relative;overflow-x:hidden}.nav-container{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem;padding:0 1.5rem;position:relative}@media(max-width:640px){main{padding:1rem 0}.nav-container{padding:0 1rem}}body:after{content:"";position:fixed;inset:0;background-image:linear-gradient(to bottom right,#3b82f608,#2563eb05),url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");background-size:cover,200px;mix-blend-mode:overlay;opacity:.25;z-index:1;pointer-events:none;animation:noise 8s steps(10) infinite}body:before{content:"";position:absolute;top:-5vh;left:0;right:0;height:100vh;background:radial-gradient(circle at 65% -20%,color-mix(in srgb,var(--glow-color) 100%,transparent),transparent 55%);mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='2.5' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%' height='100%' filter='url(%23noise)'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='2.5' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%' height='100%' filter='url(%23noise)'/%3E%3C/svg%3E");opacity:.6;z-index:-1;pointer-events:none;filter:blur(60px) contrast(1.1);mix-blend-mode:normal;transform:translateZ(0);backface-visibility:hidden;perspective:1000px;will-change:transform}.bottom-glow{position:absolute;bottom:0;left:0;width:100%;height:40vh;background:radial-gradient(ellipse at 50% 100%,color-mix(in srgb,var(--glow-color) 100%,transparent),transparent 65%);mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='2.5' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%' height='100%' filter='url(%23noise)'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='2.5' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%' height='100%' filter='url(%23noise)'/%3E%3C/svg%3E");opacity:.4;z-index:-1;pointer-events:none;filter:blur(20px) contrast(1.3);mix-blend-mode:normal;transform:translateZ(0);backface-visibility:hidden;perspective:1000px;will-change:transform}h1,h2,h3,h4,h5,h6{font-family:var(--font-primary);font-weight:400;line-height:1.3;margin-bottom:.75rem;letter-spacing:0}h1{font-size:var(--text-3xl);letter-spacing:0;font-weight:500}h2{font-size:var(--text-2xl);letter-spacing:0;font-weight:500}h3{font-size:var(--text-xl);letter-spacing:0;font-weight:500}h4{font-size:var(--text-lg);letter-spacing:0;font-weight:400}h5{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.05em;font-weight:400}h6{font-size:var(--text-sm);font-weight:400;letter-spacing:0}p{margin-bottom:1rem;max-width:70ch;line-height:1.65;letter-spacing:0;text-align:justify}a{color:var(--link-color);text-decoration:none;position:relative;transition:color var(--link-animation-duration)}a:hover{color:var(--link-hover-color)}.section-header a,.social-links a{color:var(--text-color);text-decoration:none}.section-header a:hover,.social-links a:hover{color:var(--link-hover-color)}ul,ol{margin:1.5rem 0;padding-left:1.5rem}li{margin-bottom:.5rem}code,pre{font-family:var(--font-mono);font-weight:400;font-size:var(--text-xs);letter-spacing:0}pre{background:#00000008;border-radius:.5rem;padding:1rem;margin:1.5rem 0;overflow-x:auto;border:1px solid var(--border-color)}code{background:#0000000d;padding:.2em .4em;border-radius:.25rem}pre code{background:none;padding:0;border-radius:0}img{max-width:100%;height:auto;display:block;border-radius:.5rem}figure{margin:2rem 0}figcaption{font-size:var(--text-xs);margin-top:.5rem;opacity:.8;text-align:center}input,textarea,select,button{font-family:var(--font-primary);font-size:var(--text-xs);font-weight:400;letter-spacing:0;color:inherit;background:none;border:1px solid var(--border-color);border-radius:.375rem;padding:.375rem .75rem}.muted-text{color:var(--text-muted);margin-top:.25rem}button{cursor:pointer;font-weight:400}table{width:100%;border-collapse:collapse;margin:1.5rem 0}th,td{padding:.75rem;text-align:left;border-bottom:1px solid var(--border-color)}.subtitle{opacity:.7;margin-top:.5rem;font-size:var(--text-lg)}th{font-weight:500}blockquote{border-left:3px solid var(--border-color);padding-left:1.5rem;margin:1.5rem 0;font-style:italic}hr{border:none;border-top:1px solid var(--border-color);margin:2rem 0}::selection{background:var(--hover-bg)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--hover-bg)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-color);opacity:.2}:focus-visible{outline:none;box-shadow:0 0 0 2px var(--border-color)}.card{background:var(--hover-bg);border:1px solid var(--border-color);border-radius:.75rem;padding:1.5rem;transition:transform .2s ease,box-shadow .2s ease}.card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}h1,h2,h3{color:var(--text-color)}.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}nav[data-astro-cid-o5br4kmp]{display:flex;align-items:center;width:100%;position:relative}.nav-links[data-astro-cid-o5br4kmp]{display:flex;gap:1.5rem}.nav-links[data-astro-cid-o5br4kmp] a[data-astro-cid-o5br4kmp],a[data-astro-cid-o5br4kmp]{color:var(--text-muted);text-decoration:none;font-size:var(--text-sm);transition:color var(--transition-base);position:relative}a[data-astro-cid-o5br4kmp]:hover{color:var(--color-text)}a[data-astro-cid-o5br4kmp].active{color:var(--color-text)!important}a[data-astro-cid-o5br4kmp].active:after{content:"";position:absolute;bottom:-2px;left:0;width:100%;height:1px;background:var(--text-muted)}#theme-toggle[data-astro-cid-o5br4kmp]{background:none;border:none;padding:.5rem;cursor:pointer;color:var(--text-muted);transition:color var(--transition-base),transform .2s ease;display:flex;align-items:center;justify-content:center;border-radius:.375rem;position:absolute;right:0;top:50%;transform:translateY(-50%)}#theme-toggle[data-astro-cid-o5br4kmp]:hover{color:var(--text-color);transform:translateY(-50%) scale(1.1)}#theme-toggle[data-astro-cid-o5br4kmp] svg[data-astro-cid-o5br4kmp]{width:20px;height:20px;position:absolute;transition:opacity .2s ease,transform .2s ease}#theme-toggle[data-astro-cid-o5br4kmp] .sun-icon[data-astro-cid-o5br4kmp]{opacity:0;transform:rotate(-90deg) scale(.8)}#theme-toggle[data-astro-cid-o5br4kmp] .moon-icon[data-astro-cid-o5br4kmp]{opacity:0;transform:rotate(90deg) scale(.8)}#theme-toggle[data-astro-cid-o5br4kmp] .sun-icon[data-astro-cid-o5br4kmp].active,#theme-toggle[data-astro-cid-o5br4kmp] .moon-icon[data-astro-cid-o5br4kmp].active{opacity:1;transform:rotate(0) scale(1)}@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}}
