@font-face{font-family:literata;src:url(../media/literata_latin-s.p.3t6wimnoqat92.woff2)format("woff2");font-display:swap;font-weight:200 900;font-style:normal}@font-face{font-family:literata;src:url(../media/literata_italic_latin-s.p.419o0z6lrmsw5.woff2)format("woff2");font-display:swap;font-weight:200 900;font-style:italic}@font-face{font-family:literata Fallback;src:local(Arial);ascent-override:108.97%;descent-override:28.52%;line-gap-override:0.0%;size-adjust:108.01%}.literata_c76dbf80-module__52mlAq__className{font-family:literata,literata Fallback}.literata_c76dbf80-module__52mlAq__variable{--font-literata:"literata", "literata Fallback"}
@font-face{font-family:jetbrainsMono;src:url(../media/jetbrains_mono_latin-s.p.1bkzbscqrt8rl.woff2)format("woff2");font-display:swap;font-weight:400 500;font-style:normal}@font-face{font-family:jetbrainsMono Fallback;src:local(Arial);ascent-override:77.57%;descent-override:22.82%;line-gap-override:0.0%;size-adjust:131.49%}.jetbrainsmono_f3247f24-module__GRmD0q__className{font-family:jetbrainsMono,jetbrainsMono Fallback}.jetbrainsmono_f3247f24-module__GRmD0q__variable{--font-jetbrains:"jetbrainsMono", "jetbrainsMono Fallback"}
:root{--color-paper:#fff;--color-ink:#1f1f1f;--color-muted:#5c5c5c;--color-faint:#8a8a8a;--color-rule:#e5e5e0;--color-del:#b42318;--color-add:#1b7a3d;--color-cream:#fff;--color-accent:#1f1f1f;--font-serif:var(--font-literata), Literata, Georgia, "Times New Roman", serif;--font-sans:var(--font-literata), Literata, Georgia, serif;--font-mono:var(--font-jetbrains), "JetBrains Mono", "SF Mono", Menlo, monospace;--transition-duration-normal:.2s}*,:before,:after{box-sizing:border-box;border:0 solid;margin:0;padding:0}html{-webkit-text-size-adjust:100%;tab-size:4;-webkit-tap-highlight-color:transparent}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-size:1em}ol,ul{list-style:none}img,svg,video,canvas{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,textarea{font:inherit;color:inherit;background:0 0}hr{height:0;color:inherit;border-top-width:1px}small{font-size:80%}:focus-visible{outline:2px solid var(--color-ink);outline-offset:3px}html{scroll-behavior:smooth;overflow:hidden auto}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{font-family:var(--font-serif);background:var(--color-paper);color:var(--color-ink);font-variation-settings:"opsz" 16;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;line-height:1.6;overflow-x:hidden}.gen3-nav{border-bottom:1px solid var(--color-rule);background:var(--color-paper);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:18px 28px;padding:24px 28px 20px;display:flex}.gen3-nav-brand{font-family:var(--font-serif);letter-spacing:-.005em;color:var(--color-ink);font-size:19px;font-weight:500;text-decoration:none}.gen3-nav-brand:hover{text-underline-offset:4px;text-decoration:underline}.gen3-nav-links{flex-wrap:wrap;align-items:baseline;gap:24px;display:flex}.gen3-nav-link{color:var(--color-muted);text-underline-offset:4px;font-size:15px;text-decoration:none;transition:color .2s}.gen3-nav-link:hover,.gen3-nav-link.is-active{color:var(--color-ink);text-decoration:underline}.gen3-footer{border-top:1px solid var(--color-rule);background:var(--color-paper)}.gen3-footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:18px 28px;padding:26px 28px;display:flex}.gen3-footer-brand{font-family:var(--font-serif);color:var(--color-ink);font-size:16px}.gen3-footer-socials{align-items:baseline;gap:24px;display:flex}.gen3-footer-socials a{color:var(--color-muted);text-underline-offset:4px;font-size:15px;text-decoration:none;transition:color .2s}.gen3-footer-socials a:hover{color:var(--color-ink);text-decoration:underline}.gen3-footer-copy{color:var(--color-faint);padding:0 28px 24px;font-size:13px}.gen3-footer-credit{margin-top:6px}.gen3-footer-credit a{color:inherit;text-underline-offset:3px;text-decoration:underline}.gen3-footer-hash{font-family:var(--font-mono);color:var(--color-rule);margin-left:10px}.gen3-notfound,.gen3-errorbox{text-align:center;max-width:520px;margin:0 auto;padding:80px 28px}.gen3-notfound-code,.gen3-error-code{font-family:var(--font-serif);color:#1a1a1a;margin:0 0 12px;font-size:64px;font-weight:400}.gen3-error-title{font-family:var(--font-serif);color:#1a1a1a;margin:0 0 10px;font-size:26px;font-weight:400}.gen3-notfound-text,.gen3-error-text{color:#6b6b6b;margin:0 0 26px;font-size:15px}.gen3-notfound-link{color:var(--color-accent);font-size:14px;text-decoration:none}.gen3-notfound-link:hover{text-decoration:underline}.gen3-error-detail{text-align:left;border:1px solid var(--color-rule);background:#fff;border-radius:8px;margin:0 0 24px;padding:14px;overflow-x:auto}.gen3-error-name{font-family:var(--font-mono);color:#b4453a;margin:0 0 8px;font-size:12px}.gen3-error-stack{font-family:var(--font-mono);color:#6b6b6b;white-space:pre-wrap;text-align:left;max-width:100%;margin:0 auto 24px;font-size:12px;overflow-x:auto}.gen3-error-actions{justify-content:center;gap:12px;display:flex}.gen3-error-btn{border:1px solid var(--color-accent);color:var(--color-accent);cursor:pointer;background:#fff;border-radius:6px;padding:9px 18px;font-size:14px;text-decoration:none;transition:background .15s,color .15s}.gen3-error-btn:hover{background:var(--color-accent);color:#fff}@media print{body{color:#000;background:#fff;font-size:11px;line-height:1.4}nav,footer,.gen3-nav,.gen3-footer{display:none!important}.gen3-resume-doc{max-width:100%;margin:0;padding:0}@page{margin:.6in .7in;size:letter}}.gen3-page{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-serif);min-height:100vh}.gen3-article{min-width:0;max-width:680px;margin:0 auto;padding:64px 24px 112px}.gen3-article-head{margin-bottom:44px}.gen3-article-title{font-family:var(--font-serif);font-variation-settings:"opsz" 72;letter-spacing:-.022em;text-wrap:balance;max-width:21ch;margin:0;font-size:clamp(34px,5.4vw,54px);font-weight:500;line-height:1.04}.gen3-article-meta{color:var(--color-muted);margin:22px 0 0;font-size:17px;font-style:italic;line-height:1.5}.gen3-strip{margin:2.2em 0}.gen3-strip svg{width:100%;height:auto;display:block;overflow:visible}.gen3-strip-day{fill:var(--color-ink)}.gen3-strip-idle{fill:var(--color-rule)}.gen3-strip-ticks{height:18px;margin-top:6px;position:relative}.gen3-strip-label{font-family:var(--font-mono);color:var(--color-faint);white-space:nowrap;font-size:12px;line-height:18px;position:absolute;top:0}.gen3-strip-caption{color:var(--color-muted);margin-top:10px;font-size:15px;line-height:1.5}.gen3-strip-caption b{color:var(--color-ink);font-weight:500}.gen3-prose{color:var(--color-ink);font-variation-settings:"opsz" 18;font-size:19px;line-height:1.62}.gen3-prose>*+*{margin-top:1.25em}.gen3-prose p{position:relative}.gen3-prose h2{font-family:var(--font-serif);font-variation-settings:"opsz" 32;letter-spacing:-.012em;margin-top:2.4em;margin-bottom:.1em;font-size:27px;font-weight:500;line-height:1.2}.gen3-prose h3{font-family:var(--font-serif);margin-top:1.8em;font-size:21px;font-weight:500}.gen3-prose a{color:var(--color-ink);text-decoration:underline;-webkit-text-decoration-color:var(--color-faint);text-decoration-color:var(--color-faint);text-underline-offset:3px}.gen3-prose a:hover{-webkit-text-decoration-color:var(--color-ink);text-decoration-color:var(--color-ink)}.gen3-prose strong{color:var(--color-ink);font-weight:600}.gen3-prose em{font-style:italic}.gen3-prose code{font-family:var(--font-mono);background:#f3f3f0;border-radius:3px;padding:1px 5px;font-size:.82em}.gen3-prose pre{font-family:var(--font-mono);border:1px solid var(--color-rule);background:#f6f6f3;border-radius:4px;padding:14px 16px;font-size:14px;line-height:1.5;overflow-x:auto}.gen3-prose pre code{font-size:inherit;background:0 0;padding:0}.gen3-prose blockquote{border-left:2px solid var(--color-rule);color:var(--color-muted);padding-left:18px}.gen3-prose ul,.gen3-prose ol{padding-left:22px}.gen3-prose li+li{margin-top:.4em}.gen3-prose hr{border:0;border-top:1px solid var(--color-rule);width:120px;margin:3em 0 2em}.gen3-prose hr+p{color:var(--color-muted);font-size:17px}.gen3-prose img{max-width:100%;height:auto}.gen3-mark{font-family:var(--font-mono);letter-spacing:.01em;color:var(--color-faint);white-space:nowrap;vertical-align:.12em;margin-right:.7em;font-size:12px;font-weight:400;display:inline-block}@media (min-width:1100px){.gen3-mark{text-align:right;width:5.2rem;margin:0;position:absolute;top:.5em;right:calc(100% + 1.6rem)}}.gen3-add{font-family:var(--font-mono);color:var(--color-add);font-size:.86em}.gen3-del{font-family:var(--font-mono);color:var(--color-del);font-size:.86em}.gen3-figure{margin:2em 0}.gen3-figure img{border:1px solid var(--color-rule);border-radius:4px;width:100%;display:block}.gen3-figcaption{color:var(--color-muted);margin-top:10px;font-size:15px;font-style:italic;line-height:1.5}.gen3-more{border-top:1px solid var(--color-rule);margin-top:64px;padding-top:28px}.gen3-more-label{color:var(--color-muted);margin-bottom:10px;font-size:15px;font-style:italic}.gen3-more a{color:var(--color-ink);text-decoration:underline;-webkit-text-decoration-color:var(--color-faint);text-decoration-color:var(--color-faint);text-underline-offset:3px;padding:4px 0;font-size:18px;display:block}.gen3-more a:hover{-webkit-text-decoration-color:var(--color-ink);text-decoration-color:var(--color-ink)}@media (max-width:640px){.gen3-nav{padding:18px 20px 16px}.gen3-article{padding:36px 20px 80px}.gen3-article-head{margin-bottom:32px}.gen3-article-meta{font-size:16px}.gen3-prose{font-size:18px}.gen3-strip-label.is-near-edge{display:none}.gen3-footer-inner,.gen3-footer-copy{padding-left:20px;padding-right:20px}}.gen3-resume{max-width:820px;margin:0 auto;padding:12px 28px 64px}.gen3-resume-bar{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.gen3-resume-url{color:#9a9a9a;font-size:12px;font-family:var(--font-mono)}.gen3-resume-download{border:1px solid var(--color-accent);color:var(--color-accent);background:#fff;border-radius:6px;padding:8px 16px;font-size:13px;text-decoration:none;transition:background .15s,color .15s}.gen3-resume-download:hover{background:var(--color-accent);color:#fff}.gen3-resume-doc{border:1px solid var(--color-rule);background:#fff;border-radius:12px;padding:40px 44px}.gen3-resume-head{border-bottom:1px solid var(--color-rule);margin-bottom:28px;padding-bottom:20px}.gen3-resume-name{font-family:var(--font-serif);letter-spacing:-.3px;color:#1a1a1a;margin:0 0 8px;font-size:30px;font-weight:400}.gen3-resume-contact{color:#6b6b6b;flex-wrap:wrap;gap:8px;font-size:13.5px;display:flex}.gen3-resume-contact a{color:var(--color-accent);text-decoration:none}.gen3-resume-contact a:hover{text-decoration:underline}.gen3-resume-sep{color:#c9c4b8}.gen3-resume-section{margin-bottom:34px}.gen3-resume-section:last-child{margin-bottom:0}.gen3-resume-h2{font-family:var(--font-serif);letter-spacing:1.4px;text-transform:uppercase;color:var(--color-accent);border-bottom:1px solid var(--color-rule);margin:0 0 18px;padding-bottom:8px;font-size:13px;font-weight:700}.gen3-resume-jobs{flex-direction:column;gap:22px;display:flex}.gen3-resume-jobtop{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:2px;display:flex}.gen3-resume-role,.gen3-resume-degree{color:#1a1a1a;font-size:15.5px;font-weight:600}.gen3-resume-period{color:#9a9a9a;white-space:nowrap;flex-shrink:0;font-size:12.5px}.gen3-resume-org{color:var(--color-accent);margin:0 0 10px;font-size:13.5px}.gen3-resume-bullets{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.gen3-resume-bullets li{color:#444;padding-left:16px;font-size:13.5px;line-height:1.55;position:relative}.gen3-resume-bullets li:before{content:"—";color:#b8b2a4;position:absolute;left:0}.gen3-resume-edulist{flex-direction:column;gap:18px;display:flex}.gen3-resume-scholarship{color:#6b6b6b;margin:4px 0 0;font-size:13px}.gen3-resume-coursework{color:#9a9a9a;margin:6px 0 0;font-size:12px;line-height:1.5}.gen3-resume-skills{flex-direction:column;gap:10px;display:flex}.gen3-resume-skillrow{align-items:baseline;gap:16px;font-size:13.5px;display:flex}.gen3-resume-skillcat{color:#9a9a9a;letter-spacing:.4px;text-transform:uppercase;flex-shrink:0;width:150px;font-size:12px}.gen3-resume-skillitems{color:#1a1a1a}.gen3-print-only{display:none}@media (max-width:640px){.gen3-resume-doc{padding:26px 22px}.gen3-resume-skillrow{flex-direction:column;gap:2px}.gen3-resume-skillcat{width:auto}}@media print{.gen3-screen-only{display:none}.gen3-print-only{display:block}.gen3-resume-doc{background:0 0;border:none;border-radius:0;padding:0}.gen3-resume-h2{color:#333}.gen3-resume-org{color:#444}.gen3-resume-bullets li{color:#222}}.gen3-note{max-width:620px;margin:0 auto;padding:56px 28px 96px}.gen3-note-title{font-family:var(--font-serif);letter-spacing:-.4px;margin:0 0 28px;font-size:34px;font-weight:400}
.gen3-front{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:center;gap:32px 56px;max-width:1040px;margin:0 auto;padding:44px 24px 12px;display:grid}.gen3-front-stage,.gen3-front-intro{min-width:0}.gen3-front-intro{flex-direction:column;gap:20px;display:flex}.gen3-front-journey{color:var(--color-muted);font-size:16px;line-height:1.5}.gen3-front-journey a{color:var(--color-ink);text-decoration:underline;-webkit-text-decoration-color:var(--color-faint);text-decoration-color:var(--color-faint);text-underline-offset:4px}.gen3-front-journey a:hover{-webkit-text-decoration-color:var(--color-ink);text-decoration-color:var(--color-ink)}.gen3-stage .gen3-globe{width:min(360px,100%)}.gen3-stage{flex-direction:column;align-items:center;gap:18px;width:100%;display:flex}.gen3-facing{text-align:center;flex-direction:column;align-items:center;gap:4px;min-height:7.6em;display:flex}.gen3-facing-name{letter-spacing:-.01em;font-size:22px;font-weight:500}.gen3-facing-time{color:var(--color-muted);font-size:16px}.gen3-facing-clock{font-family:var(--font-mono);color:var(--color-ink);font-size:15px}.gen3-facing-weather{color:var(--color-muted);align-items:center;gap:8px;font-size:16px;display:flex}.gen3-facing-weather img{width:36px;height:36px;display:inline-block}.gen3-facing-temp{color:var(--color-ink)}.gen3-facing-sun{color:var(--color-faint);font-size:14px}.gen3-front-lede{letter-spacing:-.004em;font-variation-settings:"opsz" 24;color:var(--color-ink);text-align:left;text-wrap:pretty;max-width:30ch;font-size:clamp(20px,2.2vw,25px);line-height:1.4}.gen3-latest{max-width:1040px;margin:0 auto;padding:40px 24px 96px}.gen3-latest-inner{border-top:1px solid var(--color-rule);padding-top:32px}.gen3-latest-label{color:var(--color-muted);margin-bottom:14px;font-size:16px;font-style:italic}.gen3-latest-card{color:inherit;max-width:720px;text-decoration:none;display:block}.gen3-latest-title{letter-spacing:-.015em;font-variation-settings:"opsz" 48;text-wrap:balance;font-size:clamp(26px,3.2vw,36px);font-weight:500;line-height:1.1;display:block}.gen3-latest-card:hover .gen3-latest-title,.gen3-latest-card:focus-visible .gen3-latest-title{text-decoration:underline;-webkit-text-decoration-color:var(--color-faint);text-decoration-color:var(--color-faint);text-underline-offset:5px}.gen3-latest-dek{color:var(--color-muted);max-width:62ch;margin-top:14px;font-size:18px;line-height:1.55;display:block}.gen3-latest-meta{color:var(--color-faint);margin-top:12px;font-size:15px;font-style:italic;display:block}.gen3-latest-all{color:var(--color-muted);text-decoration:underline;-webkit-text-decoration-color:var(--color-faint);text-decoration-color:var(--color-faint);text-underline-offset:4px;margin-top:22px;font-size:16px;display:inline-block}.gen3-latest-all:hover{color:var(--color-ink);-webkit-text-decoration-color:var(--color-ink);text-decoration-color:var(--color-ink)}@media (max-width:900px){.gen3-front{grid-template-columns:1fr;gap:24px;padding:20px 20px 8px}.gen3-front-lede{max-width:none}.gen3-latest{padding-bottom:72px;padding-left:20px;padding-right:20px}}
.gen3-globe{aspect-ratio:1;width:min(520px,100%);margin:0 auto}.gen3-globe canvas{cursor:grab;touch-action:pan-y pinch-zoom;width:100%;height:100%;display:block}.gen3-globe canvas.is-dragging{cursor:grabbing}.gen3-globe-fallback svg{width:100%;height:100%;display:block}
