:root{--bg: #ecf0f3;--bg-tint: #e2e8ee;--surface: #ffffff;--border: #d7dee6;--border-strong: #c2ccd6;--shadow: rgba(30, 33, 37, .08);--shadow-strong: rgba(30, 33, 37, .14);--text: #3c3e41;--text-muted: #5a5f63;--heading: #1e2125;--text-strong: #000000;--accent: #d10042;--accent-bright: #f9004d;--accent-hover: #a80035;--accent-tint: rgba(249, 0, 77, .09);--font-sans: "Inter", "San Francisco", "SF Pro Text", -apple-system, system-ui, sans-serif;--font-mono: "Fira Code", "Fira Mono", "Roboto Mono", monospace;--fz-xxs: 11px;--fz-xs: 12px;--fz-sm: 13px;--fz-md: 15px;--fz-lg: 18px;--fz-xl: 20px;--fz-xxl: 22px;--fz-heading: 32px;--border-radius: 10px;--radius-sm: 6px;--nav-height: 70px;--nav-scroll-height: 60px;--easing: cubic-bezier(.645, .045, .355, 1);--transition: all .25s cubic-bezier(.645, .045, .355, 1);--hamburger-width: 30px;--ham-before: top .1s ease-in .25s, opacity .1s ease-in;--ham-before-active: top .1s ease-out, opacity .1s ease-out .12s;--ham-bottom: bottom .1s ease-in .25s, transform .22s cubic-bezier(.55, .055, .675, .19);--ham-bottom-active: bottom .1s ease-out, transform .22s cubic-bezier(.215, .61, .355, 1) .12s}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{margin:0;width:100%;min-height:100%;overflow-x:hidden;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;background-color:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--fz-xl);line-height:1.3}body{position:relative}body.hidden{overflow:hidden}body.blur main>*{filter:blur(5px) brightness(.98);pointer-events:none;-webkit-user-select:none;user-select:none}html{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background-color:var(--border-strong);border:3px solid var(--bg);border-radius:10px}::-webkit-scrollbar-thumb:hover{background-color:#b3bac6}::selection{background-color:var(--accent-tint);color:var(--heading)}h1,h2,h3,h4,h5,h6{margin:0 0 10px;font-weight:600;color:var(--heading);line-height:1.1;letter-spacing:-.02em}a{display:inline-block;text-decoration:none;text-decoration-skip-ink:auto;color:inherit;cursor:pointer;transition:var(--transition)}a:hover,a:focus{color:var(--accent);outline:0}ul,ol{list-style:none}img,svg{width:100%;max-width:100%;vertical-align:middle}button{cursor:pointer;border:0;border-radius:0;background:transparent;font-family:var(--font-mono)}input,textarea{border-radius:0;outline:0}input:focus,textarea:focus{outline:0}input:focus::placeholder,input:active::placeholder,textarea:focus::placeholder,textarea:active::placeholder{opacity:.5}p{margin:0 0 15px}p:last-child,p:last-of-type{margin:0}p>a{color:var(--accent)}p>code{background-color:var(--bg-tint);color:var(--heading);font-size:var(--fz-sm);border-radius:var(--border-radius);padding:.3em .5em}.skip-to-content{position:absolute;top:auto;left:-999px;width:1px;height:1px;overflow:hidden;z-index:-99}.skip-to-content:focus,.skip-to-content:active{background-color:var(--accent-bright);color:#fff;top:0;left:0;width:auto;height:auto;overflow:auto;z-index:99;font-size:var(--fz-sm);font-family:var(--font-mono);font-weight:700;line-height:normal;padding:18px 23px;border-radius:0 0 3px;text-decoration:none}.section{margin:0 auto;padding:44px 0;max-width:1000px}.numbered-heading{display:flex;align-items:center;position:relative;margin:10px 0 32px;width:100%;font-size:clamp(26px,5vw,var(--fz-heading));white-space:nowrap;color:var(--heading)}.numbered-heading:before{position:relative;bottom:4px;counter-increment:section;content:"0" counter(section) ".";margin-right:10px;color:var(--accent);font-family:var(--font-mono);font-size:clamp(var(--fz-md),3vw,var(--fz-xl));font-weight:400}.numbered-heading:after{content:"";display:block;position:relative;top:-5px;width:300px;height:1px;margin-left:20px;background:linear-gradient(to right,var(--border),transparent)}main{counter-reset:section;padding:0 150px}.btn{display:inline-block;padding:1.25rem 1.75rem;border:1px solid var(--accent);border-radius:var(--radius-sm);background-color:transparent;color:var(--accent);font-family:var(--font-mono);font-size:var(--fz-xs);font-weight:600;letter-spacing:.1em;text-decoration:none;cursor:pointer;transition:var(--transition);line-height:1;text-transform:uppercase}.btn:hover,.btn:focus,.btn:active{background-color:var(--accent-tint);color:var(--accent-hover);border-color:var(--accent-hover);outline:none}.btn--solid{background-color:var(--accent-bright);border-color:var(--accent-bright);color:#fff}.btn--solid:hover,.btn--solid:focus,.btn--solid:active{background-color:var(--accent-hover);border-color:var(--accent-hover);color:#fff;transform:translateY(-2px)}.reveal{opacity:0;transform:translateY(20px);transition:opacity .6s var(--easing),transform .6s var(--easing)}.reveal.revealed{opacity:1;transform:translateY(0)}.loader{display:flex;justify-content:center;align-items:center;position:fixed;top:0;left:0;width:100%;height:100%;background-color:var(--bg);z-index:9999;transition:opacity .5s ease,visibility .5s ease}.loader.loaded{opacity:0;visibility:hidden}.loader-logo{width:60px;height:60px;animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.7}}header{display:flex;justify-content:space-between;align-items:center;position:fixed;top:0;z-index:11;padding:0 50px;width:100%;height:var(--nav-height);background-color:#ecf0f3e0;backdrop-filter:blur(12px) saturate(160%);-webkit-backdrop-filter:blur(12px) saturate(160%);filter:none!important;pointer-events:auto!important;-webkit-user-select:auto!important;user-select:auto!important;transition:var(--transition)}header.scrolled{height:var(--nav-scroll-height);border-bottom:1px solid var(--border);box-shadow:0 8px 24px -18px var(--shadow-strong)}header.hidden{border-bottom:1px solid var(--border);box-shadow:0 8px 24px -18px var(--shadow-strong);transform:translateY(calc(var(--nav-scroll-height) * -1))}.nav-logo{display:flex;justify-content:center;align-items:center;width:42px;height:42px;border:1px solid var(--accent);border-radius:var(--radius-sm);color:var(--accent);font-family:var(--font-mono);font-size:20px;font-weight:600;text-decoration:none;transition:var(--transition)}.nav-logo:hover{background-color:var(--accent-tint);color:var(--accent)}nav{display:flex;align-items:center}.nav-links{display:flex;align-items:center;gap:5px;list-style:none;padding:0;margin:0}.nav-links li{counter-increment:nav-counter;font-family:var(--font-mono);font-size:var(--fz-md)}.nav-links li a{padding:10px;color:var(--heading);border-radius:var(--radius-sm)}.nav-links li a:before{content:"0" counter(nav-counter) ".";margin-right:5px;color:var(--accent);font-size:var(--fz-sm)}.nav-links li a:hover{color:var(--accent)}nav{counter-reset:nav-counter}.nav-resume-btn{margin-left:18px;padding:11px 18px;font-size:var(--fz-sm)}.hamburger-btn{display:none;position:relative;z-index:12;margin-right:-15px;padding:15px;border:0;background-color:transparent;color:inherit;text-transform:none;transition-timing-function:linear;transition-duration:.15s;transition-property:opacity,filter}.hamburger-inner,.hamburger-inner:before,.hamburger-inner:after{position:absolute;width:var(--hamburger-width);height:2px;border-radius:var(--border-radius);background-color:var(--accent-bright);transition-timing-function:ease;transition-duration:.15s;transition-property:transform}.hamburger-inner{display:block;margin-top:-1px;top:auto;bottom:0;transition-duration:.13s;transition-delay:.13s;transition-timing-function:cubic-bezier(.55,.055,.675,.19)}.hamburger-inner:before{content:"";top:-10px;display:block;transition:var(--ham-before)}.hamburger-inner:after{content:"";bottom:-10px;display:block;transition:var(--ham-bottom)}.hamburger-box{position:relative;display:inline-block;width:var(--hamburger-width);height:24px}.hamburger-btn.open .hamburger-inner{transform:translate3d(0,-10px,0) rotate(-45deg);transition-delay:.22s;transition-timing-function:cubic-bezier(.215,.61,.355,1)}.hamburger-btn.open .hamburger-inner:before{top:0;opacity:0;transition:var(--ham-before-active)}.hamburger-btn.open .hamburger-inner:after{bottom:0;transform:rotate(-90deg);transition:var(--ham-bottom-active)}.mobile-menu{display:none;justify-content:center;align-items:center;position:fixed;top:0;bottom:0;right:0;padding:50px 10px;width:min(75vw,400px);height:100vh;outline:0;background-color:var(--surface);border-left:1px solid var(--border);box-shadow:-20px 0 40px -24px var(--shadow-strong);z-index:11;transform:translate(100vw);visibility:hidden;transition:var(--transition);counter-reset:nav-counter}.mobile-menu.open{transform:translate(0);visibility:visible}.mobile-menu nav{display:flex;justify-content:space-between;align-items:center;width:100%;flex-direction:column;color:var(--heading);font-family:var(--font-mono);text-align:center}.mobile-nav-links{padding:0;margin:0;list-style:none;width:100%}.mobile-nav-links li{counter-increment:nav-counter;margin:0 auto 20px;font-size:clamp(var(--fz-sm),4vw,var(--fz-lg))}.mobile-nav-links li a{display:inline-flex;flex-direction:column;align-items:center;color:var(--heading);width:100%;padding:3px 20px 20px}.mobile-nav-links li a:before{content:"0" counter(nav-counter) ".";display:block;margin-bottom:5px;color:var(--accent);font-size:var(--fz-sm)}.mobile-nav-links li a:hover{color:var(--accent)}.mobile-resume-btn{padding:18px 50px;margin:10px auto 0;font-size:var(--fz-sm)}.blur-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#10182847;z-index:10;display:none}.blur-overlay.visible{display:block}.social-wrapper,.email-wrapper{width:40px;position:fixed;bottom:0;left:40px;right:auto;z-index:10;color:var(--text-muted)}.email-wrapper{left:auto;right:40px}.social-links{display:flex;flex-direction:column;align-items:center;gap:20px;list-style:none;padding:0;margin:0}.social-links:after{content:"";display:block;width:1px;height:90px;margin:0 auto;background-color:var(--text-muted)}.social-links li a{display:inline-flex;align-items:center;padding:10px;color:var(--text-muted);transition:var(--transition)}.social-links li a:hover{color:var(--accent);transform:translateY(-3px)}.social-links li a svg{width:18px;height:18px}.email-link{display:flex;flex-direction:column;align-items:center;position:relative;letter-spacing:.1em;writing-mode:vertical-rl;font-family:var(--font-mono);font-size:var(--fz-xxs);color:var(--text-muted);transition:var(--transition)}.email-link:after{content:"";display:block;width:1px;height:90px;margin:20px auto 0;background-color:var(--text-muted)}.email-link:hover{color:var(--accent);transform:translateY(-3px)}#hero{display:flex;justify-content:center;flex-direction:column;align-items:flex-start;min-height:100vh;padding:0;max-width:1000px;margin:0 auto}.hero-overline{margin:0 0 24px 4px;color:var(--text-muted);font-family:var(--font-mono);font-size:clamp(var(--fz-sm),5vw,var(--fz-md));font-weight:400;text-transform:uppercase;letter-spacing:.18em}.hero-title{margin:0;font-size:clamp(34px,6vw,62px);color:var(--accent);font-weight:700;line-height:1.08;letter-spacing:-.03em}.hero-subtitle{margin-top:8px;font-size:clamp(26px,4.6vw,52px);color:var(--heading);font-weight:700;line-height:1.05;letter-spacing:-.03em}.hero-description{margin:26px 0 0;max-width:560px;color:var(--text);font-size:var(--fz-lg);line-height:1.7}.hero-cta{margin-top:46px;font-size:var(--fz-sm);padding:20px 28px}#about{max-width:900px}.about-inner{display:grid;grid-template-columns:3fr 2fr;gap:50px}.about-text p{margin-bottom:15px;color:var(--text);font-size:var(--fz-lg);line-height:1.7}.about-skills-intro{margin-bottom:20px!important;color:var(--text)}.skills-grid{display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:0;list-style:none}.skills-grid li{padding:7px 14px;font-family:var(--font-mono);font-size:var(--fz-xs);line-height:1.2;color:var(--text);background-color:var(--surface);border-radius:999px;box-shadow:3px 3px 8px var(--shadow),-3px -3px 8px #ffffffe6;transition:var(--transition)}.skills-grid li:hover{color:var(--accent);transform:translateY(-2px)}.about-image-wrapper{position:relative;max-width:300px;width:100%;align-self:start;line-height:0}.about-image-wrapper .img-placeholder{width:100%;height:320px;overflow:hidden;background-color:var(--surface);border-radius:var(--border-radius);border:1px solid var(--border);position:relative;z-index:1;transition:var(--transition)}.about-image-wrapper .img-placeholder img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;filter:grayscale(1);transition:var(--transition)}.about-image-wrapper:hover .img-placeholder img{filter:grayscale(0)}.about-image-wrapper:before{content:"";display:block;position:absolute;width:100%;height:100%;border-radius:var(--border-radius);top:16px;left:16px;border:1px solid var(--accent);z-index:0;transition:var(--transition)}.about-image-wrapper:hover:before{top:10px;left:10px}#experience{max-width:700px}.exp-inner{display:flex;min-height:340px}.exp-tabs{display:flex;flex-direction:column;position:relative;width:max-content;z-index:3}.exp-tab-btn{display:inline-flex;align-items:center;width:100%;height:var(--tab-height, 42px);padding:0 20px 2px;border-left:2px solid var(--border);background-color:transparent;color:var(--text);font-family:var(--font-mono);font-size:var(--fz-xs);text-align:left;white-space:nowrap;transition:var(--transition);cursor:pointer}.exp-tab-btn:hover,.exp-tab-btn:focus{background-color:var(--surface);color:var(--accent);outline:0}.exp-tab-btn.active{color:var(--accent);border-left-color:var(--accent);background-color:var(--accent-tint);font-weight:500}.exp-panels{position:relative;width:100%;margin-left:20px}.exp-panel{width:100%;height:auto;padding:10px 5px;display:none;animation:fadeIn .25s ease forwards}.exp-panel.active{display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.exp-panel h3{margin-bottom:2px;font-size:var(--fz-xxl);font-weight:500;color:var(--heading);line-height:1.3}.exp-company-link{color:var(--accent)}.exp-range{margin-bottom:25px;color:var(--text-muted);font-family:var(--font-mono);font-size:var(--fz-xs)}.exp-duties{padding:0;margin:0;list-style:none}.exp-duties li{position:relative;padding-left:30px;margin-bottom:10px;color:var(--text);font-size:var(--fz-md);line-height:1.6}.exp-duties li:before{content:"▹";position:absolute;left:0;color:var(--accent)}#work{max-width:1000px}.featured-projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;list-style:none;padding:0;margin:0}.featured-project{position:relative;display:flex;flex-direction:column;padding:18px 18px 28px;border-radius:14px;background-color:var(--surface);box-shadow:8px 8px 20px var(--shadow),-8px -8px 20px #ffffffd9;transition:transform .25s var(--easing),box-shadow .25s var(--easing)}.featured-project:hover{transform:translateY(-6px);box-shadow:10px 10px 28px var(--shadow-strong),-10px -10px 28px #ffffffe6}.featured-project .project-image{order:-1;margin-bottom:22px}.project-content{position:relative;z-index:5;display:flex;flex-direction:column;flex:1;padding:0 8px}.project-overline{margin:0 0 10px;color:var(--accent);font-family:var(--font-sans);font-size:var(--fz-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase}.project-title{font-size:clamp(22px,4vw,26px);color:var(--heading);font-weight:700;margin-bottom:16px}.project-title a{color:var(--heading)}.project-title a:hover{color:var(--accent)}.project-description{position:relative;z-index:2;color:var(--text);font-size:var(--fz-md);line-height:1.7}.project-description p{margin:0 0 18px;color:var(--text)}.project-responsibilities{list-style:none;padding:0;margin:0}.project-responsibilities li{position:relative;padding-left:18px;margin-bottom:7px;font-size:var(--fz-sm);color:var(--text);line-height:1.5}.project-responsibilities li:before{content:"▹";position:absolute;left:0;color:var(--accent);font-size:var(--fz-sm);line-height:1.4}.project-sub{margin-top:14px}.project-sub-label{font-size:var(--fz-xs);color:var(--accent);font-family:var(--font-mono);margin:0 0 8px}.project-sub-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}.project-sub-list li{font-size:var(--fz-xxs);font-family:var(--font-mono);color:var(--text);background-color:var(--surface);border:1px solid var(--border);border-radius:999px;padding:4px 10px}.project-tech-list{display:flex;flex-wrap:wrap;position:relative;z-index:2;margin:25px 0 10px;padding:0;list-style:none;gap:10px 20px}.project-tech-list li{color:var(--text-muted);font-family:var(--font-mono);font-size:var(--fz-xs);white-space:nowrap}.project-links{display:flex;align-items:center;position:relative;margin-top:10px;margin-left:-10px;color:var(--heading);gap:5px}.project-links a{display:flex;justify-content:center;align-items:center;padding:10px;color:var(--text-muted);transition:var(--transition)}.project-links a:hover{color:var(--accent);transform:translateY(-3px)}.project-links a svg{width:20px;height:20px}.project-image{position:relative;z-index:1}.project-image-inner{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:240px;border-radius:var(--border-radius);overflow:hidden;background-color:var(--bg-tint);transition:var(--transition)}.project-image-inner img{width:100%;height:100%;object-fit:contain;display:block}#projects{max-width:1080px}.other-projects-header{text-align:center;margin-bottom:50px}.other-projects-header h2{font-size:clamp(24px,5vw,var(--fz-heading));color:var(--heading)}.archive-link{display:inline-block;margin-top:20px;font-family:var(--font-mono);font-size:var(--fz-sm);color:var(--accent)}.archive-link:after{content:"";display:block;width:0;height:1px;background-color:var(--accent);transition:width .3s ease}.archive-link:hover:after{width:100%}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:15px;position:relative;list-style:none;padding:0;margin:0}.project-card{cursor:default;transition:var(--transition)}.project-card:hover{transform:translateY(-5px)}.project-card-image{display:block;width:100%;overflow:hidden;border-radius:var(--border-radius) var(--border-radius) 0 0;border-bottom:1px solid var(--border)}.project-card-image img{width:100%;height:180px;object-fit:cover;object-position:top;display:block;transition:transform .4s ease}.project-card:hover .project-card-image img{transform:scale(1.04)}.project-card-inner{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;position:relative;height:100%;padding:2rem 1.75rem;border-radius:var(--border-radius);background-color:var(--surface);border:1px solid var(--border);transition:var(--transition);overflow:auto}.project-card:hover .project-card-inner{border-color:var(--border-strong)}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:35px}.folder-icon{color:var(--accent)}.folder-icon svg{width:40px;height:40px}.card-links{display:flex;align-items:center;gap:5px}.card-links a{display:flex;justify-content:center;align-items:center;padding:5px 7px;color:var(--text-muted);transition:var(--transition)}.card-links a:hover{color:var(--accent);transform:translateY(-3px)}.card-links a svg{width:18px;height:18px}.card-title{margin:0 0 10px;font-size:var(--fz-xxl);color:var(--heading);font-weight:600}.project-card:hover .card-title{color:var(--accent)}.card-description{color:var(--text-muted);font-size:var(--fz-sm);line-height:1.6;margin-bottom:16px}.card-responsibilities{list-style:none;padding:0;margin:0 0 16px}.card-responsibilities li{position:relative;padding-left:18px;margin-bottom:8px;font-size:var(--fz-xs);color:var(--text);line-height:1.6}.card-responsibilities li:before{content:"▹";position:absolute;left:0;color:var(--accent);font-size:var(--fz-sm);line-height:1.4}.card-tech-list{display:flex;flex-wrap:wrap;align-items:flex-end;flex-grow:1;padding:0;margin:20px 0 0;list-style:none;gap:0 15px}.card-tech-list li{font-family:var(--font-mono);font-size:var(--fz-xxs);color:var(--text);line-height:1.75}#contact{max-width:600px;margin:0 auto 40px;text-align:center}.contact-overline{display:block;margin-bottom:20px;color:var(--accent);font-family:var(--font-mono);font-size:var(--fz-md);font-weight:400}.contact-overline:before{bottom:0;counter-increment:section;content:"0" counter(section) ".";margin-right:10px}.contact-title{font-size:clamp(40px,5vw,60px);color:var(--heading);margin-bottom:20px}.contact-description{margin:0 auto 50px;color:var(--text);font-size:var(--fz-lg);line-height:1.7}.contact-cta{font-size:var(--fz-sm);padding:20px 28px;margin-top:30px}footer{display:flex;justify-content:center;align-items:center;flex-direction:column;height:auto;min-height:70px;padding:15px;text-align:center}.footer-social{display:none;color:var(--text-muted);width:100%;margin:0 auto 10px}.footer-social ul{display:flex;justify-content:center;align-items:center;padding:0;margin:0;list-style:none;gap:10px}.footer-social ul a{padding:10px;color:var(--text-muted);transition:var(--transition)}.footer-social ul a:hover{color:var(--accent);transform:translateY(-3px)}.footer-social ul a svg{width:18px;height:18px}.footer-credit{color:var(--text-muted);font-family:var(--font-mono);font-size:var(--fz-xxs);line-height:1}.footer-credit a{color:var(--text-muted);font-size:var(--fz-xxs)}.footer-credit a:hover{color:var(--accent)}@media (max-width: 1080px){main{padding:0 100px}}@media (max-width: 768px){main{padding:0 50px}.nav-links,.nav-resume-btn{display:none}.hamburger-btn{display:flex;justify-content:center;align-items:center}.mobile-menu{display:flex}.social-wrapper,.email-wrapper{display:none}.footer-social{display:block}.about-inner{grid-template-columns:1fr}.about-image-wrapper{margin:36px auto 0;max-width:250px}.featured-projects{grid-template-columns:1fr;gap:24px}.exp-inner{flex-direction:column;min-height:auto}.exp-tabs{flex-direction:row;overflow-x:auto;width:100%;border-left:none;border-bottom:2px solid var(--border);margin-bottom:20px}.exp-tab-btn{border-left:none;border-bottom:2px solid transparent;padding:15px 15px 12px;min-width:max-content;margin-bottom:-2px}.exp-tab-btn.active{border-left:none;border-bottom-color:var(--accent)}.exp-panels{margin-left:0}}@media (max-width: 480px){main{padding:0 25px}header{padding:0 25px}.section{padding:48px 0}.projects-grid{grid-template-columns:1fr}.featured-project{padding:14px 14px 22px}.project-image-inner{height:200px}}
