@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-ext-wght-normal.DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-wght-normal.BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-vietnamese-wght-normal.6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-ext-wght-normal.DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-wght-normal.BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-ext-wght-normal.X_5orZeX.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-symbols2-wght-normal.CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-vietnamese-wght-normal.DadHysG0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-ext-wght-normal.Bwz-egvJ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-wght-normal.XN7g48iV.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--forest:#2f5d50;--sky:#7da7b6;--orange:#c56a45;--gold:#d5b76d;--slate:#47535e;--cream:#f6f3ec;--forest-900:#16302a;--forest-800:#1e4239;--forest-700:#2f5d50;--forest-600:#3c6e60;--forest-500:#4f8474;--forest-400:#7ba79a;--forest-300:#a9c6bc;--forest-200:#cfe0d9;--forest-100:#e4ede9;--forest-50:#f0f5f2;--sky-800:#3f6b7a;--sky-700:#55808f;--sky-600:#6996a5;--sky-500:#7da7b6;--sky-300:#a9c6d0;--sky-200:#cfe0e6;--sky-100:#e5eef1;--sky-50:#f1f6f8;--orange-800:#8e4527;--orange-700:#a9552f;--orange-600:#c56a45;--orange-500:#d4825f;--orange-300:#e7b49b;--orange-200:#f1d3c4;--orange-100:#f8e6de;--orange-50:#fcf2ec;--gold-800:#8e7433;--gold-700:#b08f3f;--gold-600:#c7a756;--gold-500:#d5b76d;--gold-300:#e4ce9a;--gold-200:#efe2c2;--gold-100:#f7efdc;--gold-50:#fbf7ee;--slate-900:#242c33;--slate-800:#333d46;--slate-700:#47535e;--slate-600:#5d6874;--slate-500:#7b858f;--slate-400:#9ba3ab;--slate-300:#c0c6cb;--slate-200:#dce0e3;--slate-100:#edeff1;--slate-50:#f5f6f7;--cream-500:#ede7da;--cream-300:#f1ede3;--cream-200:#f6f3ec;--cream-100:#faf8f3;--white:#fff;--surface-page:var(--cream-200);--surface-page-alt:var(--cream-100);--surface-card:var(--white);--surface-card-alt:var(--cream-100);--surface-sunken:var(--cream-500);--surface-inverse:var(--forest-800);--surface-inverse-alt:var(--forest-900);--surface-accent-soft:var(--forest-50);--surface-highlight-soft:var(--orange-50);--surface-info-soft:var(--sky-50);--surface-overlay:#16302a7a;--text-display:var(--forest-900);--text-heading:var(--forest-800);--text-body:var(--slate-700);--text-muted:var(--slate-500);--text-faint:var(--slate-400);--text-inverse:var(--cream-100);--text-inverse-muted:var(--forest-300);--text-on-accent:var(--white);--text-link:var(--forest-700);--text-link-hover:var(--forest-900);--text-accent:var(--orange-700);--border-hairline:#2f5d501a;--border-subtle:#e7e2d6;--border-default:#dad4c4;--border-strong:var(--forest-200);--border-inverse:#f6f3ec33;--border-focus:var(--orange-600);--action-primary:var(--forest-700);--action-primary-hover:var(--forest-800);--action-primary-active:var(--forest-900);--action-accent:var(--orange-600);--action-accent-hover:var(--orange-700);--action-accent-active:var(--orange-800);--action-quiet-bg:var(--forest-50);--action-quiet-bg-hover:var(--forest-100);--action-disabled-bg:var(--slate-200);--action-disabled-text:var(--slate-400);--status-success-text:var(--forest-700);--status-success-surface:var(--forest-50);--status-info-text:var(--sky-800);--status-info-surface:var(--sky-50);--status-warning-text:var(--gold-800);--status-warning-surface:var(--gold-50);--status-danger-text:var(--orange-800);--status-danger-surface:var(--orange-50);--facet-build:var(--forest-600);--facet-consult:var(--slate-700);--facet-cook:var(--orange-600);--facet-ride:var(--sky-600);--facet-ball:var(--sky-800);--facet-faith:var(--gold-700);--facet-family:var(--orange-500);--font-sans:"Geist Variable","Geist","Helvetica Neue",Helvetica,Arial,sans-serif;--font-mono:"Geist Mono Variable","Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--font-display:"Geist Variable","Geist","Helvetica Neue",Helvetica,Arial,sans-serif;--fw-light:300;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--size-hero:64px;--size-display:48px;--size-h1:36px;--size-h2:28px;--size-h3:22px;--size-h4:18px;--size-body-lg:18px;--size-body:16px;--size-body-sm:14px;--size-caption:13px;--size-micro:12px;--lh-tight:1.04;--lh-display:1.12;--lh-heading:1.24;--lh-body:1.6;--lh-relaxed:1.75;--track-hero:-.03em;--track-display:-.025em;--track-heading:-.015em;--track-body:-.006em;--track-wide:.02em;--track-overline:.14em;--text-measure:68ch;--text-measure-tight:56ch}.td-hero{font-family:var(--font-sans);font-weight:var(--fw-semibold);font-size:var(--size-hero);line-height:var(--lh-tight);letter-spacing:var(--track-hero);color:var(--text-display)}.td-display-quiet{font-family:var(--font-sans);font-weight:var(--fw-light);font-size:var(--size-display);line-height:var(--lh-display);letter-spacing:-.03em;color:var(--text-display)}.td-h1{font-family:var(--font-sans);font-weight:var(--fw-semibold);font-size:var(--size-h1);line-height:var(--lh-heading);letter-spacing:var(--track-display);color:var(--text-heading)}.td-h2{font-family:var(--font-sans);font-weight:var(--fw-semibold);font-size:var(--size-h2);line-height:var(--lh-heading);letter-spacing:var(--track-heading);color:var(--text-heading)}.td-h3{font-family:var(--font-sans);font-weight:var(--fw-medium);font-size:var(--size-h3);line-height:var(--lh-heading);letter-spacing:var(--track-heading);color:var(--text-heading)}.td-body{font-family:var(--font-sans);font-weight:var(--fw-regular);font-size:var(--size-body);line-height:var(--lh-body);letter-spacing:var(--track-body);color:var(--text-body)}.td-body-sm{font-family:var(--font-sans);font-weight:var(--fw-regular);font-size:var(--size-body-sm);line-height:var(--lh-body);letter-spacing:0;color:var(--text-body)}.td-caption{font-family:var(--font-sans);font-weight:var(--fw-regular);font-size:var(--size-caption);color:var(--text-muted);line-height:1.45}.td-overline{font-family:var(--font-sans);font-weight:var(--fw-semibold);font-size:var(--size-caption);letter-spacing:var(--track-overline);text-transform:uppercase;color:var(--text-muted);line-height:1.2}.td-mono{font-family:var(--font-mono);font-weight:var(--fw-regular);font-size:var(--size-body-sm);letter-spacing:0;color:var(--text-body)}:root{--space-0:0px;--space-1:2px;--space-2:4px;--space-3:8px;--space-4:12px;--space-5:16px;--space-6:24px;--space-7:32px;--space-8:40px;--space-9:48px;--space-10:64px;--space-11:80px;--space-12:96px;--space-13:128px;--gap-inline:8px;--gap-stack:16px;--gap-group:24px;--gap-section:96px;--gap-section-compact:64px;--pad-card:24px;--pad-card-lg:32px;--pad-field-x:14px;--pad-field-y:10px;--pad-button-x:20px;--pad-button-y:11px;--touch-min:44px;--radius-xs:4px;--radius-sm:8px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-2xl:28px;--radius-field:10px;--radius-button:10px;--radius-card:14px;--radius-card-lg:20px;--radius-plate:20px;--radius-pill:999px;--radius-circle:50%;--shadow-xs:0 1px 1px #16302a0a;--shadow-sm:0 1px 2px #16302a0d,0 2px 6px #16302a0a;--shadow-md:0 2px 4px #16302a0d,0 8px 20px #16302a12;--shadow-lg:0 8px 16px #16302a12,0 24px 48px #16302a1a;--shadow-hover:0 4px 10px #16302a0f,0 16px 32px #16302a17;--shadow-press:inset 0 1px 2px #16302a24;--shadow-focus:0 0 0 3px #c56a4559;--dur-instant:.1s;--dur-fast:.15s;--dur-base:.2s;--dur-slow:.32s;--dur-reveal:.42s;--ease-standard:cubic-bezier(.2,.7,.3,1);--ease-out:cubic-bezier(.16,1,.3,1);--ease-in:cubic-bezier(.4,0,1,1);--lift-hover:-2px;--lift-card:-4px;--press-scale:.985}@media (prefers-reduced-motion:reduce){:root{--dur-instant:0s;--dur-fast:0s;--dur-base:0s;--dur-slow:0s;--dur-reveal:0s;--lift-hover:0px;--lift-card:0px;--press-scale:1}}:root{--container-wide:1160px;--container:1040px;--container-prose:680px;--container-form:480px;--gutter:24px;--gutter-lg:40px;--header-height:68px;--grid-card-min:300px;--grid-tile-min:180px;--rule-hairline:1px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--surface-page);color:var(--text-body);font-family:var(--font-sans);font-size:var(--size-body);line-height:var(--lh-body);letter-spacing:var(--track-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);font-weight:var(--fw-semibold);color:var(--text-heading);letter-spacing:var(--track-heading);line-height:var(--lh-heading);margin:0}p{text-wrap:pretty;margin:0}a{color:var(--text-link);text-underline-offset:3px;transition:color var(--dur-fast) var(--ease-standard),text-decoration-color var(--dur-fast) var(--ease-standard);text-decoration:underline #2f5d5059}a:hover{color:var(--text-link-hover);text-decoration-color:currentColor}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;border-radius:var(--radius-xs)}button{font-family:inherit}img,svg{max-width:100%;display:block}::selection{background:var(--gold-200);color:var(--forest-900)}.wrap{max-width:var(--container-wide);padding:0 var(--gutter);margin:0 auto}.prose-wrap{max-width:var(--container-prose);padding:0 var(--gutter);margin:0 auto}.section{padding:var(--gap-section) 0}.section.alt{background:var(--surface-page-alt)}.section.inverse{background:var(--surface-inverse);color:var(--text-inverse)}.section.first{padding-top:72px;padding-bottom:var(--gap-section-compact)}.overline{font-size:13px;font-weight:var(--fw-semibold);letter-spacing:var(--track-overline);text-transform:uppercase;color:var(--text-muted);align-items:center;gap:10px;display:inline-flex}.overline:before{content:"";background:var(--orange-300);width:18px;height:1px}.lede{font-size:var(--size-body-lg);max-width:var(--text-measure-tight);color:var(--text-body);line-height:1.6}.stack{flex-direction:column;display:flex}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.icon{width:1em;height:1em;display:inline-flex}.icon svg{stroke-width:2px;width:100%;height:100%}.btn{min-height:var(--touch-min);padding:var(--pad-button-y) var(--pad-button-x);border-radius:var(--radius-button);font-size:15px;font-weight:var(--fw-medium);cursor:pointer;transition:background var(--dur-fast) var(--ease-standard),transform var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;text-decoration:none;display:inline-flex}.btn:hover{transform:translateY(var(--lift-hover))}.btn:active{transform:scale(var(--press-scale));box-shadow:var(--shadow-press)}.btn.primary{background:var(--action-primary);color:var(--text-on-accent)}.btn.primary:hover{background:var(--action-primary-hover);color:var(--text-on-accent)}.btn.accent{background:var(--action-accent);color:var(--text-on-accent)}.btn.accent:hover{background:var(--action-accent-hover);color:var(--text-on-accent)}.btn.secondary{color:var(--forest-700);border-color:var(--border-strong);background:0 0}.btn.secondary:hover{background:var(--action-quiet-bg);color:var(--forest-800)}.btn.sm{min-height:36px;padding:7px 14px;font-size:14px}.btn .icon{font-size:16px}.card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-card);box-shadow:var(--shadow-sm);padding:var(--pad-card);transition:transform var(--dur-base) var(--ease-standard),box-shadow var(--dur-base) var(--ease-standard)}.card.lg{padding:var(--pad-card-lg);border-radius:var(--radius-card-lg)}.card.accent{background:var(--surface-accent-soft);border-color:var(--border-strong)}a.card{color:inherit;text-decoration:none;display:block}a.card:hover{transform:translateY(var(--lift-card));box-shadow:var(--shadow-hover)}a.card:hover .arrow{transform:translate(3px)}.arrow{color:var(--orange-600);transition:transform var(--dur-base) var(--ease-standard);display:inline-flex}.grid-3{grid-template-columns:repeat(auto-fit,minmax(var(--grid-card-min),1fr));gap:20px;display:grid}.grid-4{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;display:grid}.meta{font-family:var(--font-mono);color:var(--text-muted);font-size:13px}.tag{border-radius:var(--radius-pill);background:var(--forest-50);color:var(--forest-700);border:1px solid var(--border-hairline);font-size:13.5px;font-weight:var(--fw-medium);cursor:default;align-items:center;gap:6px;padding:5px 12px;text-decoration:none;display:inline-flex}button.tag,a.tag{cursor:pointer}.tag[aria-pressed=true],.tag.on{background:var(--forest-700);color:#fff}.tag .icon{font-size:14px}.icon-tile{border-radius:var(--radius-sm);background:var(--forest-50);width:40px;height:40px;color:var(--forest-700);justify-content:center;align-items:center;font-size:20px;display:inline-flex}.site-header{z-index:20;height:var(--header-height);transition:background var(--dur-base),border-color var(--dur-base);border-bottom:1px solid #0000;position:sticky;top:0}.site-header.scrolled{backdrop-filter:blur(8px);border-color:var(--border-hairline);background:#f6f3ece0}.site-header .wrap{justify-content:space-between;align-items:center;gap:16px;height:100%;display:flex}.wordmark{font-weight:var(--fw-semibold);letter-spacing:var(--track-heading);color:var(--forest-900);align-items:center;gap:10px;font-size:17px;text-decoration:none;display:inline-flex}.wordmark .mono{background:var(--forest-700);width:30px;height:30px;color:var(--cream-100);letter-spacing:0;border-radius:8px;justify-content:center;align-items:center;font-size:13px;display:inline-flex}.nav{align-items:center;gap:4px;display:flex}.nav a{border-radius:var(--radius-sm);font-size:15px;font-weight:var(--fw-medium);color:var(--text-body);padding:8px 14px;text-decoration:none}.nav a:hover,.nav a[aria-current=page]{color:var(--forest-900);background:var(--forest-50)}.kbd{border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--white);color:var(--text-muted);cursor:pointer;align-items:center;gap:6px;padding:6px 10px;font-size:13px;display:inline-flex}.kbd:hover{border-color:var(--forest-300);color:var(--forest-800)}.kbd .icon{font-size:14px}@media (width<=720px){.nav a{padding:8px 9px;font-size:14px}.kbd span.lbl,.wordmark span.name{display:none}}.site-footer{border-top:1px solid var(--border-subtle);color:var(--text-muted);padding:48px 0;font-size:14.5px}.site-footer .wrap{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;display:flex}.site-footer a{color:var(--text-body)}.hero{grid-template-columns:1.15fr .85fr;align-items:center;gap:64px;display:grid}.hero h1{font-size:clamp(40px,6vw,60px);font-weight:var(--fw-semibold);line-height:var(--lh-tight);letter-spacing:var(--track-hero);color:var(--text-display)}.stats{flex-wrap:wrap;gap:40px;padding-top:12px;display:flex}.stat .v{font-size:32px;font-weight:var(--fw-semibold);letter-spacing:-.02em;color:var(--forest-800);line-height:1.1}.stat .l{font-size:14px;font-weight:var(--fw-medium);color:var(--text-heading)}.stat .n{color:var(--text-muted);font-size:13px}.plate{border-radius:var(--radius-plate);background:var(--cream-500);border:1px dashed var(--border-default);height:340px;color:var(--text-faint);font-family:var(--font-mono);letter-spacing:var(--track-overline);text-transform:uppercase;text-align:center;justify-content:center;align-items:center;gap:8px;padding:16px;font-size:12px;display:flex}@media (width<=860px){.hero{grid-template-columns:1fr;gap:40px}.split{grid-template-columns:1fr!important}}.split{grid-template-columns:1fr 1fr;align-items:center;gap:64px;display:grid}.post{border-bottom:1px solid var(--border-subtle);color:inherit;padding:24px 0;text-decoration:none;display:block}.post:first-child{border-top:1px solid var(--border-subtle)}.post h3{letter-spacing:var(--track-heading);margin:6px 0;font-size:22px}.post:hover h3{color:var(--orange-700)}.post p{color:var(--text-body);max-width:var(--text-measure-tight)}.prose{font-size:17px;line-height:1.75}.prose>*+*{margin-top:1.2em}.prose h2{font-size:var(--size-h2);letter-spacing:var(--track-heading);margin-top:2em}.prose h3{font-size:var(--size-h3);margin-top:1.6em}.prose blockquote{border-left:2px solid var(--gold-500);font-weight:var(--fw-light);letter-spacing:-.02em;margin-left:0;padding:4px 0 4px 20px;font-size:20px}.prose code{font-family:var(--font-mono);background:var(--cream-500);border-radius:4px;padding:2px 6px;font-size:.9em}.prose pre{background:var(--forest-900);color:var(--cream-100);border-radius:var(--radius-card);padding:20px;overflow-x:auto}.prose pre code{background:0 0;padding:0}.prose img{border-radius:var(--radius-plate)}.reveal{opacity:0;transition:opacity var(--dur-reveal) var(--ease-out),transform var(--dur-reveal) var(--ease-out);transform:translateY(12px)}.reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}.no-js .reveal{opacity:1;transform:none}dialog.palette{border:1px solid var(--border-default);border-radius:var(--radius-card-lg);width:min(560px,100vw - 32px);box-shadow:var(--shadow-lg);background:var(--white);margin:12vh auto auto;padding:0}dialog.palette::backdrop{background:var(--surface-overlay)}.palette input{border:0;border-bottom:1px solid var(--border-subtle);width:100%;font:inherit;color:var(--text-heading);background:0 0;outline:none;padding:18px 20px;font-size:17px}.palette ul{max-height:50vh;margin:0;padding:8px;list-style:none;overflow:auto}.palette li a{border-radius:var(--radius-sm);color:var(--text-body);justify-content:space-between;gap:12px;padding:10px 12px;font-size:15px;text-decoration:none;display:flex}.palette li a:hover,.palette li a.active{background:var(--forest-50);color:var(--forest-900)}.palette li a small{color:var(--text-muted);font-family:var(--font-mono);font-size:12px}.palette .empty{color:var(--text-muted);padding:20px}.pill{border-radius:var(--radius-pill);font-size:12.5px;font-weight:var(--fw-medium);background:var(--status-success-surface);color:var(--status-success-text);align-self:flex-start;padding:2px 10px;display:inline-block}.pill.soon{background:var(--gold-100);color:var(--gold-800)}.avatar{width:var(--s,220px);height:var(--s,220px);object-fit:cover;box-shadow:var(--shadow-md);border:4px solid var(--white);border-radius:50%}
