@font-face{font-family:Fredoka Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/fredoka-hebrew-wght-normal.DdnsCkLr.woff2) format("woff2-variations");unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Fredoka Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/fredoka-latin-ext-wght-normal.CYrqKuxd.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Fredoka Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/fredoka-latin-wght-normal.DM6njrJ3.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/_astro/nunito-cyrillic-ext-wght-normal.D4X5GqEv.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/_astro/nunito-cyrillic-wght-normal.CY6AOgYE.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/_astro/nunito-vietnamese-wght-normal.U01xdrZh.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/_astro/nunito-latin-ext-wght-normal.CXYtwYOx.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/_astro/nunito-latin-wght-normal.BzFMHfZw.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light;--paper: #faf7f0;--paper-raised: #fffdf8;--paper-sunken: #f1ece1;--ink: #17140f;--ink-soft: #5d574e;--line: #17140f;--accent-coral: #ff6b4a;--accent-teal: #12a5b8;--accent-blue: #3d7dff;--accent-sun: #ffc93c;--accent-mint: #23b892;--accent-grape: #a86cff;--radius-sm: 10px;--radius: 18px;--radius-lg: 28px;--border-w: 3px;--shadow: 6px 6px 0 var(--line);--shadow-sm: 3px 3px 0 var(--line);--shadow-lg: 10px 10px 0 var(--line);--font-display: "Fredoka Variable", "Trebuchet MS", system-ui, sans-serif;--font-body: "Nunito Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: ui-monospace, "Cascadia Code", "SF Mono", Menlo, Consolas, monospace;--measure: 68ch;--page: 1120px;--gutter: clamp(1rem, 4vw, 2.5rem);--ease-pop: cubic-bezier(.34, 1.56, .64, 1)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--paper: #15171c;--paper-raised: #1e2128;--paper-sunken: #101216;--ink: #f3efe6;--ink-soft: #a7a196;--line: #000000;--accent-coral: #ff8163;--accent-teal: #45d1e0;--accent-blue: #6d9bff;--accent-sun: #ffd45c;--accent-mint: #3ad1a8;--accent-grape: #bb8cff;--shadow: 6px 6px 0 rgba(0, 0, 0, .55);--shadow-sm: 3px 3px 0 rgba(0, 0, 0, .55);--shadow-lg: 10px 10px 0 rgba(0, 0, 0, .55)}}:root[data-theme=dark]{color-scheme:dark;--paper: #15171c;--paper-raised: #1e2128;--paper-sunken: #101216;--ink: #f3efe6;--ink-soft: #a7a196;--line: #000000;--accent-coral: #ff8163;--accent-teal: #45d1e0;--accent-blue: #6d9bff;--accent-sun: #ffd45c;--accent-mint: #3ad1a8;--accent-grape: #bb8cff;--shadow: 6px 6px 0 rgba(0, 0, 0, .55);--shadow-sm: 3px 3px 0 rgba(0, 0, 0, .55);--shadow-lg: 10px 10px 0 rgba(0, 0, 0, .55)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;min-height:100dvh;display:flex;flex-direction:column;background-color:var(--paper);background-image:radial-gradient(circle at 1px 1px,color-mix(in srgb,var(--ink) 9%,transparent) 1px,transparent 0);background-size:26px 26px;color:var(--ink);font-family:var(--font-body);font-size:clamp(1rem,.96rem + .2vw,1.0625rem);line-height:1.65;font-synthesis-weight:none}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.05;letter-spacing:-.015em;margin:0 0 .4em;text-wrap:balance}h1{font-size:clamp(2.2rem,1.4rem + 4vw,4rem)}h2{font-size:clamp(1.6rem,1.2rem + 1.8vw,2.4rem)}h3{font-size:clamp(1.2rem,1.05rem + .8vw,1.5rem)}p{margin:0 0 1em}p,li{text-wrap:pretty}a{color:inherit;text-decoration-color:var(--accent-coral);text-decoration-thickness:2px;text-underline-offset:3px}a:hover{text-decoration-color:var(--accent-blue)}:focus-visible{outline:3px solid var(--accent-blue);outline-offset:3px;border-radius:4px}img,svg,canvas{max-width:100%}code,kbd,pre{font-family:var(--font-mono)}kbd{display:inline-block;padding:.05em .45em;border:2px solid var(--line);border-bottom-width:3px;border-radius:6px;background:var(--paper-raised);font-size:.85em;line-height:1.5}.page{width:min(100% - var(--gutter) * 2,var(--page));margin-inline:auto}.stack>*+*{margin-block-start:var(--stack-gap, 1.5rem)}main{flex:1 0 auto;padding-block:clamp(2rem,5vw,4rem)}.eyebrow{font-family:var(--font-display);font-size:.8rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 .6rem}.lede{font-size:clamp(1.05rem,1rem + .5vw,1.3rem);color:var(--ink-soft);max-width:var(--measure)}.prose{max-width:var(--measure)}.prose :where(h2,h3){margin-top:1.8em}.prose :where(pre){padding:1rem 1.2rem;border:var(--border-w) solid var(--line);border-radius:var(--radius);overflow-x:auto}.prose :where(blockquote){margin:1.5em 0;padding:.2em 1.2em;border-left:6px solid var(--accent-sun);color:var(--ink-soft)}.prose :where(table){width:100%;border-collapse:collapse;margin:1.5em 0}.prose :where(th,td){border:2px solid var(--line);padding:.5em .7em;text-align:left}.card{background:var(--paper-raised);border:var(--border-w) solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.btn{display:inline-flex;align-items:center;gap:.5em;padding:.6em 1.15em;font-family:var(--font-display);font-size:1rem;font-weight:600;color:var(--ink);background:var(--paper-raised);border:var(--border-w) solid var(--line);border-radius:999px;box-shadow:var(--shadow-sm);text-decoration:none;cursor:pointer;transition:transform .14s var(--ease-pop),box-shadow .14s var(--ease-pop)}.btn:hover{transform:translate(-2px,-2px);box-shadow:var(--shadow)}.btn:active{transform:translate(2px,2px);box-shadow:none}.btn--primary{background:var(--accent-sun)}.btn--ghost{background:transparent;box-shadow:none}.tag{display:inline-block;padding:.1em .6em;border:2px solid var(--line);border-radius:999px;background:var(--paper-sunken);font-size:.75rem;font-weight:700;letter-spacing:.02em}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:absolute;left:50%;translate:-50% -150%;z-index:50;padding:.6em 1.2em;background:var(--accent-sun);color:#17140f;border:var(--border-w) solid #17140f;border-radius:0 0 var(--radius) var(--radius);font-weight:700}.skip-link:focus{translate:-50% 0}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.wordmark[data-astro-cid-hhuuaa7r]{display:inline-block;font-family:var(--font-display);font-weight:600;letter-spacing:-.03em;line-height:1;white-space:nowrap}.wordmark--nav[data-astro-cid-hhuuaa7r]{font-size:1.35rem}.wordmark--hero[data-astro-cid-hhuuaa7r]{font-size:clamp(2.6rem,1.2rem + 8.5vw,6.5rem);margin:0}.wordmark__lab[data-astro-cid-hhuuaa7r]{color:var(--accent-teal)}.wordmark__dev[data-astro-cid-hhuuaa7r]{color:var(--ink-soft);font-weight:400}.wordmark--hero[data-astro-cid-hhuuaa7r] .wordmark__dev[data-astro-cid-hhuuaa7r]{display:inline-block;animation:tilt 6s var(--ease-pop) infinite;transform-origin:10% 90%}@keyframes tilt{0%,72%,to{transform:rotate(0)}78%{transform:rotate(-7deg)}86%{transform:rotate(5deg)}93%{transform:rotate(-2deg)}}.theme-toggle[data-astro-cid-x3pjskd3]{display:grid;place-items:center;width:2.6rem;height:2.6rem;padding:0;background:var(--paper-raised);border:var(--border-w) solid var(--line);border-radius:999px;box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .14s var(--ease-pop),box-shadow .14s var(--ease-pop)}.theme-toggle[data-astro-cid-x3pjskd3]:hover{transform:translate(-2px,-2px);box-shadow:var(--shadow)}.theme-toggle[data-astro-cid-x3pjskd3]:active{transform:translate(1px,1px);box-shadow:none}.theme-toggle__icon[data-astro-cid-x3pjskd3]{width:1.05rem;height:1.05rem;border-radius:999px;background:var(--accent-teal);border:2px solid var(--line);box-shadow:inset -5px -3px 0 0 var(--paper-raised);transition:box-shadow .2s ease}:root[data-theme=dark] .theme-toggle__icon[data-astro-cid-x3pjskd3]{box-shadow:inset 0 0 0 0 var(--paper-raised)}.site-header[data-astro-cid-3ef6ksr2]{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:blur(8px);border-bottom:var(--border-w) solid var(--line)}.site-header__inner[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:1rem;min-height:4rem;padding-block:.5rem}.site-header__brand[data-astro-cid-3ef6ksr2]{text-decoration:none;margin-inline-end:auto}.site-nav[data-astro-cid-3ef6ksr2] ul[data-astro-cid-3ef6ksr2]{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .4rem;margin:0;padding:0;list-style:none}.site-nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{display:inline-block;padding:.35em .8em;border:var(--border-w) solid transparent;border-radius:999px;font-family:var(--font-display);font-weight:500;text-decoration:none}.site-nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]:hover{border-color:var(--line);background:var(--paper-raised)}.site-nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2][aria-current=page]{border-color:var(--line);background:var(--accent-teal);color:#17140f}.lock[data-astro-cid-3ef6ksr2]{margin-inline-start:.35em;font-size:.7em;color:var(--accent-coral)}.site-nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2][aria-current=page] .lock[data-astro-cid-3ef6ksr2]{color:#17140f}@media(max-width:34rem){.site-header__inner[data-astro-cid-3ef6ksr2]{flex-wrap:wrap;row-gap:.4rem}.site-header__brand[data-astro-cid-3ef6ksr2]{margin-inline-end:0;flex:1}.site-nav[data-astro-cid-3ef6ksr2]{order:3;flex-basis:100%}.site-nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{padding-inline:.6em;font-size:.95rem}}.site-footer[data-astro-cid-sz7xmlte]{border-top:var(--border-w) solid var(--line);background:var(--paper-sunken);padding-block:1.5rem 2rem;font-size:.925rem}.site-footer__inner[data-astro-cid-sz7xmlte]{display:flex;flex-wrap:wrap;gap:.5rem 2rem;justify-content:space-between;align-items:baseline}.site-footer[data-astro-cid-sz7xmlte] p[data-astro-cid-sz7xmlte]{margin:0;color:var(--ink-soft)}.site-footer__meta[data-astro-cid-sz7xmlte]{display:flex;flex-wrap:wrap;gap:.25rem 1rem}
