:root{--paper:#f6f0e6;--surface:#fffaf1;--ink:#24211d;--muted:#665f55;--line:#cfc3b2;--signal:#a64000;--signal-soft:#f0c7aa;--focus:#005fcc;--grid:#4d3f2f39;--sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--header-height:4rem;--reading-width:48rem;--page-width:80rem;--radius:4px}:root[data-theme=dark]{--paper:#11100f;--surface:#181613;--ink:#f4ecdf;--muted:#b9ad9d;--line:#403a33;--signal:#ff8a3d;--signal-soft:#613116;--focus:#8ab4ff;--grid:#f4ecdf20}:root[data-theme-palette=github][data-theme=light]{--paper:#fff;--surface:#f6f8fa;--ink:#1f2328;--muted:#656d76;--line:#d0d7de;--signal:#0969da;--signal-soft:#ddf4ff;--accent:#1f883d;--accent-soft:#dafbe1;--focus:#0969da;--grid:#1f232839}:root[data-theme-palette=github][data-theme=dark]{--paper:#0d1117;--surface:#151b23;--ink:#e6edf3;--muted:#7d8590;--line:#30363d;--signal:#4493f8;--signal-soft:#388bfd26;--accent:#3fb950;--accent-soft:#2ea04326;--focus:#4493f8;--grid:#f0f6fc20}:root[data-theme-palette=one-dark-pro][data-theme=light]{--paper:#fafafa;--surface:#f0f0f0;--ink:#282c34;--muted:#596275;--line:#c5c9d0;--signal:#2f5fb3;--signal-soft:#dce9ff;--focus:#1d4ed8;--grid:#282c3439}:root[data-theme-palette=one-dark-pro][data-theme=dark]{--paper:#282c34;--surface:#21252b;--ink:#abb2bf;--muted:#9aa4b2;--line:#3e4451;--signal:#61afef;--signal-soft:#1f3a5a;--focus:#61afef;--grid:#abb2bf20}:root[data-theme-palette=tokyo-night][data-theme=light]{--paper:#e6e7ed;--surface:#e6e7ed;--ink:#343b58;--muted:#40434f;--line:#6c6e75;--signal:#2959aa;--signal-soft:#cad2e3;--accent:#5a3e8e;--accent-soft:#d5d3e2;--focus:#2959aa;--grid:#343b5839}:root[data-theme-palette=tokyo-night][data-theme=dark]{--paper:#1a1b26;--surface:#24283b;--ink:#c0caf5;--muted:#a9b1d6;--line:#414868;--signal:#7aa2f7;--signal-soft:#23375f;--accent:#bb9af7;--accent-soft:#362a4d;--focus:#7aa2f7;--grid:#c0caf520}*,:before,:after{box-sizing:border-box}html{background-color:var(--paper);color:var(--ink);scroll-padding-top:calc(var(--header-height) + 1rem)}body{min-width:20rem;margin:0}.site-wrapper{z-index:1;flex-direction:column;min-height:100dvh;display:flex;position:relative}main{flex-grow:1}a,button,input,select,summary{min-height:2.75rem}a{min-width:2.75rem;color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:var(--radius)}#main-content:focus-visible{outline:3px solid var(--focus);outline-offset:-3px;border-radius:var(--radius)}body{font-family:var(--sans);line-height:1.5}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.06em;max-width:12ch;margin-bottom:1.5rem;font-size:clamp(2.5rem,8vw,6rem);line-height:.95}button{border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;border-radius:var(--radius)}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}a,button{transition:color .14s,border-color .14s}}.shell{width:min(calc(100% - 2rem), var(--page-width));margin-inline:auto}.hero{padding-block:clamp(5rem,16vw,12rem)}.eyebrow{color:var(--signal);font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;font-size:.8rem}.lede{max-width:34rem;color:var(--muted);font-size:clamp(1.1rem,2vw,1.4rem)}.page-intro{padding-block:clamp(4rem,10vw,8rem)}.project-archive>h2{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:1.5rem;font-size:.85rem}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}@media (width<=767px){.project-grid{grid-template-columns:1fr}}.case-study{width:min(calc(100% - 2rem), var(--reading-width));padding-top:clamp(4rem,10vw,8rem)}.case-study-header,.case-study-content{border:1px solid var(--line);background:var(--surface)}.case-study-header{padding:clamp(1.5rem,5vw,3rem)}.case-study-header h1{overflow-wrap:anywhere;max-width:14ch;font-size:clamp(2.5rem,7vw,5rem)}.project-status,.back-link{font-family:var(--mono);font-size:.78rem}.project-status{color:var(--signal);letter-spacing:.06em;text-transform:uppercase;margin-bottom:1rem}.back-link{align-items:center;margin-bottom:3rem;display:inline-flex}.project-actions{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.project-actions a{border:1px solid var(--signal);color:var(--signal);font-family:var(--mono);align-items:center;padding-inline:.9rem;font-size:.78rem;text-decoration:none;display:inline-flex}.case-study-image{border:1px solid var(--line);background:var(--surface);margin:1rem 0}.case-study-image img{width:100%;display:block}.case-study-content{overflow-wrap:anywhere;padding:clamp(1.5rem,5vw,3rem)}.case-study-content h2{margin-top:3rem;font-size:clamp(1.35rem,3vw,1.75rem);line-height:1.2}.case-study-content h2:first-child{margin-top:0}.case-study-content p{color:var(--muted)}.case-study-content a{max-width:100%;min-height:44px;color:var(--signal);vertical-align:middle;align-items:center;display:inline-flex}pre,table,.diagram{max-width:100%;overflow-x:auto}img,iframe,svg{max-width:100%}img{height:auto}.markdown-alert{border-inline-start:.25rem solid var(--signal);background:var(--surface);padding:.75rem 1rem}.markdown-alert-title{color:var(--signal);font:600 .875rem/1.4 var(--mono);margin-block:0 .5rem}.markdown-alert-title svg{fill:currentColor;vertical-align:text-bottom;margin-inline-end:.5rem}.figure,.youtube{margin-block:2rem}.figure--wide{width:min(60rem,100vw - 2rem);margin-inline:50% 0;transform:translate(-50%)}.figure picture,.figure img{width:100%;height:auto;display:block}figcaption{color:var(--muted);font-family:var(--mono);margin-top:.75rem;font-size:.78rem}figcaption a{color:var(--signal)}.media-frame{aspect-ratio:16/9;border:1px solid var(--line);background:var(--paper);max-width:100%;overflow-x:auto}.media-frame iframe{border:0;width:100%;height:100%;display:block}[data-rehype-pretty-code-figure]{max-width:100%;margin-block:2rem}[data-rehype-pretty-code-title]{border:1px solid var(--line);background:var(--paper);font:600 .78rem/1.4 var(--mono);border-bottom:0;padding:.5rem .75rem}[data-rehype-pretty-code-figure] pre{border:1px solid var(--line);padding:1rem}:root[data-theme=light] [data-theme~=github-light],:root:not([data-theme]) [data-theme~=github-light]{color:var(--shiki-light);background-color:var(--shiki-light-bg)}:root[data-theme=dark] [data-theme~=github-dark]{color:var(--shiki-dark);background-color:var(--shiki-dark-bg)}:root[data-theme=light] [data-theme~=github-light] span[style*=--shiki-light],:root:not([data-theme]) [data-theme~=github-light] span[style*=--shiki-light]{color:var(--shiki-light)}:root[data-theme=dark] [data-theme~=github-dark] span[style*=--shiki-dark]{color:var(--shiki-dark)}[data-highlighted-line]{border-inline-start:.2rem solid var(--signal);background:color-mix(in srgb, var(--signal-soft) 35%, transparent);margin-inline:-1rem;padding-inline:.8rem 1rem}p code:not([data-language]),li code:not([data-language]){background:var(--accent-soft,var(--surface));color:var(--accent,inherit);border-radius:var(--radius);font-family:var(--mono);padding:.15rem .3rem;font-size:.85em}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:4;background:var(--signal);color:var(--surface);padding:.5rem 1rem;position:absolute;top:-4rem;left:1rem}.skip-link:focus{top:1rem}
