@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Space+Mono:wght@400;700&display=swap);body{-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--font-body:"Inter",sans-serif;--font-heading:"Space Mono",monospace;--color-bg:#eef0f2;--color-white:#fff;--color-black:#111;--color-border:#aaa;--color-border-light:#ccc;--color-accent:#0a66c2;--color-accent-dark:#004182;--text-body:1rem;--text-small:0.85rem;--text-xs:0.75rem;--heading-page:3.5rem;--heading-section:2rem;--heading-project:2rem;--content-width:1200px}*{box-sizing:border-box}#root,body,html{margin:0;min-height:100%;width:100%}html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;background:#eef0f2;background:var(--color-bg);color:#111;color:var(--color-black);font-family:Inter,sans-serif;font-family:var(--font-body);font-size:1rem;font-size:var(--text-body)}a{color:inherit;text-decoration:none}button{font-family:inherit}.app{min-height:100vh}.accent-bracket,.accent-dot{color:#0a66c2;color:var(--color-accent)}h1,h2,h3,h4{margin-top:0}.page-heading{font-size:3.5rem;font-size:var(--heading-page);letter-spacing:-.07em;line-height:1}.page-heading,.section-heading{font-family:Space Mono,monospace;font-family:var(--font-heading);font-weight:400}.section-heading{font-size:2rem;font-size:var(--heading-section);letter-spacing:-.04em;line-height:1.1}.site-navigation{align-items:center;background:#0000;display:flex;height:82px;justify-content:space-between;padding:0 50px;width:100%}.site-logo{font-family:Space Mono,monospace;font-family:var(--font-heading);font-size:1rem;font-weight:700;letter-spacing:-.04em;transition:opacity .18s ease}.site-logo:hover{opacity:.55}.site-navigation nav{align-items:center;display:flex;gap:35px}.site-navigation nav a{font-size:.85rem;font-size:var(--text-small);font-weight:500;position:relative;text-transform:uppercase;transition:opacity .18s ease}.site-navigation nav a:hover{opacity:.55}.site-navigation nav a.active{font-weight:700}.site-navigation nav a.active:after{background:#111;background:var(--color-black);bottom:-7px;content:"";height:1px;left:0;position:absolute;right:0}.loading-screen{align-items:center;background:#eef0f2;background:var(--color-bg);display:flex;justify-content:center;min-height:100vh}.loading-text{animation:pulse 1.4s ease-in-out infinite;font-family:Space Mono,monospace;font-family:var(--font-heading);font-size:1rem;font-weight:400;letter-spacing:.04em;margin:0}@keyframes pulse{0%,to{opacity:.3}50%{opacity:1}}.landing-page{display:grid;grid-template-columns:1fr 1fr;min-height:calc(100vh - 82px)}.profile-section{align-items:center;background:#fff;background:var(--color-white);display:flex;flex-direction:column;justify-content:center;min-height:calc(100vh - 82px);padding:50px}.profile-image{border-radius:2px;height:200px;margin-bottom:24px;object-fit:cover;width:200px}.profile-section h1{font-family:Space Mono,monospace;font-family:var(--font-heading);font-size:2rem;font-weight:700;letter-spacing:-.05em;line-height:1.1;margin:0;text-align:center;white-space:nowrap}.profile-section h2{font-size:1rem;font-weight:500;letter-spacing:.01em;margin:12px 0 64px}.about-section{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:calc(100vh - 82px);padding:60px}.about-section>h2{font-family:Space Mono,monospace;font-family:var(--font-heading);font-size:2rem;font-size:var(--heading-section);font-weight:400;letter-spacing:-.05em;line-height:1.1;margin:0 0 38px;text-align:center}.about-section p{font-size:1rem;font-size:var(--text-body);font-weight:400;letter-spacing:.005em;line-height:1.75;margin:0 0 85px;text-align:center;width:min(100%,500px)}.button{align-items:center;background:#111;background:var(--color-black);border:1px solid #111;border:1px solid var(--color-black);color:#fff;color:var(--color-white);cursor:pointer;display:flex;font-size:.85rem;font-size:var(--text-small);font-weight:600;height:44px;justify-content:center;letter-spacing:.02em;padding:0;transition:background-color .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease;width:190px}.button:hover{background:#fff;background:var(--color-white);box-shadow:0 6px 18px #0000001f;color:#111;color:var(--color-black);transform:translateY(-2px)}.button:active{box-shadow:none;transform:translateY(0)}.linkedin-link{align-items:center;background:#0a66c2;background:var(--color-accent);border-radius:3px;color:#fff;color:var(--color-white);display:flex;font-size:15px;font-weight:700;height:26px;justify-content:center;margin-top:38px;transition:transform .18s ease,background-color .18s ease;width:26px}.linkedin-link:hover{background:#004182;background:var(--color-accent-dark);transform:translateY(-2px)}.resume-page{background:#eef0f2;background:var(--color-bg);min-height:100vh;width:100%}.resume-intro{align-items:flex-end;display:flex;gap:40px;justify-content:space-between;margin:0 auto;max-width:1200px;max-width:var(--content-width);padding:80px 50px 45px}.resume-intro h1{font-family:Space Mono,monospace;font-family:var(--font-heading);font-size:3.5rem;font-size:var(--heading-page);font-weight:400;letter-spacing:-.07em;line-height:1;margin:0}.resume-title{font-size:1rem;font-size:var(--text-body);font-weight:500;margin:15px 0 0}.resume-download{align-items:center;background:#0a66c2;background:var(--color-accent);border:1px solid #0a66c2;border:1px solid var(--color-accent);color:#fff;color:var(--color-white);cursor:pointer;display:flex;font-size:.85rem;font-size:var(--text-small);font-weight:600;height:44px;justify-content:center;min-width:170px;padding:0 20px;transition:background-color .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease}.resume-download:hover{background:#004182;background:var(--color-accent-dark);border-color:#004182;border-color:var(--color-accent-dark);box-shadow:0 6px 18px #0000001f;transform:translateY(-2px)}.resume-summary{margin:0 auto;max-width:1200px;max-width:var(--content-width);padding:0 50px 65px}.resume-summary p{font-size:1rem;font-size:var(--text-body);line-height:1.75;margin:0;max-width:850px}.resume-content{margin:0 auto;max-width:1200px;max-width:var(--content-width);padding:0 50px 80px}.resume-section{grid-gap:60px;border-top:1px solid #b8b8b8;display:grid;gap:60px;grid-template-columns:270px 1fr;padding:45px 0}.resume-section>h2{font-family:Space Mono,monospace;font-family:var(--font-heading);font-size:1rem;font-size:var(--text-body);font-weight:700;letter-spacing:-.03em;line-height:1.2;margin:0;text-transform:uppercase}.section-accent{color:#0a66c2;color:var(--color-accent);margin-right:8px}.resume-section-content{min-width:0}.experience-item{padding-bottom:50px}.experience-item:last-child{padding-bottom:0}.experience-header{align-items:flex-start;display:flex;gap:30px;justify-content:space-between}.experience-item h3{font-size:1.05rem;font-weight:700;margin:0}.experience-item h4{font-size:1rem;font-size:var(--text-body);font-weight:600;margin:7px 0 0;text-decoration:underline}.experience-date{flex-shrink:0;font-family:Space Mono,monospace;font-family:var(--font-heading);font-size:.75rem;font-size:var(--text-xs);line-height:1.5;text-align:right}.experience-product{font-size:.85rem;font-size:var(--text-small);font-weight:600;line-height:1.5;margin:12px 0 22px}.experience-item ul{margin:0;padding-left:20px}.experience-item li{font-size:.85rem;font-size:var(--text-small);line-height:1.65;margin-bottom:10px}.experience-item li:last-child{margin-bottom:0}.skills-content{display:flex;flex-direction:column;gap:28px}.skill-group h3{font-weight:700;margin:0 0 8px}.skill-group h3,.skill-group p{font-size:.85rem;font-size:var(--text-small)}.skill-group p{line-height:1.7;margin:0}.education-item{margin-bottom:32px}.education-item:last-child{margin-bottom:0}.education-item h3{font-size:1rem;font-size:var(--text-body);font-weight:700;margin:0 0 7px}.education-institution{font-weight:500;margin:0 0 4px}.education-details,.education-institution{font-size:.85rem;font-size:var(--text-small)}.education-details{margin:0}.languages-content{display:flex;flex-direction:column;gap:12px;max-width:500px}.language-item{border-bottom:1px solid #d0d0d0;display:flex;font-size:.85rem;font-size:var(--text-small);justify-content:space-between;padding-bottom:10px}.language-item span:last-child{font-weight:500}.site-footer{align-items:center;border-top:1px solid #ccc;border-top:1px solid var(--color-border-light);display:flex;font-size:.75rem;font-size:var(--text-xs);justify-content:space-between;margin:0 auto;max-width:1200px;max-width:var(--content-width);padding:28px 50px}.site-footer p{margin:0}.footer-links{display:flex;gap:24px}.footer-links a{transition:opacity .18s ease}.footer-links a:hover{opacity:.55}.resume-footer{border-top:1px solid #b8b8b8;display:flex;font-size:.75rem;font-size:var(--text-xs);justify-content:space-between;margin:0 auto;max-width:1200px;max-width:var(--content-width);padding:30px 50px 50px}.resume-footer a{transition:opacity .18s ease}.resume-footer a:hover{opacity:.55}.portfolio-page{background:#eef0f2;background:var(--color-bg);min-height:100vh}.portfolio-intro{margin:0 auto;max-width:1200px;max-width:var(--content-width);padding:80px 50px 90px}.portfolio-eyebrow{font-size:.75rem;font-size:var(--text-xs);font-weight:700;letter-spacing:.08em;margin:0 0 18px;text-transform:uppercase}.portfolio-eyebrow,.portfolio-intro h1{font-family:Space Mono,monospace;font-family:var(--font-heading)}.portfolio-intro h1{font-size:3.5rem;font-size:var(--heading-page);font-weight:400;letter-spacing:-.07em;line-height:1;margin:0}.portfolio-intro h1 span{color:#0a66c2;color:var(--color-accent)}.portfolio-description{font-size:1rem;font-size:var(--text-body);line-height:1.75;margin:30px 0 0;max-width:600px}.portfolio-projects{margin:0 auto;max-width:1200px;max-width:var(--content-width);padding:0 50px 100px}.portfolio-project{grid-gap:40px;border-top:1px solid #aaa;border-top:1px solid var(--color-border);display:grid;gap:40px;grid-template-columns:60px minmax(300px,.8fr) minmax(400px,1.2fr);padding:65px 0}.project-number{font-size:.75rem;font-size:var(--text-xs);font-weight:700;padding-top:7px}.project-info h2,.project-number{font-family:Space Mono,monospace;font-family:var(--font-heading)}.project-info h2{font-size:2rem;font-size:var(--heading-project);font-weight:400;letter-spacing:-.05em;line-height:1.1;margin:0}.project-type{font-size:.75rem;font-size:var(--text-xs);font-weight:600;letter-spacing:.05em;margin:10px 0 28px;text-transform:uppercase}.project-description{font-size:.85rem;font-size:var(--text-small);line-height:1.7;margin:0 0 28px;max-width:480px}.project-technologies{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:32px}.project-technologies span{border:1px solid #aaa;border:1px solid var(--color-border);font-family:Space Mono,monospace;font-family:var(--font-heading);font-size:.68rem;padding:7px 11px}.project-links{display:flex;gap:25px}.project-links a{font-size:.85rem;font-size:var(--text-small);font-weight:600;position:relative;transition:opacity .18s ease}.project-links a:after{background:#111;background:var(--color-black);bottom:-5px;content:"";height:1px;left:0;position:absolute;right:0;transform:scaleX(0);transform-origin:left;transition:transform .18s ease}.project-links a:hover{opacity:.65}.project-links a:hover:after{transform:scaleX(1)}.project-preview{aspect-ratio:16/10;background:#fff;background:var(--color-white);overflow:hidden;width:100%}.project-preview img{display:block;height:100%;object-fit:cover;transition:transform .3s ease;width:100%}.portfolio-project:hover .project-preview img{transform:scale(1.02)}.project-placeholder span{font-family:Space Mono,monospace;font-family:var(--font-heading);font-size:1.2rem}.project-placeholder small{font-size:.75rem;font-size:var(--text-xs);margin-top:8px;opacity:.5}.portfolio-footer{align-items:center;border-top:1px solid #aaa;border-top:1px solid var(--color-border);display:flex;justify-content:space-between;margin:0 auto;max-width:1100px;padding:40px 0 70px}.portfolio-footer a,.portfolio-footer p{font-size:.85rem;font-size:var(--text-small)}.portfolio-footer p{margin:0}.portfolio-footer a{font-weight:600}@media (max-width:1000px){.site-navigation{padding:0 35px}.landing-page{grid-template-columns:1fr 1fr}.about-section,.profile-section{padding:35px}.resume-content,.resume-footer,.resume-intro,.resume-summary{padding-left:35px;padding-right:35px}.resume-section{gap:40px;grid-template-columns:220px 1fr}.portfolio-intro,.portfolio-projects{padding-left:35px;padding-right:35px}.portfolio-project{grid-template-columns:40px 1fr}.project-preview{grid-column:2}.portfolio-footer{margin-left:35px;margin-right:35px}}@media (max-width:700px){.site-navigation{flex-direction:column;gap:20px;height:auto;padding:22px 25px}.site-logo{font-size:.9rem}.site-navigation nav{gap:25px}.site-navigation nav a{font-size:.75rem;font-size:var(--text-xs)}.landing-page{display:block;min-height:auto}.profile-section{min-height:calc(100vh - 115px);padding:60px 25px 50px}.profile-image{height:165px;margin-bottom:22px;width:165px}.profile-section h1{font-size:1.5rem}.profile-section h2{margin-bottom:45px}.about-section{min-height:auto;padding:70px 25px 80px}.about-section>h2{font-size:1.9rem;margin-bottom:30px}.about-section p{font-size:.85rem;font-size:var(--text-small);line-height:1.7;margin-bottom:55px;max-width:430px}.button{width:min(100%,280px)}.resume-intro{align-items:flex-start;display:flex;flex-direction:column;gap:30px;padding:55px 25px 35px}.resume-intro h1{font-size:2.5rem}.resume-title{font-size:1rem;font-size:var(--text-body)}.resume-download{width:100%}.resume-summary{padding:0 25px 50px}.resume-summary p{font-size:.85rem;font-size:var(--text-small);line-height:1.7}.resume-content{padding:0 25px 60px}.resume-section{display:block;padding:40px 0}.resume-section>h2{font-size:1rem;font-size:var(--text-body);margin-bottom:30px}.experience-header{display:block}.experience-date{display:block;margin-top:8px;text-align:left}.experience-product{margin-top:15px}.experience-item li{font-size:.85rem;font-size:var(--text-small)}.resume-footer{flex-direction:column;gap:15px;padding:25px}.portfolio-intro{padding:60px 25px 70px}.portfolio-intro h1{font-size:2.5rem}.portfolio-description{font-size:.85rem;font-size:var(--text-small);margin-top:28px}.portfolio-projects{padding:0 25px 70px}.portfolio-project{display:block;padding:45px 0}.project-number{margin-bottom:20px}.project-info h2{font-size:1.8rem}.project-preview{margin-top:40px}.portfolio-footer{gap:20px;margin:0 25px;padding:30px 0 50px}.portfolio-footer,.site-footer{align-items:flex-start;flex-direction:column}.site-footer{gap:15px;padding:25px}}@media (max-width:400px){.site-navigation nav{gap:18px}.site-navigation nav a{font-size:.7rem}.profile-section{padding:45px 20px 50px}.profile-image{height:145px;width:145px}.profile-section h1{font-size:1.25rem}.about-section{padding:55px 20px 70px}.about-section>h2{font-size:1.7rem}.resume-content,.resume-footer,.resume-intro,.resume-summary{padding-left:20px;padding-right:20px}.resume-intro h1{font-size:2.2rem}.portfolio-intro,.portfolio-projects{padding-left:20px;padding-right:20px}.portfolio-intro h1{font-size:2.2rem}.portfolio-footer{margin-left:20px;margin-right:20px}}.modal-overlay{align-items:center;animation:modalOverlayIn .18s ease-out;background:#00000073;display:flex;inset:0;justify-content:center;padding:25px;position:fixed;z-index:1000}.email-modal{animation:modalIn .2s ease-out;background:#fff;background:var(--color-white);box-shadow:0 20px 60px #0003;padding:45px;position:relative;width:min(100%,480px)}.email-modal h2{font-size:2rem;font-size:var(--heading-section);font-weight:400;letter-spacing:-.04em;line-height:1.1}.email-modal h2,.modal-email{font-family:Space Mono,monospace;font-family:var(--font-heading);margin:0 0 30px}.modal-email{font-size:1rem;font-size:var(--text-body);word-break:break-word}.modal-close{align-items:center;background:#0000;border:none;color:#111;color:var(--color-black);cursor:pointer;display:flex;font-size:28px;font-weight:300;height:32px;justify-content:center;padding:0;position:absolute;right:18px;top:15px;transition:opacity .15s ease,transform .15s ease;width:32px}.modal-close:hover{opacity:.6;transform:rotate(90deg)}.modal-actions{display:flex;gap:12px;margin-bottom:25px}.modal-button{align-items:center;background:#111;background:var(--color-black);border:1px solid #111;border:1px solid var(--color-black);color:#fff;color:var(--color-white);cursor:pointer;display:flex;flex:1 1;font-size:.85rem;font-size:var(--text-small);font-weight:600;justify-content:center;min-height:44px;padding:0 18px;transition:background-color .18s ease,color .18s ease,transform .18s ease}.modal-button:hover{background:#fff;background:var(--color-white);color:#111;color:var(--color-black);transform:translateY(-2px)}.modal-linkedin{color:#0a66c2;color:var(--color-accent);display:inline-block;font-size:.85rem;font-size:var(--text-small);font-weight:600;transition:color .15s ease}.modal-linkedin:hover{color:#004182;color:var(--color-accent-dark)}@keyframes modalOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes modalIn{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width:500px){.modal-overlay{padding:20px}.email-modal{padding:40px 25px 30px}.email-modal h2{font-size:1.7rem}.modal-actions{flex-direction:column}.modal-button{width:100%}}
/*# sourceMappingURL=main.bf934009.css.map*/