@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(*),[data-astro-transition-scope]{animation:none!important}}@layer tokens{:root{--bg-deep:#010405;--bg-surface:#040a0d;--bg-elevated:#071114;--bg-panel:#0d181c;--primary-h:92;--primary-bright:oklch(88% .19 92);--primary-mid:oklch(72% .18 75);--primary-dark:oklch(55% .16 55);--primary-dim:oklch(32% .09 50);--secondary-h:175;--secondary-bright:oklch(75% .14 var(--secondary-h));--secondary-mid:oklch(62% .12 var(--secondary-h));--secondary-dark:oklch(48% .1 var(--secondary-h));--secondary-dim:oklch(32% .08 var(--secondary-h));--tertiary-h:200;--tertiary-bright:oklch(70% .12 var(--tertiary-h));--tertiary-mid:oklch(55% .1 var(--tertiary-h));--tertiary-dark:oklch(42% .08 var(--tertiary-h));--color-success:oklch(75% .14 165);--color-warning:oklch(72% .18 60);--color-error:oklch(68% .2 25);--color-info:oklch(72% .13 230);--text-primary:#f1f5fc;--text-secondary:#bacad6;--text-muted:#798898;--text-inverse:#000205;--border-subtle:color-mix(in oklch, var(--text-secondary) 16%, transparent);--border-strong:color-mix(in oklch, var(--text-primary) 12%, transparent);--border-accent:color-mix(in oklch, var(--primary-bright) 40%, transparent);--glow-primary:color-mix(in oklch, var(--primary-bright) 15%, transparent);--glow-secondary:color-mix(in oklch, var(--secondary-bright) 10%, transparent);--glow-tertiary:color-mix(in oklch, var(--tertiary-bright) 8%, transparent);--bg-glass:color-mix(in oklch, var(--bg-panel) 72%, transparent);--bg-overlay:color-mix(in oklch, var(--bg-deep) 72%, transparent);--font-display:var(--font-boldonse), "Helvetica Neue", Arial, sans-serif;--font-body:var(--font-geist), "Helvetica Neue", Arial, sans-serif;--font-article:var(--font-geist), "Helvetica Neue", Arial, sans-serif;--font-mono:var(--font-jetbrains-mono), "SF Mono", "Menlo", "Consolas", monospace;--font-logo:var(--font-boldonse), "Helvetica Neue", Arial, sans-serif;--text-2xs:clamp(.65rem, .6rem + .1vw, .7rem);--text-xs:clamp(.75rem, .7rem + .15vw, .8125rem);--text-sm:clamp(.875rem, .75rem + .25vw, .875rem);--text-base:clamp(.95rem, .9rem + .25vw, 1rem);--text-lg:clamp(1.05rem, 1rem + .25vw, 1.125rem);--text-xl:clamp(1.15rem, 1.1rem + .25vw, 1.25rem);--text-2xl:clamp(1.35rem, 1.25rem + .5vw, 1.5rem);--text-3xl:clamp(1.65rem, 1.5rem + .75vw, 1.875rem);--text-4xl:clamp(2rem, 1.75rem + 1.25vw, 2.25rem);--text-5xl:clamp(2.5rem, 2rem + 2.5vw, 3rem);--font-regular:400;--font-medium:500;--font-semibold:600;--font-bold:700;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.75;--leading-loose:2;--tracking-tight:-.03em;--tracking-normal:0;--tracking-wide:.05em;--tracking-wider:.1em;--tracking-widest:.15em;--space-0:0;--space-px:1px;--space-0-5:.125rem;--space-1:.25rem;--space-1-5:.375rem;--space-2:.5rem;--space-2-5:.625rem;--space-3:.75rem;--space-3-5:.875rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-7:1.75rem;--space-8:2rem;--space-9:2.25rem;--space-10:2.5rem;--space-11:2.75rem;--space-12:3rem;--space-14:3.5rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--bp-sm:30em;--bp-md:48em;--bp-lg:64em;--bp-xl:80em;--bp-2xl:96em;--container-narrow:720px;--container-base:960px;--container-wide:1140px;--container-xwide:1280px;--bleed-sm:1rem;--bleed-md:2rem;--bleed-lg:4rem;--radius-none:0;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-2xl:1.25rem;--radius-3xl:1.5rem;--radius-full:9999px;--shadow-xs:0 1px 2px color-mix(in oklch, var(--bg-deep) 30%, transparent);--shadow-sm:0 2px 4px color-mix(in oklch, var(--bg-deep) 30%, transparent);--shadow-md:0 8px 20px color-mix(in oklch, var(--bg-deep) 35%, transparent);--shadow-lg:0 18px 40px color-mix(in oklch, var(--bg-deep) 45%, transparent);--shadow-xl:0 30px 60px color-mix(in oklch, var(--bg-deep) 55%, transparent);--shadow-2xl:0 40px 80px color-mix(in oklch, var(--bg-deep) 65%, transparent);--shadow-inner:inset 0 1px 0 color-mix(in oklch, var(--text-primary) 4%, transparent);--shadow-inner-lg:inset 0 2px 4px color-mix(in oklch, var(--bg-deep) 15%, transparent);--ring-primary:0 0 0 3px var(--glow-primary);--ring-secondary:0 0 0 3px var(--glow-secondary);--ring-tertiary:0 0 0 3px var(--glow-tertiary);--ring-offset:0 0 0 2px var(--bg-deep);--duration-instant:0s;--duration-fast:.15s;--duration-base:.24s;--duration-slow:.36s;--duration-slower:.5s;--ease-linear:linear;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--ease-bounce:cubic-bezier(.68, -.55, .265, 1.55);--ease-elastic:cubic-bezier(.5, 1.5, .5, 1);--transition-fast:var(--duration-fast) var(--ease-out);--transition-base:var(--duration-base) var(--ease-in-out);--transition-slow:var(--duration-slow) var(--ease-in-out);--z-base:0;--z-below:-1;--z-dropdown:100;--z-sticky:200;--z-fixed:300;--z-overlay:400;--z-modal:500;--z-popover:600;--z-tooltip:700;--z-toast:800;--z-max:9999;--float-distance:-8px;--float-duration:4s;--pulse-scale-min:.95;--pulse-scale-max:1.05;--pulse-duration:2s;--rotate-degrees:360deg;--rotate-duration:20s}[data-theme=light]{--bg-deep:#fcfaf7;--bg-surface:#f3f0eb;--bg-elevated:#fff;--bg-panel:#fefdfb;--primary-bright:oklch(54% .17 50);--primary-mid:oklch(46% .16 48);--primary-dark:oklch(38% .14 45);--primary-dim:oklch(94% .06 92);--secondary-bright:oklch(48% .14 var(--secondary-h));--secondary-mid:oklch(40% .12 var(--secondary-h));--secondary-dark:oklch(34% .1 var(--secondary-h));--secondary-dim:oklch(92% .03 var(--secondary-h));--tertiary-bright:oklch(48% .12 var(--tertiary-h));--tertiary-mid:oklch(40% .1 var(--tertiary-h));--tertiary-dark:oklch(34% .08 var(--tertiary-h));--color-success:oklch(45% .16 165);--color-warning:oklch(55% .18 55);--color-error:oklch(48% .2 25);--color-info:oklch(48% .14 230);--text-primary:#1e293b;--text-secondary:#475569;--text-muted:#5b6b7d;--text-inverse:#fff;--border-subtle:#e2e8f0;--border-strong:#cbd5e1;--border-accent:color-mix(in oklch, var(--primary-bright) 35%, transparent);--glow-primary:color-mix(in oklch, var(--primary-bright) 10%, transparent);--glow-secondary:color-mix(in oklch, var(--secondary-bright) 8%, transparent);--glow-tertiary:color-mix(in oklch, var(--tertiary-bright) 6%, transparent);--bg-glass:color-mix(in oklch, var(--bg-panel) 85%, transparent);--bg-overlay:color-mix(in oklch, var(--bg-deep) 75%, transparent);--shadow-xs:0 1px 2px #1e293b0d;--shadow-sm:0 2px 6px #1e293b0f;--shadow-md:0 4px 12px #1e293b14;--shadow-lg:0 12px 28px #1e293b1a;--shadow-xl:0 24px 48px #1e293b1f;--shadow-2xl:0 36px 72px #1e293b24;--shadow-inner:inset 0 1px 0 #ffffffb3;--shadow-inner-lg:inset 0 2px 4px #1e293b0a;--ring-primary:0 0 0 3px var(--glow-primary);--ring-secondary:0 0 0 3px var(--glow-secondary);--ring-offset:0 0 0 2px var(--bg-deep)}@media (prefers-reduced-motion:reduce){:root{--duration-fast:0s;--duration-base:0s;--duration-slow:0s;--duration-slower:0s;--float-duration:0s;--pulse-duration:0s;--rotate-duration:0s}}}@layer animations{@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(var(--fade-distance,20px))}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(var(--fade-distance,-20px))}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translateX(var(--fade-distance,-20px))}to{opacity:1;transform:translate(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translateX(var(--fade-distance,20px))}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(var(--scale-start,.9))}to{opacity:1;transform:scale(1)}}@keyframes float{0%,to{transform:translateY(var(--float-start,0))}50%{transform:translateY(var(--float-end,var(--float-distance,-8px)))}}@keyframes pulse{0%,to{transform:scale(var(--pulse-scale-min,1));opacity:1}50%{transform:scale(var(--pulse-scale-max,1.05));opacity:.9}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(var(--rotate-degrees,360deg))}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(var(--bounce-height,-10px))}}@keyframes blink{0%,90%,to{opacity:1}95%{opacity:var(--blink-opacity,.3)}}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(var(--wiggle-angle,-3deg))}75%{transform:rotate(var(--wiggle-angle-inverse,3deg))}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translateX(var(--shake-distance,-2px))}75%{transform:translateX(var(--shake-distance-inverse,2px))}}@keyframes twinkle{0%{opacity:var(--twinkle-min,.4)}to{opacity:var(--twinkle-max,.7)}}@keyframes shimmer{0%{background-position:-100% 0}to{background-position:200% 0}}@keyframes scrollLeft{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes scrollRight{0%{transform:translate(-50%)}to{transform:translate(0)}}.animate-fade-in{animation:fadeIn var(--duration-base) var(--ease-out) both}.animate-fade-in-up{animation:fadeInUp var(--duration-base) var(--ease-out) both}.animate-fade-in-down{animation:fadeInDown var(--duration-base) var(--ease-out) both}.animate-fade-in-left{animation:fadeInLeft var(--duration-base) var(--ease-out) both}.animate-fade-in-right{animation:fadeInRight var(--duration-base) var(--ease-out) both}.animate-scale-in{animation:scaleIn var(--duration-base) var(--ease-out) both}.animate-float{animation:float var(--float-duration) ease-in-out infinite;will-change:transform}.animate-pulse{animation:pulse var(--pulse-duration) ease-in-out infinite;will-change:transform, opacity}.animate-spin{animation:spin var(--rotate-duration) linear infinite;will-change:transform}.animate-bounce{animation:bounce var(--duration-slow) ease-in-out infinite;will-change:transform}.animate-blink{will-change:opacity;animation:3s ease-in-out infinite blink}.animate-wiggle{will-change:transform;animation:2s ease-in-out infinite wiggle}.animate-shake{will-change:transform;animation:.1s ease-in-out infinite shake}.animate-twinkle{will-change:opacity;animation:8s ease-in-out infinite alternate twinkle}.animate-shimmer{background:linear-gradient(90deg, transparent, color-mix(in oklch, var(--text-primary) 15%, transparent), transparent);will-change:background-position;background-size:200% 100%;animation:2s linear infinite shimmer}.animate-faster{animation-duration:calc(var(--duration-base) * .5)}.animate-slower{animation-duration:calc(var(--duration-base) * 1.5)}.animate-delay-1{animation-delay:.15s}.animate-delay-2{animation-delay:.3s}.animate-delay-3{animation-delay:.45s}.animate-delay-4{animation-delay:.6s}.animate-delay-5{animation-delay:.75s}.animate-paused{animation-play-state:paused}.animate-running{animation-play-state:running}.animate-pause-on-hover:hover,.animate-pause-on-hover:focus-within,.animate-play-on-hover{animation-play-state:paused}.animate-play-on-hover:hover,.animate-play-on-hover:focus{animation-play-state:running}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.animate-float,.animate-pulse,.animate-spin,.animate-bounce,.animate-blink,.animate-wiggle,.animate-shake,.animate-twinkle,.animate-shimmer{will-change:auto}}[class*=animate-]{contain:layout style paint}.animate-float,.animate-pulse,.animate-bounce{backface-visibility:hidden;transform:translateZ(0)}}@layer reset{*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{border:0;margin:0;padding:0}ol,ul{list-style:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0}a{color:inherit;text-decoration:none}input,textarea,select,button{font:inherit;color:inherit}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit}input[type=text],input[type=email],input[type=password],input[type=search],input[type=number],textarea,button,[type=button],[type=reset],[type=submit]{appearance:none}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}#root,#__next{isolation:isolate}}@layer base{html{scroll-behavior:smooth;scrollbar-gutter:stable;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;color-scheme:dark;-webkit-text-size-adjust:100%}html[data-theme=light]{color-scheme:light}body{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text-primary);background-color:var(--bg-deep);min-height:100dvh;overflow-x:hidden}::selection{background:var(--primary-bright);color:var(--text-inverse);text-shadow:none}::selection{background:var(--primary-bright);color:var(--text-inverse);text-shadow:none}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--border-accent)}:focus{outline:none}:focus-visible{outline:3px solid var(--secondary-bright);outline-offset:2px;border-radius:var(--radius-sm)}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--secondary-bright);outline-offset:2px}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--font-regular);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--text-primary)}h1{font-size:var(--text-5xl)}h2{font-size:var(--text-4xl);margin-bottom:var(--space-4)}h3{font-size:var(--text-3xl)}h4{font-size:var(--text-2xl)}h5{font-size:var(--text-xl)}h6{font-size:var(--text-lg)}p{color:var(--text-secondary);line-height:var(--leading-relaxed)}small{font-size:var(--text-sm)}strong,b{font-weight:var(--font-bold)}em,i{font-style:italic}code,kbd,samp,pre{font-family:var(--font-mono)}a{color:var(--primary-bright);transition:color var(--transition-fast)}a:hover{color:var(--secondary-bright)}input::placeholder,textarea::placeholder{color:var(--text-muted);opacity:1}input:-webkit-autofill{-webkit-text-fill-color:var(--text-primary);-webkit-box-shadow:0 0 0 1000px var(--bg-panel) inset;transition:background-color 5000s ease-in-out}input:-webkit-autofill:hover{-webkit-text-fill-color:var(--text-primary);-webkit-box-shadow:0 0 0 1000px var(--bg-panel) inset;transition:background-color 5000s ease-in-out}input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text-primary);-webkit-box-shadow:0 0 0 1000px var(--bg-panel) inset;transition:background-color 5000s ease-in-out}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (prefers-contrast:high){:root{--border-subtle:var(--border-strong)}}@media print{*,:before,:after{color:#000!important;box-shadow:none!important;text-shadow:none!important;background:0 0!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}pre,blockquote{page-break-inside:avoid;border:1px solid #999}thead{display:table-header-group}tr,img{page-break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}}@layer utilities{.glass{background:var(--bg-glass);-webkit-backdrop-filter:blur(16px);border:1px solid color-mix(in oklch, var(--text-primary) 10%, transparent)}.glass-strong{background:color-mix(in oklch, var(--bg-panel) 60%, transparent);-webkit-backdrop-filter:blur(24px);border:1px solid color-mix(in oklch, var(--text-primary) 15%, transparent)}.container{z-index:var(--z-base);max-width:var(--container-wide);padding:60px var(--space-6) 40px;flex-direction:column;min-height:100dvh;margin:0 auto;display:flex;position:relative}.container-wide{max-width:var(--container-xwide)}.container-narrow{max-width:var(--container-narrow)}.container-full{max-width:100%}.section{margin-bottom:var(--space-16)}.section-header{margin-bottom:var(--space-6);justify-content:space-between;align-items:center;display:flex}.section-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--font-semibold);align-items:center;gap:var(--space-3);display:flex}.section-link{font-size:var(--text-sm);color:var(--primary-bright);font-weight:var(--font-medium);transition:color var(--transition-fast);text-decoration:none}.section-link:hover{color:var(--secondary-bright)}.grid{gap:var(--space-4);display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.grid-auto-fit{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.grid-auto-fill{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.flex{display:flex}.flex-col{flex-direction:column}.flex-center{justify-content:center;align-items:center;display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.flex-wrap{flex-wrap:wrap}.bleed-sm{margin-inline:calc(-1 * var(--bleed-sm))}.bleed-md{margin-inline:calc(-1 * var(--bleed-md))}.bleed-lg{margin-inline:calc(-1 * var(--bleed-lg))}@media (width<=768px){.bleed-sm,.bleed-md,.bleed-lg{margin-inline:0}}.m-auto{margin:auto}.mx-auto{margin-inline:auto}.my-auto{margin-block:auto}.gap-0{gap:var(--space-0)}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.text-inverse{color:var(--text-inverse)}.text-brand-primary{color:var(--primary-bright)}.text-brand-secondary{color:var(--secondary-bright)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.text-3xl{font-size:var(--text-3xl)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.link-separator{color:var(--text-muted);font-size:var(--text-sm)}.interactive{cursor:pointer;transition:all var(--transition-base)}.interactive:hover{transform:translateY(-2px)}.interactive:active{transform:translateY(0)}.clickable{cursor:pointer}.no-select{user-select:none}.hidden{display:none}.invisible{visibility:hidden}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.inset-0{inset:0}.z-base{z-index:var(--z-base)}.z-dropdown{z-index:var(--z-dropdown)}.z-sticky{z-index:var(--z-sticky)}.z-fixed{z-index:var(--z-fixed)}.z-modal{z-index:var(--z-modal)}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:var(--radius-full)}.w-full{width:100%}.w-auto{width:auto}.h-full{height:100%}.h-auto{height:auto}.min-h-screen{min-height:100vh}.min-h-dvh{min-height:100dvh}@media (width<=640px){.sm\:hidden{display:none}.sm\:grid-cols-1{grid-template-columns:1fr}}@media (width>=640px) and (width<=768px){.md\:grid-cols-2{grid-template-columns:repeat(2,1fr)}}@media (width>=768px){.lg\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.lg\:grid-cols-4{grid-template-columns:repeat(4,1fr)}}.will-change-transform{will-change:transform}.will-change-opacity{will-change:opacity}.gpu-accelerated{backface-visibility:hidden;transform:translateZ(0)}.contain-layout{contain:layout}.contain-paint{contain:paint}.contain-strict{contain:strict}.grid-container{gap:var(--space-6);display:grid}.bento{gap:var(--space-6);grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(120px,auto);display:grid}.bento-item{min-width:0;min-height:0;position:relative}.bento-sm{grid-area:span 1/span 1}.bento-md{grid-area:span 1/span 2}.bento-lg{grid-area:span 2/span 2}.bento-wide{grid-area:span 1/span 3}.bento-tall{grid-area:span 2/span 1}.bento-xl{grid-area:span 2/span 3}.bento-hero{grid-area:span 2/span 4}.bento-full{grid-column:1/-1}.bento-primary{background:var(--primary-dark);border-color:color-mix(in oklch, var(--primary-bright) 30%, transparent)}.bento-secondary{background:var(--secondary-dark);border-color:color-mix(in oklch, var(--secondary-bright) 30%, transparent)}.bento-tertiary{background:var(--tertiary-dark);border-color:color-mix(in oklch, var(--tertiary-bright) 30%, transparent)}.bento-glass{background:var(--bg-glass);-webkit-backdrop-filter:blur(12px)}.bento-featured{border-color:var(--primary-bright);box-shadow:var(--shadow-lg)}.bento-featured:hover{box-shadow:var(--shadow-xl)}@media (width<=1024px){.bento{grid-template-columns:repeat(3,1fr)}.bento-hero,.bento-xl{grid-column:span 3}.bento-wide{grid-column:span 2}}@media (width<=768px){.bento{grid-template-columns:repeat(2,1fr);grid-auto-rows:minmax(100px,auto)}.bento-hero,.bento-xl,.bento-wide{grid-column:span 2}.bento-lg{grid-area:span 1/span 2}}@media (width<=480px){.bento{grid-template-columns:1fr}.bento-hero,.bento-xl,.bento-wide,.bento-lg,.bento-md{grid-column:span 1}.bento-tall{grid-row:span 1}}.grid-cols-2-responsive,.grid-cols-3-responsive,.grid-cols-4-responsive{grid-template-columns:1fr}@media (width>=768px){.grid-cols-2-responsive,.grid-cols-3-responsive,.grid-cols-4-responsive{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.grid-cols-2-responsive{grid-template-columns:repeat(2,1fr)}.grid-cols-3-responsive{grid-template-columns:repeat(3,1fr)}.grid-cols-4-responsive{grid-template-columns:repeat(4,1fr)}}.grid-layout-sidebar-right,.grid-layout-sidebar-left{grid-template-columns:1fr}@media (width>=1024px){.grid-layout-sidebar-right{gap:var(--space-8);grid-template-columns:1fr 340px}.grid-layout-sidebar-left{gap:var(--space-8);grid-template-columns:340px 1fr}}@media (width>=768px){.col-span-2{grid-column:span 2}.col-span-3{grid-column:span 3}.col-span-full{grid-column:1/-1}.row-span-2{grid-row:span 2}.row-span-3{grid-row:span 3}}}:root{--primary-h:158;--primary-bright:oklch(80% .16 158);--primary-mid:oklch(70% .15 158);--primary-dark:oklch(55% .13 160);--primary-dim:oklch(32% .08 160);--border-accent:color-mix(in oklch, var(--primary-bright) 40%, transparent);--glow-primary:color-mix(in oklch, var(--primary-bright) 15%, transparent)}[data-theme=light]{--primary-bright:oklch(48% .13 158);--primary-mid:oklch(42% .12 158);--primary-dark:oklch(35% .1 158);--primary-dim:oklch(94% .045 158);--border-accent:color-mix(in oklch, var(--primary-bright) 35%, transparent);--glow-primary:color-mix(in oklch, var(--primary-bright) 10%, transparent)}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}.skip-link[data-astro-cid-ju4pidww]{background:var(--primary-bright);color:var(--text-inverse);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);z-index:var(--z-max);position:absolute;top:0;left:-9999px}.skip-link[data-astro-cid-ju4pidww]:focus{left:var(--space-4);top:var(--space-4)}.hdr[data-astro-cid-ju4pidww]{z-index:var(--z-sticky);background:var(--bg-glass);backdrop-filter:blur(14px);border-bottom:1px solid var(--border-subtle);position:sticky;top:0}.hdr__inner[data-astro-cid-ju4pidww]{max-width:var(--container-xwide);padding:var(--space-3) var(--space-6);align-items:center;gap:var(--space-6);margin:0 auto;display:flex;position:relative}.hdr__nav[data-astro-cid-ju4pidww]{gap:var(--space-5);margin-left:auto;display:flex}.hdr__nav[data-astro-cid-ju4pidww] a[data-astro-cid-ju4pidww]{font-family:var(--font-mono);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-muted)}.hdr__nav[data-astro-cid-ju4pidww] a[data-astro-cid-ju4pidww]:hover{color:var(--primary-bright)}.hamburger[data-astro-cid-ju4pidww]{cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;gap:4px;width:34px;height:28px;padding:0;display:none}.hamburger[data-astro-cid-ju4pidww] span[data-astro-cid-ju4pidww]{background:var(--text-primary);width:20px;height:2px;transition:transform var(--transition-base);border-radius:2px;display:block}.hdr__theme[data-astro-cid-ju4pidww]{border:1px solid var(--border-strong);border-radius:var(--radius-full);align-items:center;width:34px;height:20px;padding:0 2px;display:inline-flex}.hdr__theme-dot[data-astro-cid-ju4pidww]{border-radius:var(--radius-full);background:var(--primary-bright);width:14px;height:14px;transition:transform var(--transition-base)}html[data-theme=light] .hdr__theme-dot[data-astro-cid-ju4pidww]{transform:translate(0)}html:not([data-theme=light]) .hdr__theme-dot[data-astro-cid-ju4pidww]{transform:translate(14px)}@media (width<=48em){.hamburger[data-astro-cid-ju4pidww]{margin-left:auto;display:flex}.hdr__nav[data-astro-cid-ju4pidww]{background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);padding:var(--space-2) var(--space-6) var(--space-4);box-shadow:var(--shadow-md);flex-direction:column;gap:0;margin:0;display:none;position:absolute;top:100%;left:0;right:0}.hdr__nav[data-astro-cid-ju4pidww].is-open{display:flex}.hdr__nav[data-astro-cid-ju4pidww] a[data-astro-cid-ju4pidww]{padding:var(--space-3) 0;font-size:var(--text-xs);border-bottom:1px solid var(--border-subtle)}}.logo[data-astro-cid-ju4pidww]{font-family:var(--font-logo);font-size:var(--text-lg);color:var(--text-primary);letter-spacing:var(--tracking-tight);align-items:baseline;gap:1px;display:inline-flex}.logo__slash[data-astro-cid-ju4pidww]{color:var(--primary-bright);margin:0 2px}.logo__b[data-astro-cid-ju4pidww]{color:var(--text-primary)}.logo--sm[data-astro-cid-ju4pidww]{font-size:var(--text-base)}.ftr[data-astro-cid-ju4pidww]{margin-top:var(--space-24);border-top:1px solid var(--border-subtle);background:var(--bg-surface)}.ftr__inner[data-astro-cid-ju4pidww]{max-width:var(--container-xwide);padding:var(--space-12) var(--space-6);gap:var(--space-4);margin:0 auto;display:grid}.ftr__tag[data-astro-cid-ju4pidww]{font-size:var(--text-sm);color:var(--text-secondary);margin-top:var(--space-2);max-width:42ch}.ftr__links[data-astro-cid-ju4pidww]{gap:var(--space-4);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.ftr__links[data-astro-cid-ju4pidww] a[data-astro-cid-ju4pidww]{font-family:var(--font-mono);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-muted)}.ftr__links[data-astro-cid-ju4pidww] a[data-astro-cid-ju4pidww]:hover{color:var(--primary-bright)}.ftr__net[data-astro-cid-ju4pidww]{font-size:var(--text-sm);color:var(--text-secondary)}.ftr__copy[data-astro-cid-ju4pidww]{font-family:var(--font-mono);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-muted)}
