@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inter-latin-400-normal.C38fXH4l.woff2)format("woff2"),url(/_astro/inter-latin-400-normal.CyCys3Eg.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/inter-latin-500-normal.Cerq10X2.woff2)format("woff2"),url(/_astro/inter-latin-500-normal.BL9OpVg8.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/inter-latin-600-normal.LgqL8muc.woff2)format("woff2"),url(/_astro/inter-latin-600-normal.CiBQ2DWP.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/inter-latin-700-normal.Yt3aPRUw.woff2)format("woff2"),url(/_astro/inter-latin-700-normal.BLAVimhd.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-400-normal.V6pRDFza.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-400-normal.6-qcROiO.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/jetbrains-mono-latin-500-normal.BWZEU5yA.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-500-normal.CJOVTJB7.woff)format("woff")}:root{--bg:#f8fafc;--surface:#fff;--surface-2:#f1f5f9;--border:#e6eaf0;--border-strong:#0f172a24;--text:#1e293b;--muted:#64748b;--dim:#94a3b8;--accent:#2563eb;--accent-rgb:37, 99, 235;--accent-dark:#1d4ed8;--code-bg:#0f141d;--code-text:#c9d3df;--code-dim:#7c8896;--code-punct:#5b6675;--glow-opacity:.32;--grid-opacity:1;--font-body:"Inter", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;overflow-x:hidden}a{color:var(--accent);text-decoration:none;transition:color .18s}a:hover{color:var(--accent-dark)}code{font-family:var(--font-mono)}button{font-family:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.skip-link{z-index:100;background:var(--surface);border:1px solid var(--border-strong);border-radius:0 0 10px;padding:10px 16px;font-size:14px;font-weight:600;position:absolute;top:0;left:-9999px}.skip-link:focus{left:0}@keyframes fadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes glowPulse{0%,to{opacity:calc(var(--glow-opacity) * .8)}50%{opacity:var(--glow-opacity)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulseOp{0%,to{opacity:1}50%{opacity:.5}}[data-reveal]{opacity:0;transition:opacity .75s cubic-bezier(.22,.61,.36,1),transform .75s cubic-bezier(.22,.61,.36,1);transform:translateY(30px)}[data-reveal].is-visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}[data-reveal]{opacity:1;transform:none}}.kofi{color:#334155;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:8px;min-height:44px;padding:0 16px;font-family:inherit;font-size:13px;font-weight:700;transition:background-color .15s cubic-bezier(.4,0,.2,1);display:inline-flex}.kofi:hover{color:#334155;background:#f1f5f9}.kofi:focus-visible{outline-offset:2px;outline:2px solid #2563eb}.kofi-mark{flex:none}.kofi-overlay{z-index:50;backdrop-filter:blur(4px);background:#0f172a80;justify-content:center;align-items:flex-end;padding:0;animation:.3s cubic-bezier(.4,0,.2,1) kofi-fade-in;display:flex;position:fixed;inset:0}.kofi-overlay[data-state=closed]{animation:.2s cubic-bezier(.4,0,.2,1) forwards kofi-fade-out}.kofi-overlay[hidden]{display:none}.kofi-dialog{background:#fff;border-radius:16px 16px 0 0;flex-direction:column;width:100%;max-height:92dvh;animation:.3s cubic-bezier(.4,0,.2,1) kofi-slide-up;display:flex;overflow:hidden;box-shadow:0 25px 50px -12px #00000040}.kofi-dialog[data-state=closed]{animation:.2s cubic-bezier(.4,0,.2,1) forwards kofi-slide-down}.kofi-dialog-head{background:#f8fafc;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;gap:12px;padding:20px;display:flex}.kofi-dialog-head h3{text-overflow:ellipsis;white-space:nowrap;color:#1e293b;min-width:0;margin:0;font-size:18px;font-weight:700;overflow:hidden}.kofi-dialog-close{color:#64748b;cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:0;transition:color .15s cubic-bezier(.4,0,.2,1);display:inline-flex}.kofi-dialog-close:hover{color:#334155}.kofi-dialog-body{background:#f8fafc;flex:1;min-height:0;position:relative;overflow-y:auto}.kofi-frame{opacity:0;pointer-events:none;background:#f8fafc;border:0;width:100%;padding:4px;position:absolute;inset:0}.kofi-frame.is-ready{opacity:1;pointer-events:auto;display:block;position:static}.kofi-dialog-foot{padding:16px;padding-bottom:max(16px, env(safe-area-inset-bottom));background:#f8fafc;border-top:1px solid #e2e8f0}.kofi-dialog-foot[hidden]{display:none}.kofi-dialog-foot a{color:#64748b;align-items:center;gap:6px;font-size:14px;transition:color .15s cubic-bezier(.4,0,.2,1);display:inline-flex}.kofi-dialog-foot a:hover{color:#334155}.kofi-skeleton{padding:24px}.kofi-skeleton-bars{flex-direction:column;gap:16px;animation:2s cubic-bezier(.4,0,.6,1) infinite kofi-pulse;display:flex}.kofi-bar{background:#e2e8f0;border-radius:8px}.kofi-bar-avatar{border-radius:9999px;width:64px;height:64px;margin:0 auto}.kofi-bar-title{border-radius:4px;width:192px;height:16px;margin:0 auto}.kofi-bar-pill{border-radius:9999px;height:44px}.kofi-bar-row{height:44px}.kofi-bar-note{height:96px}.kofi-bar-cta{background:#cbd5e1;border-radius:9999px;height:48px}.kofi-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.kofi-unavailable{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:24px;display:flex}.kofi-unavailable-icon{color:#94a3b8}.kofi-unavailable h4{color:#1e293b;margin:0;font-size:16px;font-weight:700}.kofi-unavailable p{color:#475569;max-width:24rem;margin:0;font-size:14px}.kofi-unavailable-actions{flex-direction:column-reverse;gap:8px;width:100%;padding-top:4px;display:flex}.kofi-btn{cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:44px;padding:8px 16px;font-family:inherit;font-size:14px;font-weight:500;transition:background-color .15s cubic-bezier(.4,0,.2,1),border-color .15s cubic-bezier(.4,0,.2,1);display:inline-flex}.kofi-btn-ghost{color:#334155;background:#fff;border:1px solid #e2e8f0}.kofi-btn-ghost:hover{background:#f1f5f9}.kofi-btn-primary{color:#fff;background:#2563eb;border:1px solid #2563eb}.kofi-btn-primary:hover{color:#fff;background:#1d4ed8;border-color:#1d4ed8}@media (width>=640px){.kofi-overlay{padding:16px;padding-top:max(16px, env(safe-area-inset-top));padding-bottom:max(16px, env(safe-area-inset-bottom));align-items:center}.kofi-dialog{border-radius:12px;max-width:512px;max-height:min(90dvh,90vh);animation:.3s cubic-bezier(.4,0,.2,1) kofi-zoom-in}.kofi-dialog[data-state=closed]{animation:.2s cubic-bezier(.4,0,.2,1) forwards kofi-zoom-out}.kofi-dialog-foot{padding-bottom:16px}.kofi-unavailable-actions{flex-direction:row;width:auto}.kofi-btn{width:auto}}@keyframes kofi-fade-in{0%{opacity:0}}@keyframes kofi-fade-out{to{opacity:0}}@keyframes kofi-slide-up{0%{opacity:0;transform:translateY(16px)}}@keyframes kofi-slide-down{to{opacity:0;transform:translateY(16px)}}@keyframes kofi-zoom-in{0%{opacity:0;transform:scale(.95)}}@keyframes kofi-zoom-out{to{opacity:0;transform:scale(.95)}}@keyframes kofi-pulse{50%{opacity:.5}}@media (prefers-reduced-motion:reduce){.kofi-overlay,.kofi-overlay[data-state=closed],.kofi-dialog,.kofi-dialog[data-state=closed],.kofi-skeleton-bars{animation:none}}
