:root{color:#171717;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#fff;font-family:Georgia,Times New Roman,serif}*{box-sizing:border-box}body{background:#fff;margin:0;transition:background-color .18s,color .18s;overflow-x:hidden}#app{width:min(100% - 3rem,76rem);min-height:100svh;margin:0 auto}.site-header,.site-footer{color:#777;letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:center;font-family:Arial,sans-serif;font-size:.7rem;display:flex}.site-header{border-bottom:1px solid #e8e8e8;padding:1.5rem 0}.site-mark{color:#171717;font-weight:700;text-decoration:none}.theme-toggle{z-index:20;color:#171717;cursor:pointer;width:2.75rem;height:2.75rem;font:inherit;background:0 0;border:0;place-items:center;padding:0;line-height:1;transition:color .18s,transform .18s;display:grid;position:fixed;top:1.25rem;right:1.5rem}.theme-icon,.theme-icon svg{width:1.5rem;height:1.5rem;display:block}.theme-icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px}.theme-toggle:hover,.theme-toggle:focus-visible{color:#171717;transform:rotate(12deg)}.theme-toggle:focus-visible{outline-offset:.25rem;outline:1px solid}main{padding:2rem 0 8rem}.intro{grid-template-columns:1fr 15rem;align-items:end;gap:4rem;padding-bottom:4rem;display:grid}.eyebrow,.section-number{color:#777;letter-spacing:.1em;text-transform:uppercase;margin:0 0 1.25rem;font-family:Arial,sans-serif;font-size:.7rem}h1{letter-spacing:-.05em;margin:0;font-size:clamp(6.5rem,6vw,8rem);font-weight:400;line-height:.9}h1 em{color:#999;font-weight:400}.portrait-wrap{justify-self:end;width:100%}.profile-image{aspect-ratio:1;object-fit:cover;clip-path:circle(50%);background:#f2f2f2;border-radius:50%;width:100%;display:block}.status{color:#999;min-height:1rem;margin:.75rem 0 0;font-family:Arial,sans-serif;font-size:.7rem}.section-heading{border-top:1px solid #171717;grid-template-columns:5rem 1fr;align-items:baseline;padding-top:3rem;display:grid}.section-number{margin:0}h2{letter-spacing:-.04em;margin:0;font-size:clamp(2.25rem,5vw,4.5rem);font-weight:400}.experience-list{margin-top:4rem;padding:1rem 0;position:relative}.experience-item{grid-template-columns:10rem 2rem minmax(0,1fr);align-items:center;min-height:12rem;padding:1.5rem 0;display:grid;position:relative}.experience-list:before{content:"";background:#d9d9d9;width:1px;position:absolute;top:0;bottom:0;left:11rem}.experience-item:before{z-index:1;content:"";background:#10a9b5;border:3px solid #fff;border-radius:50%;width:.7rem;height:.7rem;position:absolute;top:50%;left:11rem;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #10a9b5}.experience-content{border-top:1px solid #e8e8e8;grid-column:3;padding:1.5rem 0 1.5rem 2rem}.experience-period{grid-column:1;justify-self:end;padding-right:1.5rem}.experience-period,.experience-type{text-transform:uppercase;margin:0;font-family:Arial,sans-serif;font-size:.72rem;line-height:1.5}.experience-period{color:#777;letter-spacing:.06em}.experience-type{letter-spacing:.08em;margin-top:.45rem;font-weight:700}.experience-item--professional{--experience-accent:#9b5de5}.experience-item--training{--experience-accent:#2583d8}.experience-item--project{--experience-accent:#d6a928}.experience-item .experience-type{color:var(--experience-accent,#10a9b5)}.experience-item:before{background:var(--experience-accent,#10a9b5);box-shadow:0 0 0 1px var(--experience-accent,#10a9b5)}.experience-content h3{letter-spacing:-.02em;margin:0;font-size:clamp(1.4rem,2.5vw,2.1rem);font-weight:400}.experience-description{color:#555;max-width:34rem;margin:1.25rem 0 0;font-size:1rem;line-height:1.6}.tech-stack-section{margin-top:5.5rem}.tech-stack-section .section-heading{padding-top:5.5rem}.tech-list{grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr));gap:.75rem;margin:4rem 0 0;padding:0;list-style:none;display:grid}.tech-item{letter-spacing:.04em;text-transform:uppercase;background:#fff;border:1px solid #d9d9d9;border-radius:.35rem;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;min-height:8.5rem;padding:1.25rem .75rem;font-family:Arial,sans-serif;font-size:.72rem;font-weight:700;transition:border-color .18s,box-shadow .18s,transform .18s;display:flex;position:relative;overflow:hidden}.tech-item:before{content:"";pointer-events:none;border-top:1px solid #10a9b5;border-right:1px solid #10a9b5;width:.45rem;height:.45rem;position:absolute;top:.75rem;right:.75rem}.tech-item:hover,.tech-item:focus-within{border-color:#10a9b5;transform:translateY(-.4rem);box-shadow:0 .75rem 2rem #10a9b52e}.tech-logo{object-fit:contain;width:2.5rem;height:2.5rem;transition:transform .18s}.tech-item:hover .tech-logo,.tech-item:focus-within .tech-logo{transform:scale(1.1)rotate(-4deg)}.site-footer{border-top:1px solid #e8e8e8;padding:1.5rem 0}.social-links{z-index:10;flex-direction:column;gap:.45rem;display:flex;position:fixed;bottom:1.5rem;right:1.5rem}.social-links a{background:0 0;border:0;place-items:center;width:2rem;height:2rem;transition:transform .18s;display:grid}.social-links a:hover,.social-links a:focus-visible{background:0 0;transform:translate(.25rem)scale(1.08)}.social-links img,.social-links svg{width:1.65rem;height:1.65rem}.social-links img{filter:grayscale()brightness(0)}.social-links svg{fill:none;stroke:#171717;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px}.social-links .linkedin-logo{fill:#171717;stroke:none}.social-links a:hover svg,.social-links a:focus-visible svg{stroke:#171717}body.dark-mode{color:#f4f4f0;background:#171717}body.dark-mode .site-header,body.dark-mode .site-footer,body.dark-mode .experience-item{border-color:#3a3a3a}body.dark-mode .site-mark,body.dark-mode .theme-toggle:hover,body.dark-mode .theme-toggle:focus-visible{color:#f4f4f0}body.dark-mode .theme-toggle,body.dark-mode .eyebrow,body.dark-mode .section-number,body.dark-mode .experience-period,body.dark-mode .status,body.dark-mode .site-footer{color:#a7a7a2}body.dark-mode .theme-toggle{color:#f4f4f0}body.dark-mode .section-heading{border-color:#f4f4f0}body.dark-mode h1 em{color:#a7a7a2}body.dark-mode .experience-description{color:#c8c8c2}body.dark-mode .experience-list:before{background:#3a3a3a}body.dark-mode .experience-content{border-color:#3a3a3a}body.dark-mode .experience-item:before{border-color:#171717}body.dark-mode .tech-list{background:0 0}body.dark-mode .tech-item{background:#202020;border-color:#3a3a3a}body.dark-mode .tech-item:hover,body.dark-mode .tech-item:focus-within{border-color:#42d5df;box-shadow:0 .75rem 2rem #42d5df2e}body.dark-mode .profile-image,body.dark-mode .social-links a{background:0 0}body.dark-mode .social-links img{filter:grayscale()brightness(0)invert()}body.dark-mode .social-links svg{stroke:#f4f4f0}body.dark-mode .social-links .linkedin-logo{fill:#f4f4f0}body.dark-mode .social-links a:hover svg,body.dark-mode .social-links a:focus-visible svg{stroke:#f4f4f0}@media (width<=640px){#app{width:min(100% - 2rem,76rem)}.site-header{padding-right:3rem}main{padding:2.5rem 0 5rem}.intro{grid-template-columns:1fr;gap:2rem;padding-bottom:1.25rem}h1{letter-spacing:-.04em;max-width:100%;font-size:clamp(3rem,13vw,5rem);line-height:.95}.portrait-wrap{display:none}.section-heading{grid-template-columns:3rem 1fr;padding-top:2.75rem}.experience-list{margin-top:2rem;padding:.5rem 0}.experience-item{grid-template-rows:auto auto;grid-template-columns:1.25rem minmax(0,1fr);min-height:0;padding:0 0 1.5rem}.experience-list:before{left:.625rem}.experience-item:before{top:1.2rem;left:.625rem}.experience-period{text-align:left;grid-area:1/2;justify-self:start;padding:0 0 .5rem;font-size:.65rem}.experience-content{border-top:1px solid #e8e8e8;grid-area:2/2;min-width:0;padding:.75rem 0 1.5rem}.experience-content h3{font-size:clamp(1.35rem,7vw,1.8rem)}.experience-description{margin-top:1rem;font-size:.95rem;line-height:1.55}.tech-stack-section{margin-top:3.875rem}.tech-stack-section .section-heading{padding-top:3.875rem}.tech-list{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:2rem}.tech-item{text-align:center;overflow-wrap:anywhere;min-width:0;min-height:7.5rem;padding-inline:.5rem}.site-footer{flex-direction:column;align-items:flex-start;gap:.5rem;padding-bottom:5rem}.social-links{flex-direction:column;gap:.5rem;bottom:1rem;right:1rem}.theme-toggle{top:1rem;right:1rem}.social-links a{width:2rem;height:2rem}.social-links img,.social-links svg{width:1.65rem;height:1.65rem}}
