:root{color-scheme:light;--paper:#faf9f5;--ink:#24231f;--muted:#625f58;--line:#d9d5cc;--accent:#85512c;--code-bg:#efede7;font-synthesis:none;text-rendering:optimizelegibility;font-family:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);min-width:320px;color:var(--ink);margin:0}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}::selection{color:var(--ink);background:#dbc6ad}.skip-link{z-index:10;background:var(--ink);color:var(--paper);padding:12px 16px;position:absolute;top:-60px;left:16px}.skip-link:focus{top:12px}.site-shell{flex-direction:column;width:min(100% - 64px,1120px);min-height:100dvh;margin-inline:auto;display:flex}.site-header{justify-content:space-between;align-items:center;gap:24px;min-height:92px;display:flex}.brand{letter-spacing:-.065em;white-space:nowrap;font:700 27px/1 Georgia,Times New Roman,serif}.brand span{color:var(--accent);padding-inline:3px;font-weight:400}.site-nav{letter-spacing:.025em;align-items:center;gap:35px;font-size:13px;font-weight:600;display:flex}.site-nav a{align-items:center;min-height:44px;display:inline-flex}.site-nav .github-link{flex:none;justify-content:center;width:44px}.github-link svg{width:20px;height:20px;display:block}.site-nav a:hover,.text-link:hover,.back-link:hover{text-underline-offset:5px;text-decoration:underline}main{flex:1}.home-hero{text-align:center;max-width:780px;margin-inline:auto;padding:104px 0 111px}.eyebrow{color:var(--accent);letter-spacing:.2em;text-transform:uppercase;margin:0;font-size:12px;font-weight:700}h1,h2,h3,p{overflow-wrap:anywhere}.home-hero h1,.simple-page h1,.article-header h1{letter-spacing:-.065em;font-family:Georgia,Times New Roman,serif;font-weight:400}.home-hero h1{margin:19px 0 24px;font-size:clamp(3.3rem,7vw,5.9rem);line-height:1.035}.hero-summary{max-width:470px;color:var(--muted);margin:0 auto;font-size:1.05rem;line-height:1.68}.post-section{width:min(100%,790px);margin-inline:auto;padding-bottom:122px}.section-heading{color:var(--muted);letter-spacing:.11em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:24px;padding:0 0 13px;font-size:12px;font-weight:700;display:flex}.section-heading h2{font:inherit;margin:0}.post-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.post-row{border-bottom:1px solid var(--line);grid-template-columns:114px minmax(0,1fr) 96px;align-items:start;gap:23px;padding:27px 0 29px;display:grid}.post-row time,.post-kind{color:var(--muted);white-space:nowrap;padding-top:7px;font-size:12px;line-height:1.5}.post-kind{text-align:right}.post-main h3{letter-spacing:-.035em;margin:0 0 8px;font:400 clamp(1.45rem,2.4vw,1.9rem)/1.22 Georgia,Times New Roman,serif}.post-main h3 a{text-underline-offset:4px;text-decoration-thickness:1px}.post-main h3 a:hover{text-decoration-line:underline}.post-main p{color:var(--muted);margin:0;font-size:14px;line-height:1.55}.empty-state{border-top:1px solid var(--line);color:var(--muted);padding-top:26px}.site-footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:24px;padding:25px 0 33px;font-size:12px;line-height:1.5;display:flex}.simple-page{width:min(100%,690px);margin:0 auto;padding:112px 0 135px}.simple-page h1{margin:20px 0 38px;font-size:clamp(3.2rem,6.5vw,5.5rem);line-height:1.05}.simple-page>p:not(.eyebrow){max-width:620px;color:var(--muted);font-size:1.18rem;line-height:1.7}.simple-page p a{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.text-link,.back-link{min-height:44px;color:var(--accent);letter-spacing:.04em;align-items:center;font-size:13px;font-weight:700;display:inline-flex}.simple-page .text-link{margin-top:35px}.article-page{width:min(100%,760px);margin:0 auto;padding:54px 0 115px}.back-link{margin-bottom:68px}.article-header{border-bottom:1px solid var(--line);padding-bottom:35px}.article-header h1{margin:18px 0 25px;font-size:clamp(3.3rem,7vw,5.6rem);line-height:1.065}.article-deck{max-width:650px;color:var(--muted);margin:0 0 32px;font-size:1.25rem;line-height:1.6}.article-meta{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;flex-wrap:wrap;gap:20px;font-size:12px;font-weight:700;display:flex}.article-body{max-width:690px;margin:52px auto 0;font:1.125rem/1.78 Georgia,Times New Roman,serif}.article-body>:first-child{margin-top:0}.article-body>p:first-child{font-size:1.25rem;line-height:1.65}.article-body h2,.article-body h3{letter-spacing:-.035em;margin:2.2em 0 .6em;line-height:1.23}.article-body h2{border-top:1px solid var(--line);padding-top:1.1em;font-size:1.8rem}.article-body h3{font-size:1.4rem}.article-body p,.article-body ul,.article-body ol,.article-body blockquote{margin:0 0 1.35em}.article-body a{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.article-body ul,.article-body ol{padding-left:1.5em}.article-body li{margin:.3em 0;padding-left:.15em}.article-body blockquote{border-left:2px solid var(--accent);color:var(--muted);padding-left:1.2em;font-style:italic}.article-body :not(pre)>code{background:var(--code-bg);overflow-wrap:anywhere;border-radius:3px;padding:.12em .3em;font:.82em/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.article-body pre{color:#f3f1e8;background:#242824;border-radius:4px;max-width:100%;padding:22px;font:.83rem/1.65 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-x:auto}.article-body pre code{font:inherit}.article-body img{max-width:100%;height:auto;margin:2em auto;display:block}.article-body .article-figure{margin:2.3em 0}.article-body .article-figure a{display:block}.article-body .article-figure img{border:1px solid var(--line);border-radius:4px;width:100%;margin:0}.article-body .article-figure figcaption{color:var(--muted);margin-top:.65em;font:.8rem/1.5 ui-sans-serif,system-ui,sans-serif}.article-body .article-figure figcaption a{display:inline}.article-body hr{border:0;border-top:1px solid var(--line);margin:2.5em 0}.article-footer{border-top:1px solid var(--line);margin-top:70px;padding-top:23px}.arch-page{padding:75px 0 110px}.arch-intro{text-align:center;max-width:760px;margin:0 auto 52px}.arch-intro h1{letter-spacing:-.065em;margin:16px 0 22px;font:400 clamp(3.1rem,6vw,5rem)/1.08 Georgia,Times New Roman,serif}.arch-intro>p:last-child{max-width:600px;color:var(--muted);margin:0 auto;font-size:1.06rem;line-height:1.65}.arch-intro code{font-size:.88em}.arch-toolbar{color:var(--muted);letter-spacing:.07em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:16px;padding:0 0 14px;font-size:12px;font-weight:700;display:flex}.arch-toolbar a{min-height:44px;color:var(--accent);text-underline-offset:4px;align-items:center;text-decoration:underline;display:inline-flex}.arch-frame{border:1px solid var(--line);background:#fff;width:100%;height:820px;display:block}.arch-note{max-width:640px;color:var(--muted);margin:20px 0 0;font-size:13px;line-height:1.6}@media (width<=700px){.site-shell{width:min(100% - 40px,1120px)}.site-header{min-height:77px}.brand{font-size:23px}.site-nav{gap:16px;font-size:12px}.home-hero{padding:91px 0 95px}.post-section{padding-bottom:90px}.post-row{grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:24px 0}.post-row time{grid-column:1/-1;padding:0}.post-main h3{font-size:1.55rem}.post-main p{font-size:14px}.post-kind{padding-top:5px}.article-page{padding-top:25px}.back-link{margin-bottom:62px}.article-body{font-size:1.08rem;line-height:1.73}.simple-page{padding:85px 0 110px}.arch-page{padding:52px 0 90px}.arch-intro{margin-bottom:36px}.arch-frame{height:680px}}@media (width<=430px){.site-nav{gap:12px}.site-nav a{font-size:11px}.brand{font-size:21px}.home-hero h1{font-size:clamp(2.75rem,12vw,3.55rem)}.desktop-break{display:none}.hero-summary{font-size:1rem}.site-footer{flex-direction:column;gap:3px}.site-header{flex-wrap:wrap;justify-content:flex-start;gap:0;padding:17px 0}.site-nav{justify-content:space-between;width:100%}.arch-toolbar{flex-direction:column;align-items:flex-start;gap:0}}@media (width<=350px){.site-nav{gap:7px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
