:root{--color-accent:#ff74a3;--color-nav-text:#4f4f4f;--color-heading:#3d3d3d;--color-body:#222;--color-bg:#ffffff;--color-sidebar-bg:#f7f7f7;--color-border:#e0e0e0;--font-main:"Manrope", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-display:var(--font-main);--font-nav:var(--font-main);--sidebar-width:274px;--sidebar-left:30px;--content-left:324px;--radius-image:20px;--transition:0.25s ease}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-nav);font-size:15px;font-weight:400;background:var(--color-bg);color:var(--color-body);line-height:1.75;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}img{display:block;max-width:100%;height:auto}.mobile-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:var(--color-bg);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:200}.mobile-site-name{font-family:var(--font-display);font-size:22px;font-weight:800;letter-spacing:1.8px;text-transform:uppercase;color:var(--color-heading)}.menu-toggle{display:flex;flex-direction:column;gap:5px;background:0 0;border:none;cursor:pointer;padding:4px}.hamburger{display:block;width:22px;height:2px;background:var(--color-heading);border-radius:2px;transition:transform var(--transition),opacity var(--transition)}.menu-toggle[aria-expanded=true] .hamburger:nth-child(1){transform:translateY(7px)rotate(45deg)}.menu-toggle[aria-expanded=true] .hamburger:nth-child(2){opacity:0}.menu-toggle[aria-expanded=true] .hamburger:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:290}.sidebar-overlay.active{display:block}.sidebar{position:fixed;top:0;left:0;width:280px;height:100dvh;background:var(--color-sidebar-bg);padding:40px 30px;overflow-y:auto;z-index:300;display:flex;flex-direction:column;gap:32px;transform:translateX(-100%);transition:transform var(--transition)}.sidebar.open{transform:translateX(0)}.sidebar-logo{margin-bottom:8px}.logo-link{font-family:var(--font-display);font-size:24px;font-weight:800;letter-spacing:1.8px;text-transform:uppercase;color:var(--color-heading);transition:color var(--transition)}.logo-link:hover{color:var(--color-accent)}.nav-section{display:flex;flex-direction:column;gap:2px}.nav-section-label{font-family:var(--font-nav);font-size:11px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--color-nav-text);margin-bottom:8px;display:block}.nav-category{font-size:10px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--color-nav-text);margin-top:14px;margin-bottom:4px;cursor:pointer;transition:color var(--transition)}.nav-category:hover{color:var(--color-accent)}.nav-link{font-size:10px;font-weight:400;letter-spacing:1.4px;text-transform:uppercase;color:var(--color-nav-text);padding:3px 0 3px 10px;display:block;transition:color var(--transition)}.nav-link:hover,.nav-link.active{color:var(--color-accent)}.nav-section--standalone{margin-top:auto;padding-top:24px;border-top:1px solid var(--color-border)}.nav-link--top{font-size:12px;letter-spacing:2px;padding-left:0}.lang-switcher{display:flex;gap:12px;padding-top:16px}.lang-link{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--color-nav-text);transition:color var(--transition)}.lang-link:hover,.lang-link--active{color:var(--color-accent)}.main-content{padding:40px 20px 80px;min-height:100dvh}.page-title{font-family:var(--font-display);font-size:28px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:var(--color-heading);text-align:center;margin-bottom:24px}.project-description{max-width:800px;margin:0 auto 24px;text-align:center;color:var(--color-nav-text);font-size:15px;line-height:1.8}.project-description p+p{margin-top:1em}.project-body{max-width:800px;margin:0 auto 24px;text-align:center;color:var(--color-nav-text);font-size:15px;line-height:1.8}.project-body p+p{margin-top:1em}.divider{border:none;border-top:1px solid var(--color-border);margin:32px auto;max-width:800px}.gallery-masonry{columns:2;column-gap:10px}.gallery-masonry--3,.gallery-masonry--4{display:none}.gallery-masonry__item{display:block;break-inside:avoid;margin-bottom:10px;border-radius:var(--radius-image);overflow:hidden;cursor:zoom-in}.gallery-masonry__item img{width:100%;height:auto;display:block;transition:opacity var(--transition),transform var(--transition)}.gallery-masonry__item:hover img{opacity:.88;transform:scale(1.025)}@media(min-width:480px){.gallery-masonry--2{display:none}.gallery-masonry--3{display:block;columns:3}}@media(min-width:1100px){.gallery-masonry--3{display:none}.gallery-masonry--4{display:block;columns:4}}.project-video{position:relative;width:100%;max-width:800px;margin:0 auto 32px;padding-bottom:min(56.25%,calc(800px * .5625));height:0;overflow:hidden}.project-video iframe{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:var(--radius-image)}.project-credits{max-width:800px;margin:0 auto 32px;text-align:center}.project-credits__item{color:var(--color-nav-text);font-size:13px;line-height:1.8;margin:0}.project-copyright{max-width:800px;margin:0 auto;padding-top:24px;text-align:center;color:var(--color-nav-text);font-size:11px;line-height:1.6}.gallery-strip{display:flex;flex-direction:column;gap:10px;margin-top:32px}.gallery-strip__item{display:block;width:100%;overflow:hidden;border-radius:var(--radius-image);cursor:zoom-in}.gallery-strip__item img{width:100%;height:auto;display:block;transition:opacity var(--transition)}.gallery-strip__item:hover img{opacity:.88}.page-content--gallery-list{display:grid;grid-template-columns:1fr;gap:24px}.page-content--gallery-list .page-title{grid-column:1/-1}.section-description{grid-column:1/-1;max-width:800px;margin:0 auto 24px;text-align:center;color:var(--color-nav-text);font-size:15px;line-height:1.8}.section-description p+p{margin-top:1em}.project-card{display:block;cursor:pointer}.project-card img{width:100%;border-radius:var(--radius-image);transition:opacity var(--transition)}.project-card:hover img{opacity:.85}.project-card__title{font-family:var(--font-display);font-size:16px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--color-heading);margin-top:10px}.project-card__category{font-size:11px;font-weight:400;letter-spacing:1.4px;text-transform:uppercase;color:var(--color-nav-text);margin-top:4px}.project-card__image-wrap{position:relative;width:100%;aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius-image);margin-bottom:10px;background:var(--color-border)}.project-card__image-wrap img{width:100%;height:100%;object-fit:cover;display:block;transition:opacity var(--transition),transform var(--transition)}.project-card:hover .project-card__image-wrap img{opacity:.85;transform:scale(1.02)}.project-card__image-wrap--empty{background:var(--color-border)}.about-home{display:flex;gap:28px;align-items:flex-start;max-width:680px;margin:0 auto}.about-home__photo{width:140px;height:140px;object-fit:contain;flex-shrink:0}.about-home__photo--placeholder{background:var(--color-border)}.about-home__body{display:flex;flex-direction:column}.about-home__name{font-family:var(--font-display);font-size:22px;font-weight:800;color:var(--color-heading);letter-spacing:.5px;margin-bottom:3px}.about-home__tagline{font-size:13px;font-weight:300;color:var(--color-body);margin-bottom:14px}.about-home__bio{font-size:15px;line-height:1.8;color:var(--color-body)}.about-home__bio p+p{margin-top:.6em}.about-home__bio a{color:var(--color-accent);font-weight:700}.about-home__bio a:hover{text-decoration:underline}.about-home__social{display:flex;gap:14px;margin-top:20px}.about-home__social a{color:var(--color-accent);display:flex;align-items:center;transition:opacity var(--transition)}.about-home__social a:hover{opacity:.65}@media(max-width:540px){.about-home{flex-direction:column;align-items:center;text-align:center}.about-home__social{justify-content:center}}.home-sections{max-width:1100px;margin:56px auto 0}.home-section{margin-bottom:48px}.home-section__title{font-family:var(--font-display);font-size:22px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--color-heading);text-align:center;margin-bottom:20px}.home-section__title a{color:inherit;transition:color var(--transition)}.home-section__title a:hover{color:var(--color-accent)}.home-section__grid{display:grid;grid-template-columns:1fr;gap:20px}@media(min-width:640px){.home-section__grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:980px){.home-section__grid{grid-template-columns:repeat(3,1fr)}}.prose{max-width:600px;margin:0 auto;font-size:16px;line-height:1.9;color:var(--color-nav-text);text-align:center}.prose p+p{margin-top:1em}.contact-form{max-width:480px;margin:0 auto;display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--color-nav-text)}.form-group input,.form-group textarea{width:100%;padding:10px 14px;border:1px solid var(--color-border);border-radius:6px;font-family:var(--font-nav);font-size:13px;color:var(--color-body);background:var(--color-bg);transition:border-color var(--transition);resize:vertical}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--color-accent)}.btn-submit{align-self:flex-start;background:var(--color-accent);color:#fff;border:none;padding:10px 28px;font-family:var(--font-nav);font-size:11px;letter-spacing:2px;text-transform:uppercase;border-radius:4px;cursor:pointer;transition:opacity var(--transition)}.btn-submit:hover{opacity:.85}@media(min-width:768px){.mobile-header{display:none}.sidebar{transform:none;width:var(--sidebar-width);left:var(--sidebar-left);background:var(--color-sidebar-bg)}.main-content{margin-left:var(--content-left);padding:60px 40px 100px}.page-content--gallery-list{grid-template-columns:1fr 1fr}}@media(min-width:1100px){.page-content--gallery-list{grid-template-columns:repeat(3,1fr)}}@media(min-width:1200px){.main-content{padding:60px 60px 100px}}.resume-wrap{max-width:680px;margin:0 auto}.resume-download{display:block;width:100%;text-align:center;font-family:var(--font-nav);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--color-accent);background:0 0;border:none;cursor:pointer;margin-bottom:24px;padding:0;transition:opacity var(--transition)}.resume-download:hover{opacity:.7}.resume-card{background:#fff;border-radius:12px;box-shadow:0 2px 20px rgba(0,0,0,7%);padding:48px 52px}.resume-header{text-align:center;margin-bottom:20px}.resume-name{font-family:var(--font-display);font-size:32px;font-weight:800;letter-spacing:1.8px;text-transform:uppercase;color:var(--color-accent);margin-bottom:6px}.resume-tagline{font-size:13px;font-weight:600;color:var(--color-body);margin-bottom:8px}.resume-contact{font-size:12px;color:var(--color-nav-text)}.resume-contact a{color:inherit}.resume-contact a:hover{color:var(--color-accent)}.resume-sep{color:var(--color-border);margin:0 4px}.resume-summary{font-size:13px;line-height:1.8;color:var(--color-nav-text);margin-bottom:28px;text-align:center}.resume-summary p+p{margin-top:.6em}.resume-rule{border:none;border-top:1px solid var(--color-accent);margin:20px 0 28px;opacity:.5}.resume-section{margin-bottom:28px}.resume-section-title{font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--color-accent);margin-bottom:12px}.resume-company{margin-bottom:16px}.resume-company-name{font-size:13px;font-weight:700;color:var(--color-body);margin-bottom:6px}.resume-project{padding-left:16px;border-left:2px solid var(--color-accent);margin-bottom:10px;opacity:.85}.resume-project:last-child{margin-bottom:0}.resume-project-header{font-size:12px;line-height:1.6}.resume-role{font-weight:600}.resume-date{color:var(--color-accent)}.resume-bullets{list-style:none;margin-top:4px;padding-left:4px}.resume-bullets li{font-size:11px;color:var(--color-nav-text);line-height:1.7;padding-left:12px;position:relative}.resume-bullets li::before{content:"·";position:absolute;left:0;color:var(--color-nav-text)}.resume-flat-item{font-size:12px;line-height:1.8;color:var(--color-body)}.resume-skills{display:grid;grid-template-columns:auto 1fr;gap:6px 20px}.resume-skill-row{display:contents}.resume-skills dt{font-size:12px;font-weight:700;color:var(--color-body);white-space:nowrap}.resume-skills dd{font-size:12px;color:var(--color-nav-text)}@media(max-width:767px){.resume-card{padding:28px 20px}}.resume-card--pdf-export{width:800px;max-width:none;border-radius:0;box-shadow:none;padding:30px 36px;-webkit-text-size-adjust:100%;text-size-adjust:100%}.resume-card--pdf-export *{-webkit-text-size-adjust:100%;text-size-adjust:100%}.pdf-compact{font-size:11.5px;line-height:1.4}.pdf-compact,.pdf-compact p,.pdf-compact li,.pdf-compact dt,.pdf-compact dd{font-family:var(--font-nav);font-weight:400}.pdf-compact .resume-section{margin-bottom:10px}.pdf-compact .resume-summary{font-size:11.5px;line-height:1.5;margin-bottom:10px}.pdf-compact .resume-company{margin-bottom:6px}.pdf-compact .resume-project{margin:0 0 4px -10px;padding-left:28px}.pdf-compact .resume-header{margin-bottom:10px}.pdf-compact .resume-rule{margin:8px 0 12px}.pdf-compact .resume-section-title{margin-bottom:6px;font-size:9px;line-height:1.25;font-weight:700}.pdf-compact .resume-bullets{margin-top:2px}.pdf-compact .resume-bullets li{font-size:11px;line-height:1.4}.pdf-compact .resume-name{font-family:var(--font-display);font-size:22px;line-height:1.15;font-weight:800;margin-bottom:4px}.pdf-compact .resume-tagline{font-size:12px;line-height:1.35;font-weight:600}.pdf-compact .resume-contact{font-size:11.5px;line-height:1.4}.pdf-compact .resume-flat-item{font-size:11.5px;line-height:1.6}.pdf-compact .resume-company-name{font-size:12.5px;line-height:1.3;margin-bottom:2px;font-weight:700}.pdf-compact .resume-project-header{font-size:11.5px;line-height:1.4}.pdf-compact .resume-skills{gap:4px 16px}.pdf-compact .resume-skills dt,.pdf-compact .resume-skills dd{font-size:11.5px;line-height:1.45}.pdf-compact .resume-role,.pdf-compact strong{font-weight:700}@media print{@page{size:A4;margin:2cm 2.5cm}.mobile-header,.sidebar-overlay,.sidebar,.resume-download{display:none!important}.main-content{margin-left:0!important;max-width:100%!important;padding:0!important}.resume-wrap{max-width:100%}.resume-card{box-shadow:none;border-radius:0;padding:0}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}.resume-company,.resume-section{break-inside:avoid}}