:root{--bg: #f7f5f0;--bg-raise: #efede6;--bg-card: #ffffff;--line: rgba(24, 40, 33, .1);--line-strong: rgba(24, 40, 33, .18);--line-hover: rgba(24, 40, 33, .32);--text: #1c2823;--text-dim: #4a5751;--text-faint: #5f6d66;--accent: #0b6b4f;--accent-deep: #0a5a42;--accent-bright: #56dfa8;--accent-ink: #06251a;--accent-tint: rgba(11, 107, 79, .08);--accent-border: rgba(11, 107, 79, .35);--accent-border-soft: rgba(11, 107, 79, .18);--amber: #8a6414;--amber-tint: rgba(138, 100, 20, .1);--amber-border: rgba(138, 100, 20, .35);--glow-accent: rgba(11, 107, 79, .35);--glow-amber: rgba(138, 100, 20, .35);--chip-bg: rgba(24, 40, 33, .03);--hover-bg: rgba(24, 40, 33, .045);--code-bg: rgba(24, 40, 33, .06);--selection-bg: rgba(11, 107, 79, .18);--selection-text: #0b2a1f;--bg-glow-a: rgba(38, 176, 122, .09);--bg-glow-b: rgba(88, 132, 156, .1);--btn-primary-bg: linear-gradient(180deg, #8bf0cb, #45d49e);--btn-primary-shadow: 0 8px 24px rgba(18, 142, 96, .24), inset 0 1px 0 rgba(255, 255, 255, .6);--btn-primary-shadow-hover: 0 10px 30px rgba(18, 142, 96, .34), inset 0 1px 0 rgba(255, 255, 255, .6);--card-bg: #ffffff;--card-shadow: 0 1px 2px rgba(24, 40, 33, .04), 0 10px 30px rgba(24, 40, 33, .06);--card-featured-bg: radial-gradient(140% 90% at 50% 0%, rgba(69, 212, 158, .12), transparent 55%), #ffffff;--card-accent-bg: radial-gradient(120% 80% at 50% 0%, rgba(69, 212, 158, .09), transparent 55%), #ffffff;--shadow-featured: 0 24px 60px rgba(24, 40, 33, .1);--shadow-menu: 0 24px 48px rgba(24, 40, 33, .14);--nav-bg: rgba(247, 245, 240, .82);--grid-line: rgba(24, 40, 33, .05);--section-tint: rgba(24, 40, 33, .018);--footer-tint: rgba(24, 40, 33, .03);--radius: 14px;--radius-sm: 9px;--serif: "Iowan Old Style", Georgia, "Times New Roman", serif;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mono: ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace;--wrap: 1120px}html[data-theme=dark]{--bg: #0a0d10;--bg-raise: #0f1418;--bg-card: #10161b;--line: rgba(226, 238, 234, .08);--line-strong: rgba(226, 238, 234, .16);--line-hover: rgba(226, 238, 234, .34);--text: #e9ede9;--text-dim: #a7b2ad;--text-faint: #6d7873;--accent: #6fe8bd;--accent-deep: #2ea77e;--accent-bright: #6fe8bd;--accent-ink: #06251a;--accent-tint: rgba(111, 232, 189, .1);--accent-border: rgba(111, 232, 189, .35);--accent-border-soft: rgba(111, 232, 189, .18);--amber: #dfb26b;--amber-tint: rgba(223, 178, 107, .1);--amber-border: rgba(223, 178, 107, .35);--glow-accent: rgba(111, 232, 189, .8);--glow-amber: rgba(223, 178, 107, .8);--chip-bg: rgba(255, 255, 255, .02);--hover-bg: rgba(255, 255, 255, .035);--code-bg: rgba(255, 255, 255, .05);--selection-bg: rgba(111, 232, 189, .28);--selection-text: #eafff6;--bg-glow-a: rgba(111, 232, 189, .07);--bg-glow-b: rgba(88, 132, 156, .09);--btn-primary-bg: linear-gradient(180deg, #8bf0cb, #6fe8bd);--btn-primary-shadow: 0 8px 28px rgba(111, 232, 189, .22), inset 0 1px 0 rgba(255, 255, 255, .5);--btn-primary-shadow-hover: 0 10px 34px rgba(111, 232, 189, .32), inset 0 1px 0 rgba(255, 255, 255, .5);--card-bg: linear-gradient(180deg, rgba(255, 255, 255, .028), rgba(255, 255, 255, .008));--card-shadow: none;--card-featured-bg: radial-gradient(140% 90% at 50% 0%, rgba(111, 232, 189, .09), transparent 55%), linear-gradient(180deg, rgba(255, 255, 255, .035), rgba(255, 255, 255, .01));--card-accent-bg: radial-gradient(120% 80% at 50% 0%, rgba(111, 232, 189, .06), transparent 55%), linear-gradient(180deg, rgba(255, 255, 255, .028), rgba(255, 255, 255, .008));--shadow-featured: 0 30px 70px rgba(0, 0, 0, .4);--shadow-menu: 0 24px 48px rgba(0, 0, 0, .45);--nav-bg: rgba(10, 13, 16, .78);--grid-line: rgba(226, 238, 234, .035);--section-tint: rgba(255, 255, 255, .014);--footer-tint: rgba(0, 0, 0, .25)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px}body{margin:0;background:radial-gradient(1100px 520px at 78% -140px,var(--bg-glow-a),transparent 62%),radial-gradient(900px 620px at -180px 22%,var(--bg-glow-b),transparent 60%),var(--bg);color:var(--text);font-family:var(--sans);font-size:16.5px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip}::selection{background:var(--selection-bg);color:var(--selection-text)}img,svg{max-width:100%;display:block}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:3px}h1,h2,h3{font-family:var(--serif);font-weight:500;letter-spacing:-.015em;line-height:1.12;margin:0;text-wrap:balance}.wrap{width:min(var(--wrap),calc(100% - 48px));margin-inline:auto}.section{padding:96px 0;border-top:1px solid var(--line);position:relative}.section.large{padding:136px 0}.section-head{max-width:720px;margin-bottom:56px}.section h2{font-size:clamp(30px,4.4vw,46px);margin:18px 0 0}.section-lede{color:var(--text-dim);font-size:18px;margin:20px 0 0;max-width:62ch}.chip{display:inline-flex;align-items:center;gap:9px;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);border:1px solid var(--line-strong);border-radius:999px;padding:6px 14px;background:var(--chip-bg)}.chip:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--glow-accent)}.chip.amber:before{background:var(--amber);box-shadow:0 0 10px var(--glow-amber)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--sans);font-size:15.5px;font-weight:600;border-radius:var(--radius-sm);padding:13px 24px;border:1px solid transparent;cursor:pointer;transition:transform .15s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease;white-space:nowrap}.btn:hover{text-decoration:none;transform:translateY(-2px)}.btn:active{transform:translateY(0) scale(.98);transition-duration:.08s}.btn .btn-icon{transition:transform .25s cubic-bezier(.22,1,.36,1)}.btn:hover .btn-icon{transform:translate(3px)}.btn-primary{background:var(--btn-primary-bg);color:var(--accent-ink);box-shadow:var(--btn-primary-shadow)}.btn-primary:hover{box-shadow:var(--btn-primary-shadow-hover)}.btn-outline{background:transparent;color:var(--text);border-color:var(--line-strong)}.btn-outline:hover{border-color:var(--line-hover);background:var(--hover-bg)}.btn-ghost{background:transparent;color:var(--text-dim);border-color:transparent;padding-inline:14px}.btn-ghost:hover{color:var(--text)}.card{background:var(--card-bg);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--card-shadow)}html.js :is([data-reveal],[data-reveal-item]):not(.reveal-done){transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay, 0s)}html.js :is([data-reveal],[data-reveal-item]){opacity:0;transform:var(--reveal-transform, translateY(18px))}html.js :is([data-reveal],[data-reveal-item]).in{opacity:1;transform:none}[data-reveal-from=left]{--reveal-transform: translateX(-16px)}[data-reveal-from=right]{--reveal-transform: translateX(16px)}@media(max-width:720px){[data-reveal-from=left],[data-reveal-from=right]{--reveal-transform: translateY(18px)}}html.js [data-attention].in{animation:attention-in 1s cubic-bezier(.22,1,.36,1) var(--reveal-delay, 0s) 1 backwards}@keyframes attention-in{0%{opacity:0;transform:translateY(20px) scale(.965);box-shadow:var(--shadow-featured),0 0 0 0 transparent}55%{opacity:1;transform:none;box-shadow:var(--shadow-featured),0 0 0 0 var(--accent-border)}to{opacity:1;transform:none;box-shadow:var(--shadow-featured),0 0 0 16px transparent}}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0ms!important}html{scroll-behavior:auto!important}html.js :is([data-reveal],[data-reveal-item]){opacity:1;transform:none;transition:none}html.js [data-attention].in{animation:none}.btn,.btn:hover,.btn:active{transform:none}}@media(max-width:720px){.wrap{width:calc(100% - 40px)}.section{padding:72px 0}.section.large{padding:96px 0}.section-head{margin-bottom:40px}}.nav-shell[data-astro-cid-dmqpwcec]{position:sticky;top:0;z-index:40;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:var(--nav-bg);border-bottom:1px solid var(--line)}.nav-row[data-astro-cid-dmqpwcec]{display:flex;align-items:center;justify-content:space-between;height:68px;gap:24px}.brand[data-astro-cid-dmqpwcec]{display:inline-flex;align-items:center;gap:10px;color:var(--text);font-family:var(--mono);font-size:16px;font-weight:600;letter-spacing:.02em}.brand[data-astro-cid-dmqpwcec]:hover{text-decoration:none}.brand-mark[data-astro-cid-dmqpwcec]{color:var(--accent);transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.brand[data-astro-cid-dmqpwcec]:hover .brand-mark[data-astro-cid-dmqpwcec]{transform:rotate(-8deg) scale(1.1)}.brand[data-astro-cid-dmqpwcec] em[data-astro-cid-dmqpwcec]{font-style:normal;color:var(--text-faint)}.nav-links[data-astro-cid-dmqpwcec]{display:flex;align-items:center;gap:26px}.nav-links[data-astro-cid-dmqpwcec]>a[data-astro-cid-dmqpwcec]:not(.nav-cta){color:var(--text-dim);font-size:15px;position:relative;transition:color .2s ease}.nav-links[data-astro-cid-dmqpwcec]>a[data-astro-cid-dmqpwcec]:not(.nav-cta):after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;border-radius:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .25s cubic-bezier(.22,1,.36,1)}.nav-links[data-astro-cid-dmqpwcec]>a[data-astro-cid-dmqpwcec]:not(.nav-cta):hover:after,.nav-links[data-astro-cid-dmqpwcec]>a[data-astro-cid-dmqpwcec]:not(.nav-cta):focus-visible:after{transform:scaleX(1)}.nav-links[data-astro-cid-dmqpwcec]>a[data-astro-cid-dmqpwcec]:not(.nav-cta):hover{color:var(--text);text-decoration:none}.nav-cta[data-astro-cid-dmqpwcec]{padding:9px 18px;font-size:14.5px}.nav-actions[data-astro-cid-dmqpwcec]{display:flex;align-items:center;gap:10px;flex-shrink:0}.nav-cta-menu[data-astro-cid-dmqpwcec]{display:none}.theme-toggle[data-astro-cid-dmqpwcec]{position:relative;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;padding:0;background:transparent;color:var(--text-dim);border:1px solid var(--line-strong);border-radius:var(--radius-sm);cursor:pointer;transition:color .2s ease,border-color .2s ease,background .2s ease}.theme-toggle[data-astro-cid-dmqpwcec]:hover{color:var(--text);border-color:var(--line-hover);background:var(--hover-bg)}.theme-toggle[data-astro-cid-dmqpwcec] svg[data-astro-cid-dmqpwcec]{position:absolute;inset:0;margin:auto;transition:opacity .3s ease,transform .45s cubic-bezier(.22,1,.36,1)}.icon-moon[data-astro-cid-dmqpwcec]{opacity:1;transform:none}.icon-sun[data-astro-cid-dmqpwcec]{opacity:0;transform:rotate(-90deg) scale(.6)}html[data-theme=dark] .icon-sun[data-astro-cid-dmqpwcec]{opacity:1;transform:none}html[data-theme=dark] .icon-moon[data-astro-cid-dmqpwcec]{opacity:0;transform:rotate(90deg) scale(.6)}.nav-toggle[data-astro-cid-dmqpwcec]{display:none;flex-direction:column;justify-content:center;gap:6px;width:42px;height:42px;padding:10px;background:transparent;border:1px solid var(--line-strong);border-radius:var(--radius-sm);cursor:pointer}.nav-toggle[data-astro-cid-dmqpwcec] span[data-astro-cid-dmqpwcec]{display:block;height:2px;width:100%;background:var(--text);border-radius:2px;transition:transform .2s ease}.nav-toggle[data-astro-cid-dmqpwcec].open span[data-astro-cid-dmqpwcec]:first-child{transform:translateY(4px) rotate(45deg)}.nav-toggle[data-astro-cid-dmqpwcec].open span[data-astro-cid-dmqpwcec]:last-child{transform:translateY(-4px) rotate(-45deg)}@media(max-width:860px){.nav-toggle[data-astro-cid-dmqpwcec]{display:flex}.nav-links[data-astro-cid-dmqpwcec]{display:flex;position:absolute;top:68px;left:0;right:0;flex-direction:column;align-items:stretch;gap:4px;padding:16px 20px 22px;background:var(--bg);border-bottom:1px solid var(--line);box-shadow:var(--shadow-menu);visibility:hidden;opacity:0;transform:translateY(-14px);transform-origin:top;pointer-events:none;transition:opacity .26s ease,transform .36s cubic-bezier(.34,1.4,.64,1),visibility 0s linear .36s}.nav-links[data-astro-cid-dmqpwcec].open{visibility:visible;opacity:1;transform:none;pointer-events:auto;transition:opacity .26s ease,transform .36s cubic-bezier(.34,1.4,.64,1),visibility 0s}.nav-links[data-astro-cid-dmqpwcec]>a[data-astro-cid-dmqpwcec]:not(.nav-cta):after{display:none}.nav-links[data-astro-cid-dmqpwcec]>a[data-astro-cid-dmqpwcec]:not(.nav-cta){padding:11px 6px;font-size:16px;border-bottom:1px solid var(--line)}.nav-cta[data-astro-cid-dmqpwcec]{margin-top:12px;justify-content:center}.nav-cta-menu[data-astro-cid-dmqpwcec]{display:inline-flex}.nav-cta-menu[data-astro-cid-dmqpwcec]+.nav-cta-menu[data-astro-cid-dmqpwcec]{margin-top:8px}.nav-cta-bar[data-astro-cid-dmqpwcec]{display:none}}.cookie-box[data-astro-cid-garwan2p]{position:fixed;inset-inline:16px;bottom:16px;margin-inline:auto;max-width:560px;z-index:60;background:var(--bg, #fff);color:var(--text, #111);border:1px solid var(--line, #d8d8d8);border-radius:14px;padding:18px 20px;box-shadow:0 12px 40px #0000002e}.cookie-title[data-astro-cid-garwan2p]{margin:0 0 6px;font-weight:700;font-size:15px}.cookie-text[data-astro-cid-garwan2p]{margin:0 0 14px;font-size:14px;line-height:1.55;color:var(--text-dim, #444)}.cookie-actions[data-astro-cid-garwan2p]{display:flex;gap:10px;flex-wrap:wrap}.cookie-btn[data-astro-cid-garwan2p]{font:inherit;font-size:14px;font-weight:600;padding:10px 16px;border-radius:10px;cursor:pointer;flex:1 1 auto}.cookie-btn-solid[data-astro-cid-garwan2p]{background:var(--text, #111);color:var(--bg, #fff);border:1px solid var(--text, #111)}.cookie-btn-outline[data-astro-cid-garwan2p]{background:transparent;color:var(--text, #111);border:1px solid var(--line-strong, #999)}.cookie-cats[data-astro-cid-garwan2p]{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:12px}.cookie-cat-row[data-astro-cid-garwan2p]{display:flex;gap:10px;align-items:flex-start;font-size:14px;cursor:pointer}.cookie-cat-row[data-astro-cid-garwan2p] input[data-astro-cid-garwan2p]{margin-top:3px}.cookie-cat-row[data-astro-cid-garwan2p] input[data-astro-cid-garwan2p]:disabled{cursor:not-allowed}.cookie-cat-note[data-astro-cid-garwan2p]{display:block;font-size:12.5px;color:var(--text-dim, #555);line-height:1.45}@media(max-width:480px){.cookie-box[data-astro-cid-garwan2p]{inset-inline:8px;bottom:8px;padding:14px}.cookie-actions[data-astro-cid-garwan2p]{flex-direction:column}}.footer-cookie-link[data-astro-cid-sz7xmlte]{font:inherit;font-size:inherit;background:none;border:none;padding:0;color:inherit;text-decoration:underline;cursor:pointer}.footer[data-astro-cid-sz7xmlte]{border-top:1px solid var(--line);padding:72px 0 0;background:linear-gradient(180deg,transparent,var(--footer-tint))}.footer-grid[data-astro-cid-sz7xmlte]{display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:40px}.footer-logo[data-astro-cid-sz7xmlte]{display:inline-flex;align-items:center;gap:10px;margin:0;font-family:var(--mono);font-size:17px;font-weight:600;color:var(--text)}.footer-logo[data-astro-cid-sz7xmlte] svg[data-astro-cid-sz7xmlte]{color:var(--accent)}.footer-tagline[data-astro-cid-sz7xmlte]{margin:14px 0 0;color:var(--text-faint);font-size:14.5px;max-width:34ch}.footer-col-title[data-astro-cid-sz7xmlte]{font-family:var(--mono);font-size:11.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--text-faint);margin:0 0 16px}.footer-col[data-astro-cid-sz7xmlte] ul[data-astro-cid-sz7xmlte]{list-style:none;margin:0;padding:0;display:grid;gap:10px}.footer-col[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{color:var(--text-dim);font-size:14.5px}.footer-col[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--text);text-decoration:none}.footer-bottom[data-astro-cid-sz7xmlte]{margin-top:56px;padding:22px 0 28px;border-top:1px solid var(--line)}.footer-bottom[data-astro-cid-sz7xmlte] p[data-astro-cid-sz7xmlte]{margin:0;font-family:var(--mono);font-size:12.5px;color:var(--text-faint)}@media(max-width:860px){.footer-grid[data-astro-cid-sz7xmlte]{grid-template-columns:1fr 1fr}.footer-brand[data-astro-cid-sz7xmlte]{grid-column:1 / -1}}@media(max-width:480px){.footer-grid[data-astro-cid-sz7xmlte]{grid-template-columns:1fr;gap:32px}}
