header[data-astro-cid-3ef6ksr2]{position:fixed;top:0;left:0;right:0;z-index:50;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:1px solid transparent;transition:background .3s ease,backdrop-filter .3s ease,border-color .3s ease}header[data-astro-cid-3ef6ksr2].scrolled{background:rgba(var(--header-bg-rgb),.4);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid rgba(128,128,128,.1)}.header-inner[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;justify-content:space-between;max-width:1200px;margin:0 auto;padding:.75rem 2rem}.logo[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;text-decoration:none;color:var(--text-color);position:relative}.logo[data-astro-cid-3ef6ksr2] svg{width:32px;height:32px;position:relative;z-index:2}.logo-text[data-astro-cid-3ef6ksr2]{position:absolute;left:40px;font-size:.75rem;font-weight:500;white-space:nowrap;padding:.25rem .75rem;background:#9333eae6;color:#fff;border-radius:.25rem;opacity:0;transform:translate(-10px);transition:opacity .3s ease,transform .3s ease;z-index:1}.logo-text[data-astro-cid-3ef6ksr2]:before{content:"";position:absolute;left:-5px;top:50%;transform:translateY(-50%);border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:6px solid rgba(147,51,234,.9)}.logo[data-astro-cid-3ef6ksr2]:hover .logo-text[data-astro-cid-3ef6ksr2]{opacity:1;transform:translate(0)}nav[data-astro-cid-3ef6ksr2]{display:flex;gap:2rem}nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{text-decoration:none;color:var(--text-color);font-weight:500;transition:color .2s ease}nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]:hover{color:#9333ea}nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2].active{color:#9333ea}html.dark nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]:hover{color:#c084fc}html.dark nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2].active{color:#c084fc}.header-actions[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:.5rem}#theme-toggle[data-astro-cid-3ef6ksr2],#mobile-menu-toggle[data-astro-cid-3ef6ksr2]{background:transparent;border:none;cursor:pointer;padding:.5rem;color:var(--text-color);border-radius:.5rem;transition:color .2s ease;position:relative}#theme-toggle[data-astro-cid-3ef6ksr2]:hover{color:#9333ea}html.dark #theme-toggle[data-astro-cid-3ef6ksr2]:hover{color:#c084fc}.theme-label[data-astro-cid-3ef6ksr2]{position:absolute;right:32px;font-size:.75rem;font-weight:500;white-space:nowrap;padding:.25rem .75rem;background:#9333eae6;color:#fff;border-radius:.25rem;opacity:0;transform:translate(10px);transition:opacity .3s ease,transform .3s ease;pointer-events:none}.theme-label[data-astro-cid-3ef6ksr2]:after{content:"";position:absolute;right:-5px;top:50%;transform:translateY(-50%);border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:6px solid rgba(147,51,234,.9)}#theme-toggle[data-astro-cid-3ef6ksr2]:hover .theme-label[data-astro-cid-3ef6ksr2]{opacity:1;transform:translate(0)}.dark-label[data-astro-cid-3ef6ksr2]{display:block}.light-label[data-astro-cid-3ef6ksr2],html.dark .dark-label[data-astro-cid-3ef6ksr2]{display:none}html.dark .light-label[data-astro-cid-3ef6ksr2]{display:block}#mobile-menu-toggle[data-astro-cid-3ef6ksr2]{display:none}.sun-icon[data-astro-cid-3ef6ksr2]{display:block}.moon-icon[data-astro-cid-3ef6ksr2],html.dark .sun-icon[data-astro-cid-3ef6ksr2]{display:none}html.dark .moon-icon[data-astro-cid-3ef6ksr2]{display:block}.close-icon[data-astro-cid-3ef6ksr2]{display:none}@media(max-width:768px){#mobile-menu-toggle[data-astro-cid-3ef6ksr2]{display:block}nav[data-astro-cid-3ef6ksr2]{position:absolute;top:100%;left:1rem;right:1rem;flex-direction:column;align-items:center;gap:.5rem;padding:1rem;margin-top:.5rem;background:rgba(var(--header-bg-rgb),.95);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(128,128,128,.15);border-radius:1rem;opacity:0;visibility:hidden;transform:translateY(-10px);transition:opacity .3s ease,visibility .3s ease,transform .3s ease}nav[data-astro-cid-3ef6ksr2].open{opacity:1;visibility:visible;transform:translateY(0)}nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{font-size:1rem;padding:.75rem 1rem;width:100%;text-align:center;border-radius:.5rem}nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]:hover{background:#8080801a}.header-inner[data-astro-cid-3ef6ksr2]:has(nav.open) .menu-icon[data-astro-cid-3ef6ksr2]{display:none}.header-inner[data-astro-cid-3ef6ksr2]:has(nav.open) .close-icon[data-astro-cid-3ef6ksr2]{display:block}}footer[data-astro-cid-sz7xmlte]{background:rgba(var(--header-bg-rgb),.4);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid rgba(128,128,128,.1);margin-top:0;padding:3rem 2rem 0}:root{--header-bg-rgb: 255, 255, 255}html.dark{--header-bg-rgb: 15, 15, 26}.footer-inner[data-astro-cid-sz7xmlte]{max-width:1200px;margin:0 auto}.footer-nav[data-astro-cid-sz7xmlte]{display:grid;grid-template-columns:2fr 1fr 1fr;gap:3rem;margin-bottom:3rem}.footer-brand[data-astro-cid-sz7xmlte] .logo[data-astro-cid-sz7xmlte]{display:inline-flex;align-items:center;gap:.75rem;text-decoration:none;color:var(--text-color)}.footer-brand[data-astro-cid-sz7xmlte] .logo[data-astro-cid-sz7xmlte] svg{width:48px;height:48px}.footer-brand[data-astro-cid-sz7xmlte] .brand-name[data-astro-cid-sz7xmlte]{font-size:1.25rem;font-weight:700}.tagline[data-astro-cid-sz7xmlte]{margin-top:.75rem;opacity:.7;font-size:.9rem;max-width:250px}.footer-links[data-astro-cid-sz7xmlte] h4[data-astro-cid-sz7xmlte],.footer-social[data-astro-cid-sz7xmlte] h4[data-astro-cid-sz7xmlte]{font-size:.875rem;text-transform:uppercase;letter-spacing:.05em;opacity:.6;margin-bottom:1rem}.footer-links[data-astro-cid-sz7xmlte] ul[data-astro-cid-sz7xmlte]{list-style:none;margin:0;padding:0}.footer-links[data-astro-cid-sz7xmlte] li[data-astro-cid-sz7xmlte]{margin-bottom:.5rem}.footer-links[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{text-decoration:none;color:var(--text-color);opacity:.8;transition:opacity .2s ease,color .2s ease}.footer-links[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{opacity:1;color:#9333ea}html.dark .footer-links[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:#c084fc}.social-icons[data-astro-cid-sz7xmlte]{display:flex;gap:1rem}.social-icons[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{color:var(--text-color);opacity:.7;transition:opacity .2s ease,color .2s ease}.social-icons[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{opacity:1;color:#9333ea}html.dark .social-icons[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:#c084fc}.footer-bottom[data-astro-cid-sz7xmlte]{margin-top:2rem;margin-left:-2rem;margin-right:-2rem;padding:1.25rem 2rem;background:#9333ea14;text-align:center;color:#4a1d7a}html.dark .footer-bottom[data-astro-cid-sz7xmlte]{background:#050508e6;color:#fff}.footer-bottom[data-astro-cid-sz7xmlte] p[data-astro-cid-sz7xmlte]{font-size:.875rem;opacity:1;display:flex;align-items:center;justify-content:center;color:inherit}.footer-bottom[data-astro-cid-sz7xmlte] .icon[data-astro-cid-sz7xmlte]{display:inline-flex;align-items:center;line-height:1}.footer-bottom[data-astro-cid-sz7xmlte] .inline-icon[data-astro-cid-sz7xmlte]{display:inline-block;vertical-align:-.1em}@media(max-width:768px){.footer-nav[data-astro-cid-sz7xmlte]{grid-template-columns:1fr;gap:2rem;text-align:center}.tagline[data-astro-cid-sz7xmlte]{max-width:none}.social-icons[data-astro-cid-sz7xmlte]{justify-content:center}}.skip-to-content[data-astro-cid-svspnz7o]{position:absolute;top:-100%;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#9333ea,#3b82f6);color:#fff;padding:.75rem 1.5rem;border-radius:0 0 .5rem .5rem;text-decoration:none;font-weight:600;z-index:10000;transition:top .2s ease}.skip-to-content[data-astro-cid-svspnz7o]:focus{top:0;outline:2px solid white;outline-offset:2px}:root{--text-color: #1a1a1a;--bg-color: #ffffff;--header-bg-rgb: 255, 255, 255;--orb-1: rgba(147, 51, 234, .15);--orb-2: rgba(59, 130, 246, .12);--orb-3: rgba(236, 72, 153, .1)}html.dark{--text-color: #f5f5f5;--bg-color: #0a0a0a;--header-bg-rgb: 10, 10, 10;--orb-1: rgba(147, 51, 234, .2);--orb-2: rgba(59, 130, 246, .15);--orb-3: rgba(236, 72, 153, .12)}*{margin:0;padding:0;box-sizing:border-box}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-color);color:var(--text-color);scroll-behavior:smooth}body{min-height:100vh;line-height:1.6;position:relative;overflow-x:hidden}a{color:inherit}img{max-width:100%;height:auto}.section-inner{max-width:1200px;margin:0 auto;padding:4rem 2rem}.section-title{font-size:2rem;margin-bottom:.5rem}.section-desc{opacity:.7;margin-bottom:2rem}.section-link{display:inline-block;margin-top:2rem;color:#9333ea;text-decoration:none;font-weight:500;transition:text-decoration .2s ease}.section-link:hover{text-decoration:underline}html.dark .section-link{color:#c084fc}.btn{display:inline-block;padding:.75rem 1.5rem;border-radius:9999px;text-decoration:none;font-weight:500;transition:transform .2s ease,box-shadow .2s ease}.btn:hover{transform:translateY(-2px)}.btn-primary{background:linear-gradient(135deg,#9333ea,#3b82f6);color:#fff}.btn-primary:hover{box-shadow:0 4px 20px #9333ea66}.btn-secondary{background:#80808026;color:var(--text-color)}.btn-secondary:hover{background:#80808040}.card-border{padding:2px;border-radius:1rem;background:#80808026;height:100%;transition:background .3s ease,transform .3s ease,box-shadow .3s ease;background-size:200% 200%}.card-border:hover{background:linear-gradient(135deg,#9333ea,#3b82f6,#ec4899,#9333ea);background-size:200% 200%;animation:border-spin 3s linear infinite;transform:translateY(-8px);box-shadow:0 20px 40px #9333ea26}.card{display:flex;flex-direction:column;height:100%;border-radius:calc(1rem - 2px);background:var(--bg-color);overflow:hidden;position:relative}.card-image{position:relative;aspect-ratio:16/9;overflow:hidden}.card-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease,filter .3s ease}.card-content{padding:1.25rem;display:flex;flex-direction:column;flex-grow:1;position:relative}.card-content:before{content:"";position:absolute;top:0;left:1rem;right:1rem;height:1px;background:linear-gradient(90deg,transparent,rgba(147,51,234,.3),rgba(59,130,246,.3),transparent)}.card-title{font-size:1.1rem;font-weight:600;line-height:1.4;margin-bottom:.5rem}.card-title a{text-decoration:none;transition:color .2s ease}.card-title a:hover{color:#9333ea}html.dark .card-title a:hover{color:#c084fc}.card-meta{font-size:.8rem;opacity:.6;margin-bottom:.75rem}.card-excerpt{font-size:.85rem;opacity:.75;line-height:1.6;flex-grow:1;margin-bottom:1rem}.tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:auto}.tag{font-size:.65rem;padding:.2rem .5rem;background:#8080801a;border-radius:9999px;text-decoration:none;opacity:.7;text-transform:uppercase;letter-spacing:.02em;transition:opacity .2s ease,background .2s ease}.tag:hover{opacity:1;background:#9333ea26}.badge{position:absolute;top:.75rem;right:.75rem;padding:.25rem .6rem;border-radius:9999px;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;z-index:2;box-shadow:0 2px 8px #0003}.badge-new{background:linear-gradient(135deg,#9333ea,#3b82f6,#ec4899);background-size:200% 200%;animation:badge-gradient 3s ease infinite;color:#fff}.badge-upcoming{background:linear-gradient(135deg,#f59e0b,#ef4444);color:#fff}@keyframes border-spin{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes badge-gradient{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes gradient-shift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes wiggle{0%,6%,to{transform:rotate(0)}1%{transform:rotate(-1.5deg)}2%{transform:rotate(1.5deg)}3%{transform:rotate(-1deg)}4%{transform:rotate(1deg)}5%{transform:rotate(-.5deg)}}.is-new .card-border{animation:wiggle 10s ease-in-out infinite}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}@media(max-width:1024px){.card-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.card-grid{grid-template-columns:1fr}}.grid-pattern{position:fixed;inset:0;background-image:linear-gradient(rgba(128,128,128,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(128,128,128,.03) 1px,transparent 1px);background-size:50px 50px;pointer-events:none;z-index:-1}.orb{position:fixed;border-radius:50%;filter:blur(80px);pointer-events:none;z-index:-1}.orb-1{width:600px;height:600px;background:var(--orb-1);top:-100px;left:-150px}.orb-2{width:500px;height:500px;background:var(--orb-2);top:40%;right:-200px}.orb-3{width:400px;height:400px;background:var(--orb-3);bottom:-100px;left:30%}@media(max-width:900px){.section-inner{padding:3rem 1.5rem}}@media(max-width:640px){.section-inner{padding:2rem 1rem}.section-title{font-size:1.5rem}}.grid-pattern[data-astro-cid-sckkx6r4]{position:fixed;inset:0;z-index:0;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 100 100'%3E%3Cpath d='M0 50h40v-10h10v20h-10v10h-10v-10h-30zM60 50h40v10h-10v10h-10v-10h-10v-20h10zM50 0v40h10v10h-20v-10h10v-30h-10v-10zM50 60v40h-10v-10h-10v-10h10v-10h20v10h-10z' fill='none' stroke='%239333ea' stroke-opacity='0.04' stroke-width='1'/%3E%3Ccircle cx='50' cy='50' r='3' fill='%239333ea' fill-opacity='0.05'/%3E%3Ccircle cx='0' cy='50' r='2' fill='%239333ea' fill-opacity='0.04'/%3E%3Ccircle cx='100' cy='50' r='2' fill='%239333ea' fill-opacity='0.04'/%3E%3Ccircle cx='50' cy='0' r='2' fill='%239333ea' fill-opacity='0.04'/%3E%3Ccircle cx='50' cy='100' r='2' fill='%239333ea' fill-opacity='0.04'/%3E%3C/svg%3E");opacity:1}html.dark .grid-pattern[data-astro-cid-sckkx6r4]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 100 100'%3E%3Cpath d='M0 50h40v-10h10v20h-10v10h-10v-10h-30zM60 50h40v10h-10v10h-10v-10h-10v-20h10zM50 0v40h10v10h-20v-10h10v-30h-10v-10zM50 60v40h-10v-10h-10v-10h10v-10h20v10h-10z' fill='none' stroke='%239333ea' stroke-opacity='0.08' stroke-width='1'/%3E%3Ccircle cx='50' cy='50' r='3' fill='%239333ea' fill-opacity='0.1'/%3E%3Ccircle cx='0' cy='50' r='2' fill='%239333ea' fill-opacity='0.08'/%3E%3Ccircle cx='100' cy='50' r='2' fill='%239333ea' fill-opacity='0.08'/%3E%3Ccircle cx='50' cy='0' r='2' fill='%239333ea' fill-opacity='0.08'/%3E%3Ccircle cx='50' cy='100' r='2' fill='%239333ea' fill-opacity='0.08'/%3E%3C/svg%3E");opacity:.8}.orb[data-astro-cid-sckkx6r4]{animation:float 20s ease-in-out infinite}.orb-1[data-astro-cid-sckkx6r4]{animation-delay:0s}.orb-2[data-astro-cid-sckkx6r4]{animation-delay:-7s}.orb-3[data-astro-cid-sckkx6r4]{animation-delay:-14s}@keyframes float{0%,to{transform:translate(0) scale(1)}25%{transform:translate(30px,-30px) scale(1.05)}50%{transform:translate(-20px,20px) scale(.95)}75%{transform:translate(20px,10px) scale(1.02)}}main[data-astro-cid-sckkx6r4]{position:relative;z-index:1;min-height:100vh;padding-top:5rem}.expressive-code .copy button{background:transparent!important;border:none!important;box-shadow:none!important;outline:none!important;padding:0!important;width:28px!important;height:28px!important;cursor:pointer!important}.expressive-code .copy button:hover,.expressive-code .copy button:focus,.expressive-code .copy button:active{background:transparent!important;border:none!important;box-shadow:none!important;outline:none!important}.expressive-code .copy button:before,.expressive-code button.copy:before{width:20px!important;height:20px!important;border:none!important;box-shadow:none!important;background-color:transparent!important}.expressive-code .copy button:after,.expressive-code button.copy:after{width:20px!important;height:20px!important;border:none!important;box-shadow:none!important;transition:background-color .2s ease!important}.expressive-code .copy button:hover:before,.expressive-code button.copy:hover:before{background-color:transparent!important}.expressive-code .copy button:hover:after,.expressive-code button.copy:hover:after{background-color:#fff!important}.expressive-code .copy,.expressive-code button.copy,.expressive-code div.copy,.expressive-code .copy button div,.expressive-code button.copy div{border:none!important;background:transparent!important;box-shadow:none!important;outline:none!important;margin-right:.5rem!important}.expressive-code .copy:hover,.expressive-code button.copy:hover,.expressive-code div.copy:hover,.expressive-code .copy button:hover div,.expressive-code button.copy:hover div,.expressive-code .copy button div:hover,.expressive-code button.copy div:hover{background:transparent!important;border:none!important;box-shadow:none!important}.expressive-code{background:#1e1e32f2!important;border-radius:.75rem;border:none!important;margin:1.5rem 0!important;max-width:100%;overflow-x:auto}.expressive-code .frame{background:transparent!important;border:none!important;margin:0!important;padding:0!important;max-width:100%}.expressive-code pre{background:transparent!important;border:none!important;margin:0!important;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word}.expressive-code pre code{white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word}.expressive-code figure{background:transparent!important;border:none!important;margin:0!important;max-width:100%}.expressive-code .copy{position:relative}.expressive-code .copy:before{content:"Copy this snippet";position:absolute;right:100%;top:50%;transform:translateY(-50%);background:linear-gradient(135deg,#9333ea,#3b82f6);color:#fff;padding:.25rem .5rem;border-radius:.25rem;font-size:.65rem;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;margin-right:.6rem;box-shadow:0 4px 12px #9333ea4d}.expressive-code .copy:after{content:"";position:absolute;right:calc(100% + .1rem);top:50%;transform:translateY(-50%);border:4px solid transparent;border-left-color:#3b82f6;opacity:0;pointer-events:none;transition:opacity .2s ease}.expressive-code .copy:hover:before,.expressive-code .copy:hover:after{opacity:1}.expressive-code .copy .feedback,.expressive-code .copy [data-tooltip],.expressive-code .copy button[title],.expressive-code button.copy[title]{title:none}.expressive-code .copy button,.expressive-code button.copy{title:none!important}.expressive-code [data-code]{position:relative}.expressive-code .copy .tooltip,.expressive-code .feedback{display:none!important}
