:root{--bg: #f3f1e9;--bg-alt: #e4efe4;--surface: #fdfcf7;--surface-2: #f4f2e9;--sunk: #eae7db;--ink: #17160f;--ink-2: #3d3a2f;--muted: #56534a;--faint: #8b8677;--line: #ddd9c9;--line-2: #cac4b0;--accent: #2b6a47;--accent-strong: #1f5136;--accent-2: #388158;--accent-tint: #dcece0;--accent-line: #b3d0bd;--on-accent: #fbfaf3;--invert-bg: #1c4632;--invert-ink: #eef3ec;--invert-line: #2f5a44;--warm: #a85f1a;--warm-tint: #f2e6d4;--font-display: "Newsreader", "Newsreader 18pt", Georgia, "Times New Roman", serif;--font-sans: "Hanken Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--fs-3xs: .6875rem;--fs-2xs: .75rem;--fs-xs: .8125rem;--fs-sm: .9375rem;--fs-base: 1rem;--fs-md: 1.0625rem;--fs-lg: 1.25rem;--fs-xl: clamp(1.4rem, 1.15rem + 1.2vw, 1.85rem);--fs-2xl: clamp(1.9rem, 1.4rem + 2.2vw, 2.75rem);--fs-3xl: clamp(2.4rem, 1.7rem + 3vw, 3.6rem);--fs-hero: clamp(2.9rem, 1.9rem + 5vw, 5.25rem);--lh-tight: 1.05;--lh-snug: 1.16;--lh-mid: 1.4;--lh-body: 1.66;--page: 70rem;--measure: 40rem;--gutter: clamp(1.2rem, 5vw, 3rem);--nav-h: 4rem;--r-sm: 8px;--r: 12px;--r-lg: 18px;--r-xl: 24px;--shadow-1: 0 1px 2px rgba(35, 30, 20, .07), 0 2px 6px rgba(35, 30, 20, .05);--shadow-2: 0 4px 10px rgba(35, 30, 20, .07), 0 18px 38px -16px rgba(35, 30, 20, .2);--shadow-3: 0 44px 84px -30px rgba(35, 30, 20, .28);--ease: cubic-bezier(.2, .7, .2, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--dur-1: .15s;--dur-2: .26s;--dur-3: .52s;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #17150f;--bg-alt: #1e1b14;--surface: #211e17;--surface-2: #1c1912;--sunk: #15130d;--ink: #f0ece1;--ink-2: #cfc9ba;--muted: #9c9587;--faint: #6b6558;--line: #322e24;--line-2: #423d30;--accent: #7bb894;--accent-strong: #93c9a9;--accent-2: #68a884;--accent-tint: #1a2a20;--accent-line: #35513f;--on-accent: #17150f;--invert-bg: #12271c;--invert-ink: #e6efe6;--invert-line: #274436;--warm: #dd9a52;--warm-tint: #2c2012;--shadow-1: 0 1px 2px rgba(0, 0, 0, .44), 0 1px 3px rgba(0, 0, 0, .34);--shadow-2: 0 3px 10px rgba(0, 0, 0, .46), 0 18px 40px -16px rgba(0, 0, 0, .62);--shadow-3: 0 44px 90px -30px rgba(0, 0, 0, .72);color-scheme:dark}}:root[data-theme=dark]{--bg: #17150f;--bg-alt: #1e1b14;--surface: #211e17;--surface-2: #1c1912;--sunk: #15130d;--ink: #f0ece1;--ink-2: #cfc9ba;--muted: #9c9587;--faint: #6b6558;--line: #322e24;--line-2: #423d30;--accent: #7bb894;--accent-strong: #93c9a9;--accent-2: #68a884;--accent-tint: #1a2a20;--accent-line: #35513f;--on-accent: #17150f;--warm: #dd9a52;--warm-tint: #2c2012;--shadow-1: 0 1px 2px rgba(0, 0, 0, .44), 0 1px 3px rgba(0, 0, 0, .34);--shadow-2: 0 3px 10px rgba(0, 0, 0, .46), 0 18px 40px -16px rgba(0, 0, 0, .62);--shadow-3: 0 44px 90px -30px rgba(0, 0, 0, .72);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--nav-h) + 1rem)}body{min-height:100dvh;display:flex;flex-direction:column;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background var(--dur-2) var(--ease),color var(--dur-2) var(--ease)}#main{flex:1 0 auto}img,picture,svg,video,canvas,iframe{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}button{background:none;border:0;cursor:pointer}a{color:inherit;text-decoration:none}ul[role=list],ol[role=list]{list-style:none;padding:0}[hidden]{display:none!important}h1,h2,h3,.display{font-family:var(--font-display);font-weight:500;letter-spacing:-.011em;line-height:var(--lh-snug);text-wrap:balance;color:var(--ink)}h1,.display{font-weight:400;line-height:var(--lh-tight);letter-spacing:-.018em}h4,h5{font-family:var(--font-sans);font-weight:600;line-height:var(--lh-snug);color:var(--ink)}p{text-wrap:pretty}em,.serif-i{font-style:italic}strong,b{font-weight:600;color:var(--ink)}.eyebrow{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}.eyebrow:before{content:"";width:1.5rem;height:1px;background:currentColor;opacity:.5}.eyebrow.bare:before{display:none}.lead{font-size:var(--fs-md);line-height:var(--lh-mid);color:var(--muted);max-width:var(--measure)}.mono{font-family:var(--font-mono)}.tabular{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.ulink{background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0% 1.5px;transition:background-size var(--dur-2) var(--ease);padding-bottom:2px}.ulink:hover,.ulink:focus-visible{background-size:100% 1.5px}.wrap{width:100%;max-width:var(--page);margin-inline:auto;padding-inline:var(--gutter)}.section{padding-block:clamp(3.25rem,8vw,6rem);scroll-margin-top:var(--nav-h)}.section+.section{border-top:1px solid var(--line)}.section.alt{background:var(--bg-alt)}.section.invert{background:var(--invert-bg);color:var(--invert-ink);border-top-color:var(--invert-line)}.section.invert h1,.section.invert h2,.section.invert h3{color:var(--invert-ink)}.section.invert .sec-num{color:color-mix(in srgb,var(--invert-ink) 62%,transparent)}.section.invert .btn-ghost{--_bd: var(--invert-line);--_fg: var(--invert-ink)}.section.invert .btn-ghost:hover{--_bd: var(--invert-ink);--_fg: var(--invert-ink)}.section.invert .btn-primary{--_bg: var(--on-accent);--_fg: var(--invert-ink);--_bd: var(--on-accent)}.sec-head{display:flex;flex-direction:column;gap:.6rem;margin-bottom:clamp(1.6rem,4vw,2.6rem)}.sec-head h2{font-size:var(--fs-2xl)}.sec-head .sec-lead{max-width:44rem;color:var(--muted);font-size:var(--fs-md)}.sec-num{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.14em;color:var(--accent);text-transform:uppercase}.sec-num:before{content:"";width:1.4rem;height:2px;border-radius:2px;background:currentColor}.btn{--_bg: var(--surface);--_fg: var(--ink);--_bd: var(--line-2);display:inline-flex;align-items:center;gap:.5rem;padding:.68rem 1.1rem;border-radius:999px;border:1px solid var(--_bd);background:var(--_bg);color:var(--_fg);font-size:var(--fs-sm);font-weight:600;line-height:1;white-space:nowrap;transition:transform var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease),background var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease)}.btn .arrow{transition:transform var(--dur-2) var(--ease)}.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-1)}.btn:hover .arrow{transform:translate(3px)}.btn:active{transform:translateY(0)}.btn-primary{--_bg: var(--accent);--_fg: var(--on-accent);--_bd: var(--accent)}.btn-primary:hover{--_bg: var(--accent-strong);--_bd: var(--accent-strong);box-shadow:var(--shadow-2)}.btn-ghost{--_bg: transparent}.btn-ghost:hover{--_bd: var(--accent);--_fg: var(--accent)}.btn-sm{padding:.46rem .85rem;font-size:var(--fs-xs)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1)}.tags{display:flex;flex-wrap:wrap;gap:.4rem}.tag{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.01em;color:var(--muted);border:1px solid var(--line-2);border-radius:999px;padding:.3em .7em;white-space:nowrap}.tag.accent{color:var(--accent-strong);border-color:var(--accent-line);background:var(--accent-tint)}.pdf-frame{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--surface);box-shadow:var(--shadow-1)}.pdf-frame .bar{display:flex;align-items:center;justify-content:space-between;padding:.55rem .9rem;border-bottom:1px solid var(--line);background:var(--surface-2);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.04em;color:var(--muted)}.pdf-frame .bar .vo{text-transform:uppercase;letter-spacing:.12em;color:var(--faint)}.pdf-frame iframe{width:100%;height:min(78vh,720px);border:0;background:var(--sunk)}.prose{max-width:var(--measure);color:var(--ink-2);font-size:var(--fs-md);line-height:var(--lh-body)}.prose>*+*{margin-top:1em}.prose h3{margin-top:1.7em;font-size:var(--fs-lg)}.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.prose code{font-family:var(--font-mono);font-size:.86em;background:var(--sunk);padding:.12em .4em;border-radius:var(--r-sm)}.points{list-style:none;padding:0;margin:0;max-width:var(--measure);display:flex;flex-direction:column;gap:.7rem}.points li{position:relative;padding-left:1.4rem;color:var(--ink-2)}.points li:before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;border-radius:1px;background:var(--accent);transform:rotate(45deg)}.cmp{width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);max-width:var(--measure)}.cmp table{border-collapse:collapse;width:100%;font-size:var(--fs-xs)}.cmp th,.cmp td{text-align:left;padding:.6rem .9rem;border-bottom:1px solid var(--line);white-space:nowrap}.cmp th{font-family:var(--font-mono);font-weight:500;font-size:var(--fs-3xs);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--surface-2)}.cmp td{color:var(--muted);font-variant-numeric:tabular-nums}.cmp td:first-child{color:var(--ink)}.cmp tbody tr:last-child td{border-bottom:0}.skip-link{position:absolute;left:.75rem;top:.75rem;transform:translateY(-180%);background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:.55rem .95rem;font-family:var(--font-mono);font-size:var(--fs-xs);z-index:100;transition:transform var(--dur-2) var(--ease)}.skip-link:focus{transform:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}::selection{background:color-mix(in srgb,var(--accent) 24%,transparent)}[data-reveal]{opacity:0;transform:translateY(16px);transition:opacity var(--dur-3) var(--ease-out),transform var(--dur-3) var(--ease-out);transition-delay:var(--reveal-delay, 0ms)}[data-reveal][data-shown]{opacity:1;transform:none}@keyframes rise-in{0%{opacity:0;transform:translateY(.5em)}to{opacity:1;transform:none}}.rise{opacity:0;animation:rise-in .85s var(--ease-out) forwards;animation-delay:var(--rise-delay, 0ms)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}[data-reveal],.rise{opacity:1;transform:none}}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}.theme-toggle[data-astro-cid-x3pjskd3]{display:inline-grid;place-items:center;width:2.3rem;height:2.3rem;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);color:var(--muted);transition:color var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease),background var(--dur-1) var(--ease)}.theme-toggle[data-astro-cid-x3pjskd3]:hover{color:var(--ink);border-color:var(--accent-line);background:var(--surface-2)}.theme-toggle[data-astro-cid-x3pjskd3] svg[data-astro-cid-x3pjskd3]{width:1.05rem;height:1.05rem}.i-moon[data-astro-cid-x3pjskd3]{display:none}:root[data-theme=dark] .i-moon[data-astro-cid-x3pjskd3]{display:none}:root[data-theme=dark] .i-sun[data-astro-cid-x3pjskd3]{display:block}:root[data-theme=light] .i-sun[data-astro-cid-x3pjskd3]{display:none}:root[data-theme=light] .i-moon[data-astro-cid-x3pjskd3]{display:block}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .i-sun[data-astro-cid-x3pjskd3]{display:block}:root:not([data-theme=light]) .i-moon[data-astro-cid-x3pjskd3]{display:none}}.nav[data-astro-cid-dmqpwcec]{position:sticky;top:0;z-index:50;height:var(--nav-h);display:flex;align-items:center;background:color-mix(in srgb,var(--bg) 78%,transparent);backdrop-filter:saturate(1.5) blur(12px);-webkit-backdrop-filter:saturate(1.5) blur(12px);border-bottom:1px solid transparent;transition:border-color var(--dur-2) var(--ease),background var(--dur-2) var(--ease),box-shadow var(--dur-2) var(--ease)}.nav[data-astro-cid-dmqpwcec][data-scrolled]{border-bottom-color:var(--line);box-shadow:var(--shadow-1);background:color-mix(in srgb,var(--bg) 92%,transparent)}.bar[data-astro-cid-dmqpwcec]{display:flex;align-items:center;gap:1.4rem;width:100%}.brand[data-astro-cid-dmqpwcec]{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--font-display);font-size:1.1rem;letter-spacing:-.01em;white-space:nowrap}.brand[data-astro-cid-dmqpwcec] .dot[data-astro-cid-dmqpwcec]{width:9px;height:9px;border-radius:50%;background:var(--accent);transition:transform var(--dur-2) var(--ease)}.brand[data-astro-cid-dmqpwcec]:hover .dot[data-astro-cid-dmqpwcec]{transform:scale(1.35)}.brand[data-astro-cid-dmqpwcec] .ar[data-astro-cid-dmqpwcec]{font-family:var(--font-sans);color:var(--accent);transition:transform var(--dur-2) var(--ease)}.brand[data-astro-cid-dmqpwcec].back:hover .ar[data-astro-cid-dmqpwcec]{transform:translate(-3px)}.links[data-astro-cid-dmqpwcec]{margin-left:auto}.links-inner[data-astro-cid-dmqpwcec]{display:flex;align-items:center;gap:1.5rem}.nav-link[data-astro-cid-dmqpwcec]{position:relative;font-size:var(--fs-sm);font-weight:500;color:var(--muted);transition:color var(--dur-1) var(--ease)}.nav-link[data-astro-cid-dmqpwcec]:after{content:"";position:absolute;left:0;right:0;bottom:-.5rem;height:2px;border-radius:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform var(--dur-2) var(--ease)}.nav-link[data-astro-cid-dmqpwcec]:hover,.nav-link[data-astro-cid-dmqpwcec].current{color:var(--ink)}.nav-link[data-astro-cid-dmqpwcec]:hover:after,.nav-link[data-astro-cid-dmqpwcec].current:after{transform:scaleX(1)}.cv[data-astro-cid-dmqpwcec]:after{display:none}.tools[data-astro-cid-dmqpwcec]{display:flex;align-items:center;gap:.55rem}.menu-btn[data-astro-cid-dmqpwcec]{display:none;width:2.3rem;height:2.3rem;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);position:relative}.menu-btn[data-astro-cid-dmqpwcec] span[data-astro-cid-dmqpwcec]{position:absolute;left:50%;width:1rem;height:1.6px;border-radius:2px;background:var(--muted);translate:-50% 0;transition:transform var(--dur-2) var(--ease),opacity var(--dur-1) var(--ease)}.menu-btn[data-astro-cid-dmqpwcec] span[data-astro-cid-dmqpwcec]:nth-child(1){top:.8rem}.menu-btn[data-astro-cid-dmqpwcec] span[data-astro-cid-dmqpwcec]:nth-child(2){top:1.1rem}.menu-btn[data-astro-cid-dmqpwcec] span[data-astro-cid-dmqpwcec]:nth-child(3){top:1.4rem}.menu-btn[data-astro-cid-dmqpwcec][aria-expanded=true] span[data-astro-cid-dmqpwcec]:nth-child(1){transform:translateY(.3rem) rotate(45deg)}.menu-btn[data-astro-cid-dmqpwcec][aria-expanded=true] span[data-astro-cid-dmqpwcec]:nth-child(2){opacity:0}.menu-btn[data-astro-cid-dmqpwcec][aria-expanded=true] span[data-astro-cid-dmqpwcec]:nth-child(3){transform:translateY(-.3rem) rotate(-45deg)}@media(max-width:46rem){.menu-btn[data-astro-cid-dmqpwcec]{display:block}.links[data-astro-cid-dmqpwcec]{position:absolute;inset:var(--nav-h) 0 auto 0;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:var(--shadow-2);overflow:hidden;max-height:0;transition:max-height var(--dur-3) var(--ease)}.links[data-astro-cid-dmqpwcec][data-open]{max-height:24rem}.links-inner[data-astro-cid-dmqpwcec]{flex-direction:column;align-items:stretch;gap:0;padding:.4rem var(--gutter) 1.4rem}.nav-link[data-astro-cid-dmqpwcec]{padding:.9rem 0;border-bottom:1px solid var(--line);font-size:var(--fs-md)}.nav-link[data-astro-cid-dmqpwcec]:after{display:none}.cv[data-astro-cid-dmqpwcec]{margin-top:1rem;justify-content:center}}.site-footer[data-astro-cid-sz7xmlte]{border-top:1px solid var(--line);background:var(--bg-alt);padding-block:clamp(2.6rem,6vw,4rem) 1.8rem}.inner[data-astro-cid-sz7xmlte]{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2rem}.wm[data-astro-cid-sz7xmlte]{font-size:var(--fs-xl)}.left[data-astro-cid-sz7xmlte] .muted[data-astro-cid-sz7xmlte]{margin-top:.4rem;font-size:var(--fs-sm)}.cols[data-astro-cid-sz7xmlte]{display:flex;gap:3rem}.col[data-astro-cid-sz7xmlte]{display:flex;flex-direction:column;gap:.55rem}.col-h[data-astro-cid-sz7xmlte]{font-size:var(--fs-3xs);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:.25rem}.col[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{font-size:var(--fs-sm);color:var(--muted);width:fit-content}.col[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--ink)}.base[data-astro-cid-sz7xmlte]{display:flex;justify-content:space-between;margin-top:2.4rem;padding-top:1.3rem;border-top:1px solid var(--line);font-size:var(--fs-2xs);color:var(--faint)}@media(max-width:34rem){.cols[data-astro-cid-sz7xmlte]{gap:2rem}.base[data-astro-cid-sz7xmlte]{flex-direction:column;gap:.3rem}}
