@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap";:root{--color-bg: #0a0a0a;--color-section: #111111;--color-card: #171717;--color-input: #111111;--color-tag: #222222;--color-border: #2a2a2a;--color-border-hover: #3a3a3a;--color-text: #f5f5f5;--color-muted: #a3a3a3;--color-subtle: #666666;--color-accent: #5b78ff;--color-accent-hover: #7690ff;--color-error: #ff7b7b;--container-width: 1200px;--radius-small: 8px;--radius-card: 12px;--radius-large: 16px;--shadow-focus: 0 0 0 3px rgb(91 120 255 / 22%)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;margin:0;background:var(--color-bg);color:var(--color-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body,button,input,textarea{font-family:inherit}img,svg{display:block;max-width:100%}img{height:auto}a{color:inherit}button,input,textarea{font-size:inherit}button{border:0}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.15}.site-shell{display:flex;min-height:100vh;flex-direction:column}.site-main{flex:1}.container{width:min(100% - 48px,var(--container-width));margin-inline:auto}.skip-link{position:fixed;top:12px;left:12px;z-index:1000;padding:10px 14px;transform:translateY(-160%);border-radius:var(--radius-small);background:var(--color-accent);color:#fff;font-weight:700;text-decoration:none}.skip-link:focus{transform:translateY(0)}.section-dark{background:var(--color-bg)}.section-raised{background:var(--color-section)}.eyebrow{margin-bottom:16px;color:var(--color-accent);font-size:.72rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase}.section-title{max-width:850px;margin-bottom:18px;font-size:clamp(2rem,3.2vw,2.6rem);font-weight:800;letter-spacing:-.035em}.section-title--narrow{max-width:640px}.section-intro,.page-intro,.body-copy,.hero-text{color:var(--color-muted)}.section-intro{max-width:650px;margin-bottom:44px;font-size:.95rem}.body-copy--narrow{max-width:690px;margin-bottom:32px}.body-copy p,.hero-text p{margin-bottom:18px}.site-header{position:sticky;top:0;z-index:100;border-bottom:1px solid #1e1e1e;background:#0a0a0af0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.header-inner{display:flex;min-height:64px;align-items:center;justify-content:space-between}.brand{font-size:.95rem;font-weight:700;text-decoration:none}.desktop-nav,.footer-nav{display:flex;align-items:center;gap:34px}.nav-link,.footer-link{color:var(--color-muted);font-size:.86rem;text-decoration:none;transition:color .15s ease}.nav-link:hover,.footer-link:hover,.brand:hover,.contact-details a:hover{color:var(--color-text)}.nav-link.is-active,.footer-link.is-active{color:var(--color-accent)}.menu-button,.mobile-nav{display:none}.button-row{display:flex;flex-wrap:wrap;gap:12px}.button-row--center{justify-content:center}.button{display:inline-flex;min-height:46px;align-items:center;justify-content:center;border:1px solid transparent;border-radius:var(--radius-card);padding:11px 22px;font-size:.82rem;font-weight:600;line-height:1;text-decoration:none;transition:border-color .15s ease,background-color .15s ease,color .15s ease,transform .15s ease}.button:hover{transform:translateY(-1px)}.button-primary{background:var(--color-accent);color:#fff}.button-primary:hover{background:var(--color-accent-hover)}.button-secondary{border-color:var(--color-border);background:var(--color-card);color:var(--color-text)}.button-secondary:hover{border-color:var(--color-border-hover);background:#1f1f1f}.text-link{display:inline-flex;align-items:center;gap:5px;color:var(--color-accent);font-size:.82rem;font-weight:600;text-decoration:none;transition:color .15s ease}.text-link:hover{color:var(--color-accent-hover)}.text-link--placeholder{cursor:default}.text-link--placeholder:hover{color:var(--color-accent)}.brand:focus-visible,.nav-link:focus-visible,.footer-link:focus-visible,.button:focus-visible,.text-link:focus-visible,.menu-button:focus-visible,.contact-details a:focus-visible{border-radius:5px;outline:2px solid var(--color-accent);outline-offset:4px}.hero-section{padding-block:112px 126px}.hero-grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(340px,.88fr);align-items:center;gap:80px}.hero-title{margin-bottom:12px;font-size:clamp(4.5rem,7vw,5.5rem);font-weight:900;letter-spacing:-.06em;line-height:.95}.hero-role{margin-bottom:28px;color:var(--color-accent);font-size:1.05rem;font-weight:700}.hero-text{max-width:560px;margin-bottom:34px;font-size:.94rem}.hero-photo-wrap{width:min(100%,400px);aspect-ratio:1 / 1;justify-self:end;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-large);background:var(--color-card)}.hero-photo{width:100%;height:100%;object-fit:cover;object-position:center 28%}.content-section{padding-block:88px}.narrow-content{display:block}.skills-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:16px}.skill-card,.learning-card,.experience-card,.info-card,.contact-details,.form-card{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-card)}.skill-card{min-height:118px;padding:20px;transition:border-color .18s ease}.skill-card:hover,.info-card:hover,.project-card:hover,.project-showcase:hover{border-color:var(--color-border-hover)}.card-heading{display:flex;align-items:center;gap:10px;margin-bottom:17px}.card-heading svg{width:16px;height:16px;flex:0 0 16px;fill:none;stroke:var(--color-accent);stroke-linecap:round;stroke-linejoin:round;stroke-width:1.4}.card-heading h3,.learning-card h3{margin:0;font-size:.85rem;font-weight:700}.tag-list{display:flex;flex-wrap:wrap;gap:8px}.tag-list span{border-radius:5px;background:var(--color-tag);color:var(--color-muted);padding:4px 10px;font-size:.7rem;line-height:1.3}.learning-card{padding:18px 20px}.learning-card h3{margin-bottom:5px}.learning-card p{margin-bottom:0;color:var(--color-muted);font-size:.8rem}.featured-section{padding-block:38px 92px}.featured-section .section-title{margin-bottom:46px}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.project-card,.project-showcase{overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-card);transition:border-color .18s ease}.project-card{display:flex;min-height:480px;flex-direction:column}.project-card__media{height:195px;overflow:hidden;background:#eee}.project-card__media img{width:100%;height:100%;object-fit:cover;object-position:top center}.project-card__content{display:flex;flex:1;flex-direction:column;padding:22px}.eyebrow--card{margin-bottom:8px;font-size:.66rem}.project-card h3,.project-showcase h2,.experience-card h3{margin-bottom:10px;font-size:1.05rem;font-weight:700}.project-card__content>p:not(.eyebrow),.project-showcase__content>p:not(.eyebrow),.experience-card>p:not(.experience-meta){color:var(--color-muted);font-size:.82rem}.project-card__content>p:not(.eyebrow){flex:1;margin-bottom:22px}.experience-card{margin-top:36px;padding:28px}.experience-meta{margin-bottom:17px;color:var(--color-accent);font-size:.78rem}.experience-card>p:not(.experience-meta){max-width:850px;margin-bottom:0}.cta-section{padding-block:122px}.cta-content{text-align:center}.cta-content h2{margin-bottom:12px;font-size:clamp(2.2rem,4vw,3.35rem);font-weight:800;letter-spacing:-.04em}.cta-content>p{margin-bottom:30px;color:var(--color-muted);font-size:.94rem}.page-hero{padding-block:120px 82px}.page-title{max-width:720px;margin-bottom:28px;font-size:clamp(3rem,5vw,4.25rem);font-weight:900;letter-spacing:-.055em}.page-intro{max-width:560px;margin-bottom:0;font-size:1rem}.about-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.9fr);align-items:center;gap:84px}.about-photo-wrap{width:min(100%,500px);aspect-ratio:1.4 / 1;justify-self:end;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-large);background:var(--color-card)}.about-photo-wrap img{width:100%;height:100%;object-fit:cover}.about-cards-section{padding-block:0 112px}.about-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.info-card{min-height:180px;padding:30px;transition:border-color .18s ease}.info-card h2{margin-bottom:16px;font-size:1.08rem}.info-card p{margin-bottom:0;color:var(--color-muted);font-size:.93rem}.projects-page{padding-block:106px 120px}.page-title--projects{max-width:900px;margin-bottom:18px}.projects-intro{margin-bottom:58px}.project-list{display:grid;gap:24px}.project-showcase{scroll-margin-top:88px}.project-showcase__media{display:flex;height:330px;align-items:center;justify-content:center;overflow:hidden;background:#f6f6f6}.project-showcase__media img{width:100%;height:100%;object-fit:cover;object-position:center 35%}.project-showcase__media--tall img{object-position:center 20%}.project-showcase__content{padding:28px 32px 30px}.project-showcase__content>p:not(.eyebrow){max-width:780px;margin-bottom:20px}.contact-page{padding-block:122px 134px}.contact-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(460px,1.1fr);align-items:start;gap:92px}.page-title--contact{max-width:580px}.contact-copy .page-intro{max-width:500px}.contact-details{max-width:560px;margin-top:42px;padding:27px 30px}.contact-details p{margin-bottom:12px;color:var(--color-muted);font-size:.9rem}.contact-details p:last-child{margin-bottom:0}.contact-details strong{margin-right:5px;color:var(--color-text)}.contact-details a{color:var(--color-muted);text-decoration:none;overflow-wrap:anywhere}.form-card{padding:36px}.form-field{margin-bottom:21px}.form-field label{display:block;margin-bottom:8px;color:var(--color-text);font-size:.8rem;font-weight:700}.form-field input,.form-field textarea{width:100%;border:1px solid var(--color-border);border-radius:var(--radius-card);outline:0;background:var(--color-input);color:var(--color-text);padding:14px 16px;transition:border-color .15s ease,box-shadow .15s ease}.form-field input{min-height:54px}.form-field textarea{min-height:170px;resize:vertical}.form-field input::placeholder,.form-field textarea::placeholder{color:#555}.form-field input:focus,.form-field textarea:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.form-field input.has-error,.form-field textarea.has-error{border-color:var(--color-error)}.field-error{margin:7px 0 0;color:var(--color-error);font-size:.78rem}.submit-button{width:100%;cursor:pointer}.status-message{margin-bottom:24px;border:1px solid rgb(91 120 255 / 55%);border-radius:var(--radius-card);background:#5b78ff1a;padding:16px 18px}.status-message h2{margin-bottom:4px;font-size:.95rem}.status-message p{margin-bottom:0;color:var(--color-muted);font-size:.85rem}.site-footer{border-top:1px solid #1e1e1e;background:#0d0d0d}.footer-inner{display:flex;min-height:190px;align-items:center;justify-content:space-between;gap:32px;padding-block:38px}.footer-identity p{margin-bottom:1px;color:var(--color-muted);font-size:.8rem}.footer-identity .footer-name{color:var(--color-text);font-size:.92rem;font-weight:700}.footer-identity .footer-copyright{margin-top:17px;color:#5c5c5c}.footer-link{font-size:.8rem}@media(max-width:1023px){.hero-section{padding-block:82px 94px}.hero-grid,.about-hero-grid{grid-template-columns:1fr;gap:52px}.hero-photo-wrap,.about-photo-wrap{justify-self:start}.hero-photo-wrap{width:min(100%,380px)}.skills-grid,.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-grid{grid-template-columns:1fr;gap:54px}.contact-copy,.form-card{max-width:700px}}@media(max-width:767px){.container{width:min(100% - 40px,var(--container-width))}.desktop-nav{display:none}.menu-button{display:flex;width:42px;height:42px;flex-direction:column;align-items:center;justify-content:center;gap:5px;border-radius:8px;background:transparent;color:var(--color-text);cursor:pointer}.menu-button__line{width:20px;height:1.5px;border-radius:999px;background:currentColor;transition:transform .16s ease,opacity .16s ease}.menu-button.is-open .menu-button__line:nth-child(1){transform:translateY(6.5px) rotate(45deg)}.menu-button.is-open .menu-button__line:nth-child(2){opacity:0}.menu-button.is-open .menu-button__line:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}.mobile-nav{border-top:1px solid #1e1e1e;background:var(--color-bg)}.mobile-nav:not([hidden]){display:block}.mobile-nav__link{display:block;border-bottom:1px solid #1e1e1e;padding:15px 20px;color:var(--color-muted);font-size:.9rem;text-decoration:none}.mobile-nav__link.is-active{color:var(--color-accent)}.hero-section,.page-hero,.projects-page,.contact-page{padding-block:68px 78px}.hero-grid,.about-hero-grid{gap:42px}.hero-title{font-size:clamp(4rem,20vw,4.8rem)}.hero-role{font-size:1rem}.hero-text,.page-intro{font-size:.93rem}.hero-photo-wrap{width:min(100%,340px);justify-self:center}.content-section{padding-block:70px}.section-title{font-size:2rem}.skills-grid,.project-grid,.about-card-grid{grid-template-columns:1fr}.featured-section{padding-block:20px 74px}.project-card{min-height:0}.project-card__media{height:215px}.cta-section{padding-block:84px}.cta-content h2{font-size:2.25rem}.page-title{font-size:clamp(2.7rem,13vw,3.5rem)}.about-photo-wrap{width:100%}.about-cards-section{padding-bottom:82px}.info-card{min-height:0;padding:24px}.projects-intro{margin-bottom:42px}.project-showcase__media{height:240px}.project-showcase__content,.form-card{padding:24px}.contact-details{padding:23px}.footer-inner{min-height:0;flex-direction:column;align-items:flex-start;padding-block:42px}.footer-nav{flex-wrap:wrap;gap:14px 24px}}@media(max-width:420px){.button-row .button{width:100%}.project-showcase__media{height:205px}.form-card{padding:20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
