.reveal[data-astro-cid-gkxl7tdg]{opacity:0;transform:translateY(30px);transition:all .6s cubic-bezier(.4,0,.2,1)}.reveal[data-astro-cid-gkxl7tdg].active{opacity:1;transform:translateY(0)}.reveal-delay-1[data-astro-cid-gkxl7tdg]{transition-delay:.1s}.reveal-delay-2[data-astro-cid-gkxl7tdg]{transition-delay:.2s}.reveal-delay-3[data-astro-cid-gkxl7tdg]{transition-delay:.3s}.reveal-delay-4[data-astro-cid-gkxl7tdg]{transition-delay:.4s}@media(prefers-reduced-motion:reduce){.reveal[data-astro-cid-gkxl7tdg]{opacity:1;transform:none;transition:none}}.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}.footer-layout[data-astro-cid-37fxchfa]{display:flex;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}:root{--bg: #0b1220;--bg-elevated: #0f1a2e;--bg-sunken: #070d16;--text: #e6edf6;--text-muted: #9fb0c6;--text-subtle: #6b7a8f;--line: rgba(255,255,255,.08);--line-strong: rgba(255,255,255,.15);--accent-primary: #5eead4;--accent-primary-dim: #3dd5bd;--accent-primary-glow: rgba(94,234,212,.25);--accent-primary-subtle: rgba(94,234,212,.12);--accent-secondary: #60a5fa;--accent-secondary-dim: #3b82f6;--accent-secondary-glow: rgba(96,165,250,.25);--accent-tertiary: #a78bfa;--accent-tertiary-dim: #8b5cf6;--success: #34d399;--warning: #fbbf24;--error: #f87171;--info: #60a5fa;--code-bg: rgba(0,0,0,.35);--code-border: rgba(255,255,255,.12);--code-inline-bg: rgba(94,234,212,.08);--code-inline-text: #7dd3c0;--syntax-keyword: #c792ea;--syntax-string: #c3e88d;--syntax-function: #82aaff;--syntax-variable: #f07178;--syntax-comment: #546e7a;--syntax-constant: #ffcb6b;--max: 980px;--radius: 16px;--radius-sm: 10px;--radius-lg: 20px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--space-9: 96px;--space-10: 128px;--text-xs: 12px;--text-sm: 14px;--text-base: 16px;--text-lg: 18px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 32px;--text-4xl: 48px;--text-5xl: 64px;--weight-normal: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--leading-tight: 1.1;--leading-snug: 1.4;--leading-normal: 1.6;--leading-relaxed: 1.75;--shadow-none: none;--shadow-sm: 0 1px 3px rgba(0,0,0,.3);--shadow-md: 0 4px 12px rgba(0,0,0,.4);--shadow-lg: 0 8px 24px rgba(0,0,0,.5);--shadow-primary: 0 0 1px rgba(94,234,212,.2);--glow-primary: 0 0 20px var(--accent-primary-glow);--glow-secondary: 0 0 20px var(--accent-secondary-glow)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:radial-gradient(1200px 700px at 20% 0%,var(--accent-primary-subtle),transparent 55%),radial-gradient(800px 600px at 80% 100%,rgba(96,165,250,.08),transparent 55%),var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.6;font-size:16px}a{color:var(--accent-primary);text-decoration:none;transition:color .2s ease}a:hover{color:var(--accent-primary-dim);text-decoration:underline}a:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px;border-radius:2px}.container{max-width:var(--max);margin:0 auto;padding:var(--space-6) var(--space-4)}.card{background:linear-gradient(180deg,#ffffff0a,#ffffff05);border:1px solid var(--line);border-left:2px solid transparent;border-radius:var(--radius);padding:var(--space-4);transition:all .2s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.card:before{content:"";position:absolute;inset:0;background:radial-gradient(600px circle at var(--mouse-x, 50%) var(--mouse-y, 50%),var(--accent-primary-subtle),transparent 40%);opacity:0;transition:opacity .4s ease;pointer-events:none}.card:hover:before{opacity:1}.card:hover{border-color:var(--accent-primary-glow);transform:translateY(-4px) scale(1.01);box-shadow:var(--shadow-md),0 0 40px var(--accent-primary-glow)}.grid{display:grid;gap:var(--space-4)}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:820px){.grid-2{grid-template-columns:1fr}}.kicker{color:var(--text-muted);font-size:var(--text-sm);font-weight:var(--weight-medium);text-transform:uppercase;letter-spacing:.05em}.h1{font-size:var(--text-4xl);line-height:var(--leading-tight);margin:var(--space-3) 0 var(--space-4);font-weight:var(--weight-bold);background:linear-gradient(135deg,var(--text) 0%,var(--accent-primary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.h2{font-size:var(--text-xl);margin:0 0 var(--space-2);font-weight:var(--weight-semibold);color:var(--text);line-height:var(--leading-snug)}.p{color:var(--text-muted);margin:0;line-height:var(--leading-relaxed);font-size:var(--text-base)}.badge{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:500;color:var(--text-muted);border:1px solid var(--line);border-radius:999px;padding:6px 10px;background:#ffffff05;transition:all .2s ease}.badge:hover{border-color:var(--accent-primary-glow);background:#5eead40d;text-decoration:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);border-radius:999px;padding:var(--space-2) var(--space-4);border:1px solid var(--line);background:#ffffff05;font-weight:var(--weight-medium);font-size:var(--text-sm);transition:all .2s ease;color:var(--text);cursor:pointer}.btn:hover{background:#ffffff0f;border-color:var(--line-strong);text-decoration:none;transform:translateY(-1px)}.btn:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.btn.active{border-color:var(--accent-primary-glow);background:linear-gradient(135deg,#5eead41a,#60a5fa0d);box-shadow:var(--glow-primary)}hr{border:0;border-top:1px solid var(--line);margin:var(--space-6) 0}article h1,article h2,article h3,article h4,article h5,article h6{color:var(--text);font-weight:600;line-height:1.3;margin-top:2em;margin-bottom:.75em}article h1:first-child,article h2:first-child,article h3:first-child{margin-top:0}article h1{font-size:2.2em;font-weight:700;border-bottom:2px solid var(--line);padding-bottom:.3em}article h2{font-size:1.75em;position:relative;padding-left:16px}article h2:before{content:"";position:absolute;left:0;top:.2em;bottom:.2em;width:4px;background:linear-gradient(180deg,var(--accent-primary),var(--accent-secondary));border-radius:2px}article h3{font-size:1.4em;color:var(--accent-primary)}article h4{font-size:1.2em}article h5{font-size:1.1em}article h6{font-size:1em;color:var(--text-muted)}article p{line-height:1.75;margin:1.25em 0;color:var(--text-muted)}article ul,article ol{padding-left:1.75em;margin:1.25em 0;line-height:1.75}article li{margin:.5em 0;color:var(--text-muted)}article li::marker{color:var(--accent-primary);font-weight:600}article blockquote{margin:1.5em 0;padding:1em 1.5em;border-left:4px solid var(--accent-primary);background:linear-gradient(90deg,var(--accent-primary-subtle),transparent);border-radius:0 var(--radius-sm) var(--radius-sm) 0}article blockquote p{margin:.5em 0;color:var(--text);font-style:italic}article blockquote p:first-child{margin-top:0}article blockquote p:last-child{margin-bottom:0}article table{width:100%;border-collapse:collapse;margin:2em 0;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--line)}article thead{background:var(--bg-elevated)}article th{padding:12px 16px;text-align:left;font-weight:600;color:var(--accent-primary);border-bottom:2px solid var(--line-strong)}article td{padding:10px 16px;border-bottom:1px solid var(--line);color:var(--text-muted)}article tr:last-child td{border-bottom:none}article tr:hover{background:#ffffff05}article img{max-width:100%;height:auto;border-radius:var(--radius);margin:1.5em 0;box-shadow:var(--shadow-md)}article strong{color:var(--text);font-weight:600}article em{color:var(--text)}code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.9em}code{background:var(--code-inline-bg);color:var(--code-inline-text);padding:2px 6px;border-radius:4px;font-weight:500}pre{overflow:auto;padding:18px;margin:1.5em 0;border-radius:var(--radius);border:1px solid var(--code-border);background:var(--code-bg);line-height:1.7;box-shadow:var(--shadow-sm)}pre code{background:none;color:var(--text);padding:0;font-weight:400}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:var(--syntax-comment);font-style:italic}.token.keyword,.token.operator{color:var(--syntax-keyword);font-weight:600}.token.string,.token.attr-value{color:var(--syntax-string)}.token.function,.token.class-name{color:var(--syntax-function);font-weight:600}.token.variable,.token.property,.token.tag{color:var(--syntax-variable)}.token.number,.token.boolean,.token.constant{color:var(--syntax-constant);font-weight:600}.mermaid{background:var(--code-bg);border:1px solid var(--code-border);border-radius:var(--radius);padding:20px;margin:2em 0;box-shadow:var(--shadow-md)}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}@keyframes slide-from-right{0%{transform:translate(30px)}}@keyframes slide-to-left{to{transform:translate(-30px)}}::view-transition-old(root){animation:.18s cubic-bezier(.4,0,1,1) both fade-out,.3s cubic-bezier(.4,0,.2,1) both slide-to-left}::view-transition-new(root){animation:.32s cubic-bezier(0,0,.2,1) 90ms both fade-in,.3s cubic-bezier(.4,0,.2,1) both slide-from-right}::view-transition-old(root),::view-transition-new(root){background:var(--bg)}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mt-5{margin-top:var(--space-5)}.mt-6{margin-top:var(--space-6)}.mt-7{margin-top:var(--space-7)}.mb-1{margin-bottom:var(--space-1)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.mb-5{margin-bottom:var(--space-5)}.mb-6{margin-bottom:var(--space-6)}.mb-7{margin-bottom:var(--space-7)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-5{gap:var(--space-5)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}
