@font-face{font-family:mono;src:url(../media/jetbrains_mono_latin_wght_normal-s.p.2odd3csjijl0b.woff2)format("woff2");font-display:swap;font-weight:100 800}@font-face{font-family:mono Fallback;src:local(Arial);ascent-override:77.57%;descent-override:22.82%;line-gap-override:0.0%;size-adjust:131.49%}.gwe8_a_className{font-family:mono,mono Fallback,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.gwe8_a_variable{--font-mono:"mono", "mono Fallback", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}
:root{--bg:#fafaf8;--fg:#1a1b1d;--muted:#62656a;--faint:#a6a8ab;--line:#e3e3df;--accent:#9a5a06;--to-dark:inline-block;--to-light:none;--mono:var(--font-mono), "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--ease:cubic-bezier(.22, 1, .36, 1);--gutter:5.5rem;--pad:clamp(20px, 5vw, 32px);--space-section:clamp(72px, 12vw, 112px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#111214;--fg:#e6e6e2;--muted:#9b9da1;--faint:#55585c;--line:#26282b;--accent:#e8a84e;--to-dark:none;--to-light:inline-block;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#111214;--fg:#e6e6e2;--muted:#9b9da1;--faint:#55585c;--line:#26282b;--accent:#e8a84e;--to-dark:none;--to-light:inline-block;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-moz-text-size-adjust:100%;text-size-adjust:100%}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--bg);color:var(--fg);font:400 15px/1.7 var(--mono);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-variant-ligatures:none;margin:0}a{color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:.3em;transition:color .2s var(--ease), text-decoration-color .2s var(--ease), opacity .2s var(--ease);text-decoration-thickness:1px}@media (hover:hover){a:hover{color:var(--accent);text-decoration-color:currentColor}}a:active{opacity:.6;transition-duration:0s}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}::selection{background:var(--accent);color:var(--bg)}h1,h2,h3{font:inherit;text-wrap:balance;margin:0}p,ul,ol,dl,dd{margin:0}p{text-wrap:pretty}ul,ol{padding:0;list-style:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.todo{color:var(--muted);border:1px dashed var(--faint);-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:3px;padding:.1em .45em;font-size:.8em;font-weight:400}::view-transition-old(root){animation-duration:.3s;animation-timing-function:var(--ease)}::view-transition-new(root){animation-duration:.3s;animation-timing-function:var(--ease)}.page{max-width:calc(720px + 2 * var(--pad));padding-top:clamp(20px,4vw,32px);padding-bottom:max(32px, env(safe-area-inset-bottom,0px));padding-left:max(var(--pad), env(safe-area-inset-left,0px));padding-right:max(var(--pad), env(safe-area-inset-right,0px));margin:0 auto}main{gap:var(--space-section);margin-top:var(--space-section);display:grid}main:focus{outline:none}.skip{z-index:1;background:var(--fg);color:var(--bg);transition:transform .25s var(--ease);border-radius:3px;padding:6px 12px;font-size:13px;text-decoration:none;position:absolute;top:12px;left:12px;transform:translateY(calc(-100% - 16px))}.skip:focus-visible{color:var(--bg);transform:none}.nav{flex-wrap:wrap;align-items:baseline;gap:6px 24px;font-size:14px;line-height:1.5;display:flex}.nav .brand{letter-spacing:-.01em;margin-right:auto;font-weight:600;text-decoration:none}.nav ul{gap:20px;display:flex}.nav ul a{color:var(--muted);text-decoration:none}.nav ul a span{color:var(--faint);transition:color .2s var(--ease)}@media (hover:hover){.nav ul a:hover{color:var(--fg)}.nav ul a:hover span{color:var(--accent)}}.theme-toggle{color:var(--muted);text-align:right;min-width:7ch;transition:color .2s var(--ease)}.theme-toggle [data-to=dark]{display:var(--to-dark)}.theme-toggle [data-to=light]{display:var(--to-light)}.theme-label>*{animation:label-in .4s var(--ease)}@media (hover:hover){.theme-toggle:hover{color:var(--accent)}}.theme-toggle:active{opacity:.6}@keyframes label-in{0%{opacity:0;transform:translateY(.35em)}}@media (max-width:559px){.nav{grid-template-columns:1fr auto;display:grid}.nav ul{grid-area:2/1/auto/-1}}.intro{margin-top:clamp(64px,13vh,128px)}.prompt{color:var(--muted);font-size:14px}.intro h1{letter-spacing:-.03em;margin-top:10px;font-size:clamp(1.5rem,.6rem + 5.6vw,2.75rem);font-weight:650;line-height:1.15}.name{white-space:nowrap;vertical-align:bottom;display:inline-block;overflow:clip}.lede{max-width:46ch;margin-top:20px;font-size:clamp(15px,.85rem + .35vw,16.5px)}.links{flex-wrap:wrap;gap:4px 28px;margin-top:24px;font-size:14px;display:flex}.links div{align-items:baseline;gap:10px;display:flex}.links dt{color:var(--muted)}@media (max-width:559px){.links{display:grid}.links div{grid-template-columns:var(--gutter) minmax(0, 1fr);gap:0;display:grid}}.cursor{background:var(--accent);vertical-align:-.04em;width:.55em;height:.8em;margin-left:.08em;display:inline-block}@media (prefers-reduced-motion:no-preference){.prompt{animation:fade .5s var(--ease) backwards}.intro h1{--type:calc(var(--chars) * 38ms)}.name{animation:type var(--type) steps(var(--chars), end) .25s backwards}.cursor{animation:blink 1.1s steps(1) calc(.25s + var(--type) + .4s) 3}.lede{animation:rise .8s var(--ease) .5s backwards}.links{animation:rise .8s var(--ease) .62s backwards}.nav{animation:fade .8s var(--ease) .1s backwards}}@keyframes type{0%{width:0}to{width:calc(var(--chars) * (1ch - .03em))}}@keyframes blink{50%{opacity:0}}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.section{gap:24px;scroll-margin-top:32px;display:grid}.section>h2{align-items:center;font-size:15px;font-weight:600;display:flex}.section>h2 .cmd{color:var(--muted);white-space:pre;font-weight:400}.rule{background:var(--line);transform-origin:0;flex:1;height:1px;margin-left:16px}.projects{gap:32px;display:grid}.project{grid-template-columns:var(--gutter) minmax(0, 1fr);grid-template-areas:"year title"".desc"".tags";align-items:baseline;row-gap:4px;display:grid}.p-year{color:var(--muted);font-variant-numeric:tabular-nums;grid-area:year;font-size:13px}.p-title{grid-area:title;font-weight:600}.p-title a{text-decoration-color:#0000}.p-title a:after{content:"/";content:"/" / "";color:var(--faint);transition:color .2s var(--ease);font-weight:400}@media (hover:hover){.p-title a:hover{text-decoration-color:currentColor}.p-title a:hover:after{color:var(--accent)}}.p-note{color:var(--muted);margin-left:10px;font-size:13px;font-weight:400}.p-desc{grid-area:desc;min-width:0;max-width:60ch}.p-tags{flex-wrap:wrap;grid-area:tags;gap:2px 10px;margin-top:4px;display:flex}.p-tags li{color:var(--muted);font-size:13px}.p-tags li:before{content:"[";content:"[" / "";color:var(--faint)}.p-tags li:after{content:"]";content:"]" / "";color:var(--faint)}.p-tags li:has(.todo):before{content:none}.p-tags li:has(.todo):after{content:none}@media (max-width:559px){.projects{gap:28px}.project{grid-template-columns:minmax(0,1fr);grid-template-areas:"year""title""desc""tags"}.p-year{margin-bottom:2px}}.about{gap:16px}.about>h2{margin-bottom:8px}.about p{max-width:60ch}.contact-list{gap:8px;display:grid}.contact-list div{grid-template-columns:var(--gutter) minmax(0, 1fr);align-items:baseline;display:grid}.contact-list dt{color:var(--muted)}.contact-list dd{overflow-wrap:anywhere;flex-wrap:wrap;align-items:baseline;gap:4px 12px;min-width:0;display:flex}.copy{color:var(--muted);transition:color .2s var(--ease);font-size:13px}.copy-label{animation:label-in .35s var(--ease);display:inline-block}.copy[data-state=copied]{color:var(--accent)}@media (hover:hover){.copy:hover{color:var(--fg)}}.copy:active{opacity:.6}.foot{margin-top:var(--space-section);border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 24px;padding-top:20px;font-size:12px;display:flex}.foot time{font-variant-numeric:tabular-nums}.foot a{text-decoration:none}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}}@media print{.skip,.nav ul,.theme-toggle,.copy,.cursor{display:none}[data-reveal] *{opacity:1!important;transform:none!important}}
