:root{--s-0: 0;--s-1: .25rem;--s-2: .5rem;--s-3: .75rem;--s-4: 1rem;--s-5: 1.5rem;--s-6: 2rem;--s-7: 3rem;--s-8: 4rem;--s-9: 6rem;--fs-xs: .75rem;--fs-sm: .8125rem;--fs-base: .9375rem;--fs-md: 1.0625rem;--fs-lg: 1.1875rem;--fs-xl: 1.4375rem;--fs-2xl: 1.875rem;--fs-3xl: 2.375rem;--fs-4xl: 3rem;--lh-tight: 1.08;--lh-snug: 1.3;--lh-normal: 1.55;--lh-relaxed: 1.7;--ff-sans: "Inter", "Inter var", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--ff-mono: "JetBrains Mono", "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--ff-display: var(--ff-mono);--r-1: 2px;--r-2: 3px;--r-3: 4px;--r-4: 6px;--r-full: 9999px;--container: 1180px;--container-narrow: 760px;--ease-out: cubic-bezier(.2, .8, .2, 1);--dur-fast: .12s;--dur: .2s;--brand-navy: #002147;--brand-navy-700: #00305f;--brand-navy-900: #001530;--brand-gold: #ffbf00;--brand-gold-dim: #d99e00;--brand-gold-soft: #fff4cc;--bg: #f4f0e6;--bg-elev: #fbf8ef;--bg-inset: #ebe5d3;--bg-code: #f3eedf;--fg: #1b1d22;--fg-muted: #545862;--fg-soft: #888c93;--border: #1b1d22;--border-rule: rgba(27, 29, 34, .1);--border-rule-strong: rgba(27, 29, 34, .55);--border-strong: rgba(27, 29, 34, .7);--accent: var(--brand-navy);--accent-fg: #fbf8ef;--accent-soft: rgba(0, 33, 71, .07);--highlight: var(--brand-gold);--highlight-fg: var(--brand-navy);--highlight-soft: var(--brand-gold-soft);--link: var(--brand-navy);--ok: #1e6b3a;--ok-soft: #d8ecdc;--warn: var(--brand-gold-dim);--warn-soft: var(--brand-gold-soft);--err: #a4221f;--err-soft: #f0d6d6;--shadow-1: none;--shadow-2: 0 1px 0 rgba(27, 29, 34, .05)}:root[data-theme=dark]{--bg: #0d121a;--bg-elev: #131a25;--bg-inset: #090d14;--bg-code: #0a0f17;--fg: #e8e5da;--fg-muted: #8c93a3;--fg-soft: #5a6273;--border: #e8e5da;--border-rule: rgba(232, 229, 218, .08);--border-rule-strong: rgba(232, 229, 218, .42);--border-strong: rgba(232, 229, 218, .6);--accent: var(--brand-gold);--accent-fg: #0d121a;--accent-soft: rgba(255, 191, 0, .14);--highlight: var(--brand-gold);--highlight-fg: #0d121a;--highlight-soft: rgba(255, 191, 0, .18);--link: var(--brand-gold);--ok: #5fc97e;--ok-soft: rgba(95, 201, 126, .14);--warn: var(--brand-gold);--warn-soft: rgba(255, 191, 0, .14);--err: #ff8a8a;--err-soft: rgba(255, 138, 138, .14);--shadow-1: none;--shadow-2: 0 1px 0 rgba(0, 0, 0, .4)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0d121a;--bg-elev: #131a25;--bg-inset: #090d14;--bg-code: #0a0f17;--fg: #e8e5da;--fg-muted: #8c93a3;--fg-soft: #5a6273;--border: #e8e5da;--border-rule: rgba(232, 229, 218, .08);--border-rule-strong: rgba(232, 229, 218, .42);--border-strong: rgba(232, 229, 218, .6);--accent: var(--brand-gold);--accent-fg: #0d121a;--accent-soft: rgba(255, 191, 0, .14);--highlight: var(--brand-gold);--highlight-fg: #0d121a;--highlight-soft: rgba(255, 191, 0, .18);--link: var(--brand-gold);--ok: #5fc97e;--ok-soft: rgba(95, 201, 126, .14);--warn: var(--brand-gold);--warn-soft: rgba(255, 191, 0, .14);--err: #ff8a8a;--err-soft: rgba(255, 138, 138, .14);--shadow-1: none;--shadow-2: 0 1px 0 rgba(0, 0, 0, .4)}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;font-family:var(--ff-sans);font-size:16px;color-scheme:light dark;background:var(--bg);color:var(--fg);scroll-behavior:smooth;background-image:radial-gradient(var(--border-rule) 1px,transparent 1.2px);background-size:24px 24px;background-attachment:fixed;background-position:0 0}body{margin:0;line-height:var(--lh-normal);font-feature-settings:"ss01" 1,"cv11" 1;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{font-family:var(--ff-display);font-weight:600;letter-spacing:-.02em;line-height:var(--lh-tight);margin:0 0 var(--s-4);color:var(--fg)}h1{font-size:clamp(var(--fs-xl),3.4vw,var(--fs-3xl));letter-spacing:-.03em;font-weight:700}h2{font-size:clamp(var(--fs-lg),2.4vw,var(--fs-xl));letter-spacing:-.015em}h3{font-size:var(--fs-md);letter-spacing:-.01em}p{margin:0 0 var(--s-4);color:var(--fg)}a{color:var(--accent);text-decoration:none;border-bottom:1px solid color-mix(in srgb,currentColor 30%,transparent);transition:border-color var(--dur) var(--ease-out)}a:hover{border-bottom-color:currentColor}code,pre,kbd{font-family:var(--ff-mono);font-size:.95em}code{background:var(--bg-code);padding:.1em .35em;border-radius:var(--r-1);border:1px solid var(--border)}pre{background:var(--bg-code);padding:var(--s-4);border-radius:var(--r-2);border:1px solid var(--border);overflow-x:auto;margin:0 0 var(--s-4)}pre code{background:transparent;padding:0;border:none}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}textarea{resize:vertical}::selection{background:var(--accent-soft);color:var(--fg)}.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 var(--s-5)}.container--narrow{max-width:var(--container-narrow)}.stack>*+*{margin-top:var(--s-4)}.stack-lg>*+*{margin-top:var(--s-6)}.stack-xl>*+*{margin-top:var(--s-7)}.muted{color:var(--fg-muted)}.lead{font-size:var(--fs-md);color:var(--fg-muted);line-height:var(--lh-snug);max-width:56ch;letter-spacing:-.005em}.btn{display:inline-flex;align-items:center;gap:var(--s-2);padding:.45rem .8rem;border-radius:var(--r-2);border:1px solid var(--border-rule-strong);background:var(--bg-elev);color:var(--fg);font-family:var(--ff-display);font-weight:500;font-size:var(--fs-sm);letter-spacing:-.005em;line-height:1;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.btn:hover{background:var(--bg-inset);border-color:var(--border-strong)}.btn:active{transform:translateY(1px)}.btn--primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.btn--primary:hover{background:var(--accent);filter:brightness(1.07);border-color:var(--accent)}.btn--ghost{background:transparent;border-color:transparent;color:var(--fg-muted)}.btn--ghost:hover{background:var(--bg-inset);color:var(--fg)}.card{background:var(--bg-elev);border:1px solid var(--border-rule);border-radius:var(--r-3);padding:var(--s-5)}.sr-only{position:fixed;top:0;left:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;pointer-events:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-1)}.tool-card{display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-4) var(--s-5);border:1px solid var(--border);border-radius:var(--r-3);background:var(--bg-elev);color:var(--fg);height:100%;text-decoration:none;transition:border-color var(--dur) var(--ease-out),transform var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out)}.tool-card h3{font-size:var(--fs-md);margin:0;letter-spacing:-.01em}.tool-card p{margin:0;font-size:var(--fs-sm);color:var(--fg-muted);line-height:var(--lh-snug)}.tool-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow-2)}.tool-card:hover h3{color:var(--accent)}.site-header[data-astro-cid-3ef6ksr2]{border-bottom:1px solid var(--border-rule-strong);background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:saturate(150%) blur(8px);position:sticky;top:0;z-index:50}.site-header__inner[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);padding-top:.7rem;padding-bottom:.7rem}.site-header__brand[data-astro-cid-3ef6ksr2]{display:inline-flex;align-items:center;gap:.55rem;color:var(--fg);font-family:var(--ff-display);font-weight:600;border:none;letter-spacing:-.02em}.site-header__mark[data-astro-cid-3ef6ksr2]{display:inline-flex;width:22px;height:22px;align-items:center;justify-content:center;line-height:0}.site-header__mark[data-astro-cid-3ef6ksr2] svg[data-astro-cid-3ef6ksr2]{display:block;border-radius:5px}.site-header__name[data-astro-cid-3ef6ksr2]{font-size:var(--fs-md);letter-spacing:-.025em}.site-header__rev[data-astro-cid-3ef6ksr2]{font-size:.7rem;color:var(--fg-soft);font-family:var(--ff-mono);letter-spacing:0;font-weight:400}@media(max-width:540px){.site-header__rev[data-astro-cid-3ef6ksr2]{display:none}}.site-header__nav[data-astro-cid-3ef6ksr2]{display:inline-flex;align-items:center;gap:.2rem;flex-wrap:wrap}.site-header__nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{color:var(--fg-muted);font-family:var(--ff-display);font-size:var(--fs-sm);font-weight:500;padding:.35rem .55rem;border-radius:var(--r-1);border:none;letter-spacing:-.005em}.site-header__nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]:hover{color:var(--fg);background:var(--bg-inset)}.site-footer[data-astro-cid-sz7xmlte]{margin-top:var(--s-9);border-top:1px solid var(--border);background:var(--bg-inset)}.site-footer__inner[data-astro-cid-sz7xmlte]{padding-top:var(--s-7);padding-bottom:var(--s-7)}.site-footer__cats[data-astro-cid-sz7xmlte]{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--s-5);margin-bottom:var(--s-6)}.site-footer__col[data-astro-cid-sz7xmlte] h3[data-astro-cid-sz7xmlte]{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--fg-muted);margin-bottom:var(--s-2)}.site-footer__col[data-astro-cid-sz7xmlte] ul[data-astro-cid-sz7xmlte]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--s-1)}.site-footer__col[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{color:var(--fg);font-size:var(--fs-sm);border:none}.site-footer__col[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--accent)}.site-footer__legal[data-astro-cid-sz7xmlte]{padding-top:var(--s-5);border-top:1px solid var(--border);font-size:var(--fs-sm)}.site-footer__legal[data-astro-cid-sz7xmlte] p[data-astro-cid-sz7xmlte]{margin:0 0 var(--s-2)}.site-footer__legal[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{color:var(--fg-muted);border:none}.site-footer__legal[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--fg)}.site-footer__coffee[data-astro-cid-sz7xmlte]{color:var(--accent)!important;font-weight:500}.site-footer__coffee[data-astro-cid-sz7xmlte]:hover{color:var(--accent)!important;text-decoration:underline}
