@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/46a9e2f250689b4a-s.03ez25a9g3i0n.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/76b70a1dbe058eb5-s.3i9rha7jpxn0q.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2fb76073e23fd9e4-s.2o7ko1d-5m1xu.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6131cbbf5549afa2-s.1ee5w62fj497l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/45462fd7b7c12654-s.1way2z9fj6cig.woff2)format("woff2");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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ba63f6a0e436df8e-s.0szrwpqb9mkwe.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/07c7676b89ed2778-s.p.45535valc9rzk.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:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.MMaAbG_className{font-family:Inter,Inter Fallback;font-style:normal}.MMaAbG_variable{--font-sans:"Inter", "Inter Fallback"}
@font-face{font-family:Newsreader;font-style:normal;font-weight:400;font-display:swap;src:url(../media/07ada52535bdea5d-s.2ym9msm88vm4r.woff2)format("woff2");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:Newsreader;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ebba1bee165cb80a-s.08jxdyhjmo52g.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader;font-style:normal;font-weight:400;font-display:swap;src:url(../media/75cb990346c55dc4-s.p.23oeb0afa3wba.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:Newsreader;font-style:normal;font-weight:500;font-display:swap;src:url(../media/07ada52535bdea5d-s.2ym9msm88vm4r.woff2)format("woff2");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:Newsreader;font-style:normal;font-weight:500;font-display:swap;src:url(../media/ebba1bee165cb80a-s.08jxdyhjmo52g.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader;font-style:normal;font-weight:500;font-display:swap;src:url(../media/75cb990346c55dc4-s.p.23oeb0afa3wba.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:Newsreader;font-style:normal;font-weight:600;font-display:swap;src:url(../media/07ada52535bdea5d-s.2ym9msm88vm4r.woff2)format("woff2");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:Newsreader;font-style:normal;font-weight:600;font-display:swap;src:url(../media/ebba1bee165cb80a-s.08jxdyhjmo52g.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader;font-style:normal;font-weight:600;font-display:swap;src:url(../media/75cb990346c55dc4-s.p.23oeb0afa3wba.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:Newsreader Fallback;src:local(Times New Roman);ascent-override:69.68%;descent-override:25.12%;line-gap-override:0.0%;size-adjust:105.48%}._76e6bG_className{font-family:Newsreader,Newsreader Fallback;font-style:normal}._76e6bG_variable{--font-serif:"Newsreader", "Newsreader Fallback"}
:root{--accent:#8b1c2c;--accent-dark:#5e1019;--olive:#4f6b3a;--ink:#2a211c;--ink-2:#4a3f37;--muted:#5a4e45;--subtle:#6b5e52;--ground:#f6efe3;--paper:#fffcf7;--sand:#ede2cf;--line:#e3d8c6;--line-strong:#dccfb8;--fill:#8b1c2c;--fill-hover:#5e1019;--fill-deep:#5e1019;--on-accent:#fff7ee;--on-accent-muted:#f3d9c9;--serif:var(--font-serif), Georgia, serif;--sans:var(--font-sans), system-ui, sans-serif;--shadow:#2a211c14;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--accent:#ee8f99;--accent-dark:#f7b8be;--olive:#a3c18a;--ink:#f2e8da;--ink-2:#ddd0bf;--muted:#c4b6a6;--subtle:#a99a8a;--ground:#17120f;--paper:#201915;--sand:#2b231e;--line:#3a2f28;--line-strong:#4b3e35;--fill:#8b1c2c;--fill-hover:#a42536;--fill-deep:#5e1019;--shadow:#0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--ground);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.6}h1,h2,h3,p{margin:0}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-dark);text-decoration:underline}a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.container{max-width:1200px;margin:0 auto;padding-left:32px;padding-right:32px}.section{padding-top:88px;padding-bottom:88px}.stack-40{flex-direction:column;gap:40px;display:flex}.band{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.accent{color:var(--accent)}.muted{color:var(--muted)}.small{font-size:15px}.strip{background:repeating-conic-gradient(var(--fill) 0 25%, transparent 0 50%) 0 0 / 14px 14px;height:14px}.site-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-top:24px;padding-bottom:24px;display:flex}.brand{font-family:var(--serif);color:var(--accent);font-size:24px;font-weight:600}.site-nav{flex-wrap:wrap;align-items:center;gap:24px;font-size:15px;display:flex}.site-nav a{color:var(--ink-2)}.site-nav a.btn-outline-accent{border:1px solid var(--accent);color:var(--accent);border-radius:6px;padding:10px 18px;font-weight:500}.theme-toggle{border:1px solid var(--line-strong);width:44px;height:44px;color:var(--ink-2);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-toggle:hover{color:var(--accent);border-color:var(--accent)}.theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.theme-toggle .icon-sun,:root[data-theme=dark] .theme-toggle .icon-moon{display:none}:root[data-theme=dark] .theme-toggle .icon-sun{display:block}.btn{border-radius:6px;justify-content:center;align-items:center;min-height:48px;padding:0 24px;font-weight:500;display:inline-flex}.btn:hover{text-decoration:none}.btn-primary{background:var(--fill);color:#fff}.btn-primary:hover{background:var(--fill-hover);color:#fff}.btn-outline{border:1px solid var(--ink);color:var(--ink)}.btn-outline:hover{background:var(--ink);color:var(--ground)}.btn-light{background:var(--on-accent);min-height:52px;color:var(--fill-deep);font-weight:600}.btn-light:hover{color:var(--fill-deep);background:#fff}.hero{flex-wrap:wrap;align-items:center;gap:56px;padding-top:48px;padding-bottom:40px;display:flex}.hero-copy{flex-direction:column;flex:999 520px;gap:20px;min-width:0;display:flex}.hero-hello{color:var(--olive);letter-spacing:.02em;font-size:15px;font-weight:500}.hero h1{font-family:var(--serif);color:var(--accent);letter-spacing:-.01em;font-size:clamp(48px,7vw,84px);font-weight:600;line-height:1.02}.hero-tagline{font-family:var(--serif);font-size:clamp(28px,3.4vw,40px);line-height:1.2}.hero-intro{max-width:580px;color:var(--muted);font-size:18px}.hero-actions{flex-wrap:wrap;gap:12px;padding-top:8px;display:flex}.hero-meta{color:var(--subtle);padding-top:8px;font-size:14px}.hero-visual{flex:320px;justify-content:center;display:flex}.photo-frame{background:var(--sand);border:1px solid var(--line-strong);width:320px;max-width:100%;height:380px;color:var(--subtle);border-radius:10px;justify-content:center;align-items:center;font-size:15px;display:flex;position:relative}.photo-frame img{object-fit:cover;object-position:center 12%;border-radius:10px}.focus-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;padding-top:16px;padding-bottom:72px;display:grid}.focus-card{--tone:var(--accent);background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--tone);border-radius:4px;padding:20px 24px}.focus-card.tone-olive{--tone:var(--olive)}.focus-card.tone-ink{--tone:var(--ink)}.focus-index{color:var(--tone);font-size:13px;font-weight:500}.focus-title{margin-top:4px;font-size:18px;font-weight:500}.section-heading{flex-direction:column;gap:8px;display:flex}.eyebrow{color:var(--olive);letter-spacing:.06em;font-size:14px;font-weight:600}.section-heading h2{font-family:var(--serif);font-size:clamp(34px,4vw,44px);font-weight:500;line-height:1.1}.featured{background:var(--ground);border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;align-items:center;gap:40px;padding:32px;display:flex}.featured-media{background:var(--sand);border:1px solid var(--line-strong);min-width:0;height:320px;color:var(--subtle);border-radius:8px;flex:420px;justify-content:center;align-items:center;font-size:15px;display:flex;position:relative;overflow:hidden}.featured-media img{object-fit:cover}.featured-body{flex-direction:column;flex:420px;gap:14px;min-width:0;display:flex}.featured-body h3{font-family:var(--serif);font-size:32px;font-weight:500;line-height:1.15}.featured-body ul,.project-card ul{color:var(--ink-2);flex-direction:column;gap:6px;margin:0;padding-left:20px;font-size:15px;display:flex}.project-card ul.small-list{gap:4px;font-size:14px}.card-eyebrow{color:var(--olive);font-size:13px;font-weight:500}.card-eyebrow.accent{color:var(--accent)}.stack-line{color:var(--subtle);font-size:13px}.link-row{flex-wrap:wrap;gap:20px;font-weight:500;display:flex}.push-bottom{margin-top:auto}.project-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px;display:grid}.project-card{background:var(--ground);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:12px;padding:28px;display:flex}.project-card h3{font-family:var(--serif);font-size:26px;font-weight:500;line-height:1.2}.metrics{gap:24px;padding:8px 0;display:flex}.metric-value{font-family:var(--serif);color:var(--accent);font-size:32px;line-height:1.3}.metric-label{color:var(--subtle);font-size:12px}.experience{flex-wrap:wrap;gap:48px;display:flex}.experience-heading{flex:280px}.timeline{border-bottom:1px solid var(--line-strong);flex-direction:column;flex:999 560px;min-width:0;display:flex}.timeline-row{border-top:1px solid var(--line-strong);flex-wrap:wrap;gap:8px 24px;padding:28px 0;display:flex}.timeline-period{color:var(--subtle);flex:0 0 170px;font-size:14px}.timeline-body{flex:320px;min-width:0}.timeline-body h3{font-size:19px;font-weight:600}.timeline-body p{margin-top:6px}.skills-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:32px 40px;display:grid}.skills-grid h3{color:var(--accent);margin-bottom:8px;font-size:15px;font-weight:600}.skills-grid p{color:var(--ink-2);font-size:15px}.edu-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;display:grid}.edu-card{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:24px}.edu-period{color:var(--subtle);font-size:13px}.edu-card h3{margin:6px 0 4px;font-size:17px;font-weight:600}.edu-place{color:var(--muted);font-size:14px}.recommendation{border-left:3px solid var(--accent);flex-direction:column;gap:16px;max-width:820px;margin:0;padding:8px 0 8px 28px;display:flex}.recommendation blockquote{font-family:var(--serif);color:var(--ink-2);margin:0;font-size:clamp(20px,2.4vw,26px);line-height:1.4}.recommendation figcaption{flex-wrap:wrap;align-items:baseline;gap:4px 12px;font-size:14px;display:flex}.recommendation-name{font-weight:600}.recommendation-role{color:var(--muted)}.recommendation a{color:var(--accent);font-weight:500}.contact{background:var(--fill);color:var(--on-accent)}.contact-inner{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:40px;padding-top:96px;padding-bottom:96px;display:flex}.contact-copy{flex-direction:column;flex:999 520px;gap:16px;min-width:0;display:flex}.contact .eyebrow{color:var(--on-accent-muted)}.contact h2{font-family:var(--serif);font-size:clamp(36px,5vw,60px);font-weight:500;line-height:1.08}.contact-lead{color:var(--on-accent-muted);max-width:560px;font-size:18px}.contact-actions{flex-direction:column;flex:300px;gap:14px;display:flex}.contact-actions .link-row{font-size:15px}.contact-actions .link-row a{color:var(--on-accent)}.contact a:focus-visible{outline-color:var(--on-accent)}.site-footer{text-align:center;color:var(--subtle);padding-top:28px;padding-bottom:28px;font-size:14px}@media (max-width:600px){.container{padding-left:16px;padding-right:16px}.section{padding-top:64px;padding-bottom:64px}.featured{padding:20px}.featured-media{height:220px}.project-grid{grid-template-columns:1fr}.site-header{position:relative}.site-nav{justify-content:space-between;gap:12px;width:100%;font-size:14px}.site-nav .theme-toggle{position:absolute;top:17px;right:16px}.site-nav a.btn-outline-accent{align-items:center;height:44px;padding:0 14px;display:inline-flex;position:absolute;top:17px;right:68px}.cv-label-long{display:none}}.page{position:relative}.pipeline{--rail-x:max(14px, calc(50% - 616px));top:0;bottom:0;left:var(--rail-x);z-index:2;opacity:0;pointer-events:none;width:0;transition:opacity .4s;position:absolute}.pipeline.is-ready{opacity:1}.pipeline-track,.pipeline-fill{width:2px;position:absolute;left:-1px}.pipeline-track{background:repeating-linear-gradient(to bottom, var(--line-strong) 0 6px, transparent 6px 12px)}.pipeline-fill{background:var(--accent);border-radius:2px;height:0}.pipeline-packet{background:var(--accent);width:8px;height:8px;box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 22%, transparent);border-radius:50%;animation:3.2s cubic-bezier(.45,0,.55,1) infinite pipeline-flow;position:absolute;left:-3px}@keyframes pipeline-flow{0%{opacity:0;top:0}15%{opacity:1}85%{opacity:1}to{opacity:0;top:calc(100% - 8px)}}.pipeline-node{pointer-events:auto;justify-content:center;align-items:center;width:24px;height:44px;margin-top:-22px;display:flex;position:absolute;left:-12px}.pipeline-node:hover{text-decoration:none}.pipeline-dot{border:2px solid var(--line-strong);background:var(--ground);border-radius:50%;width:14px;height:14px;transition:border-color .3s,background-color .3s,transform .2s;position:relative}.pipeline-node:hover .pipeline-dot{border-color:var(--accent);transform:scale(1.2)}.pipeline-node.is-active .pipeline-dot{border-color:var(--accent);background:var(--accent)}.pipeline-node.is-active .pipeline-dot:after{content:"";border:2px solid var(--accent);border-radius:50%;animation:.9s ease-out forwards pipeline-pulse;position:absolute;inset:-2px}@keyframes pipeline-pulse{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(2.6)}}.pipeline-node.is-deploy .pipeline-dot{border-color:var(--on-accent-muted);background:var(--fill)}.pipeline-node.is-deploy.is-active .pipeline-dot,.pipeline-node.is-deploy.is-active .pipeline-dot:after{border-color:var(--on-accent);background:var(--on-accent)}.pipeline-node.is-deploy.is-active .pipeline-dot:after{background:0 0}.pipeline-label{white-space:nowrap;color:var(--subtle);font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:11px;transition:color .3s;position:absolute;right:22px}.pipeline-node.is-active .pipeline-label{color:var(--accent)}.pipeline-node.is-deploy .pipeline-label{color:var(--on-accent-muted)}.pipeline-node.is-deploy.is-active .pipeline-label{color:var(--on-accent)}@media (max-width:1439px){.pipeline-label{display:none}}@media (max-width:600px){.pipeline{left:5px}.pipeline-node,.pipeline-packet{display:none}}@media (prefers-reduced-motion:reduce){.pipeline-packet{display:none}.pipeline-node.is-active .pipeline-dot:after{opacity:0;animation:none}.pipeline,.pipeline-dot,.pipeline-label{transition:none}}
