@font-face{font-family:Figtree;font-style:normal;font-weight:300;font-display:swap;src:url(../media/400bf8aa837fcb7e-s.b68677ba.woff2)format("woff2");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:Figtree;font-style:normal;font-weight:300;font-display:swap;src:url(../media/f7aa21714c1c53f8-s.p.e3544bb0.woff2)format("woff2");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:Figtree;font-style:normal;font-weight:400;font-display:swap;src:url(../media/400bf8aa837fcb7e-s.b68677ba.woff2)format("woff2");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:Figtree;font-style:normal;font-weight:400;font-display:swap;src:url(../media/f7aa21714c1c53f8-s.p.e3544bb0.woff2)format("woff2");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:Figtree;font-style:normal;font-weight:500;font-display:swap;src:url(../media/400bf8aa837fcb7e-s.b68677ba.woff2)format("woff2");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:Figtree;font-style:normal;font-weight:500;font-display:swap;src:url(../media/f7aa21714c1c53f8-s.p.e3544bb0.woff2)format("woff2");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:Figtree;font-style:normal;font-weight:600;font-display:swap;src:url(../media/400bf8aa837fcb7e-s.b68677ba.woff2)format("woff2");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:Figtree;font-style:normal;font-weight:600;font-display:swap;src:url(../media/f7aa21714c1c53f8-s.p.e3544bb0.woff2)format("woff2");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:Figtree Fallback;src:local(Arial);ascent-override:94.32%;descent-override:24.82%;line-gap-override:0.0%;size-adjust:100.72%}.figtree_18d9b9e5-module__JO_J9G__className{font-family:Figtree,Figtree Fallback;font-style:normal}.figtree_18d9b9e5-module__JO_J9G__variable{--font-body:"Figtree","Figtree Fallback"}
@font-face{font-family:Spline Sans Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5e60c3e60a629e0e-s.2de78418.woff2)format("woff2");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:Spline Sans Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/d2d62b05021c6286-s.p.c4236d74.woff2)format("woff2");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:Spline Sans Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5e60c3e60a629e0e-s.2de78418.woff2)format("woff2");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:Spline Sans Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/d2d62b05021c6286-s.p.c4236d74.woff2)format("woff2");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:Spline Sans Mono Fallback;src:local(Arial);ascent-override:71.59%;descent-override:17.57%;line-gap-override:0.0%;size-adjust:134.59%}.spline_sans_mono_1fac0d5f-module__lpA2gW__className{font-family:Spline Sans Mono,Spline Sans Mono Fallback;font-style:normal}.spline_sans_mono_1fac0d5f-module__lpA2gW__variable{--font-mono:"Spline Sans Mono","Spline Sans Mono Fallback"}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#faf9f6;--bg-raised:#fff;--bg-hover:#f2f1ea;--line:#e9e7de;--line-strong:#d7d4c8;--text:#343833;--text-muted:#7c8078;--text-faint:#a3a79c;--accent:#5a738b;--accent-soft:#e9edf1;--shadow:0 1px 2px #3438330a,0 8px 28px #3438330f;--font-stack-body:var(--font-body),"Helvetica Neue",Arial,sans-serif;--font-stack-mono:var(--font-mono),"SFMono-Regular",Consolas,monospace;font-family:var(--font-stack-body);background:var(--bg);color:var(--text)}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#191c1a;--bg-raised:#20241f;--bg-hover:#242923;--line:#2d322c;--line-strong:#3e453d;--text:#e4e7e1;--text-muted:#99a094;--text-faint:#6b7267;--accent:#a3b8cc;--accent-soft:#242c32;--shadow:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#191c1a;--bg-raised:#20241f;--bg-hover:#242923;--line:#2d322c;--line-strong:#3e453d;--text:#e4e7e1;--text-muted:#99a094;--text-faint:#6b7267;--accent:#a3b8cc;--accent-soft:#242c32;--shadow:none}}*{box-sizing:border-box}body{background:var(--bg);-webkit-font-smoothing:antialiased;margin:0}::selection{background:var(--accent-soft);color:var(--text)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}.page{max-width:38rem;margin:0 auto;padding:4.5rem 1.4rem 5rem}.eyebrow{font-family:var(--font-stack-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-faint);margin:0;font-size:.66rem}.greeting{font-family:var(--font-stack-body);letter-spacing:-.01em;margin:0;font-size:clamp(2.5rem,6.5vw,3.2rem);font-weight:300;line-height:1.05}.greeting span{color:var(--accent)}.heading-rule{font-family:var(--font-stack-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);align-items:center;gap:.9rem;margin:2.8rem 0 .5rem;font-size:.66rem;font-weight:500;display:flex}.heading-rule:after{content:"";background:var(--line);flex:1;height:1px}.page-footer{border-top:1px solid var(--line);font-family:var(--font-stack-mono);letter-spacing:.04em;color:var(--text-faint);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.4rem 1.3rem;margin-top:3.6rem;padding-top:1rem;font-size:.67rem;display:flex}.page-footer p{margin:0}.page-footer a{color:inherit;text-decoration:none}.page-footer a:hover{color:var(--accent)}.footer-links{align-items:baseline;gap:1.3rem;display:flex}.theme-toggle{appearance:none;color:var(--text-faint);cursor:pointer;font:inherit;letter-spacing:inherit;text-transform:uppercase;background:0 0;border:none;padding:0}.theme-toggle:hover{color:var(--accent)}.landing{flex-direction:column;min-height:100svh;padding-top:3rem;padding-bottom:2.2rem;display:flex}.landing-core{z-index:1;margin:auto 0;position:relative}.landing .page-footer{z-index:1;position:relative}.directory{border-top:1px solid var(--line);flex-direction:column;margin:2.7rem 0 0;padding:.7rem 0 0;list-style:none;display:flex}.entry{border-radius:10px;align-items:baseline;gap:1.1rem;padding:.85rem .7rem;text-decoration:none;transition:background-color .15s;display:flex}.entry:hover,.entry:focus-visible{background:var(--bg-hover)}.entry-host{font-family:var(--font-stack-mono);letter-spacing:.02em;text-align:right;color:var(--accent);white-space:nowrap;flex:0 0 5.2rem;font-size:.72rem}.entry-body{flex:1;min-width:0}.entry-name{color:var(--text);font-size:1.02rem;font-weight:500;line-height:1.4}.entry-desc{color:var(--text-muted);margin:.25rem 0 0;font-size:.85rem;font-weight:300;line-height:1.55}.entry-go{color:var(--text-faint);flex:none;align-self:center;font-size:.9rem;transition:transform .15s ease-out}.entry:hover .entry-go{color:var(--accent);transform:translate(3px)}.resume{max-width:42rem}.resume-top{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.resume-actions{font-family:var(--font-stack-mono);letter-spacing:.14em;text-transform:uppercase;align-items:baseline;gap:1.2rem;font-size:.66rem;display:flex}.resume-actions a{color:var(--text-faint);text-decoration:none}.resume-actions a:hover,.resume-actions .accent{color:var(--accent)}.resume-actions .accent:hover{text-decoration:underline}.resume-name{font-family:var(--font-stack-body);letter-spacing:.005em;margin:1.6rem 0 0;font-size:2.35rem;font-weight:300;line-height:1}.resume-name span{color:var(--accent)}.resume-headline{font-family:var(--font-stack-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text);margin:.8rem 0 0;font-size:.72rem;font-weight:500}.resume-contact{font-family:var(--font-stack-mono);letter-spacing:.02em;color:var(--text-muted);flex-wrap:wrap;gap:.3rem .55rem;margin:.7rem 0 0;padding:0;font-size:.7rem;list-style:none;display:flex}.resume-contact a{color:inherit;text-decoration:none}.resume-contact a:hover{color:var(--accent)}.resume-contact li+li:before{content:"·";color:var(--text-faint);margin-right:.55rem}.resume-profile{color:var(--text);margin:.6rem 0 0;font-size:.93rem;font-weight:400;line-height:1.7}.job+.job{margin-top:1.9rem}.job-company-line,.job-role-line,.edu-line{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.job-company{color:var(--text);letter-spacing:-.005em;margin:0;font-size:1.05rem;font-weight:600}.job-role{color:var(--text-muted);margin:.15rem 0 0;font-size:.88rem;font-weight:500}.job-where,.job-when,.edu-year{font-family:var(--font-stack-mono);letter-spacing:.02em;color:var(--text-faint);white-space:nowrap;font-variant-numeric:tabular-nums;flex:none;font-size:.68rem}.job ul{margin:.7rem 0 0;padding:0 0 0 1.05rem}.job li{color:var(--text);margin:0 0 .45rem;padding-left:.15rem;font-size:.88rem;font-weight:400;line-height:1.6}.job li::marker{color:var(--text-faint);font-size:.8em}.skills-row{color:var(--text);margin:.45rem 0 0;font-size:.88rem;font-weight:400;line-height:1.6}.skills-label{font-weight:600}.edu-item+.edu-item{margin-top:1.2rem}.edu-school{color:var(--text);margin:0;font-size:.98rem;font-weight:600}.edu-detail{color:var(--text-muted);margin:.2rem 0 0;font-size:.83rem;font-weight:400;line-height:1.5}@media (max-width:560px){.page{padding-top:2.5rem}.entry{flex-direction:column;gap:.3rem;padding-left:.7rem}.entry-host{text-align:left;flex:none}.entry-go{display:none}.resume-top{flex-direction:column;gap:.8rem}.job-company-line,.job-role-line,.edu-line{flex-direction:column;gap:.1rem}}@media (prefers-reduced-motion:no-preference){.resume>*{animation:.35s ease-out both settle}.landing .greeting,.landing .directory li,.landing .page-footer{animation:.55s cubic-bezier(.22,1,.36,1) both settle}.landing .directory li{animation-delay:.14s}.landing .page-footer{animation-delay:.26s}.landing .greeting span{animation:.5s ease-out .3s both ink}@keyframes settle{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes ink{0%{opacity:0}to{opacity:1}}}@media (prefers-reduced-motion:reduce){.entry,.entry-go{transition:none}}@media print{:root{--bg:#fff;--text:#101211;--text-muted:#3c403c;--text-faint:#6c7370;--accent:#101211;--line:#d5d8d5}.page{max-width:none;padding:0}.resume-actions,.page-footer{display:none}}.auth-page{flex-direction:column;justify-content:center;min-height:100svh;display:flex}.auth-panel{max-width:24rem}.auth-lede{color:var(--text-muted);margin:1.1rem 0 1.8rem;font-size:.92rem;font-weight:300;line-height:1.6}.auth-form{flex-direction:column;gap:.9rem;display:flex}.auth-field{flex-direction:column;gap:.35rem;display:flex}.auth-field label,.cost-edit-field label{font-family:var(--font-stack-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);font-size:.62rem}.auth-field input,.cost-edit-field input{background:var(--bg-raised);border:1px solid var(--line-strong);color:var(--text);font:inherit;border-radius:8px;padding:.55rem .7rem;font-size:.92rem}.auth-field input:focus-visible,.cost-edit-field input:focus-visible{outline-offset:0}.auth-submit,.cost-edit-submit{appearance:none;background:var(--accent);color:var(--bg);cursor:pointer;font:inherit;border:none;border-radius:8px;align-self:flex-start;padding:.55rem 1.1rem;font-size:.85rem;font-weight:500;transition:opacity .15s}.auth-submit:hover,.cost-edit-submit:hover{opacity:.88}.auth-submit:disabled,.cost-edit-submit:disabled{cursor:default;opacity:.6}.auth-form-message{color:var(--text);border-left:2px solid var(--accent);margin:0;padding-left:.7rem;font-size:.85rem}.auth-fine-print{color:var(--text-faint);margin:.2rem 0 0;font-size:.78rem;font-weight:300;line-height:1.55}.auth-kicker{font-family:var(--font-stack-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin:0 0 .6rem;font-size:.66rem}.auth-confirmation h2{margin:0 0 .7rem;font-size:1.4rem;font-weight:300}.auth-confirmation p{color:var(--text-muted);margin:0 0 .4rem;font-size:.9rem;line-height:1.6}.auth-confirmation strong{font-weight:500}.auth-text-link{color:var(--accent);margin-top:1rem;font-size:.85rem;display:inline-block}.costs-header{margin-top:.4rem}.burn{flex-wrap:wrap;align-items:baseline;gap:.6rem;margin:1rem 0 0;display:flex}.burn-figure{color:var(--accent);letter-spacing:-.01em;font-size:clamp(2.6rem,7vw,3.4rem);font-weight:300;line-height:1}.burn-unit{color:var(--text-faint);font-family:var(--font-stack-mono);letter-spacing:.08em;font-size:.72rem}.burn-compact .burn-figure{font-size:clamp(1.8rem,4.5vw,2.3rem)}.burn-note{color:var(--text-muted);max-width:30rem;margin:.9rem 0 0;font-size:.88rem;font-weight:300;line-height:1.6}.costs-section{margin-top:.4rem}.cost-list{margin:0;padding:0;list-style:none}.cost-row{border-bottom:1px solid var(--line);padding:.85rem .15rem}.cost-row:last-child{border-bottom:none}.cost-line{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.cost-main{flex-direction:column;gap:.25rem;min-width:0;display:flex}.cost-name{font-size:.98rem;font-weight:500;line-height:1.4}.cost-meta{color:var(--text-faint);font-family:var(--font-stack-mono);letter-spacing:.03em;font-size:.7rem;line-height:1.5}.cost-note{color:var(--text-muted);max-width:26rem;font-size:.82rem;font-weight:300;line-height:1.55}.cost-amount{color:var(--text);font-family:var(--font-stack-mono);white-space:nowrap;flex:none;font-size:.95rem}.cost-per{color:var(--text-faint);font-size:.7rem}.cost-amount-unknown{color:var(--text-faint)}.cost-burnrate{color:var(--text-muted);font-family:var(--font-stack-mono);letter-spacing:.03em;margin:.55rem 0 0;font-size:.72rem}.cost-list-quiet .cost-name{font-size:.9rem;font-weight:400}.spend{margin-top:.6rem}.spend-bars{width:100%;max-width:22rem;height:44px;display:block}.spend-bar{fill:var(--accent)}.spend-bar-zero{fill:var(--line-strong)}.spend-baseline{stroke:var(--line-strong);stroke-width:1px}.spend-table{margin-top:.35rem}.spend-table summary{color:var(--text-faint);cursor:pointer;font-family:var(--font-stack-mono);letter-spacing:.12em;text-transform:uppercase;width:fit-content;font-size:.64rem}.spend-table summary:hover{color:var(--accent)}.spend-table table{border-collapse:collapse;font-family:var(--font-stack-mono);margin-top:.5rem;font-size:.72rem}.spend-table th{color:var(--text-faint);text-align:left;font-weight:400}.spend-table th,.spend-table td{border-bottom:1px solid var(--line);padding:.25rem 1.4rem .25rem 0}.spend-table p{margin:.4rem 0 0}.cost-edit{margin-top:.55rem}.cost-edit summary{color:var(--text-faint);cursor:pointer;font-family:var(--font-stack-mono);letter-spacing:.12em;text-transform:uppercase;width:fit-content;font-size:.64rem}.cost-edit summary:hover{color:var(--accent)}.cost-edit-form{flex-wrap:wrap;align-items:flex-end;gap:.8rem;margin-top:.7rem;display:flex}.cost-edit-field{flex-direction:column;gap:.3rem;display:flex}.cost-edit-field input{width:9.5rem;padding:.45rem .6rem;font-size:.85rem}.cost-edit-field:nth-of-type(2) input{width:14rem}.cost-edit-submit{padding:.45rem .95rem;font-size:.8rem}.cost-edit-message{color:var(--text);border-left:2px solid var(--accent);flex-basis:100%;margin:0;padding-left:.7rem;font-size:.8rem}.cost-edit-saved{color:var(--text-muted);border-left:none;padding-left:0}.costs-footer{margin-top:2.6rem}.signout-form{display:contents}.link-button{appearance:none;color:var(--text-faint);cursor:pointer;font:inherit;letter-spacing:inherit;text-transform:inherit;background:0 0;border:none;padding:0}.link-button:hover{color:var(--accent)}@media (max-width:480px){.cost-line{flex-direction:column;gap:.3rem}}
