@font-face{font-family:Instrument Serif;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/instrument-serif-latin-ext-400-normal-C2je3j2s.woff2)format("woff2"),url(/assets/instrument-serif-latin-ext-400-normal-CFCUzsTy.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Serif;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/instrument-serif-latin-400-normal-DnYpCC2O.woff2)format("woff2"),url(/assets/instrument-serif-latin-400-normal-BVbkICAY.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#e9e3d4;--ink:#1c1b18;--muted:#6c675b;--rule:#1c1b182e;--accent:#5b6a2c;--serif:"Instrument Serif", "Times New Roman", serif;--mono:"IBM Plex Mono", ui-monospace, monospace;--sans:"IBM Plex Sans", system-ui, sans-serif;--grain:.09;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--paper:#14130f;--ink:#e7e0cf;--muted:#9a937f;--rule:#e7e0cf24;--accent:#b3bf73;--grain:.05;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#14130f;--ink:#e7e0cf;--muted:#9a937f;--rule:#e7e0cf24;--accent:#b3bf73;--grain:.05;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.6;overflow-x:hidden}body:before{content:"";z-index:100;pointer-events:none;opacity:var(--grain);mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}a{color:inherit}button{font:inherit;color:inherit;cursor:pointer}::selection{background:var(--accent);color:var(--paper)}:focus-visible{outline:1px solid var(--accent);outline-offset:3px}.top,main,.footer{width:min(1040px,100% - 32px);margin:0 auto}.top{justify-content:space-between;align-items:center;gap:16px;padding:24px 0;display:flex}.wordmark{font-family:var(--serif);font-size:24px;text-decoration:none}.wordmark span,h1 span{color:var(--accent)}.top nav{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:22px;font-size:12px;display:flex}.top nav a{color:var(--muted);text-decoration:none;transition:color .2s}.top nav a:hover{color:var(--ink)}.toggle{border:1px solid var(--rule);min-width:30px;height:26px;font-family:var(--mono);letter-spacing:.08em;background:0 0;place-items:center;padding:0 8px;font-size:11px;transition:border-color .2s;display:inline-grid}.toggle:hover{border-color:var(--ink)}.toggle--text{text-transform:uppercase;gap:6px;display:inline-flex}.hero{isolation:isolate;padding:clamp(64px,12vw,140px) 0 clamp(64px,10vw,120px);position:relative}.rings{width:560px;height:560px;color:var(--ink);opacity:.4;z-index:-1;position:absolute;top:50%;right:-180px;transform:translateY(-50%)}h1{font-family:var(--serif);margin:0;font-size:clamp(3.6rem,10vw,7.5rem);font-weight:400;line-height:.95}.tagline{border:1px solid var(--ink);font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;margin:26px 0 0;padding:9px 16px;font-size:14px;display:inline-block}.tagline i{color:var(--accent);margin:0 10px;font-style:normal}.lead{max-width:34em;color:var(--muted);margin:28px 0 0;font-size:17px}.contacts{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;flex-direction:column;gap:4px;margin:28px 0 0;font-size:13px;display:flex}.contacts a,.email a{width:fit-content;color:var(--muted);text-decoration:none;transition:color .2s}.contacts a:hover,.email a:hover{color:var(--accent)}.section{border-top:1px solid var(--ink);padding:40px 0 56px}h2{font-family:var(--serif);margin:0 0 20px;font-size:clamp(2.2rem,5vw,3rem);font-weight:400;line-height:1}.list{margin:0;padding:0;list-style:none}.list li{border-bottom:1px solid var(--rule)}.work{grid-template-columns:220px 1fr auto 20px;align-items:baseline;gap:24px;padding:18px 0;text-decoration:none;display:grid}.work__name{font-family:var(--serif);font-size:26px;line-height:1.1}.work__name small{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-top:4px;font-size:11px;display:block}.work__blurb{color:var(--muted)}.work__stack{font-family:var(--mono);color:var(--muted);white-space:nowrap;font-size:12px}.work__arrow{color:var(--muted);align-self:center;transition:transform .2s,color .2s}.work:hover .work__name{color:var(--accent)}.work:hover .work__arrow{color:var(--accent);transform:translate(2px,-2px)}.job{grid-template-columns:160px 1fr auto;align-items:baseline;gap:24px;padding:14px 0;display:grid}.job__period{font-family:var(--mono);color:var(--muted);font-size:12px}.job__role{font-family:var(--serif);font-size:22px;line-height:1.2}.job__org{color:var(--muted);text-align:right}.note{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:16px 0 0;font-size:12px}.note+.note{margin-top:4px}.email{flex-wrap:wrap;align-items:center;gap:16px;margin:24px 0 0;display:flex}.email a{font-family:var(--serif);color:var(--ink);word-break:break-all;font-size:clamp(1.8rem,5vw,3rem);line-height:1.1}.footer{border-top:1px solid var(--ink);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);justify-content:space-between;gap:12px;padding:24px 0 40px;font-size:11px;display:flex}.toast{background:var(--ink);color:var(--paper);font-family:var(--mono);visibility:hidden;pointer-events:none;padding:10px 16px;font-size:12px;transition:transform .3s,visibility .3s;position:fixed;bottom:20px;left:50%;transform:translate(-50%,calc(100% + 40px))}.toast.is-on{visibility:visible;transform:translate(-50%)}@media (width<=760px){.top nav a{display:none}.rings{opacity:.2;width:380px;height:380px;top:30%;right:-200px}.work{grid-template-columns:1fr 20px;gap:6px 12px}.work__name{grid-column:1}.work__arrow{grid-area:1/2}.work__blurb,.work__stack{grid-column:1/-1}.job{grid-template-columns:1fr;gap:2px}.job__org{text-align:left}.tagline{padding:8px 12px;font-size:12px}.tagline i{margin:0 6px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important}}
