:root{--text-xs:12px;--text-sm:14px;--text-md:17px;--text-lg:22px;--text-xl:27px;--text-2xl:clamp(48px,6vw,88px);--font-normal:400;--font-medium:600;--font-bold:700;--tracking-tight:-.04em;--tracking-wide:.2em}:root,[data-theme=dark]{--bg:#1f1f1f;--bg-elevated:#282828;--border:#363636;--section-border:#363636;--text-primary:#fff;--text-secondary:#bbb;--text-muted:#777;--selection-bg:var(--text-primary);--selection-color:var(--bg);--nav-bg:#1f1f1f8c;--nav-border:#ffffff1f;--nav-shadow:0 4px 24px #0006,0 1px 2px #0000004d,inset 0 1px 0 #ffffff14,inset 0 -1px 0 #00000026;--nav-highlight:linear-gradient(180deg,#ffffff1f 0%,#fff0 50%);--section-alt-bg:#262626}[data-theme=light]{--bg:#fff;--bg-elevated:#f5f5f5;--border:#e0e0e0;--section-border:#eee;--text-primary:#111;--text-secondary:#555;--text-muted:#888;--selection-bg:var(--text-primary);--selection-color:var(--bg);--nav-bg:#ffffff8c;--nav-border:#ffffffb3;--nav-shadow:0 4px 24px #0000000f,0 1px 2px #0000000a,inset 0 1px 0 #ffffffe6,inset 0 -1px 0 #0000000a;--nav-highlight:linear-gradient(180deg,#fff9 0%,#fff0 50%);--section-alt-bg:#f8f8f8}@media (prefers-color-scheme:light){:root:not([data-theme]){--bg:#fff;--bg-elevated:#f5f5f5;--border:#e0e0e0;--section-border:#eee;--text-primary:#111;--text-secondary:#555;--text-muted:#888;--selection-bg:var(--text-primary);--selection-color:var(--bg);--nav-bg:#ffffff8c;--nav-border:#ffffffb3;--nav-shadow:0 4px 24px #0000000f,0 1px 2px #0000000a,inset 0 1px 0 #ffffffe6,inset 0 -1px 0 #0000000a;--nav-highlight:linear-gradient(180deg,#fff9 0%,#fff0 50%);--section-alt-bg:#f8f8f8}}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}html.no-transition,html.no-transition *{transition:none!important}body{background:var(--bg);color:var(--text-secondary);font-family:var(--font-sans),system-ui,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}::selection{background:var(--selection-bg);color:var(--selection-color)}.text-display{font-size:var(--text-2xl);font-weight:var(--font-bold);letter-spacing:var(--tracking-tight);color:var(--text-primary);line-height:.95}.text-subheading{font-size:var(--text-xl);font-weight:var(--font-bold);letter-spacing:var(--tracking-tight);color:var(--text-primary);line-height:1.3}.text-body{font-size:var(--text-lg);font-weight:var(--font-normal);color:var(--text-secondary);line-height:1.7}.text-small{font-size:var(--text-md);font-weight:var(--font-normal);color:var(--text-secondary);line-height:1.7}.text-label{font-size:var(--text-xs);font-weight:var(--font-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-muted)}.text-caption{font-size:var(--text-sm);font-weight:var(--font-normal);color:var(--text-muted)}.page{background:var(--bg);min-height:100vh}.container{max-width:950px;margin:0 auto;padding:0 clamp(24px,6vw,64px)}.hero{grid-template-columns:1fr 1fr;align-items:end;max-width:1200px;min-height:100vh;margin:0 auto;padding:0 clamp(24px,6vw,64px);display:grid}.hero-content{flex-direction:column;justify-content:center;min-height:100vh;padding:80px 0;display:flex}.hero-name{margin-bottom:24px}.hero-title{margin-bottom:32px}.hero-description{max-width:460px;margin-bottom:32px}.hero-cta{align-self:flex-start;align-items:center;gap:12px;transition:gap .3s;display:inline-flex}.hero-cta:hover{gap:16px}.hero-photo{justify-content:center;display:flex;overflow:hidden}.hero-photo img{object-fit:contain;width:100%;height:auto;max-height:85vh}:root .photo-light,[data-theme=dark] .photo-light{display:none}:root .photo-dark,[data-theme=dark] .photo-dark,[data-theme=light] .photo-light{display:block}[data-theme=light] .photo-dark{display:none}@media (prefers-color-scheme:light){:root:not([data-theme]) .photo-light{display:block}:root:not([data-theme]) .photo-dark{display:none}}.section{align-items:center;min-height:100vh;padding:120px 0;display:flex;position:relative}.section>.container{z-index:2;width:100%;position:relative}.section-header{margin-bottom:48px}#philosophy,#experience{background:var(--section-alt-bg)}#philosophy{border-top:1px solid var(--section-border)}.halftone{pointer-events:none;background:var(--section-alt-bg);z-index:1;height:var(--h);margin:-300px 0;position:relative;overflow:hidden}.halftone:after{content:"";width:var(--w);height:var(--h);background:var(--bg);-webkit-mask-image:var(--mask);-webkit-mask-image:var(--mask);mask-image:var(--mask);position:absolute;top:0;left:50%;transform:translate(-50%)}.halftone-up:after{transform:translate(-50%)scaleY(-1)}.tech-stack{grid-template-columns:repeat(2,1fr);gap:48px 64px;margin-top:48px;display:grid}.tech-stack-item{flex-direction:column;gap:12px;display:flex}.tech-stack-title{font-size:clamp(32px,4vw,48px);font-weight:var(--font-bold);letter-spacing:var(--tracking-tight);color:var(--text-primary);line-height:1}.experience-list{flex-direction:column;display:flex}.experience-item{grid-template-columns:60px 1fr;align-items:start;gap:60px;padding-bottom:56px;padding-right:60px;display:grid;position:relative}.experience-item:not(:last-child):after{content:"";background:linear-gradient(to bottom,var(--border)0%,transparent 100%);width:1px;position:absolute;top:40px;bottom:0;left:30px}.experience-year{text-align:center;padding-top:9px}.experience-details h3{margin-bottom:8px}.experience-role{margin-bottom:16px}.contact{align-items:center;min-height:100vh;padding:160px 0;scroll-margin-top:80px;display:flex;position:relative}.contact>.container{z-index:2;width:100%;position:relative}.contact-title{margin-bottom:48px}.contact-email{display:inline-block}.contact-links{gap:20px;margin-top:32px;display:flex}.contact-icon{color:var(--text-muted);transition:color .3s}.contact-icon:hover{color:var(--text-primary)}@keyframes scroll-nav-in{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}.scroll-nav{z-index:100;flex-direction:column;align-items:flex-end;gap:24px;display:flex;position:fixed;top:50%;right:32px;transform:translateY(-50%)}.scroll-nav-track{background:linear-gradient(to bottom,transparent,var(--border)25%,var(--border)75%,transparent);width:1px;position:absolute;top:0;bottom:0;right:4px}.scroll-nav-item{z-index:1;animation:.5s cubic-bezier(.25,.46,.45,.94) backwards scroll-nav-in;animation-delay:calc(var(--i)*80ms + .3s);align-items:center;gap:20px;display:flex;position:relative}.scroll-nav-label{opacity:0;font-size:var(--text-xs);font-weight:var(--font-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-muted);white-space:nowrap;pointer-events:none;transition:opacity .3s cubic-bezier(.25,.46,.45,.94),transform .3s cubic-bezier(.25,.46,.45,.94),color .3s;transform:translate(8px)}.scroll-nav-item:hover .scroll-nav-label,.scroll-nav-item:focus-visible .scroll-nav-label{opacity:1;color:var(--text-muted);transform:translate(0)}.scroll-nav-active:hover .scroll-nav-label{opacity:1;color:var(--text-secondary)}.scroll-nav-active .scroll-nav-label{opacity:1;color:var(--text-secondary);transform:translate(0)}.scroll-nav-dot{background:var(--border);border-radius:50%;flex-shrink:0;width:9px;height:9px;transition:transform .4s cubic-bezier(.34,1.56,.64,1),background .3s}.scroll-nav-item:hover .scroll-nav-dot{background:var(--text-muted);transform:scale(1.2)}.scroll-nav-active .scroll-nav-dot,.scroll-nav-active:hover .scroll-nav-dot{background:var(--text-secondary);transform:scale(1.4)}.scroll-nav-item:focus-visible{outline:none}.scroll-nav-item:focus-visible .scroll-nav-dot{background:var(--text-secondary)}.theme-toggle{z-index:100;width:40px;height:40px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:50%;justify-content:center;align-items:center;transition:color .2s,background .2s,border-color .4s,box-shadow .4s;display:flex;position:fixed;top:20px;right:24px;overflow:hidden}.theme-toggle:after{content:"";border-radius:inherit;background:var(--nav-highlight);opacity:0;pointer-events:none;transition:opacity .4s;position:absolute;inset:0}.theme-toggle:hover{color:var(--text-primary)}.theme-toggle.toggle-scrolled{background:var(--nav-bg);border-color:var(--nav-border);box-shadow:var(--nav-shadow)}.theme-toggle.toggle-scrolled:after{opacity:1}.theme-toggle.toggle-scrolled:hover{color:var(--text-primary)}.theme-toggle svg{width:15px;height:15px}@media (max-width:900px){.hero{grid-template-rows:auto auto;grid-template-columns:1fr;min-height:auto;padding-top:80px}.hero-content{order:1;padding:0 0 48px}.hero-photo{order:2;justify-content:flex-start}.hero-photo img{max-width:400px}.hero-description{max-width:none}.tech-stack{grid-template-columns:1fr;gap:40px}.experience-item{grid-template-columns:1fr;gap:8px}.experience-item:not(:last-child):after{display:none}.experience-year{text-align:left;padding-top:0}.scroll-nav{display:none}}@media (max-width:640px){.section{padding:80px 0}}
@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(../media/a2947afc6a06879b-s.5f161693.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:Archivo;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(../media/651aaf1801011892-s.7b2da7da.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:Archivo;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(../media/75affa71d1e2f6a7-s.p.51cde8ff.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:Archivo Fallback;src:local(Arial);ascent-override:88.96%;descent-override:21.28%;line-gap-override:0.0%;size-adjust:98.7%}.archivo_852e611a-module__NYkGMa__className{font-family:Archivo,Archivo Fallback;font-style:normal}.archivo_852e611a-module__NYkGMa__variable{--font-sans:"Archivo","Archivo Fallback"}
