img[data-ink]:not(.inked):not(.ink-late){visibility:hidden}img[data-ink].ink-late:not(.inked){mix-blend-mode:multiply}html.dark img[data-ink].ink-late:not(.inked){mix-blend-mode:screen}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #f4eee3;--color-surface: #f8f3ea;--color-raised: #fcf9f3;--color-chrome: #f0e9de;--color-text: #151412;--color-text-secondary: #46433e;--color-text-muted: #85817a;--color-accent: #e5461c;--color-accent-hover: #c13811;--color-accent-soft: rgba(229, 70, 28, .1);--color-border: #ddd3c1;--color-border-light: #e8dfcf;--color-tag-bg: #e9e0cf;--color-tag-text: #5f574a;--color-code-bg: #ebe2d2;--grid-dot: rgba(60, 45, 25, .12);--grain: none;--shadow-soft: 0 1px 1px rgba(20, 18, 14, .04), 0 10px 28px -14px rgba(20, 18, 14, .18);--shadow-lift: 0 1px 2px rgba(20, 18, 14, .06), 0 24px 48px -20px rgba(20, 18, 14, .3);--radius: 4px;--ease-out: cubic-bezier(.22, .8, .24, 1);--paper-grain: none;--font-serif: "Newsreader", Georgia, "Times New Roman", serif;--font-display: "Newsreader", Georgia, serif;--font-mono: "IBM Plex Mono", "JetBrains Mono", ui-monospace, monospace;--font-sans: var(--font-mono);--fs-body: 1.16rem;--max-width: 1080px;--measure: 640px;--column: calc(820px - 4rem) ;--gutter: clamp(1rem, 4vw, 2.5rem);--space-xs: .3rem;--space-sm: .6rem;--space-md: 1.2rem;--space-lg: 2rem;--space-xl: 2.5rem;--space-2xl: 3.5rem;--space-3xl: 4.5rem;--fs-micro: .6rem;--fs-label: .68rem;--fs-small: .82rem;--fs-ui: 1rem;--fs-lead: 1.3rem;--fs-h3: clamp(1.3rem, 2.2vw, 1.7rem);--fs-h2: clamp(1.5rem, 3vw, 2.1rem);--fs-h1: clamp(2.2rem, 5vw, 3.6rem);--fs-display: clamp(3.4rem, 4.9vw, 6.4rem);--fs-display-xl: clamp(3.4rem, 9vw, 8.4rem);--fs-statement: clamp(1.9rem, 1.6vw + 1.3rem, 3.2rem);--fw-display: 200;--fw-light: 300;--fw-regular: 400;--fw-medium: 500;--fw-bold: 600;--lh-display: .92;--lh-none: 1;--lh-tight: 1.1;--lh-snug: 1.3;--lh-ui: 1.5;--lh-body: 1.7;--track-tight: -.03em;--track-snug: -.015em;--track-normal: 0;--track-label: .08em;--track-caps: .14em;--space-0-5: .125rem;--space-1: .25rem;--space-1-5: .375rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-14: 3.5rem;--space-18: 4.5rem;--radius-sm: 2px;--radius-lg: 8px;--radius-xl: 14px;--radius-pill: 999px;--z-header: 100;--z-float: 150;--z-veil: 155;--z-sheet: 156;--z-sheet-chip: 157;--z-overlay: 200;--z-intro: 300;--dur-fast: .15s;--dur-base: .25s;--dur-slow: .4s;--shadow-float: 0 6px 24px rgba(20, 18, 14, .08);--shadow-sheet: 0 18px 50px rgba(20, 18, 14, .14);--ring-accent: 0 0 0 1px var(--color-accent)}html.dark{--color-bg: #000000;--color-surface: #0a0a0a;--color-raised: #101010;--color-chrome: #000000;--color-text: #ecebe6;--color-text-secondary: #bdbab2;--color-text-muted: #7f7c75;--color-accent: #ff6838;--color-accent-hover: #ff8a63;--color-accent-soft: rgba(255, 104, 56, .13);--color-border: #242424;--color-border-light: #161616;--color-tag-bg: #121212;--color-tag-text: #a29e95;--color-code-bg: #0b0b0b;--grid-dot: rgba(236, 235, 230, .09);--grain: none;--shadow-soft: 0 1px 1px rgba(0, 0, 0, .5), 0 10px 28px -14px rgba(0, 0, 0, .9);--shadow-lift: 0 1px 2px rgba(0, 0, 0, .6), 0 24px 48px -20px rgba(0, 0, 0, 1), 0 0 0 1px rgba(255, 255, 255, .04)}html{scroll-behavior:smooth;scroll-padding-top:5rem;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;background:var(--color-chrome)}::selection{background:var(--color-accent);color:#fff}@media(prefers-reduced-motion:no-preference){html.theme-swap::view-transition-old(root),html.theme-swap::view-transition-new(root){animation:none;mix-blend-mode:normal}html.theme-swap::view-transition-old(root){z-index:1}html.theme-swap::view-transition-new(root){z-index:2}}html.theme-swap *,html.theme-swap *:before,html.theme-swap *:after{transition:none!important}body{font-family:var(--font-serif);font-optical-sizing:auto;color:var(--color-text);background-color:var(--color-bg);background-image:var(--grain);background-size:200px 200px;line-height:var(--lh-body);font-size:var(--fs-body);font-weight:var(--fw-regular);min-height:100vh;display:flex;flex-direction:column}.viewfinder{position:fixed;inset:10px;z-index:var(--z-float);pointer-events:none}.vf-corner{position:absolute;width:16px;height:16px;border:0 solid var(--color-text);opacity:.35}.vf-corner.tl{top:0;left:0;border-top-width:1px;border-left-width:1px}.vf-corner.tr{top:0;right:0;border-top-width:1px;border-right-width:1px}.vf-corner.bl{bottom:0;left:0;border-bottom-width:1px;border-left-width:1px}.vf-corner.br{bottom:0;right:0;border-bottom-width:1px;border-right-width:1px}.vf-readout{position:absolute;left:24px;bottom:2px;font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--track-label);font-variant-numeric:tabular-nums;color:var(--color-text-muted);opacity:.8}.vf-readout b{font-weight:var(--fw-regular);color:var(--color-accent)}.vf-depth{left:auto;right:24px}@media(max-width:760px),(hover:none){.vf-readout{display:none}}@media(max-width:760px){.viewfinder{display:none}}.read-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:var(--z-overlay);pointer-events:none;transform-origin:0 50%;transform:scaleX(var(--read, 0));background:var(--color-accent)}.margin-toc{position:fixed;top:calc(var(--head-h, 4.5rem) + 84px);bottom:64px;left:0;width:calc((100vw - 760px)/2);padding:0 var(--space-10) 0 var(--space-8);overflow-y:auto;flex-direction:column;justify-content:safe center;display:none;z-index:0;scrollbar-width:none}.margin-toc::-webkit-scrollbar{display:none}@media(min-width:1240px){.margin-toc.ready{display:flex}}.toc-title{display:block;font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-sm);padding-left:var(--space-4)}.margin-toc ol{list-style:none;margin:0;padding:0;border-left:1px solid var(--color-border)}.margin-toc li{position:relative;margin:0}.margin-toc li:before{content:"";position:absolute;left:-1px;top:0;bottom:0;width:1px;background:var(--color-accent);opacity:0;transition:opacity var(--dur-base) ease}.margin-toc li.active:before{opacity:1}.margin-toc a{display:flex;gap:var(--space-2);padding:var(--space-1-5) 0 var(--space-1-5) var(--space-4);text-decoration:none;color:var(--color-text-muted);transition:color var(--dur-fast) ease}.margin-toc a:hover{color:var(--color-text);text-decoration:none}.margin-toc li.active a{color:var(--color-text)}.toc-num{flex-shrink:0;font-family:var(--font-mono);font-size:var(--fs-micro);line-height:var(--lh-body);color:var(--color-accent)}.toc-text{font-family:var(--font-serif);font-size:var(--fs-ui);line-height:var(--lh-snug);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}h1,h2,h3,h4{font-family:var(--font-serif);font-weight:var(--fw-regular);line-height:var(--lh-snug);letter-spacing:var(--track-snug);color:var(--color-text);text-wrap:balance}h1{font-family:var(--font-display);font-weight:var(--fw-light);font-size:var(--fs-h1);line-height:var(--lh-tight);letter-spacing:var(--track-tight);margin-bottom:var(--space-md)}h2{font-size:var(--fs-h3);margin-top:var(--space-2xl);margin-bottom:var(--space-md);position:relative}h3{font-size:var(--fs-lead);margin-top:var(--space-xl);margin-bottom:var(--space-sm)}p{margin-bottom:var(--space-md);text-wrap:pretty}a{color:var(--color-accent);text-decoration:none;transition:color var(--dur-fast) ease}a:hover{color:var(--color-accent-hover);text-decoration:underline}code,pre{font-family:var(--font-mono);font-size:.86em}code{background:var(--color-code-bg);padding:.12em .38em;border-radius:var(--radius)}pre{background:var(--color-code-bg);padding:var(--space-lg);border-radius:var(--radius);line-height:var(--lh-ui);overflow-x:auto;margin:var(--space-lg) 0;border:1px solid var(--color-border)}pre code{background:none;padding:0}blockquote{margin:var(--space-lg) 0;padding:0;font-style:italic}blockquote>:last-child{margin-bottom:0!important}hr{border:none;height:1px;background:var(--color-border);margin:var(--space-2xl) 0}ul,ol{padding-left:var(--space-lg);margin-bottom:var(--space-md)}li{margin-bottom:var(--space-xs)}.label{font-family:var(--font-mono);font-size:var(--fs-label);font-weight:var(--fw-regular);letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--color-text-muted)}.label .sig{color:var(--color-accent)}body>header{position:sticky;top:0;z-index:var(--z-header);transition:background-color var(--dur-base) ease,box-shadow var(--dur-base) ease}body>header.scrolled{background-color:color-mix(in srgb,var(--color-bg) 62%,transparent);-webkit-backdrop-filter:saturate(180%) blur(22px);backdrop-filter:saturate(180%) blur(22px);box-shadow:0 .5px color-mix(in srgb,var(--color-text) 14%,transparent)}.site-head{max-width:var(--max-width);margin:0 auto;padding:var(--space-5) var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.brand{display:inline-flex;align-items:center;gap:var(--space-3);color:var(--color-text);text-decoration:none}.brand:hover{color:var(--color-text);text-decoration:none}.brand-mark{width:24px;height:41px;color:var(--color-accent);overflow:visible}.brand-mark .pot{fill:var(--color-bg)}.brand-mark .ink{stroke-dasharray:120;stroke-dashoffset:0}@media(prefers-reduced-motion:no-preference){.brand-mark .ink{animation:ink-cycle 9s var(--ease-out) .2s infinite}.brand-mark .pot{transform-origin:50% 94%;animation:pot-breathe 9s ease-in-out .2s infinite}}@keyframes ink-cycle{0%{stroke-dashoffset:120;opacity:1}14%{stroke-dashoffset:0}80%{stroke-dashoffset:0;opacity:1}92%{stroke-dashoffset:-120;opacity:.2}92.01%{stroke-dashoffset:120;opacity:1}to{stroke-dashoffset:120}}@keyframes pot-breathe{0%,to{transform:none}3%{transform:scale(1.04,.96)}7%{transform:none}}.brand-name{font-family:"Great Vibes",var(--font-serif);font-style:normal;font-weight:var(--fw-regular);font-synthesis:none;font-size:var(--fs-h2);letter-spacing:var(--track-normal);line-height:var(--lh-none);white-space:nowrap;position:relative;top:-.06em}.brand-name em{font-style:normal;color:var(--color-accent)}.brand-role{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--color-text-muted);padding-left:var(--space-3);border-left:1px solid var(--color-border);line-height:var(--lh-snug)}.nav-links{display:flex;align-items:center;gap:var(--space-0-5)}.nav-link{position:relative;font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--track-label);color:var(--color-text-secondary);text-decoration:none;padding:var(--space-2) var(--space-3);white-space:nowrap;transition:color var(--dur-base) ease}.nav-link:hover{color:var(--color-text);text-decoration:none}.nav-link.active{color:var(--color-text)}.nav-link.active:before{content:"";position:absolute;left:50%;bottom:.1rem;width:5px;height:5px;margin-left:calc(-1 * var(--space-0-5));border-radius:50%;background:var(--color-accent)}.nav-separator{width:1px;height:.9rem;background:var(--color-border);margin:0 var(--space-1-5)}.theme-toggle{background:none;border:1px solid var(--color-border);border-radius:50%;cursor:pointer;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-secondary);transition:color var(--dur-base) ease,border-color var(--dur-base) ease;line-height:var(--lh-none)}.theme-toggle:hover{color:var(--color-accent);border-color:var(--color-accent)}.theme-toggle .icon-sun,.theme-toggle .icon-moon{width:14px;height:14px}.theme-toggle .icon-sun{display:none}html.dark .theme-toggle .icon-sun{display:block}html.dark .theme-toggle .icon-moon{display:none}@media(max-width:760px){.brand-role{display:none}}@media(max-width:600px){.site-head{flex-wrap:wrap;justify-content:center;row-gap:var(--space-1);padding:var(--space-2) var(--gutter) var(--space-1)}.brand{width:100%;justify-content:center;gap:var(--space-1-5)}.brand-name{font-size:var(--fs-lead)}.brand-mark{width:14px;height:25px}.site-head>nav{width:100%}.nav-links{justify-content:center;gap:var(--space-1)}.nav-link{display:inline-flex;align-items:center;min-height:44px;padding:0 var(--space-2);font-size:var(--fs-label);letter-spacing:var(--track-label);text-transform:uppercase}.nav-link.active:before{bottom:.45rem;width:4px;height:4px;margin-left:-2px}.nav-separator{display:block;height:.75rem;margin:0 var(--space-1)}.theme-toggle{position:relative;width:28px;height:28px}.theme-toggle:after{content:"";position:absolute;inset:-8px}.theme-toggle .icon-sun,.theme-toggle .icon-moon{width:13px;height:13px}}main{--main-pt: var(--space-lg);max-width:var(--max-width);margin:0 auto;padding:var(--main-pt) var(--gutter) var(--space-3xl);width:100%;flex:1}main>:not(.wide){max-width:760px;margin-left:auto;margin-right:auto}.folio-rule{display:flex;align-items:center;gap:var(--space-md)}.folio-mark{font-family:var(--font-mono)!important;font-variant:normal!important;font-style:normal!important;font-size:var(--fs-label)!important;letter-spacing:var(--track-caps)!important;text-transform:uppercase!important;color:var(--color-text-muted);text-decoration:none;white-space:nowrap}.folio-mark:first-child:before{content:"";display:inline-block;width:6px;height:6px;margin-right:var(--space-2);vertical-align:.05em;border-radius:50%;background:var(--color-accent)}.folio-line{flex:1;height:1px;background:var(--color-border)}.page-header{margin-bottom:var(--space-lg)}.page-header h1{margin-bottom:var(--space-sm)}.page-subtitle{font-family:var(--font-serif);font-style:italic;font-size:var(--fs-body);color:var(--color-text-secondary);line-height:var(--lh-ui);max-width:600px}.projects-list,.post-list{display:flex;flex-direction:column;gap:var(--space-md)}.project-card,.post-card{display:flex;gap:var(--space-lg);padding:var(--space-lg);background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius);text-decoration:none;color:inherit;transition:border-color var(--dur-base) ease,box-shadow var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out)}.post-card{display:block}.project-card:hover,.post-card:hover{border-color:var(--color-border);box-shadow:var(--shadow-lift);transform:translateY(-2px);text-decoration:none}.project-image{flex-shrink:0;width:160px;height:100px;border-radius:var(--radius-sm);overflow:hidden;background:var(--color-code-bg)}.project-image img{width:100%;height:100%;object-fit:cover}.project-info h3,.post-card h3{font-size:var(--fs-body);margin:0 0 var(--space-xs) 0;color:var(--color-text)}.project-info p,.post-card p{font-size:var(--fs-ui);color:var(--color-text-secondary);margin:0;line-height:var(--lh-ui)}.post-card-meta{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-xs);display:flex;align-items:center;gap:var(--space-sm)}@media(max-width:600px){.project-card{flex-direction:column}.project-image{width:100%;height:140px}}.post-tags{display:flex;gap:var(--space-xs);margin-top:var(--space-sm);flex-wrap:wrap}.tag{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--track-label);background:none;color:var(--color-tag-text);padding:.15em .55em;border:1px solid var(--color-border);border-radius:var(--radius-sm)}main>.blog-post{position:relative;max-width:var(--measure);margin-inline:auto}.blog-post-header{margin-bottom:var(--space-lg)}.blog-post-header h1{font-size:var(--fs-h1);line-height:var(--lh-none);letter-spacing:var(--track-tight);margin:0 0 var(--space-lg)}.blog-post-meta{display:flex;align-items:center;gap:var(--space-3);font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-lg)}.blog-post-meta:before{content:"";width:2rem;height:1px;background:var(--color-accent)}.blog-post-description{font-family:var(--font-serif);font-style:italic;font-weight:var(--fw-light);font-size:var(--fs-lead);color:var(--color-text-secondary);line-height:var(--lh-ui);margin-bottom:var(--space-md)}.blog-post-header .post-tags{gap:var(--space-1-5);margin-top:var(--space-md)}.blog-post-content{line-height:var(--lh-body)}.blog-post-content h2{position:relative;font-family:var(--font-display);font-weight:var(--fw-regular);font-size:var(--fs-h2);line-height:var(--lh-tight);letter-spacing:var(--track-snug);margin-top:var(--space-2xl);margin-bottom:var(--space-sm)}.blog-post-content h3{font-size:var(--fs-lead);font-weight:var(--fw-medium);margin-top:var(--space-xl);margin-bottom:var(--space-sm)}.blog-post .blog-post-content pre,.blog-post .blog-post-content table,.blog-post .blog-post-content .mini-diagram{max-width:100%}@media(min-width:1101px){.blog-post .blog-post-content pre,.blog-post .blog-post-content table,.blog-post .blog-post-content .mini-diagram{width:min(760px,92vw);max-width:min(760px,92vw);margin-left:calc((100% - min(760px,92vw))/2);margin-right:calc((100% - min(760px,92vw))/2)}}.blog-post-content p{font-size:var(--fs-body);margin-bottom:var(--space-5)}.blog-post-content ul,.blog-post-content ol{margin-bottom:var(--space-md)}.blog-post-content li{margin-bottom:var(--space-xs);line-height:var(--lh-body);font-size:var(--fs-body)}.blog-post-content li::marker{color:var(--color-accent);font-family:var(--font-mono);font-size:.85em}.blog-post-content a{color:inherit;text-decoration:underline;text-decoration-color:var(--color-accent);text-decoration-thickness:1px;text-underline-offset:.22em;transition:color var(--dur-fast) ease}.blog-post-content a:hover{color:var(--color-accent)}.blog-post-content blockquote,.blog-post-content aside{position:relative;margin:var(--space-xl) 0;padding:var(--space-6) 0}.blog-post-content blockquote:before,.blog-post-content blockquote:after,.blog-post-content aside:before,.blog-post-content aside:after{content:"";position:absolute;width:5px;height:5px;border-radius:50%;background:var(--color-accent)}.blog-post-content blockquote:before,.blog-post-content aside:before{top:0;left:0;box-shadow:11px 0 color-mix(in srgb,var(--color-accent) 50%,transparent),22px 0 color-mix(in srgb,var(--color-accent) 20%,transparent)}.blog-post-content blockquote:after,.blog-post-content aside:after{right:0;bottom:0;box-shadow:-11px 0 color-mix(in srgb,var(--color-accent) 50%,transparent),-22px 0 color-mix(in srgb,var(--color-accent) 20%,transparent)}.blog-post-content blockquote p,.blog-post-content aside p:not(.aside-label){margin:0 0 var(--space-sm);font-family:var(--font-display);font-style:italic;font-weight:var(--fw-regular);font-size:calc(var(--fs-body) * 1.2);line-height:var(--lh-ui);letter-spacing:var(--track-snug);color:var(--color-text)}@media(max-width:760px){.blog-post-content blockquote p,.blog-post-content aside p:not(.aside-label){font-size:calc(var(--fs-body) * 1.06);line-height:var(--lh-ui)}}.blog-post-content aside>:last-child{margin-bottom:0}.blog-post-content aside:has(>.aside-label){padding-top:0}.blog-post-content aside>.aside-label{display:block;margin:calc(-1 * var(--space-0-5)) 0 var(--space-4) var(--space-10);font-family:var(--font-mono);font-style:normal;font-size:var(--fs-micro);line-height:var(--lh-none);letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--color-text-muted)}.blog-post-content p.attribution{margin:calc(var(--space-xl) * -.5) 0 var(--space-xl);padding-left:0;font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--color-text-muted)}.blog-post-content p.attribution:before{content:"●  ";color:var(--color-accent)}.blog-post-content p.caption{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--color-text-muted);text-align:center;margin:var(--space-lg) 0}.blog-post-content .recs{list-style:none;padding-left:0}.blog-post-content .recs li{font-style:italic;padding-left:var(--space-6);position:relative}.blog-post-content .recs li:before{content:"";position:absolute;left:0;top:.85em;width:.8rem;height:1px;background:var(--color-accent)}.blog-post-content .katex{font-size:1em}.blog-post-content .katex-display{margin:var(--space-lg) 0;overflow-x:auto;padding:var(--space-sm) 0}.blog-post-content .katex-display .katex{font-size:1.1em}.blog-post-content strong{font-weight:var(--fw-bold)}.blog-post-content img{max-width:100%;max-height:560px;width:auto;height:auto;object-fit:contain;border:none;border-radius:var(--radius-sm);background:var(--color-surface);box-shadow:var(--shadow-lift);margin:var(--space-2xl) auto;display:block}.blog-post-footer{margin-top:var(--space-2xl);padding-top:var(--space-md);border-top:1px solid var(--color-border)}.back-link{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--track-caps);text-transform:uppercase;text-decoration:none}.back-link:hover{text-decoration:none;color:var(--color-accent-hover)}@media(max-width:600px){.blog-post-description{font-size:var(--fs-body)}}body>footer{margin-top:auto;border-top:1px solid var(--color-border)}.foot{max-width:var(--max-width);margin:0 auto;padding:var(--space-3xl) var(--gutter) var(--space-xl)}.foot-line{font-family:var(--font-display);font-weight:var(--fw-light);font-size:var(--fs-h1);line-height:var(--lh-tight);letter-spacing:var(--track-tight);color:var(--color-text);margin:0 0 var(--space-2xl);max-width:16ch}.foot-line em{color:var(--color-accent)}.foot-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--color-border-light)}.foot-col p{margin:0 0 var(--space-3)}.foot-col ul{list-style:none;padding:0;margin:0}.foot-col li{margin:0 0 var(--space-1)}.foot-col a{font-family:var(--font-serif);font-size:var(--fs-ui);color:var(--color-text-secondary);text-decoration:none}.foot-col a:hover{color:var(--color-accent);text-decoration:none}.foot-col .colophon{font-size:var(--fs-ui);line-height:var(--lh-ui);color:var(--color-text-muted)}.foot-meta{display:flex;justify-content:space-between;gap:var(--space-md);margin-top:var(--space-2xl)}@media(max-width:600px){.foot-cols{grid-template-columns:1fr 1fr}.foot-col:last-child{grid-column:1 / -1}.foot-meta{flex-direction:column;gap:var(--space-1)}}@media(max-width:600px){body{font-size:var(--fs-ui)}main{--main-pt: var(--space-md);padding:var(--main-pt) var(--gutter) var(--space-2xl)}}.experiment-intro{margin-bottom:var(--space-xl);display:flex;flex-direction:column;gap:var(--space-lg)}.experiment-intro h3{font-family:var(--font-mono);font-size:var(--fs-label);text-transform:uppercase;font-weight:var(--fw-bold);letter-spacing:var(--track-caps);color:var(--color-accent);margin:0 0 var(--space-2)}.experiment-intro p{font-size:var(--fs-body);line-height:var(--lh-body);color:var(--color-text-secondary);margin-bottom:var(--space-3);max-width:66ch}.experiment-intro p:last-child{margin-bottom:0}.experiment-intro a{color:var(--color-accent);text-decoration:none;border-bottom:1px solid var(--color-accent-soft)}.experiment-intro a:hover{border-bottom-color:var(--color-accent)}.intro-origin,.intro-setup{padding:0 0 0 var(--space-lg);border-left:1px solid var(--color-accent);background:none;border-radius:0}.intro-rules{padding:var(--space-md) 0 0;border:none;border-top:1px solid var(--color-border);border-radius:0}.rules-list{list-style:none;padding-left:0;margin:0}.rules-list li{position:relative;font-family:var(--font-serif);font-size:var(--fs-ui);line-height:var(--lh-body);color:var(--color-text-secondary);margin-bottom:var(--space-1);padding-left:var(--space-4)}.rules-list li:before{content:"·";position:absolute;left:.2rem;color:var(--color-accent)}.rules-list li:last-child{margin-bottom:0}.setup-steps{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-2)}.setup-step{display:flex;align-items:baseline;gap:var(--space-3)}.setup-number{font-family:var(--font-mono);font-size:var(--fs-label);color:var(--color-accent);background:none;min-width:1.2rem;height:auto;border-radius:0;display:block;flex-shrink:0;text-align:right}.setup-content{display:flex;flex-direction:column;gap:var(--space-0-5)}.setup-content strong{font-family:var(--font-serif);font-size:var(--fs-ui);font-weight:var(--fw-bold);color:var(--color-text)}.setup-content span{font-family:var(--font-serif);font-size:var(--fs-ui);color:var(--color-text-secondary);line-height:var(--lh-ui)}.day-list{display:flex;flex-direction:column}.day-card{display:grid;grid-template-columns:3.2rem 1fr;gap:var(--space-md);align-items:baseline;border:none;border-top:1px solid var(--color-border-light);border-radius:0;padding:var(--space-md) 0;background:none;text-decoration:none;color:inherit;transition:none;cursor:pointer}.day-card:first-child{border-top:none}.day-card:hover{border-color:var(--color-border-light);box-shadow:none;text-decoration:none}.day-card-header{grid-column:1;grid-row:1 / span 3;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1);margin-bottom:0}.day-card-number{font-family:var(--font-mono);font-size:var(--fs-ui);font-weight:var(--fw-regular);color:var(--color-text-muted);background:none;padding:0;border-radius:0;opacity:.7;transition:color var(--dur-fast) ease,opacity var(--dur-fast) ease}.day-card:hover .day-card-number{color:var(--color-accent);opacity:1}.day-card-date{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--track-label);color:var(--color-text-muted)}.day-card-title{grid-column:2;font-family:var(--font-serif);font-size:var(--fs-lead);font-weight:var(--fw-bold);color:var(--color-text);margin-bottom:var(--space-1);line-height:var(--lh-snug);transition:color var(--dur-fast) ease}.day-card:hover .day-card-title{color:var(--color-accent)}.day-card-summary{grid-column:2;font-family:var(--font-serif);font-style:italic;font-size:var(--fs-ui);color:var(--color-text-muted);line-height:var(--lh-ui);margin-bottom:var(--space-1-5);max-width:62ch}.day-card-link{grid-column:2;font-family:var(--font-mono);font-size:var(--fs-label);text-transform:uppercase;font-weight:var(--fw-regular);letter-spacing:var(--track-caps);color:var(--color-accent);text-decoration:none}.day-card-link:hover{color:var(--color-accent-hover);text-decoration:none}.experiment-conclusion{margin-top:var(--space-2xl);padding:var(--space-md) 0 0;border-top:1px dashed var(--color-border);background:none;border-radius:0}.experiment-conclusion h2{font-family:var(--font-serif);font-size:var(--fs-lead);font-weight:var(--fw-bold);color:var(--color-text);margin:0 0 var(--space-2);line-height:var(--lh-snug)}.experiment-conclusion p{font-size:var(--fs-body);line-height:var(--lh-body);color:var(--color-text-secondary);margin-bottom:var(--space-3);max-width:66ch}.experiment-conclusion p:last-child{margin-bottom:0}@media(max-width:600px){.setup-steps{gap:var(--space-3)}.day-card{grid-template-columns:1fr;gap:0}.day-card-header{grid-column:1;grid-row:auto;flex-direction:row;align-items:baseline;gap:var(--space-2);margin-bottom:var(--space-1-5)}.day-card-title,.day-card-summary,.day-card-link{grid-column:1}.day-card-title{font-size:var(--fs-body)}}.te-page{max-width:var(--max-width)}.experiment-page .back-link{display:inline-block;margin-bottom:var(--space-xl)}.experiment-page-header{margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:1px solid var(--color-border-light)}.experiment-title-row{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-xs)}.experiment-title-row h1{margin-bottom:0}.experiment-status{font-family:var(--font-mono);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:var(--track-caps);color:var(--color-text-muted);white-space:nowrap;padding-bottom:var(--space-0-5)}.experiment-status.active{color:var(--color-accent)}.experiment-page-meta{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--track-label);color:var(--color-text-muted);margin-bottom:var(--space-xs)}.experiment-page-description{font-family:var(--font-serif);font-style:italic;font-size:var(--fs-body);max-width:62ch;color:var(--color-text-secondary);line-height:var(--lh-body);margin-bottom:0}.experiment-progress{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-2xl);padding:0 0 var(--space-md);background:none;border:none;border-bottom:1px solid var(--color-border-light);border-radius:0}.progress-track{display:flex;align-items:flex-end;gap:var(--space-1-5)}.progress-dot{width:2px;height:15px;border-radius:0;border:none;background:var(--color-border);transition:background var(--dur-base) ease}.progress-dot.filled{background:var(--color-accent);border-color:transparent}.progress-label{font-family:var(--font-mono);font-size:var(--fs-label);color:var(--color-text-muted);margin-left:auto}.day-entries{display:flex;flex-direction:column;gap:var(--space-2xl)}.day-entry{padding-left:0}.day-heading{font-family:var(--font-serif);font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--color-text);margin:0 0 var(--space-md) 0}.day-bullets{padding-left:var(--space-lg);margin-bottom:0}.day-bullets li{font-size:var(--fs-body);line-height:var(--lh-body);color:var(--color-text-secondary);margin-bottom:var(--space-sm)}.day-bullets li:last-child{margin-bottom:0}.day-section{margin-top:var(--space-xl)}.section-heading{margin:0 0 var(--space-xs) 0}.section-subtitle{margin-top:0}.results-table{width:100%;border-collapse:collapse;margin-bottom:var(--space-md);font-family:var(--font-mono);font-size:var(--fs-small)}.results-table th{text-align:left;padding:var(--space-sm) var(--space-md);color:var(--color-accent);border-bottom:1px solid var(--color-border);font-weight:var(--fw-bold)}.results-table td{padding:var(--space-sm) var(--space-md);color:var(--color-text-secondary);border-bottom:1px solid var(--color-border-light)}.results-table td:last-child{color:var(--color-accent);font-weight:var(--fw-bold)}.experiment-empty{text-align:center;padding:var(--space-2xl) var(--space-lg);color:var(--color-text-muted);font-style:italic}.experiment-empty p{margin:0}@media(max-width:600px){.experiment-title-row{flex-direction:column;align-items:flex-start;gap:var(--space-xs)}.experiment-footer{flex-direction:column;align-items:flex-start;gap:var(--space-sm)}}html.theme-swap body>header{view-transition-name:none}@media(max-width:600px){.folio-rule .folio-mark:last-child:not(:first-child){display:none}}.mast-line,.rule-line,.folio-line{background:transparent!important}.foot-cols{border-top:none!important}main:has(>.free){max-width:2000px;padding-inline:clamp(1rem,5vw,7rem)}main>.free{max-width:none!important;width:100%}html,body{overflow-x:clip}.margin-toc{transition:opacity var(--dur-slow) ease}.margin-toc.under-cover{opacity:0;pointer-events:none}.blog-post-content{position:relative;z-index:1}@media(min-width:760px){.first-screen{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto 1fr auto auto;min-height:calc(100svh - var(--head-h, 4.5rem) - var(--main-pt, 2rem));padding-top:var(--space-xl);padding-bottom:var(--space-2xl)}.first-screen>.mast{display:contents}.first-screen .page-name{grid-area:1 / 1;align-self:start;padding-top:var(--space-2)}.first-screen .mast>.why{grid-area:1 / 1 / 2 / 3;margin:0;pointer-events:none}.first-screen .mast>.why summary{display:flex;width:max-content;margin-left:auto}.first-screen .mast>.why summary,.first-screen .mast>.why .why-body{pointer-events:auto}.first-screen .mast>.why .why-body{margin-top:var(--space-lg)}body:has(.first-screen .why[open]) .sketch-bg{opacity:.12;transition:opacity var(--dur-base) ease}.first-screen .page-statement{grid-area:3 / 1 / 4 / 3;align-self:end;margin-top:var(--space-2xl)}.first-screen>.console{grid-area:4 / 1 / 5 / 3;margin:var(--space-lg) 0 0}main .first-screen>:last-child{margin-bottom:0}}.row-fig,.entry-fig,.post-cover{isolation:isolate;background-color:var(--color-bg)}html{overflow-x:hidden;overscroll-behavior-x:none}body{overflow-x:clip;touch-action:pan-y pinch-zoom}pre,pre code{white-space:pre-wrap!important;overflow-wrap:anywhere}pre,.katex-display,.mini-diagram,.arch-diagram,[class*=table-wrap]{overflow-x:hidden!important}.toc-chip,.toc-veil,.toc-grip,.toc-count,.toc-close{display:none}@media(max-width:1239px){.toc-chip{position:fixed;left:50%;bottom:calc(var(--space-5) + env(safe-area-inset-bottom));z-index:var(--z-float);display:flex;align-items:baseline;gap:var(--space-2);max-width:min(calc(100vw - 160px),360px);padding:var(--space-2) var(--space-4);overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-bg);color:var(--color-text);box-shadow:var(--shadow-float);transform:translate(-50%);cursor:pointer;transition:opacity var(--dur-base) ease,transform var(--dur-base) ease}.toc-chip-icon{flex:none;width:14px;height:14px;align-self:center;stroke:var(--color-accent);stroke-width:1.4;stroke-linecap:round;fill:none}.toc-chip-text{overflow:hidden;font-family:var(--font-serif);font-size:var(--fs-small);white-space:nowrap;text-overflow:ellipsis}.margin-toc.under-cover+.toc-chip,.margin-toc.toc-open+.toc-chip{opacity:0;pointer-events:none;transform:translate(-50%) translateY(var(--space-3))}.margin-toc.ready{position:fixed;inset:auto 0 0;z-index:var(--z-sheet);display:flex;flex-direction:column;justify-content:flex-start;width:auto;max-height:min(72svh,560px);padding:0 0 env(safe-area-inset-bottom);overflow:hidden;border-top:1px solid var(--color-border);border-radius:var(--radius-xl) var(--radius-xl) 0 0;background:var(--color-bg);box-shadow:var(--shadow-sheet);opacity:1;visibility:hidden;transform:translateY(100%);transition:transform var(--dur-slow) var(--ease-out),visibility 0s linear var(--dur-slow)}.margin-toc.ready.toc-open{visibility:visible;transform:translateY(0);transition:transform var(--dur-slow) var(--ease-out),visibility 0s}.margin-toc.toc-drag{transition:none}.toc-head{position:relative;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-6) var(--space-5) var(--space-3);border-bottom:1px solid var(--color-border-light);touch-action:none}.toc-grip{position:absolute;top:var(--space-2);left:50%;display:block;width:36px;height:4px;border-radius:var(--radius-pill);background:var(--color-border);transform:translate(-50%)}.toc-head .toc-title{margin:0;padding:0}.toc-count{display:block;font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--track-caps);color:var(--color-accent)}.toc-close{display:block;min-height:44px;margin-left:auto;padding:0 var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:none;font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--color-text);cursor:pointer}.margin-toc.ready ol{flex:1;min-height:0;padding:var(--space-2) var(--space-5) var(--space-4);overflow-y:auto;overscroll-behavior:contain;border-left:0}.margin-toc.ready li:before{left:calc(-1 * var(--space-5));width:3px;top:var(--space-2);bottom:var(--space-2)}.margin-toc.ready a{gap:var(--space-3);padding:var(--space-3) 0;font-size:var(--fs-ui);line-height:var(--lh-snug);color:var(--color-text-secondary)}.margin-toc.ready li+li a{border-top:1px solid var(--color-border-light)}.margin-toc.ready li.active a{color:var(--color-text)}.margin-toc.ready li.active .toc-num{color:var(--color-accent)}.toc-veil{position:fixed;inset:0;z-index:var(--z-veil);display:block;background:color-mix(in srgb,var(--color-text) 22%,transparent);opacity:0;pointer-events:none;transition:opacity var(--dur-base) ease}.margin-toc.toc-open~.toc-veil{opacity:1;pointer-events:auto}html.toc-locked,html.toc-locked body{overflow:hidden}}.page-name{margin:0;font-family:var(--font-mono);font-size:var(--fs-label);font-weight:var(--fw-medium);letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--color-accent)}.page-statement{max-width:21em;margin:var(--space-md) 0 0;font-family:var(--font-display);font-size:var(--fs-statement);font-weight:var(--fw-light);line-height:var(--lh-tight);letter-spacing:var(--track-tight);color:var(--color-text)}.page-statement em{font-style:italic;color:var(--color-accent)}.seek-lead{flex:none;font-family:var(--font-display);font-size:var(--fs-statement);font-weight:var(--fw-light);line-height:var(--lh-tight);letter-spacing:var(--track-tight);color:var(--color-text-secondary)}.seek:has(.seek-lead) input{font-size:var(--fs-statement);font-weight:var(--fw-light);line-height:var(--lh-tight)}@media(max-width:760px){.seek:has(.seek-lead){flex-wrap:wrap}.seek-lead{flex-basis:100%}}.console{margin:var(--space-lg) 0 var(--space-2xl)}.seek{display:flex;align-items:baseline;gap:var(--space-md);max-width:40rem;padding:var(--space-1-5) 0 var(--space-2);border-bottom:1px solid var(--color-border);transition:border-color var(--dur-base) ease}.seek:focus-within{border-color:var(--color-accent)}.seek input{flex:1;min-width:0;padding:0;border:none;background:none;outline:none;font-family:var(--font-display);font-size:var(--fs-h3);line-height:var(--lh-snug);color:var(--color-text)}.seek input::placeholder{font-style:italic;color:var(--color-text-muted)}.seek-key,.seek-clear{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--color-text-muted);white-space:nowrap}.seek-key{padding:1px var(--space-1-5);border:1px solid var(--color-border);border-radius:var(--radius-sm);user-select:none}.seek-clear{display:none;padding:0;border:none;background:none;cursor:pointer}.seek-clear:hover{color:var(--color-accent)}.seek.has-value .seek-key{display:none}.seek.has-value .seek-clear{display:inline}.console-note{margin:var(--space-sm) 0 0;font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--color-text-muted)}.console-note:empty{display:none}.themes{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-1-5) var(--space-5);margin-top:var(--space-lg)}.console .themes{display:none}.console:focus-within .themes,.console:has(.seek.has-value) .themes,.console:has(.idx.active) .themes,.console .themes:hover{display:flex}.themes-name{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--color-text-muted)}.theme-strip{display:contents}.idx{padding:0;border:0;background:none;cursor:pointer;font-family:var(--font-display);font-size:var(--fs-ui);line-height:var(--lh-ui);color:var(--color-text-secondary);transition:color var(--dur-fast) ease}.idx:hover,.idx:focus-visible,.idx.active{color:var(--color-accent);outline:none}.idx-n{margin-left:var(--space-1);font-family:var(--font-mono);font-size:var(--fs-micro);vertical-align:super;color:var(--color-accent)}.why{margin-top:var(--space-lg)}.why summary{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:1px solid var(--color-text-muted);border-radius:var(--radius-pill);font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--color-text);cursor:pointer;list-style:none;user-select:none;transition:color var(--dur-fast) ease,border-color var(--dur-fast) ease}.why summary::-webkit-details-marker{display:none}.why summary:before{content:"+";font-size:var(--fs-small);line-height:var(--lh-none);color:var(--color-accent)}.why[open] summary:before{content:"−"}.why summary:hover{color:var(--color-accent);border-color:var(--color-accent)}.why-body{overflow:hidden;max-width:38rem;margin-top:var(--space-md);padding-left:var(--space-md);border-left:1px solid var(--color-border-light)}.why-body p{margin:0 0 var(--space-md);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--color-text-secondary)}
