:root{--bg-color:#0d0d0d;--text-primary:#e0e0e0;--text-secondary:#999;--accent-red:#e11d48;--border-color:#333;--bg-surface:#1a1a1a;--font-mono:"IBM Plex Mono", monospace;--font-display:"Space Grotesk", sans-serif;--font-sans:"Space Grotesk", sans-serif}:root.light-theme{--bg-color:#fff;--text-primary:#111;--text-secondary:#555;--accent-red:#e11d48;--border-color:#e5e5e5;--bg-surface:#f5f5f5}body{background-color:var(--bg-color);color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;padding:0;line-height:1.6}#app{max-width:1400px;margin:0 auto}.site-wrapper{min-height:100vh;display:flex}.side-index{border-right:1px solid var(--border-color);box-sizing:border-box;flex-direction:column;width:250px;height:100vh;padding:4rem 2rem;display:flex;position:sticky;top:0}.logo{font-family:var(--font-display);letter-spacing:-.05em;margin-bottom:4rem;font-size:2rem;font-weight:700}.side-index nav ul{flex-direction:column;gap:1.5rem;margin:0;padding:0;list-style:none;display:flex}.nav-link{font-family:var(--font-mono);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.1em;align-items:center;font-size:.85rem;text-decoration:none;transition:color .1s step-end;display:inline-flex;position:relative}.nav-link:hover{color:var(--text-primary)}.nav-link:before{content:">";color:var(--accent-red);opacity:0;transition:opacity .1s step-end;position:absolute;left:-1rem}.nav-link:hover:before{opacity:1}.nav-link.active{color:var(--accent-red)}.nav-link.active:before{opacity:1;animation:1s step-end infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.side-footer{align-items:center;gap:1.25rem;margin-top:auto;display:flex}.theme-toggle{border:1px solid var(--text-primary);width:24px;height:24px;color:var(--text-primary);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:transform .2s cubic-bezier(.34,1.56,.64,1),background-color .2s,color .2s;display:flex}.theme-toggle:active{transform:scale(.8)}.sun-icon{display:none}:root.light-theme .theme-toggle{background-color:var(--text-primary);color:var(--bg-color)}:root.light-theme .moon-icon{display:none}:root.light-theme .sun-icon{display:block}.lang-dropdown{position:relative}.lang-toggle{font-family:var(--font-mono);color:var(--text-secondary);cursor:pointer;text-transform:uppercase;background:0 0;border:none;align-items:center;gap:.25rem;padding:0;font-size:.75rem;transition:color .1s step-end;display:flex}.lang-toggle:hover{color:var(--text-primary)}.lang-toggle .chevron{width:14px;height:14px;transition:transform .1s step-end}.lang-dropdown.open .chevron{transform:rotate(180deg)}.lang-menu{background-color:var(--bg-color);border:1px solid var(--border-color);z-index:10;flex-direction:column;min-width:120px;margin:0 0 .5rem;padding:.25rem 0;list-style:none;display:none;position:absolute;bottom:100%;left:0}.lang-dropdown.open .lang-menu{display:flex}.lang-option{font-family:var(--font-mono);color:var(--text-secondary);text-align:left;cursor:pointer;text-transform:uppercase;background:0 0;border:none;width:100%;padding:.5rem 1rem;font-size:.75rem;transition:background-color .1s step-end,color .1s step-end}.lang-option:hover{background-color:var(--text-primary);color:var(--bg-color)}.content-wrapper{flex:1;max-width:900px;padding:4rem 6rem}.section-divider{background-color:var(--border-color);border:0;height:1px;margin:4rem 0}.hero-section{flex-direction:column;justify-content:center;min-height:70vh;display:flex}.hero-metadata{font-family:var(--font-mono);color:var(--text-secondary);letter-spacing:.15em;text-transform:uppercase;align-items:center;gap:1rem;margin-bottom:1.5rem;font-size:.8rem;display:flex}.location-tag{align-items:center;gap:.5rem;display:inline-flex}.location-tag img,.location-row img{object-fit:cover;border-radius:3px;width:18px;height:14px}.location-divider{color:var(--border-color)}.hero-title{font-family:var(--font-display);letter-spacing:-.03em;margin:0 0 1rem;font-size:5rem;font-weight:700;line-height:1.1}.hero-subtitle{font-family:var(--font-mono);color:var(--text-secondary);margin:0 0 2rem;font-size:1.25rem}.hero-description{max-width:42rem;color:var(--text-secondary);margin-bottom:3rem;font-size:1.125rem}.hero-actions{gap:1.5rem;display:flex}.btn{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;border:1px solid var(--border-color);cursor:pointer;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:.8rem;text-decoration:none;transition:background-color .1s step-end,color .1s step-end,border-color .1s step-end;display:inline-flex;position:relative}.btn:after{content:"";background-color:var(--accent-red);width:0;height:2px;transition:width .2s ease-out;position:absolute;bottom:0;left:0}.btn:hover:after{width:100%}.btn-primary{background-color:var(--text-primary);color:var(--bg-color);border-color:var(--text-primary)}.btn-primary:hover,.btn-outline{color:var(--text-primary);background-color:#0000}.btn-outline:hover{background-color:var(--bg-surface);border-color:var(--text-secondary)}.btn .icon{width:1rem;height:1rem}.content-section{grid-template-columns:200px 1fr;gap:3rem;margin-bottom:4rem;scroll-margin-top:8rem;display:grid}.section-header{align-self:start;position:sticky;top:4rem}.section-number{font-family:var(--font-mono);color:var(--text-secondary);margin-bottom:.5rem;font-size:.85rem;transition:color .2s step-end,transform .2s ease-out;display:inline-block}.content-section.is-visible .section-number{color:var(--accent-red);transform:translate(4px)}.content-section.is-visible .section-number:after{content:"_";animation:1s step-end infinite blink}.section-title{font-family:var(--font-mono);letter-spacing:.2em;color:var(--text-primary);margin:0;font-size:.85rem}.section-body{color:var(--text-secondary);font-size:1rem}.section-body p{margin-top:0;margin-bottom:1.5rem}.section-intro{margin-bottom:3rem}.spec-entries{flex-direction:column;gap:3rem;display:flex}.spec-entry{grid-template-columns:150px 1fr;gap:2rem;display:grid}.spec-meta{font-family:var(--font-mono);color:var(--text-secondary);font-size:.85rem}.spec-details h3{font-family:var(--font-display);color:var(--text-primary);margin:0 0 .5rem;font-size:1.25rem}.spec-role{font-family:var(--font-mono);color:var(--text-secondary);margin-bottom:1rem;font-size:.85rem}.location-row{font-family:var(--font-mono);color:var(--text-secondary);text-transform:uppercase;align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:.75rem;display:flex}.hover-link{color:var(--text-primary);border-bottom:1px dashed var(--border-color);text-decoration:none;transition:border-bottom-color .1s step-end,color .1s step-end}.hover-link:hover{border-bottom:1px solid var(--accent-red);color:var(--accent-red)}.projects-carousel-container{position:relative}.projects-carousel{scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;gap:3rem;display:flex;overflow-x:auto}.projects-carousel::-webkit-scrollbar{display:none}.project-card{scroll-snap-align:start;box-sizing:border-box;flex:0 0 100%;grid-template-columns:1fr 1.5fr;align-items:start;gap:3rem;min-width:100%;display:grid}.coming-soon-card{border:1px dashed var(--border-color);border-radius:6px;justify-content:center;align-items:center;min-height:300px;display:flex}.coming-soon-content h3{font-family:var(--font-mono);color:var(--text-secondary);text-align:center;font-size:1.25rem}.carousel-nav{background:var(--bg-color);border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;z-index:10;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:background-color .2s,color .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.carousel-nav:hover{background:var(--text-primary);color:var(--bg-color)}.carousel-nav.prev{left:-60px}.carousel-nav.next{right:-60px}.carousel-dots{justify-content:center;gap:.5rem;margin-top:1.5rem;display:none}.carousel-dot{background:var(--border-color);cursor:pointer;border:none;border-radius:50%;width:8px;height:8px;padding:0;transition:background-color .2s}.carousel-dot.active{background:var(--text-primary)}.project-image-link{border:1px solid var(--border-color);border-radius:6px;transition:border-color .1s step-end;display:block;overflow:hidden}.project-image-link:hover{border-color:var(--text-primary)}.project-image{border-radius:5px;width:100%;height:auto;display:block}.project-details h3{font-family:var(--font-display);color:var(--text-primary);margin:0 0 1rem;font-size:1.5rem}.tech-tags{flex-wrap:wrap;gap:.5rem;margin:1.5rem 0;display:flex}.tag{font-family:var(--font-mono);color:var(--text-secondary);border:1px solid var(--border-color);cursor:default;padding:.25rem .5rem;font-size:.75rem;transition:background-color .1s step-end,color .1s step-end}.tag:hover{background-color:var(--text-primary);color:var(--bg-color)}.project-link{font-family:var(--font-mono);color:var(--text-primary);align-items:center;gap:.5rem;margin-top:1rem;font-size:.8rem;text-decoration:none;transition:color .1s step-end;display:inline-flex}.project-link:hover{color:var(--accent-red)}.skills-grid{border:1px solid var(--border-color);grid-template-columns:repeat(3,1fr);display:grid}.skills-column{border-right:1px solid var(--border-color);padding:2rem}.skills-column:last-child{border-right:none}.skills-column h3{font-family:var(--font-mono);letter-spacing:.15em;color:var(--text-secondary);margin:0 0 1.5rem;font-size:.75rem}.skills-column ul{margin:0;padding:0;list-style:none}.skills-column li{font-family:var(--font-mono);align-items:center;margin-bottom:.75rem;font-size:.85rem;display:flex}.skills-column .bullet{color:var(--accent-red);margin-right:.5rem}.contact-actions{gap:1rem;margin-top:2rem;display:flex}.site-footer{font-family:var(--font-mono);color:var(--text-secondary);justify-content:space-between;align-items:center;padding-top:2rem;padding-bottom:4rem;font-size:.75rem;display:flex}.footer-right{align-items:center;gap:1.5rem;display:flex}.footer-socials{align-items:center;gap:1rem;display:flex}.social-link{color:var(--text-secondary);transition:color .1s step-end;display:inline-flex}.social-link:hover{color:var(--accent-red)}.back-to-top{color:var(--text-secondary);text-transform:uppercase;align-items:center;gap:.5rem;text-decoration:none;display:inline-flex}.mobile-only{display:none}@media (width<=1024px){.site-wrapper{flex-direction:column}.side-index{z-index:50;background-color:var(--bg-color);box-sizing:border-box;border-right:none;border-bottom:1px solid var(--border-color);flex-direction:row;justify-content:space-between;align-items:center;width:100%;height:auto;padding:1rem 1.5rem;display:flex;position:sticky;top:0}.mobile-only{display:block}.side-index .logo{cursor:pointer;align-items:center;gap:.5rem;margin-bottom:0;font-size:1.5rem;display:flex}.side-index .logo .chevron{transition:transform .2s}.side-index .logo.open .chevron{transform:rotate(180deg)}.side-index nav{background-color:var(--bg-color);border-bottom:1px solid var(--border-color);box-sizing:border-box;width:100%;padding:1rem 1.5rem;display:none;position:absolute;top:100%;left:0}.side-index nav.open{display:block}.side-index nav ul{gap:1rem}.side-footer{background:0 0;border:none;border-radius:0;margin:0;padding:0;position:relative}.lang-menu{margin:.5rem 0 0;inset:100% 0 auto auto}.content-wrapper{max-width:100%;padding:1.5rem}.content-section{grid-template-columns:1fr;gap:1rem}.section-header{margin-bottom:1rem;position:static}}@media (width<=768px){.hero-title{font-size:2.5rem}.content-wrapper{padding:1.5rem 1rem}.spec-entry{grid-template-columns:1fr;gap:.5rem}.project-card{grid-template-columns:1fr;gap:1.5rem}.skills-grid{grid-template-columns:1fr}.skills-column{border-right:none;border-bottom:1px solid var(--border-color)}.skills-column:last-child{border-bottom:none}.hero-actions,.contact-actions{flex-direction:column}.site-footer{text-align:center;flex-direction:column-reverse;align-items:center;gap:1.5rem}.footer-right{justify-content:space-between;width:100%}.carousel-nav{display:none}.carousel-dots{display:flex}}
