:root{--color-background:#0a0a0a;--color-surface:#141414;--color-surface-hover:#1a1a1a;--color-border:#262626;--color-text:#fafafa;--color-text-secondary:#a3a3a3;--color-text-muted:#525252;--color-accent:#e5e5e5;--font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-8:3rem;--space-10:4rem;--space-12:5rem;--space-16:6rem}*,:after,:before{box-sizing:border-box}*{margin:0}html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#0a0a0a;background-color:var(--color-background);color:#fafafa;color:var(--color-text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-sans);font-size:16px;line-height:1.5;margin:0}canvas,img,picture,svg,video{display:block;max-width:100%}button,input,select,textarea{font:inherit}h1,h2,h3,h4,h5,h6,p{overflow-wrap:break-word}a{color:inherit}::selection{background-color:#fafafa;background-color:var(--color-text);color:#0a0a0a;color:var(--color-background)}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:#0a0a0a;background:var(--color-background)}::-webkit-scrollbar-thumb{background:#262626;background:var(--color-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#525252;background:var(--color-text-muted)}.header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:var(--color-background);border-bottom:1px solid var(--color-border);left:0;position:fixed;right:0;top:0;z-index:1000}.header-container{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1200px;padding:1.5rem 2rem}.header-logo{color:var(--color-text);font-size:1.125rem;font-weight:500;letter-spacing:-.02em;text-decoration:none;transition:opacity .2s ease}.header-logo:hover{opacity:.7}.header-nav{gap:.5rem}.header-actions,.header-nav{align-items:center;display:flex}.header-actions{gap:1rem}.nav-link{color:var(--color-text-secondary);font-size:.9375rem;font-weight:400;padding:.25rem .5rem;text-decoration:none;transition:color .2s ease}.nav-link.active,.nav-link:hover{color:var(--color-text)}.nav-separator{color:var(--color-text-muted);font-size:.875rem}.language-toggle{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;cursor:pointer;display:inline-flex;gap:0;overflow:hidden;padding:.2rem;position:relative;transition:border-color .2s ease,background-color .2s ease}.language-toggle:hover{border-color:var(--color-text-muted)}.language-toggle-indicator{background-color:var(--color-text);border-radius:999px;height:calc(100% - .4rem);left:.2rem;position:absolute;top:.2rem;transition:transform .25s ease;width:calc(50% - .2rem);z-index:0}.language-toggle-indicator.right{transform:translateX(100%)}.language-toggle-label{border-radius:999px;color:var(--color-text-muted);font-size:.75rem;line-height:1;min-width:2.15rem;padding:.3rem .6rem;position:relative;text-align:center;transition:color .2s ease;z-index:1}.language-toggle-label:first-of-type{margin-right:.1rem}.language-toggle-label:last-of-type{margin-left:.1rem}.language-toggle-indicator.left~.language-toggle-label:first-of-type,.language-toggle-indicator.right~.language-toggle-label:last-of-type{color:var(--color-background)}@media (max-width:768px){.header-container{gap:1rem;padding:1rem 1.5rem}.header-logo{font-size:1rem}.header-actions{gap:.75rem}.nav-link{font-size:.875rem;padding:.25rem}.nav-separator{font-size:.75rem}.language-toggle-label{font-size:.7rem;min-width:1.9rem;padding:.25rem .45rem}}.footer{background-color:var(--color-surface);border-top:1px solid var(--color-border);margin-top:auto}.footer-container{margin:0 auto;max-width:1200px;padding:3rem 2rem 2rem}.footer-content{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:1fr 1fr 1fr;margin-bottom:3rem}.footer-logo{color:var(--color-text);font-size:1.125rem;font-weight:500;text-decoration:none;transition:opacity .2s ease}.footer-logo:hover{opacity:.7}.footer-tagline{color:var(--color-text-secondary);font-size:.875rem;margin:.5rem 0 0}.footer-nav{display:flex;flex-direction:column;gap:.75rem}.footer-link{color:var(--color-text-secondary);font-size:.9375rem;text-decoration:none;transition:color .2s ease;width:-webkit-fit-content;width:fit-content}.footer-link:hover{color:var(--color-text)}.footer-contact{text-align:right}.footer-contact .footer-link{display:inline-block;margin-bottom:1rem}.footer-social{display:flex;gap:1rem;justify-content:flex-end}.footer-social a{color:var(--color-text-secondary);transition:color .2s ease}.footer-social a:hover{color:var(--color-text)}.footer-bottom{border-top:1px solid var(--color-border);padding-top:2rem}.footer-copyright{color:var(--color-text-muted);font-size:.8125rem;margin:0;text-align:center}@media (max-width:768px){.footer-container{padding:2rem 1.5rem 1.5rem}.footer-content{gap:2rem;grid-template-columns:1fr;text-align:center}.footer-nav{flex-direction:row;flex-wrap:wrap;gap:1rem 2rem;justify-content:center}.footer-contact{text-align:center}.footer-social{justify-content:center}}.home{min-height:100vh;padding-top:80px}.hero{margin:0 auto;max-width:900px;padding:4rem 2rem 6rem}.hero-label{color:var(--color-text-secondary);display:inline-block;font-size:.875rem;letter-spacing:.02em;margin-bottom:1.5rem}.hero-title{color:var(--color-text);font-size:clamp(2rem,5vw,3.5rem);font-weight:500;letter-spacing:-.03em;line-height:1.15;margin:0 0 1.5rem}.hero-subtitle{color:var(--color-text-secondary);font-size:1.125rem;line-height:1.6;margin:0 0 2rem;max-width:600px}.hero-contact{align-items:center;display:flex;gap:1.5rem}.hero-email{border-bottom:1px solid var(--color-border);color:var(--color-text);font-size:.9375rem;padding-bottom:2px;text-decoration:none;transition:border-color .2s ease,opacity .2s ease}.hero-email:hover{border-color:var(--color-text);opacity:.8}.hero-social{color:var(--color-text-secondary);transition:color .2s ease}.hero-social:hover{color:var(--color-text)}.projects-section{margin:0 auto;max-width:1200px;padding:0 2rem 6rem}.projects-grid{grid-gap:2.5rem;display:grid;gap:2.5rem;grid-template-columns:repeat(2,1fr)}.project-card{color:inherit;display:block;text-decoration:none;transition:transform .3s ease}.project-card:hover{transform:translateY(-4px)}.project-card:hover .project-card-image{border-color:var(--color-text-muted)}.project-card:hover .project-card-title{color:var(--color-accent)}.project-card-image{aspect-ratio:4/3;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;margin-bottom:1.25rem;overflow:hidden;transition:border-color .3s ease}.project-card-image img{height:100%;object-fit:cover;width:100%}.project-card-placeholder{align-items:center;background:linear-gradient(135deg,var(--color-surface) 0,var(--color-surface-hover) 100%);display:flex;height:100%;justify-content:center;width:100%}.project-card-placeholder span{color:var(--color-text-muted);font-size:3rem;font-weight:600;opacity:.5}.project-card-content{padding:0 .25rem}.project-card-category{color:var(--color-text-muted);display:inline-block;font-size:.75rem;letter-spacing:.08em;margin-bottom:.5rem;text-transform:uppercase}.project-card-title{color:var(--color-text);font-size:1.25rem;font-weight:500;margin:0 0 .5rem;transition:color .2s ease}.project-card-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem}.project-card-tag{align-items:center;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;color:var(--color-text-secondary);display:inline-flex;font-size:.7rem;line-height:1;padding:.3rem .6rem}.project-card-description{color:var(--color-text-secondary);font-size:.9375rem;line-height:1.5;margin:0}@media (max-width:900px){.projects-grid{gap:3rem;grid-template-columns:1fr}}@media (max-width:768px){.hero{padding:3rem 1.5rem 4rem}.projects-section{padding:0 1.5rem 4rem}.hero-contact{align-items:flex-start;flex-direction:column;gap:1rem}}.project-page{min-height:100vh;padding-top:80px}.project-header{border-bottom:1px solid var(--color-border);margin:0 auto;max-width:1200px;padding:4rem 2rem 3rem}.project-header-grid{grid-gap:4rem;align-items:start;display:grid;gap:4rem;grid-template-columns:1fr 1fr}.project-category-label{color:var(--color-text-muted);display:inline-block;font-size:.75rem;letter-spacing:.1em;margin-bottom:1rem;text-transform:uppercase}.project-title{color:var(--color-text);font-size:clamp(2rem,4vw,3rem);font-weight:500;letter-spacing:-.02em;line-height:1.1;margin:0 0 1rem}.project-meta{color:var(--color-text-secondary);font-size:1rem;margin:0}.project-tech-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.project-tech-tag{align-items:center;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;color:var(--color-text-secondary);display:inline-flex;font-size:.75rem;line-height:1;padding:.35rem .7rem}.project-header-right{padding-top:2rem}.project-context{color:var(--color-text-secondary);font-size:1rem;line-height:1.7;margin:0}.project-content{margin:0 auto;max-width:1200px;padding:4rem 2rem}.project-section{margin-bottom:5rem}.project-section:last-child{margin-bottom:0}.project-section-content{display:flex;flex-direction:column;gap:1.5rem}.section-heading{color:var(--color-text-muted);font-size:.875rem;font-weight:500;letter-spacing:.1em;margin:0 0 1.5rem;text-transform:uppercase}.section-text{color:var(--color-text);font-size:1.125rem;line-height:1.7;margin:0;max-width:700px}.section-note{color:var(--color-text-secondary);font-size:.9375rem;font-style:italic;margin-top:1.5rem}.project-images-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(2,1fr);margin-top:2rem}.project-images-full{display:flex;flex-direction:column;gap:2rem;margin-top:2rem}.project-image-wrapper{aspect-ratio:4/3;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;overflow:hidden}.project-image-full img,.project-image-wrapper img{height:100%;object-fit:cover;width:100%}.project-image-full{aspect-ratio:16/10;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;overflow:hidden;width:100%}.project-image-placeholder{align-items:center;background:linear-gradient(135deg,var(--color-surface) 0,var(--color-surface-hover) 100%);display:flex;height:100%;justify-content:center;width:100%}.project-image-placeholder span{color:var(--color-text-muted);font-size:1rem;opacity:.5}.project-image-placeholder.large span{font-size:1.25rem}.project-content-media{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;min-height:360px;overflow:hidden;width:100%}.project-content-media .project-image-placeholder{min-height:360px;padding:2rem;text-align:center}.project-content-media .project-image-placeholder span{line-height:1.5;max-width:24rem}.project-content-image{display:block;height:100%;max-height:900px;object-fit:cover;width:100%}.project-video{aspect-ratio:16/9;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;overflow:hidden}.project-video iframe,.video-placeholder{height:100%;width:100%}.video-placeholder{align-items:center;background:linear-gradient(135deg,var(--color-surface) 0,var(--color-surface-hover) 100%);color:var(--color-text-muted);display:flex;flex-direction:column;gap:1rem;justify-content:center}.video-placeholder svg{opacity:.5}.video-placeholder span{font-size:.9375rem;opacity:.7}.video-link{border:1px solid var(--color-border);border-radius:4px;color:var(--color-text);font-size:.875rem;padding:.5rem 1rem;text-decoration:none;transition:background-color .2s ease,border-color .2s ease}.video-link:hover{background-color:var(--color-surface-hover);border-color:var(--color-text-muted)}.credits-list{list-style:none;margin:0;padding:0}.credits-list li{border-bottom:1px solid var(--color-border);color:var(--color-text-secondary);font-size:1rem;padding:.5rem 0}.credits-list li:last-child{border-bottom:none}.project-navigation{border-top:1px solid var(--color-border);margin:0 auto;max-width:1200px;padding:4rem 2rem 6rem}.project-nav-links{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:1fr 1fr;margin-bottom:3rem}.project-nav-link{border:1px solid var(--color-border);border-radius:4px;display:flex;flex-direction:column;gap:.5rem;padding:1.5rem;text-decoration:none;transition:border-color .2s ease,background-color .2s ease}.project-nav-link:hover{background-color:var(--color-surface);border-color:var(--color-text-muted)}.project-nav-link.disabled{visibility:hidden}.project-nav-link.next{text-align:right}.nav-label{color:var(--color-text-muted);font-size:.8125rem}.nav-title{color:var(--color-text);font-size:1.125rem;font-weight:500}.back-to-projects{border-bottom:1px solid var(--color-border);color:var(--color-text-secondary);display:inline-block;font-size:.9375rem;padding-bottom:2px;text-decoration:none;transition:color .2s ease,border-color .2s ease}.back-to-projects:hover{border-color:var(--color-text);color:var(--color-text)}@media (max-width:900px){.project-header-grid{gap:2rem;grid-template-columns:1fr}.project-header-right{padding-top:0}.project-images-grid{grid-template-columns:1fr}}@media (max-width:768px){.project-header{padding:3rem 1.5rem 2rem}.project-content{padding:3rem 1.5rem}.project-navigation{padding:3rem 1.5rem 4rem}.project-nav-links{grid-template-columns:1fr}.project-nav-link.next{text-align:left}.project-section{margin-bottom:3rem}.section-text{font-size:1rem}.project-content-media,.project-content-media .project-image-placeholder{min-height:260px}}.about{min-height:100vh;padding-top:80px}.about-header{border-bottom:1px solid var(--color-border);margin:0 auto;max-width:1200px;padding:4rem 2rem 3rem}.about-title{color:var(--color-text);font-size:clamp(2.5rem,5vw,4rem);font-weight:500;letter-spacing:-.03em;line-height:1.1;margin:0 0 .5rem}.about-role{color:var(--color-text-secondary);font-size:1.25rem;margin:0}.about-content{margin:0 auto;max-width:1200px;padding:4rem 2rem 6rem}.about-grid{grid-gap:6rem;display:grid;gap:6rem;grid-template-columns:2fr 1fr}.about-main{max-width:600px}.about-intro{margin-bottom:3rem}.about-intro p{color:var(--color-text);font-size:1.125rem;line-height:1.7;margin:0 0 1.5rem}.about-intro p:last-child{margin-bottom:0}.about-section{margin-bottom:3rem}.about-section-title{color:var(--color-text-muted);font-size:.875rem;font-weight:500;letter-spacing:.1em;margin:0 0 1.5rem;text-transform:uppercase}.skills-list{display:flex;flex-wrap:wrap;gap:.75rem;list-style:none;margin:0;padding:0}.skill-item{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text);font-size:.9375rem;padding:.5rem 1rem}.experience-list{display:flex;flex-direction:column;gap:1.5rem}.experience-item{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:100px 1fr}.experience-year{color:var(--color-text-muted);font-size:.875rem;padding-top:.25rem}.experience-content h3{color:var(--color-text);font-size:1rem;font-weight:500;margin:0 0 .25rem}.experience-content p{color:var(--color-text-secondary);font-size:.9375rem;line-height:1.5;margin:0}.about-cta{background-color:var(--color-text);border-radius:4px;color:var(--color-background);display:inline-block;font-size:1rem;font-weight:500;margin-top:1rem;padding:1rem 2rem;text-decoration:none;transition:opacity .2s ease}.about-cta:hover{opacity:.85}.about-sidebar{padding-top:.5rem}.contact-block{margin-bottom:2rem}.contact-block-title{color:var(--color-text-muted);font-size:.75rem;font-weight:500;letter-spacing:.1em;margin:0 0 .5rem;text-transform:uppercase}.contact-block p{margin:0}.contact-block p,.contact-link{color:var(--color-text);font-size:1rem}.contact-link{border-bottom:1px solid var(--color-border);padding-bottom:2px;text-decoration:none;transition:border-color .2s ease,opacity .2s ease}.contact-link:hover{border-color:var(--color-text);opacity:.8}@media (max-width:900px){.about-grid{gap:4rem;grid-template-columns:1fr}.about-main{max-width:none}.about-sidebar{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.about-header{padding:3rem 1.5rem 2rem}.about-content{padding:3rem 1.5rem 4rem}.about-sidebar,.experience-item{grid-template-columns:1fr}.experience-item{gap:.5rem}.about-intro p{font-size:1rem}}.contact{min-height:100vh;padding-top:80px}.contact-header{border-bottom:1px solid var(--color-border);margin:0 auto;max-width:1200px;padding:4rem 2rem 3rem}.contact-title{color:var(--color-text);font-size:clamp(2.5rem,5vw,4rem);font-weight:500;letter-spacing:-.03em;line-height:1.1;margin:0 0 1rem}.contact-intro{color:var(--color-text-secondary);font-size:1.25rem;line-height:1.5;margin:0;max-width:620px}.contact-content{margin:0 auto;max-width:1200px;padding:4rem 2rem 6rem}.contact-grid{grid-gap:6rem;display:grid;gap:6rem;grid-template-columns:1fr 1fr}.contact-info{display:flex;flex-direction:column;gap:2.5rem}.contact-method-title{color:var(--color-text-muted);font-size:.75rem;font-weight:500;letter-spacing:.1em;margin:0 0 .75rem;text-transform:uppercase}.contact-method-link{border-bottom:1px solid var(--color-border);color:var(--color-text);font-size:1rem;padding-bottom:2px;text-decoration:none;transition:border-color .2s ease,opacity .2s ease}.contact-method-link:hover{border-color:var(--color-text);opacity:.8}.contact-method-link.large{font-size:1.25rem}.contact-location{color:var(--color-text);font-size:1rem;margin:0}.social-links{display:flex;flex-direction:column;gap:.75rem}.social-link{align-items:center;color:var(--color-text-secondary);display:inline-flex;font-size:1rem;gap:.75rem;text-decoration:none;transition:color .2s ease}.social-link:hover{color:var(--color-text)}.social-link svg{flex-shrink:0}.contact-form-wrapper{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:2rem}.form-title{color:var(--color-text);font-size:1.125rem;font-weight:500;margin:0 0 2rem}.contact-form{gap:1.5rem}.contact-form,.form-group{display:flex;flex-direction:column}.form-group{gap:.5rem}.form-label{color:var(--color-text);font-size:.875rem;font-weight:500}.form-input,.form-textarea{background-color:var(--color-background);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text);font-family:inherit;font-size:1rem;padding:.875rem 1rem;transition:border-color .2s ease,box-shadow .2s ease}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-text-muted)}.form-input:focus,.form-textarea:focus{border-color:var(--color-text-secondary);box-shadow:0 0 0 3px #ffffff0d;outline:none}.form-textarea{min-height:120px;resize:vertical}.form-submit{background-color:var(--color-text);border:none;border-radius:4px;color:var(--color-background);cursor:pointer;font-family:inherit;font-size:1rem;font-weight:500;margin-top:.5rem;padding:1rem 2rem;transition:opacity .2s ease}.form-submit:hover{opacity:.85}.form-success{align-items:center;display:flex;flex-direction:column;gap:1rem;padding:2rem 0;text-align:center}.form-success svg{color:#22c55e}.form-success p{color:var(--color-text);font-size:1rem;margin:0;max-width:280px}.form-reset-btn{background:none;border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-secondary);cursor:pointer;font-family:inherit;font-size:.9375rem;margin-top:.5rem;padding:.75rem 1.5rem;transition:border-color .2s ease,color .2s ease}.form-reset-btn:hover{border-color:var(--color-text-muted);color:var(--color-text)}@media (max-width:900px){.contact-grid{gap:4rem;grid-template-columns:1fr}}@media (max-width:768px){.contact-header{padding:3rem 1.5rem 2rem}.contact-content{padding:3rem 1.5rem 4rem}.contact-form-wrapper{padding:1.5rem}.contact-intro{font-size:1.125rem}}.App{display:flex;flex-direction:column;min-height:100vh}.visually-hidden{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}:focus-visible{outline:2px solid var(--color-text);outline-offset:2px}a:focus-visible{border-radius:2px;outline:2px solid var(--color-text);outline-offset:2px}button{background:none;border:none;cursor:pointer;font:inherit;padding:0}button:focus-visible{outline:2px solid var(--color-text);outline-offset:2px}
/*# sourceMappingURL=main.0f15d5cb.css.map*/