:root{--black:#000;--white:#fff;--gray-light:#f5f5f5;--gray-medium:#e0e0e0;--gray-dark:#666;--green:#0f0;--spacing-unit:1rem;--transition:all 0.3s cubic-bezier(0.4,0,0.2,1);--transition-slow:all 0.6s cubic-bezier(0.4,0,0.2,1);--bg-dark:#000;--bg-light:#fff;--text-dark:#fff;--text-light:#000}body.dark-mode{--bg-primary:var(--bg-dark);--bg-secondary:var(--bg-light);--text-primary:var(--text-dark);--text-secondary:var(--text-light)}body:not(.dark-mode){--bg-primary:var(--bg-light);--bg-secondary:var(--bg-dark);--text-primary:var(--text-light);--text-secondary:var(--text-dark)}*{margin:0;padding:0;box-sizing:border-box}@media (hover:hover) and (pointer:fine){*{cursor:none!important}body{cursor:none}}html{scroll-behavior:smooth}body,html{overflow-x:hidden}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--text-primary);background-color:var(--bg-primary);line-height:1.6;transition:background-color .8s ease,color .8s ease}.cursor{width:12px;height:12px;border-radius:50%;background-color:var(--black);position:fixed;top:50%;left:50%;pointer-events:none;z-index:99999;transform:translate(-50%,-50%);transition:width .2s,height .2s,background-color .8s ease;will-change:transform;opacity:1;display:none;visibility:hidden}body.dark-mode .cursor{background-color:var(--white)}.cursor-follower{width:40px;height:40px;border:2px solid var(--black);border-radius:50%;position:fixed;top:50%;left:50%;pointer-events:none;z-index:99998;transform:translate(-50%,-50%);transition:width .3s,height .3s,border-color .8s ease;will-change:transform;opacity:.5;display:none;visibility:hidden}body.dark-mode .cursor-follower{border-color:var(--white)}@media (hover:hover) and (pointer:fine){.cursor,.cursor-follower{display:block;visibility:visible}}body:hover .cursor{width:8px;height:8px}.magnetic:hover~.cursor,.magnetic:hover~.cursor-follower,a:hover~.cursor,a:hover~.cursor-follower,button:hover~.cursor,button:hover~.cursor-follower{transform:translate(-50%,-50%) scale(1.5)}.loader{position:fixed;top:0;left:0;width:100%;height:100%;background-color:var(--white);z-index:10000;display:flex;align-items:center;justify-content:center;transition:opacity .5s,visibility .5s}.loader.hidden{opacity:0;visibility:hidden}.loader-content{text-align:center}.loader-text{display:flex;flex-direction:column;align-items:center;gap:.5rem;margin-bottom:2rem;opacity:0;animation:fadeInUp .6s ease forwards}.loader-name{font-size:2rem;font-weight:900;letter-spacing:.2em}.loader-subtitle{font-size:1rem;font-weight:400;font-style:italic;letter-spacing:.1em;color:var(--gray-dark);opacity:0;animation:fadeInUp .6s ease .3s forwards}.loader-bar{width:200px;height:2px;background-color:var(--gray-light);border-radius:2px;overflow:hidden;margin:0 auto}.loader-progress{height:100%;background-color:var(--black);width:0;animation:loading 1.5s ease forwards}@keyframes loading{to{width:100%}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.container{max-width:1400px;margin:0 auto;padding:0 2rem}@media (max-width:768px){.container{padding:0 1.5rem}}.header{position:fixed;top:0;left:0;width:100%;padding:1.5rem 0;background-color:rgba(var(--bg-primary-rgb,255,255,255),.95);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1000;border-bottom:1px solid var(--gray-medium);transition:background-color .8s ease,color .8s ease,border-color .8s ease;color:var(--text-primary)}body.dark-mode .header{background-color:rgba(0,0,0,.95);border-bottom-color:hsla(0,0%,100%,.1)}body:not(.dark-mode) .header{background-color:hsla(0,0%,100%,.95);border-bottom-color:var(--gray-medium)}.header .container{display:grid;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:2rem;gap:2rem;position:relative}.header-right{display:flex;align-items:center;justify-content:flex-end;margin-left:auto;gap:1rem}.header-logo{position:absolute;left:50%;transform:translateX(-50%);opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;pointer-events:none}.header-logo.visible{opacity:1;visibility:visible}.header-logo-text{font-family:var(--font-press-start),"Press Start 2P","Courier New",monospace;font-size:1rem;font-weight:400;letter-spacing:.05em;-webkit-text-stroke:1px var(--black);-webkit-text-fill-color:transparent;color:transparent;display:inline-block;transition:opacity .4s ease,transform .4s ease,-webkit-text-stroke-color .8s ease;animation:morphIn .4s ease forwards}body.dark-mode .header-logo-text{-webkit-text-stroke-color:var(--white)}.header-logo-text.karel{animation:morphToKarel .4s ease forwards}.header-logo-text.gustin{animation:morphToGustin .4s ease forwards}.header-logo-text.my-name-is{-webkit-text-stroke:none;-webkit-text-fill-color:var(--black);color:var(--black)}body.dark-mode .header-logo-text.my-name-is{-webkit-text-fill-color:var(--white);color:var(--white)}@keyframes morphIn{0%{opacity:0;transform:scale(.8) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes morphToKarel{0%{opacity:0;transform:scale(.8) translateX(-10px)}50%{opacity:.5;transform:scale(.9) translateX(0)}to{opacity:1;transform:scale(1) translateX(0)}}@keyframes morphToGustin{0%{opacity:0;transform:scale(.8) translateX(10px)}50%{opacity:.5;transform:scale(.9) translateX(0)}to{opacity:1;transform:scale(1) translateX(0)}}.status-indicator{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background-color:var(--gray-light);border-radius:20px;font-size:.875rem;white-space:nowrap;transition:background-color .8s ease,color .8s ease,padding .7s cubic-bezier(.4,0,.2,1),gap .7s cubic-bezier(.4,0,.2,1),width .7s cubic-bezier(.4,0,.2,1),height .7s cubic-bezier(.4,0,.2,1),border-radius .7s cubic-bezier(.4,0,.2,1);transform-origin:right center;overflow:hidden}body.dark-mode .status-indicator{background-color:hsla(0,0%,100%,.1)}.status-link{text-decoration:none;transition:var(--transition);cursor:none}.status-link:hover{background-color:var(--black);transform:translateX(3px)}body.dark-mode .status-link:hover{background-color:var(--white)}body.dark-mode .status-link:hover .status-text,body.dark-mode .status-link:hover .status-text-mobile{color:var(--black)}.status-link:hover .status-text,.status-link:hover .status-text-mobile{color:var(--white)}.status-icon{transition:transform .3s ease,opacity .3s ease,color .8s ease;opacity:.7;display:block;flex-shrink:0;color:var(--black)}body.dark-mode .status-icon{color:var(--white)}.status-link:hover .status-icon{opacity:1;transform:translateX(3px)}.status-dot{width:8px;height:8px;background-color:var(--green);border-radius:50%;display:inline-block;animation:pulse 2s infinite;transition:width .7s cubic-bezier(.4,0,.2,1),height .7s cubic-bezier(.4,0,.2,1);flex-shrink:0}.status-indicator.at-top{padding:0;background-color:transparent;gap:0;width:20px;height:20px;min-width:20px;justify-content:center;align-items:center;border-radius:50%;transform-origin:right center}.status-indicator.at-top .status-dot{width:20px;height:20px;animation:pulseGreen 1.5s infinite}.status-icon,.status-text,.status-text-mobile{transition:opacity .7s cubic-bezier(.4,0,.2,1) .2s,transform .7s cubic-bezier(.4,0,.2,1) .2s,width .7s cubic-bezier(.4,0,.2,1),max-width .7s cubic-bezier(.4,0,.2,1);opacity:1;max-width:200px;overflow:hidden}.status-indicator.at-top .status-icon,.status-indicator.at-top .status-text,.status-indicator.at-top .status-text-mobile{opacity:0;width:0;max-width:0;overflow:hidden;pointer-events:none;transition:opacity .3s ease,width .3s ease,max-width .3s ease}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulseGreen{0%,to{opacity:1;transform:scale(1);box-shadow:0 0 0 0 rgba(0,255,0,.7)}50%{opacity:.8;transform:scale(1.1);box-shadow:0 0 0 8px rgba(0,255,0,0)}}.status-text{color:var(--black);font-weight:500;transition:color .8s ease}body.dark-mode .status-text{color:var(--white)}.status-text-mobile{display:none;color:var(--black);font-weight:500;transition:color .8s ease}body.dark-mode .status-text-mobile{color:var(--white)}.nav{display:flex;gap:2rem;align-items:center}.nav-link{color:var(--text-primary);text-decoration:none;font-size:.95rem;font-weight:500;position:relative;transition:var(--transition)}.nav-link:after{content:"";position:absolute;bottom:-5px;left:0;width:0;height:2px;background-color:var(--text-primary);transition:width .3s ease}.nav-link.active:after,.nav-link:hover:after{width:100%}.header-cta{background-color:var(--black);color:var(--white);border:none;padding:.75rem 1.5rem;border-radius:25px;font-size:.6rem;font-weight:500;cursor:none;display:flex;align-items:center;gap:.5rem;transition:background-color .8s ease,color .8s ease,transform .3s ease,box-shadow .3s ease;white-space:nowrap}body.dark-mode .header-cta{background-color:var(--white);color:var(--black)}.header-cta:hover{transform:translateY(-2px);box-shadow:0 10px 20px rgba(0,0,0,.1)}.mobile-menu-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:none;padding:.5rem;order:-1}.mobile-menu-toggle span{width:25px;height:2px;background-color:var(--black);transition:background-color .8s ease,transform .3s ease}.mobile-nav,body.dark-mode .mobile-menu-toggle span{background-color:var(--white)}.mobile-nav{display:none;flex-direction:column;gap:1rem;padding:2rem;border-top:1px solid var(--gray-medium);transition:background-color .8s ease,border-color .8s ease}body.dark-mode .mobile-nav{background-color:var(--black);border-top-color:hsla(0,0%,100%,.1)}.mobile-nav.active{display:flex}.mobile-nav-link{color:var(--black);text-decoration:none;font-size:1.1rem;font-weight:500;padding:.5rem 0;transition:color .8s ease,padding .3s ease}body.dark-mode .mobile-nav-link{color:var(--white)}.mobile-nav-link:hover{padding-left:1rem}.scroll-progress{position:absolute;bottom:0;left:0;width:100%;height:2px;background-color:transparent}.scroll-progress-bar{height:100%;background-color:var(--black);width:0;transition:width .1s ease,background-color .8s ease}body.dark-mode .scroll-progress-bar{background-color:var(--white)}@media (max-width:1024px){.nav{display:none}.mobile-menu-toggle{display:flex}.status-indicator{font-size:.75rem;padding:.4rem .8rem}}@media (max-width:768px){.header .container{grid-template-columns:auto 1fr auto;gap:1rem}.mobile-menu-toggle{display:flex;order:1}.header-logo{order:2}.header-right{order:3;gap:.5rem}.nav,.status-text{display:none}.status-text-mobile{display:block}.status-indicator{padding:.5rem .75rem;font-size:.75rem}.status-icon{display:block}}.hero{height:100vh;height:100dvh;width:100vw;align-items:stretch;padding:0;overflow:hidden;background-color:var(--bg-light);color:var(--text-light);transition:background-color .8s ease,color .8s ease;z-index:2}.hero,.hero>.container{display:flex;position:relative}.hero>.container{flex-direction:column;justify-content:center;height:100%;padding-top:5rem;padding-bottom:2rem}.main-title{font-family:var(--font-press-start),"Press Start 2P","Courier New",monospace;font-size:clamp(2rem,5vw,4.5rem);font-weight:400;line-height:1.4;margin-top:clamp(1rem,3vh,2rem);margin-bottom:clamp(.5rem,1vh,1rem);text-align:center;position:relative;z-index:1;opacity:0;flex-shrink:0;letter-spacing:.05em;font-feature-settings:none;font-variant-ligatures:none;text-rendering:optimizeSpeed}.title-outline{-webkit-text-stroke:2px var(--black);-webkit-text-fill-color:transparent;color:transparent;display:block;margin-bottom:-.1em;transform-origin:center center;will-change:transform,opacity}.title-solid{color:var(--black);display:block}.hero-content{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:clamp(2rem,4vw,5rem);gap:clamp(2rem,4vw,5rem);align-items:end;flex:1 1;min-height:0;position:relative}.hero-left{opacity:0;padding-bottom:clamp(1rem,3vh,2rem);position:relative;z-index:1;grid-column:1;display:flex;flex-direction:column;justify-content:flex-end}.hero-badge{display:inline-block;padding:.4rem .85rem;background-color:var(--gray-light);border-radius:20px;font-size:clamp(.7rem,.9vw,.8rem);font-weight:600;margin-bottom:clamp(.75rem,1.5vh,1rem);letter-spacing:.05em;width:-moz-fit-content;width:fit-content}.hero-subtitle{font-size:clamp(.9rem,1.8vw,1.4rem);margin-bottom:clamp(.75rem,1.5vh,1rem);line-height:1.6}.hero-subtitle,.typing-text{font-family:var(--font-press-start),"Press Start 2P","Courier New",monospace;font-weight:400;letter-spacing:.02em}.typing-text{color:var(--black);position:relative;display:inline-block;min-width:220px;text-align:left;white-space:nowrap}.typing-cursor{display:inline-block;width:3px;height:1.2em;background-color:var(--black);margin-left:2px;animation:blink 1s infinite;vertical-align:baseline}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.hero-description{font-size:clamp(.9rem,1.1vw,1rem);line-height:1.6;color:var(--gray-dark);margin-bottom:clamp(1rem,2vh,1.5rem);max-width:420px}.hero-description strong{color:var(--black);font-weight:700}.hero-ctas{display:flex;gap:.6rem;flex-wrap:wrap}.cta-button{padding:.7rem 1.5rem;border-radius:30px;font-size:.8rem;font-weight:500;cursor:none;display:inline-flex;align-items:center;gap:.4rem;transition:var(--transition);border:none;font-family:inherit;text-decoration:none}.primary-cta{background-color:var(--black);color:var(--white)}.primary-cta:hover{transform:translateY(-3px);box-shadow:0 15px 30px rgba(0,0,0,.2)}.secondary-cta{background-color:transparent;color:var(--black);border:2px solid var(--black)}.secondary-cta:hover{background-color:var(--black);color:var(--white);transform:translateY(-3px)}.portrait-container{justify-content:center;opacity:0;z-index:0;align-self:stretch;grid-column:2;overflow:visible;margin-bottom:-70px}.portrait-container,.portrait-wrapper{display:flex;align-items:flex-end;position:relative}.portrait-wrapper{width:100%;max-width:900px;min-width:500px;opacity:1}.portrait{width:100%;height:auto;object-fit:contain;transition:var(--transition-slow);display:block;filter:drop-shadow(0 20px 40px rgba(0,0,0,.15))}.portrait-overlay{display:none}.portrait-wrapper:hover .portrait{transform:scale(1.02) translateY(-3px);filter:drop-shadow(0 30px 60px rgba(0,0,0,.2))}.hero-right{display:flex;justify-content:flex-end;align-items:flex-end;opacity:0;position:relative;z-index:1;grid-column:3;padding-bottom:clamp(1rem,3vh,2rem)}.social-links{display:flex;flex-direction:column;gap:.6rem}.social-link{display:flex;align-items:center;gap:.6rem;padding:.6rem 1rem;background-color:var(--white);border:1.5px solid var(--black);border-radius:12px;text-decoration:none;color:var(--black);font-weight:500;font-size:.85rem;transition:var(--transition);cursor:none}.social-link:hover{background-color:var(--black);color:var(--white);transform:translateX(-5px)}.social-link svg{width:18px;height:18px;flex-shrink:0}.scroll-indicator{position:absolute;bottom:1.5rem;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.4rem;opacity:0;z-index:5}.scroll-mouse{width:22px;height:36px;border:2px solid var(--black);border-radius:11px;position:relative}.scroll-wheel{width:3px;height:7px;background-color:var(--black);border-radius:2px;position:absolute;top:7px;left:50%;transform:translateX(-50%);animation:scrollWheel 2s infinite}@keyframes scrollWheel{0%,to{opacity:1;transform:translateX(-50%) translateY(0)}50%{opacity:.5;transform:translateX(-50%) translateY(8px)}}.scroll-text{font-size:.65rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--black)}@media (max-width:1024px){.hero{height:auto;min-height:100vh;min-height:100dvh}.hero>.container{padding-top:5rem;padding-bottom:1rem}.main-title{font-size:clamp(1.5rem,6vw,3rem);margin-bottom:1.5rem;line-height:1.5}.hero-content{grid-template-columns:1fr;gap:1.5rem;text-align:center}.hero-left{order:1;align-items:center;padding-bottom:0}.hero-description{max-width:520px;margin-left:auto;margin-right:auto}.hero-right{order:2;justify-content:center;grid-column:1;padding-bottom:0}.portrait-container{order:3;grid-column:1;margin-bottom:-80px;height:auto}.portrait-wrapper{max-width:400px;min-width:auto;margin:0 auto}.hero-ctas,.social-links{justify-content:center}.social-links{flex-direction:row;flex-wrap:wrap;gap:.5rem}.social-link{padding:.5rem .85rem;font-size:.8rem}.scroll-indicator{display:none}}@media (max-width:480px){.hero>.container{padding-top:4.5rem;padding-bottom:.5rem}.main-title{font-size:1.5rem;margin-bottom:1.25rem;line-height:1.5}.hero-content{gap:1.25rem}.hero-badge{font-size:.7rem;padding:.35rem .7rem;margin-bottom:.6rem}.hero-subtitle{font-size:.85rem;margin-bottom:.6rem;line-height:1.6}.typing-text{min-width:180px;font-size:1.35rem}.hero-description{font-size:.85rem;line-height:1.5;margin-bottom:1rem}.cta-button{padding:.6rem 1.2rem;font-size:.75rem}.social-link{padding:.45rem .75rem;font-size:.75rem;border-radius:10px}.social-link svg{width:16px;height:16px}.portrait-wrapper{max-width:320px}}section{padding:6rem 0;position:relative}.section-header{margin-bottom:4rem;opacity:1}.section-number{font-size:.875rem;font-weight:600;letter-spacing:.2em;color:var(--gray-dark);display:block;margin-bottom:.5rem;transition:color .8s ease}.about .section-number,.experience .section-number{color:hsla(0,0%,100%,.5)}.section-title{font-family:var(--font-press-start),"Press Start 2P","Courier New",monospace;font-size:clamp(1.5rem,3vw,2.5rem);font-weight:400;line-height:1.6;margin-bottom:1rem;color:inherit;transition:color .8s ease;letter-spacing:.02em}.section-subtitle{font-size:1.2rem;color:var(--gray-dark);max-width:600px;transition:color .8s ease}.about .section-subtitle,.experience .section-subtitle{color:hsla(0,0%,100%,.6)}.about{background-color:var(--bg-dark);color:var(--text-dark);transition:background-color .8s ease,color .8s ease;position:relative;z-index:2;padding-top:8rem}.about-content{display:grid;grid-template-columns:1fr 1fr;grid-gap:4rem;gap:4rem;align-items:start}.about-text{opacity:1}.about-intro{font-size:1.3rem;line-height:1.8;margin-bottom:2rem;font-weight:500;color:hsla(0,0%,100%,.9)}.about-text p{font-size:1.1rem;line-height:1.8;margin-bottom:1.5rem;color:var(--gray-dark)}body.dark-mode .about-text p{color:hsla(0,0%,100%,.8)}.about-text strong{color:var(--black);font-weight:600}body.dark-mode .about-text strong{color:var(--white)}.skills-grid{display:flex;flex-direction:column;gap:2rem;opacity:1}.skill-category{background-color:var(--white);padding:2rem;border-radius:15px;border:2px solid var(--black);transition:background-color .8s ease,border-color .8s ease}.about .skill-category{background-color:hsla(0,0%,100%,.05);border-color:hsla(0,0%,100%,.15)}.skill-title{font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;transition:color .8s ease}.about .skill-title{color:var(--white)}.skill-items{display:flex;flex-wrap:wrap;gap:.75rem}.skill-tag{display:inline-block;padding:.5rem 1rem;background-color:var(--gray-light);border-radius:20px;font-size:.9rem;font-weight:500;transition:background-color .3s ease,color .3s ease,transform .3s ease}.about .skill-tag{background-color:hsla(0,0%,100%,.1);color:hsla(0,0%,100%,.8)}.skill-tag:hover{background-color:var(--black);color:var(--white);transform:translateY(-2px)}.about .skill-tag:hover{background-color:var(--white);color:var(--black)}@media (max-width:1024px){.about-content{grid-template-columns:1fr}}.work{background-color:var(--bg-light);color:var(--text-light);transition:background-color .8s ease,color .8s ease}.project-filters{display:flex;gap:1rem;margin-bottom:3rem;flex-wrap:wrap;opacity:1}.filter-btn{padding:.75rem 1.5rem;background-color:transparent;border:2px solid var(--black);color:var(--black);border-radius:25px;font-size:.95rem;font-weight:500;cursor:none;transition:background-color .3s ease,color .3s ease,transform .3s ease;font-family:inherit}.filter-btn.active,.filter-btn:hover{background-color:var(--black);color:var(--white);transform:translateY(-2px)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));grid-gap:2rem;gap:2rem;opacity:1}.project-card{background-color:var(--white);border:2px solid var(--black);border-radius:20px;overflow:hidden;cursor:none;transition:var(--transition);opacity:1;display:flex;flex-direction:column;position:relative}.project-card:hover{transform:translateY(-10px);box-shadow:0 25px 50px rgba(0,0,0,.15);border-color:var(--black)}.project-image-link{display:block;text-decoration:none;height:280px;background-color:var(--gray-light);cursor:none}.project-image-link,.project-image-wrapper{position:relative;width:100%;overflow:hidden}.project-image-wrapper{height:100%}.project-image{width:100%;height:100%;object-fit:cover;transition:var(--transition-slow);display:block}.project-image-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(180deg,transparent,rgba(0,0,0,.3) 50%,rgba(0,0,0,.7));opacity:0;transition:var(--transition);pointer-events:none}.project-card:hover .project-image-overlay{opacity:1}.project-card:hover .project-image{transform:scale(1.08)}.project-tech-preview{position:absolute;bottom:1rem;left:1rem;right:1rem;display:flex;gap:.5rem;flex-wrap:wrap;opacity:0;transform:translateY(10px);transition:var(--transition);pointer-events:none}.project-card:hover .project-tech-preview{opacity:1;transform:translateY(0)}.project-tech-tag{display:inline-block;padding:.4rem .8rem;background-color:hsla(0,0%,100%,.95);color:var(--black);border-radius:12px;font-size:.7rem;font-weight:600;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid hsla(0,0%,100%,.3)}.project-link{display:inline-flex;align-items:center;gap:.75rem;color:var(--black);text-decoration:none;font-weight:700;transition:var(--transition);margin-top:auto;padding-top:1.5rem;border-top:1px solid var(--gray-medium);font-size:.95rem;text-transform:uppercase;letter-spacing:.05em;width:100%;justify-content:space-between}.project-link:hover{gap:1rem;color:var(--black);transform:translateX(5px)}.project-link svg{transition:var(--transition);width:18px;height:18px}.project-link:hover svg{transform:translateX(3px)}.project-info{padding:2rem;display:flex;flex-direction:column;flex:1 1;background-color:var(--white);transition:var(--transition)}.project-card:hover .project-info{background-color:var(--gray-light)}.project-category{display:inline-block;padding:.5rem 1rem;background-color:var(--black);color:var(--white);border-radius:20px;font-size:.75rem;font-weight:700;margin-bottom:1.25rem;text-transform:uppercase;letter-spacing:.1em;align-self:flex-start;transition:var(--transition)}.project-card:hover .project-category{transform:scale(1.05)}.project-title{font-family:var(--font-press-start),"Press Start 2P","Courier New",monospace;font-size:1.1rem;font-weight:400;margin-bottom:1rem;line-height:1.6;transition:var(--transition);letter-spacing:.02em}.project-card:hover .project-title{transform:translateX(5px)}.project-description{color:var(--gray-dark);line-height:1.6;margin-bottom:1.5rem}@media (max-width:768px){.projects-grid{grid-template-columns:1fr}}.experience{background-color:var(--bg-dark);color:var(--text-dark);transition:background-color .8s ease,color .8s ease}.timeline{position:relative;padding-left:3rem;max-width:800px}.timeline:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background-color:hsla(0,0%,100%,.2)}.timeline-item{position:relative;margin-bottom:4rem;opacity:1}.timeline-item:before{content:"";position:absolute;left:-3.5rem;top:.5rem;width:12px;height:12px;background-color:var(--white);border-radius:50%;border:3px solid var(--black)}.timeline-date{font-size:.875rem;font-weight:600;color:hsla(0,0%,100%,.5);margin-bottom:.5rem;letter-spacing:.05em}.timeline-title{font-family:var(--font-press-start),"Press Start 2P","Courier New",monospace;font-size:1rem;font-weight:400;margin-bottom:.5rem;color:var(--white);line-height:1.6;letter-spacing:.02em}.timeline-company{font-size:1.1rem;color:hsla(0,0%,100%,.6);margin-bottom:1rem;font-weight:500}.timeline-description{font-size:1rem;line-height:1.8;color:hsla(0,0%,100%,.7);margin-bottom:1rem}.timeline-achievements{list-style:none;padding-left:1.5rem}.timeline-achievements li{position:relative;padding-left:1.5rem;margin-bottom:.5rem;color:hsla(0,0%,100%,.7);line-height:1.6}.timeline-achievements li:before{content:"→";position:absolute;left:0;color:var(--white);font-weight:700}@media (max-width:768px){.timeline{padding-left:2rem}.timeline-item:before{left:-2.5rem}}.contact{background-color:var(--bg-light);color:var(--text-light);transition:background-color .8s ease,color .8s ease}.contact-content{display:grid;grid-template-columns:1.5fr 1fr;grid-gap:4rem;gap:4rem}.contact-form-wrapper{opacity:1}.contact-form{display:flex;flex-direction:column;gap:2rem}.form-group{position:relative}.form-label{display:block;font-size:.875rem;font-weight:600;margin-bottom:.5rem;color:var(--gray-dark);text-transform:uppercase;letter-spacing:.05em}.form-input{width:100%;padding:1rem 0;background:transparent;border:none;border-bottom:2px solid var(--gray-medium);font-size:1rem;font-family:inherit;color:var(--black);transition:var(--transition);outline:none}.form-input:focus{border-bottom-color:var(--black)}.form-input:focus+.form-line{width:100%}.form-line{position:absolute;bottom:0;left:0;width:0;height:2px;background-color:var(--black);transition:width .3s ease}.form-textarea{resize:vertical;min-height:120px}.submit-btn{align-self:flex-start;margin-top:1rem;background-color:var(--black);color:var(--white)}.form-message{padding:1rem;border-radius:10px;font-weight:500;display:none}.form-message.success{display:block;background-color:var(--gray-light);color:var(--black);border:2px solid var(--green)}.form-message.error{display:block;background-color:#fff5f5;color:#c53030;border:2px solid #c53030}.contact-info{display:flex;flex-direction:column;gap:2rem;opacity:1}.contact-item{display:flex;gap:1.5rem;align-items:flex-start}.contact-icon{width:50px;height:50px;background-color:var(--gray-light);border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.contact-icon svg{width:24px;height:24px}.contact-label{font-size:.875rem;font-weight:600;color:var(--gray-dark);margin-bottom:.25rem;text-transform:uppercase;letter-spacing:.05em}.contact-value{font-size:1.1rem;font-weight:500;color:var(--black);text-decoration:none;transition:var(--transition)}.contact-value:hover{color:var(--gray-dark)}.contact-social{display:flex;gap:1rem;margin-top:1rem}.contact-social-link{padding:.75rem 1.5rem;background-color:var(--black);color:var(--white);text-decoration:none;border-radius:25px;font-weight:500;transition:var(--transition);cursor:none}.contact-social-link:hover{background-color:var(--gray-dark);transform:translateY(-2px)}@media (max-width:1024px){.contact-content{grid-template-columns:1fr}}.footer{padding:3rem 0;border-top:1px solid var(--gray-medium);background-color:var(--black);color:var(--white)}.footer-content{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:2rem}.footer-text{color:hsla(0,0%,100%,.5);font-size:.9rem}.footer-links{display:flex;gap:2rem}.footer-link{color:var(--white);text-decoration:none;font-weight:500;transition:var(--transition)}.footer-link:hover{color:hsla(0,0%,100%,.6)}.modal{position:fixed;top:0;left:0;width:100%;height:100%;z-index:10000;display:none;align-items:center;justify-content:center;padding:.6rem}.modal.active{display:flex}.modal-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.8);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal-content{position:relative;background-color:var(--white);border-radius:20px;max-width:900px;width:100%;max-height:90vh;overflow-y:auto;z-index:1;border:2px solid var(--black);transform:scale(1);opacity:1}.modal-close{position:absolute;top:1.5rem;right:1.5rem;width:40px;height:40px;background-color:var(--black);color:var(--white);border:none;border-radius:50%;cursor:none;display:flex;align-items:center;justify-content:center;z-index:2;transition:var(--transition)}.modal-close:hover{transform:rotate(90deg)}.modal-body{padding:3rem}.modal-image{width:100%;height:400px;object-fit:cover;border-radius:15px;margin-bottom:2rem}.modal-title{font-size:2rem;font-weight:900;margin-bottom:1rem}.modal-category{display:inline-block;padding:.5rem 1rem;background-color:var(--gray-light);border-radius:20px;font-size:.6rem;font-weight:600;margin-bottom:1.5rem;text-transform:uppercase}.modal-description{font-size:1.1rem;line-height:1.8;color:var(--gray-dark);margin-bottom:2rem}.modal-section{margin-bottom:2.5rem;padding-bottom:2rem;border-bottom:1px solid var(--gray-medium)}.modal-section:last-of-type{border-bottom:none}.modal-section-title{font-family:var(--font-press-start),"Press Start 2P","Courier New",monospace;font-size:.7rem;font-weight:400;margin-bottom:1rem;text-transform:uppercase;letter-spacing:.05em;line-height:1.6;color:var(--black)}.modal-section-content{font-size:1rem;line-height:1.8;color:var(--gray-dark)}.modal-tech{margin-bottom:2rem;padding-top:2rem;border-top:1px solid var(--gray-medium)}.modal-tech-title{font-size:1rem;font-weight:700;margin-bottom:1rem;text-transform:uppercase;letter-spacing:.05em}.modal-tech-tags{display:flex;flex-wrap:wrap;gap:.75rem}.modal-link{display:inline-flex;align-items:center;gap:.5rem;padding:1rem 2rem;background-color:var(--black);color:var(--white);text-decoration:none;border-radius:30px;font-weight:600;transition:var(--transition);font-size:.875rem}.modal-link:hover{transform:translateY(-2px);box-shadow:0 10px 20px rgba(0,0,0,.2)}@media (max-width:768px){.modal-content{max-width:100%;border-radius:0;max-height:100vh}.modal-body{padding:2rem 1.5rem}}.opacity-0{opacity:0}.opacity-1{opacity:1}.hidden{display:none!important}.reveal{opacity:0;transform:translateY(30px);transition:opacity .6s ease,transform .6s ease}.reveal.active{opacity:1;transform:translateY(0)}