:root{--paper:#fbfaf7;--surface:#fff;--ink:#292524;--ink-soft:#44403c;--muted:#6b6259;--line:#e8e4dc;--accent:#4f46e5;--accent-dark:#4338ca;--accent-soft:#eef0ff;--black:41, 37, 36;--gray:120, 113, 108;--gray-light:232, 228, 220;--gray-dark:41, 37, 36;--gray-gradient:rgba(var(--gray-light), 50%), var(--paper);--mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--radius:16px;--shadow:0 1px 2px rgba(var(--black), 4%), 0 8px 28px rgba(var(--black), 7%)}body{font-family:var(--font-atkinson);text-align:left;background:var(--paper);color:var(--ink-soft);word-wrap:break-word;overflow-wrap:break-word;-webkit-font-smoothing:antialiased;margin:0;padding:0;font-size:19px;line-height:1.75}::selection{background:var(--accent-soft)}main{width:720px;max-width:calc(100% - 2em);margin:auto;padding:3em 1em}h1,h2,h3,h4,h5,h6{color:var(--ink);letter-spacing:-.015em;margin:0 0 .5rem;line-height:1.2}h1{font-size:2.75em}h2{font-size:2em}h3{font-size:1.5em}h4{font-size:1.25em}h5{font-size:1.1em}strong,b{color:var(--ink);font-weight:700}a{color:var(--accent);text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{color:var(--accent-dark)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}p{margin-bottom:1em}.prose p{margin-bottom:1.75em}textarea{width:100%;font-size:16px}input{font-size:16px}table{width:100%}img{border-radius:12px;max-width:100%;height:auto}code{background-color:rgb(var(--gray-light));font-family:var(--mono);border-radius:6px;padding:2px 6px;font-size:.85em}pre{border-radius:var(--radius);border:1px solid var(--line);padding:1.5em}pre>code{all:unset}blockquote{border-left:3px solid var(--accent);color:var(--ink);margin:0;padding:.25em 0 .25em 1.25em;font-size:1.2em}hr{border:none;border-top:1px solid var(--line)}.wrap{width:940px;max-width:calc(100% - 2em);margin:auto}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 1rem;font-size:.85rem;font-weight:700}.eyebrow .dot{color:var(--accent)}.hero{background:radial-gradient(60rem 24rem at 50% -8rem, var(--accent-soft), transparent), var(--paper);padding:clamp(4rem,9vw,6.5rem) 0 clamp(3rem,6vw,4.5rem)}.hero h1{letter-spacing:-.03em;margin:0 0 .5rem;font-size:clamp(2.75rem,7vw,4.75rem);font-weight:800;line-height:1.05}.hero .subtitle{color:var(--ink);margin:0 0 1.25rem;font-size:clamp(1.15rem,2.5vw,1.4rem);font-weight:400}.hero .subtitle strong{font-weight:700}.hero .lede{max-width:38rem;color:var(--ink-soft);margin:0;font-size:1.08rem}.hero .cta-row{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.btn{border-radius:999px;padding:.7em 1.5em;font-size:1rem;font-weight:600;text-decoration:none;transition:transform .15s,box-shadow .15s,background .15s;display:inline-block}.btn-solid{background:var(--ink);color:#fff}.btn-solid:hover{color:#fff;background:var(--accent-dark);box-shadow:var(--shadow);transform:translateY(-1px)}.btn-ghost{color:var(--ink);border:1px solid var(--line);background:0 0}.btn-ghost:hover{color:var(--accent-dark);border-color:var(--accent);transform:translateY(-1px)}.cta-row{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.page-hero{background:radial-gradient(50rem 20rem at 50% -8rem, var(--accent-soft), transparent), var(--paper);border-bottom:1px solid var(--line);padding:clamp(3rem,7vw,4.5rem) 0 clamp(2rem,4vw,3rem)}.page-hero h1{letter-spacing:-.025em;margin:0 0 .75rem;font-size:clamp(2.25rem,5.5vw,3.5rem);font-weight:800;line-height:1.08}.page-hero .lede{max-width:40rem;color:var(--ink-soft);margin:0}.page-hero .meta-row{color:var(--muted);flex-wrap:wrap;gap:.5rem 1.5rem;margin-top:1.25rem;font-size:.9rem;display:flex}.home-section{padding:clamp(2.5rem,6vw,4rem) 0}.home-section+.home-section{border-top:1px solid var(--line)}.section-title{letter-spacing:-.02em;margin:0 0 .5rem;font-size:clamp(1.5rem,3.5vw,2rem);font-weight:800}.section-sub{color:var(--muted);max-width:36rem;margin:0 0 2rem}.intro{max-width:44rem}.intro p{margin:0 0 1.25em}.intro-list{border-top:1px solid var(--line);margin:2rem 0 0;padding:0;list-style:none}.intro-list li{border-bottom:1px solid var(--line);padding:1rem 0}.intro-list strong{color:var(--ink)}.blog-search{max-width:32rem;margin-bottom:1.5rem}.topic-chips{flex-wrap:wrap;gap:.6rem;margin:0 0 2rem;padding:0;list-style:none;display:flex}.topic-chips a{border:1px solid var(--line);background:var(--surface);color:var(--ink-soft);border-radius:999px;padding:.45em 1em;font-size:.88rem;font-weight:600;text-decoration:none;display:inline-block}.topic-chips a:hover{border-color:var(--accent);color:var(--accent-dark)}.topic-chips .count{color:var(--muted);font-weight:400}.post-tags{flex-wrap:wrap;gap:.4rem;margin-top:.6rem;display:flex}.post-tags>span,a.post-tag{letter-spacing:.06em;text-transform:uppercase;color:var(--accent-dark);background:var(--accent-soft);border-radius:999px;padding:.3em .9em;font-size:.76rem;font-weight:700}a.post-tag{text-decoration:none}a.post-tag:hover{background:var(--accent);color:#fff}.post-tag-row{flex-wrap:wrap;gap:.4rem;margin-top:1.25rem;display:flex}.post-rows{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.post-rows li{border-bottom:1px solid var(--line)}.post-rows a{color:var(--ink);border-radius:12px;flex-wrap:wrap;align-items:baseline;gap:.25rem 1.5rem;margin:0 -.5rem;padding:1.25rem .5rem;text-decoration:none;transition:background .15s;display:flex}.post-rows a:hover{background:var(--surface)}.post-rows a:hover .post-title{color:var(--accent)}.post-rows .post-date{color:var(--muted);min-width:7.5rem;font-size:.88rem}.post-rows .post-title{letter-spacing:-.01em;font-size:1.25rem;font-weight:700}.post-rows .post-text{flex:1;min-width:16rem}.post-rows .post-desc{color:var(--muted);margin:.3rem 0 0;font-size:.98rem;display:block}.section-link{margin-top:1.5rem;font-weight:600;display:inline-block}.back-link{color:var(--muted);margin-bottom:2rem;font-size:.92rem;font-weight:600;text-decoration:none;display:inline-block}.back-link:hover{color:var(--accent)}.timeline{margin:0;padding:0;list-style:none}.timeline li{border-left:2px solid var(--line);margin-left:.4rem;padding:0 0 2rem 1.75rem;position:relative}.timeline li:last-child{padding-bottom:0}.timeline li:before{content:"";background:var(--surface);border:2px solid var(--accent);border-radius:50%;width:12px;height:12px;position:absolute;top:.55rem;left:-7px}.timeline .when{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-size:.82rem;font-weight:700}.timeline h3{margin:.3rem 0 .2rem;font-size:1.25rem}.timeline .where{color:var(--ink);font-weight:700}.timeline p{margin:.25rem 0 0;font-size:1rem}.cta-band{border-top:1px solid var(--line);padding:clamp(2.5rem,6vw,4rem) 0 clamp(3rem,7vw,5rem)}.cta-band h2{letter-spacing:-.025em;margin:0 0 .75rem;font-size:clamp(1.75rem,4.5vw,2.75rem);font-weight:800;line-height:1.1}.cta-band p{color:var(--ink-soft);max-width:34rem;margin:0}.cta-band .cta-row{flex-wrap:wrap;gap:.75rem;margin-top:1.75rem;display:flex}.cta-band .social-row{flex-wrap:wrap;gap:.25rem 1.5rem;margin-top:1.5rem;display:flex}.cta-band .social-row a{color:var(--muted);font-size:.95rem;font-weight:600;text-decoration:none}.cta-band .social-row a:hover{color:var(--accent)}.mermaid{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin:2rem 0;padding:1.5rem 1rem;overflow-x:auto}.prose figure{margin:2rem 0}.prose figure img{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.prose figcaption{color:var(--muted);margin-top:.75rem;font-size:.88rem}.hero-image{width:100%;margin-bottom:1rem}.hero-image img{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin:0 auto;display:block}.prose{width:720px;max-width:calc(100% - 2em);color:var(--ink-soft);margin:auto;padding:1em}.last-updated-on{font-style:italic}@media (width<=720px){body{font-size:17px}main{padding:1em}}.sr-only{clip:rect(1px 1px 1px 1px);clip:rect(1px, 1px, 1px, 1px);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:0;padding:0;overflow:hidden;position:absolute!important}footer[data-astro-cid-jo6i4kqk]{background:var(--paper);border-top:1px solid var(--line);color:var(--muted);text-align:center;padding:3em 1em}.foot-name[data-astro-cid-jo6i4kqk]{color:var(--ink);margin:0;font-weight:700}.foot-role[data-astro-cid-jo6i4kqk]{color:var(--muted);font-weight:400}.foot-links[data-astro-cid-jo6i4kqk]{flex-wrap:wrap;justify-content:center;gap:.25rem 1.5rem;margin-top:1em;display:flex}.foot-links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:var(--muted);font-size:.92rem;font-weight:600;text-decoration:none}.foot-links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--accent)}.foot-copy[data-astro-cid-jo6i4kqk]{margin:1.25em 0 0;font-size:.85rem}.foot-copy[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:var(--muted)}.foot-copy[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--accent)}a[data-astro-cid-evkijfd6]{text-decoration:none;display:inline-block}a[data-astro-cid-evkijfd6].active{font-weight:bolder;text-decoration:underline}header[data-astro-cid-nen7h5rs]{background:color-mix(in srgb, var(--paper) 88%, transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);z-index:10;margin:0;padding:0 1em;position:sticky;top:0}.wordmark[data-astro-cid-nen7h5rs]{letter-spacing:-.02em;margin:0;font-size:1.1rem;font-weight:800}.wordmark[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{color:var(--ink);text-decoration:none}.wordmark[data-astro-cid-nen7h5rs] .dot[data-astro-cid-nen7h5rs]{color:var(--accent)}nav[data-astro-cid-nen7h5rs]{justify-content:space-between;align-items:center;max-width:940px;margin:auto;display:flex}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{color:var(--muted);border-bottom:2px solid #0000;padding:1em .6em;font-size:.95rem;font-weight:600;text-decoration:none}.internal-links[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover{color:var(--ink)}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs].active{color:var(--ink);border-bottom-color:var(--accent)}.social-links[data-astro-cid-nen7h5rs],.social-links[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{align-items:center;display:flex}.social-links[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{color:var(--muted);padding:1em .45em}.social-links[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover{color:var(--accent)}@media (width<=720px){.social-links[data-astro-cid-nen7h5rs]{display:none}}