:root{--bg-color: #111111;--bg-color-muted: #1a1a1a;--text-color: #ffffff;--text-muted: #c0c0c0;--link-color: #60a5fa;--border-color: rgba(255, 255, 255, .1);--hover-bg: rgba(255, 255, 255, .05);--mesh-color-1: rgba(123, 104, 238, .2);--mesh-color-2: rgba(72, 61, 139, .15);--glow-color: rgba(139, 92, 246, .3);--top-glow-color: rgba(255, 255, 255, .08);--font-sans: "Cantarell", -apple-system, BlinkMacSystemFont, system-ui, "Segoe UI", sans-serif;--font-mono: ui-monospace, "SFMono-Regular", "Roboto Mono", Consolas, "Courier New", monospace;--transition-base: .2s cubic-bezier(.4, 0, .2, 1)}.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}}:root{--font-primary: "Cantarell", -apple-system, BlinkMacSystemFont, system-ui, "Segoe UI", sans-serif;--font-mono: ui-monospace, "SFMono-Regular", "Roboto Mono", Consolas, "Courier New", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: .75rem;--text-lg: 1rem;--text-xl: 1.125rem;--text-2xl: 1.25rem;--text-3xl: 1.5rem;--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:16px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;letter-spacing:-.02em;scrollbar-gutter:stable;overflow-x:clip}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:300;letter-spacing:-.03em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}.astro-code *{font-size:var(--text-xs)}main{width:100%;max-width:640px;margin:0 auto;padding:2rem 0;position:relative;overflow-x:clip}.nav-container{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem;padding:0 1.5rem}@media (max-width: 640px){main{padding:1rem 0}.nav-container{padding:0 1rem}}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%);opacity:.8;z-index:-1;pointer-events:none}.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%);opacity:.6;z-index:-1;pointer-events:none}h1,h2,h3,h4,h5,h6{font-family:var(--font-primary);font-weight:300;line-height:1.2;margin-bottom:.75rem;letter-spacing:-.04em}h1{font-size:var(--text-3xl);letter-spacing:-.05em;font-weight:400}h2{font-size:var(--text-2xl);letter-spacing:-.04em;font-weight:300}h3{font-size:var(--text-xl);letter-spacing:-.03em;font-weight:300}h4{font-size:var(--text-lg);letter-spacing:-.03em;font-weight:300}h5{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.02em;font-weight:300}h6{font-size:var(--text-sm);font-weight:300;letter-spacing:-.02em}p{margin-bottom:1rem;max-width:70ch;line-height:1.6;letter-spacing:-.03em}a{color:var(--link-color);text-decoration:none;position:relative;transition:opacity var(--link-animation-duration)}a:not(.category-link):not(.mention-link):not(.social-link):not(.highlight-link):not(.back-btn):not(.pricing-cta):not(.call-button){background-image:linear-gradient(#60a5fa,#60a5fa);background-repeat:no-repeat;background-size:0% 100%;background-position:left center;transition:background-size var(--link-animation-duration) ease,color var(--link-animation-duration) ease}a:not(.category-link):not(.mention-link):not(.social-link):not(.highlight-link):not(.back-btn):not(.pricing-cta):not(.call-button):hover{color:#0f172a;background-size:100% 100%}.section-header a,.social-links a{color:var(--text-color);text-decoration:none}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:#ffffff0d;border-radius:.5rem;padding:1rem;margin:1.5rem 0;overflow-x:auto}code{background:#ffffff0d;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:300;letter-spacing:-.02em;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{background:linear-gradient(135deg,#fffffff2,#ffffffd9 50%,#ffffffbf);-webkit-background-clip:text;background-clip:text;color:transparent}@keyframes fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}::view-transition-old(root){animation:fade-out .2s ease both}::view-transition-new(root){animation:fade-in .25s ease both}@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/roboto-mono-latin-400-normal.C_5wUCW5.woff2) format("woff2"),url(/_astro/roboto-mono-latin-400-normal.B0u6u4eV.woff) format("woff")}.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}.search-trigger[data-astro-cid-4mq26lvw]{display:flex;align-items:center;gap:.4rem;padding:.35rem .55rem;background:#ffffff0a;border:1px solid var(--border-color);border-radius:8px;color:var(--text-muted);cursor:pointer;flex-shrink:0;transition:border-color var(--transition-base),background var(--transition-base),color var(--transition-base)}.search-trigger[data-astro-cid-4mq26lvw] svg[data-astro-cid-4mq26lvw]{flex-shrink:0}.search-trigger[data-astro-cid-4mq26lvw]:hover{color:var(--text-color);border-color:#fff3;background:#ffffff12}.search-kbd[data-astro-cid-4mq26lvw]{display:flex;align-items:center;gap:.2rem;font-family:var(--font-mono);font-size:.8rem;flex-shrink:0;opacity:.8}.mod[data-astro-cid-4mq26lvw]{font-family:var(--font-sans);font-size:1.35em;line-height:1}.search-overlay[data-astro-cid-4mq26lvw]{position:fixed;inset:0;display:flex;align-items:flex-start;justify-content:center;padding:12vh 1rem 1rem;background:#0009;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:0;visibility:hidden;transition:opacity .2s ease;z-index:1000}@media (max-width: 640px){.search-overlay[data-astro-cid-4mq26lvw]{padding:4vh .75rem .75rem}}.search-overlay[data-astro-cid-4mq26lvw].open{opacity:1;visibility:visible}.search-modal[data-astro-cid-4mq26lvw]{position:relative;box-sizing:border-box;width:min(560px,100%);max-height:80vh;display:flex;flex-direction:column;background:#111111eb;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border-color);border-radius:14px;box-shadow:0 20px 60px #0000008c;overflow:hidden;transform:translateY(-8px) scale(.98);transition:transform .2s ease}.search-overlay[data-astro-cid-4mq26lvw].open .search-modal[data-astro-cid-4mq26lvw]{transform:translateY(0) scale(1)}.search-input-row[data-astro-cid-4mq26lvw]{display:flex;align-items:center;gap:.75rem;padding:1.1rem 1.25rem;color:var(--text-muted)}@media (max-width: 480px){.search-input-row[data-astro-cid-4mq26lvw]{gap:.5rem;padding:.85rem}.esc-kbd[data-astro-cid-4mq26lvw]{font-size:.65rem;padding:.2rem .35rem}#search-input[data-astro-cid-4mq26lvw]{font-size:.9rem}}.search-input-row[data-astro-cid-4mq26lvw] svg[data-astro-cid-4mq26lvw]{flex-shrink:0;color:#60a5fa;opacity:.9}#search-input[data-astro-cid-4mq26lvw]{flex:1;min-width:0;-webkit-appearance:none;appearance:none;background:none;border:none;outline:none;box-shadow:none;border-radius:0;padding:0;margin:0;color:var(--text-color);font-size:1rem;font-family:var(--font-sans)}#search-input[data-astro-cid-4mq26lvw]:focus{outline:none;box-shadow:none}#search-input[data-astro-cid-4mq26lvw]::placeholder{color:var(--text-muted);opacity:.55}.esc-kbd[data-astro-cid-4mq26lvw]{font-family:var(--font-sans);font-size:.7rem;font-weight:500;letter-spacing:.03em;cursor:pointer;color:var(--text-muted);background:#ffffff0f;border:1px solid var(--border-color);border-radius:6px;padding:.25rem .45rem;flex-shrink:0}.search-results[data-astro-cid-4mq26lvw]{overflow-y:auto;padding:.6rem;scrollbar-width:thin;scrollbar-color:rgba(96,165,250,.3) transparent}.search-results[data-astro-cid-4mq26lvw] .search-empty{padding:1.5rem 1rem;text-align:center;font-size:.875rem;opacity:.5}.search-results[data-astro-cid-4mq26lvw] .search-result{position:relative;display:flex;flex-direction:column;gap:.2rem;padding:.7rem .75rem .7rem 1rem;margin:.15rem 0;border-radius:8px;text-decoration:none;color:var(--text-color);background:#60a5fa00;transition:background .25s ease}.search-results[data-astro-cid-4mq26lvw] .search-result:before{content:"";position:absolute;top:.25rem;bottom:.25rem;left:0;width:2px;border-radius:2px;background:#60a5fa;transform:scaleY(0);transition:transform .25s cubic-bezier(.4,0,.2,1)}.search-results[data-astro-cid-4mq26lvw] .search-result:hover,.search-results[data-astro-cid-4mq26lvw] .search-result.active{background:#60a5fa1a}.search-results[data-astro-cid-4mq26lvw] .search-result:hover:before,.search-results[data-astro-cid-4mq26lvw] .search-result.active:before{transform:scaleY(1)}.search-results[data-astro-cid-4mq26lvw] .result-title{font-size:.875rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-results[data-astro-cid-4mq26lvw] .result-desc{font-size:.8rem;opacity:.55;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 640px){.search-kbd[data-astro-cid-4mq26lvw]{display:none}}@media (max-width: 480px){.search-trigger[data-astro-cid-4mq26lvw]{flex-shrink:0;padding:.3rem .4rem}}nav[data-astro-cid-o5br4kmp]{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;width:100%;flex-wrap:nowrap}.nav-links[data-astro-cid-o5br4kmp]{display:flex;gap:1.5rem;flex-wrap:nowrap;min-width:0}@media (max-width: 480px){nav[data-astro-cid-o5br4kmp]{gap:.5rem}.nav-links[data-astro-cid-o5br4kmp]{gap:.6rem}.nav-links[data-astro-cid-o5br4kmp] a[data-astro-cid-o5br4kmp]{font-size:.7rem}}.nav-links[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),background-size .3s ease;position:relative}a[data-astro-cid-o5br4kmp].highlight-link{background-image:linear-gradient(#60a5fa,#60a5fa);background-repeat:no-repeat;background-size:0% 100%;background-position:left center;transition:background-size .3s ease,color .3s ease;padding:0 2px}a[data-astro-cid-o5br4kmp].highlight-link:hover{color:#0f172a;background-size:100% 100%}a[data-astro-cid-o5br4kmp].active{color:var(--text-color)}.footer[data-astro-cid-cpgxvzen]{position:relative;width:100%;margin-top:0;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center}.footer-cta[data-astro-cid-cpgxvzen]{display:flex;flex-direction:column;align-items:center;gap:1rem;margin:3.5rem 1rem 2.75rem;text-align:center}.footer-cta__text[data-astro-cid-cpgxvzen]{margin:0;color:var(--text-muted);font-size:var(--text-sm)}.call-button[data-astro-cid-cpgxvzen]{display:inline-flex;position:relative;overflow:hidden;align-items:center;justify-content:center;border:1px solid rgba(0,0,0,.5);border-radius:1rem;background:#212121;color:#ffffffe6;box-shadow:0 4px 10px -4px #0f172a26;transition:transform .16s ease,filter .16s ease}.call-button[data-astro-cid-cpgxvzen]:after{content:"";position:absolute;inset:0;border:2px solid #2a2a2a;border-bottom-color:#00000080;border-right:0;border-radius:inherit;pointer-events:none}.call-button[data-astro-cid-cpgxvzen]:hover{transform:translateY(-1px);filter:brightness(1.08)}.call-button__inner[data-astro-cid-cpgxvzen]{display:flex;align-items:center;gap:.7rem;padding:.625rem 1.25rem;font-size:.9rem}.call-button__avatar[data-astro-cid-cpgxvzen]{width:1.75rem;height:1.75rem;flex-shrink:0;overflow:hidden;border-radius:999px}.call-button__avatar[data-astro-cid-cpgxvzen] img[data-astro-cid-cpgxvzen]{display:block;width:100%;height:100%;object-fit:cover}.made-with[data-astro-cid-cpgxvzen]{margin:-.5rem 0 1.5rem;font-size:var(--text-xs);opacity:.5;letter-spacing:.01em;display:flex;align-items:center;gap:.4rem}.emoji-swap[data-astro-cid-cpgxvzen]{position:relative;display:inline-block;width:1.05em;height:1.05em;vertical-align:-.2em}.emoji-swap[data-astro-cid-cpgxvzen] img[data-astro-cid-cpgxvzen]{position:absolute;inset:0;width:100%;height:100%;opacity:0;animation:emoji-swap 6s infinite;animation-delay:calc(var(--i) * -2s)}@keyframes emoji-swap{0%{opacity:0;transform:translateY(3px) scale(.9)}6%{opacity:1;transform:none}27%{opacity:1;transform:none}33%{opacity:0;transform:translateY(-3px) scale(.9)}to{opacity:0}}@media (prefers-reduced-motion: reduce){.emoji-swap[data-astro-cid-cpgxvzen] img[data-astro-cid-cpgxvzen]{animation:none}.emoji-swap[data-astro-cid-cpgxvzen] img[data-astro-cid-cpgxvzen]:first-child{opacity: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}}
