@import url(https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap);*{box-sizing:border-box;margin:0;padding:0}:focus-visible{outline:2px solid #fff;outline-offset:4px}::selection{background:#ffffff26;color:#fff}#root,body,html{background:#050508;margin:0;padding:0;width:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#b8b8c0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.7;overflow-x:hidden}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#fff3}.three-bg-canvas{display:block;height:100vh;left:0;opacity:0;pointer-events:auto;position:fixed;top:0;transition:opacity 1.2s cubic-bezier(.16,1,.3,1);width:100vw;z-index:0}.three-bg-canvas.canvas-reveal{opacity:1}.portfolio-overlay{pointer-events:none;position:relative;z-index:10}.portfolio-overlay .contact-btn,.portfolio-overlay .menu-toggle,.portfolio-overlay .nav-links,.portfolio-overlay .project-card,.portfolio-overlay a,.portfolio-overlay button,.portfolio-overlay nav,.site-nav{pointer-events:auto}.site-nav{backdrop-filter:blur(20px) saturate(1.2);-webkit-backdrop-filter:blur(20px) saturate(1.2);background:#050508b3;border-bottom:1px solid #ffffff0a;left:0;padding:.85rem 0;position:fixed;right:0;top:0;z-index:1000}.nav-container{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1100px;padding:0 2rem}.nav-logo{color:#fff;font-size:1.15rem;font-weight:600;letter-spacing:-.02em}.nav-links{display:flex;gap:.5rem;list-style:none}.nav-links a{border-radius:100px;color:#ffffff73;font-size:.82rem;font-weight:500;letter-spacing:.02em;padding:.4rem .9rem;position:relative;text-decoration:none;transition:color .3s ease,background .3s ease}.nav-links a:hover{background:#ffffff0f;color:#ffffffe6}.nav-links a.active{background:#ffffff1a;color:#fff}.menu-toggle{background:none;border:none;cursor:pointer;display:none;flex-direction:column;gap:5px;padding:4px}.menu-toggle span{background:#ffffffb3;border-radius:1px;height:1.5px;transition:all .3s ease;width:22px}.menu-toggle:focus-visible span,.menu-toggle:hover span{background:#fff}.menu-toggle.open span:first-child{transform:translateY(6.5px) rotate(45deg)}.menu-toggle.open span:nth-child(2){opacity:0}.menu-toggle.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}.container{margin:0 auto;max-width:1100px;padding:0 2rem}.hero-section{align-items:flex-start;display:flex;justify-content:flex-start;min-height:100vh;padding:7rem 0 0;position:relative;text-align:left}.header-content{max-width:420px;opacity:0}.header-content.hero-reveal{opacity:1}.bio-fade-in{animation:fadeInUp 1.2s cubic-bezier(.16,1,.3,1) 1.8s forwards;opacity:0}.hero-section .container{margin:0 auto;max-width:1100px;width:100%}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.hero-section h1{color:#fff;font-size:3.2rem;font-weight:700;letter-spacing:-.04em;line-height:1.1;margin-bottom:.3rem}.tagline{color:#ffffff4d;font-size:.8rem;font-weight:500;letter-spacing:.12em;margin-bottom:1.2rem;text-transform:uppercase}.bio{color:#fff6;font-size:.9rem;font-weight:300;line-height:1.7;margin:0;max-width:420px}.portfolio-section{opacity:0;padding:7rem 0;transform:translateY(30px);transition:opacity 1s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1)}.portfolio-section.visible{opacity:1;transform:translateY(0)}.portfolio-section h2{color:#fff6;font-size:.75rem;font-weight:600;letter-spacing:.2em;margin-bottom:3.5rem;text-align:center;text-transform:uppercase}.timeline{margin:0 auto;max-width:700px;padding-left:2.5rem;position:relative}.timeline:before{background:linear-gradient(180deg,#ffffff4d,#ffffff0f);bottom:0;content:"";left:0;position:absolute;top:4px;width:1px}.timeline-item{margin-bottom:2.5rem;opacity:0;padding-bottom:.5rem;padding-left:1.5rem;position:relative;transform:translateX(-20px);transition:all .7s cubic-bezier(.16,1,.3,1)}.timeline-item.visible{opacity:1;transform:translateX(0)}.timeline-item:before{background:#fff9;border-radius:50%;box-shadow:0 0 10px #ffffff26;content:"";height:8px;left:-2.85rem;position:absolute;top:6px;transition:box-shadow .3s ease;width:8px}.timeline-item:hover:before{box-shadow:0 0 16px #ffffff4d}.job-title{color:#fff;font-size:1.1rem;font-weight:600;letter-spacing:-.01em;margin-bottom:.25rem}.company{color:#fff6;font-size:.95rem;font-weight:400;margin-bottom:.15rem}.duration{color:#fff3;font-size:.78rem;font-weight:400;letter-spacing:.03em;margin-bottom:.75rem}.job-description{color:#ffffff73;font-size:.9rem;font-weight:300;line-height:1.7}.projects-carousel{align-items:center;display:flex;justify-content:center;min-height:100vh;overflow:hidden;padding:0!important;position:relative}.projects-carousel h2{left:50%;position:absolute;top:2.5rem;transform:translateX(-50%);z-index:5}.carousel-card{bottom:3rem;left:3rem;max-width:380px;padding:0;pointer-events:auto;position:absolute;z-index:10}.carousel-project-title{color:#fff;font-size:1.4rem;font-weight:600;letter-spacing:-.01em;margin-bottom:.6rem}.carousel-project-desc{color:#fff6;font-size:.85rem;font-weight:300;line-height:1.7;margin-bottom:1.5rem}.carousel-arrow{align-items:center;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#ffffff0a;border:1px solid #ffffff1f;border-radius:50%;color:#ffffff80;cursor:pointer;display:flex;height:44px;justify-content:center;pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);transition:all .3s cubic-bezier(.16,1,.3,1);width:44px;z-index:10}.carousel-arrow:hover{background:#ffffff1a;border-color:#ffffff40;color:#fff;transform:translateY(-50%) scale(1.08)}.carousel-arrow-left{left:2rem}.carousel-arrow-right{right:2rem}.carousel-counter{font-feature-settings:"tnum";bottom:3.5rem;color:#fff3;font-size:.75rem;font-variant-numeric:tabular-nums;font-weight:500;letter-spacing:.15em;pointer-events:none;position:absolute;right:3rem;z-index:10}.project-tech{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}.tech-pill{background:#ffffff0f;border:1px solid #ffffff0a;border-radius:100px;color:#fff6;font-size:.7rem;font-weight:500;letter-spacing:.02em;padding:.2rem .6rem}.project-links{display:flex;gap:1.5rem}.project-link{align-items:center;color:#ffffff8c;display:inline-flex;font-size:.82rem;font-weight:500;gap:.35rem;letter-spacing:.01em;text-decoration:none;transition:color .3s ease,gap .3s ease}.project-link:hover{color:#fff;gap:.55rem}.project-link .arrow{font-size:.9rem;transition:transform .3s ease}.project-link:hover .arrow{transform:translateX(2px)}.contact-section{padding:7rem 0;text-align:center}.contact-section p.contact-subtitle{color:#ffffff59;font-size:1rem;font-weight:300;margin-bottom:2.5rem}.contact-links{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-top:2rem}.contact-btn{background:#0000;border:1px solid #ffffff26;border-radius:100px;color:#ffffffb3;font-size:.88rem;font-weight:500;letter-spacing:.01em;padding:.75rem 1.75rem;text-decoration:none;transition:all .35s cubic-bezier(.16,1,.3,1)}.contact-btn:hover{background:#ffffff1a;border-color:#ffffff4d;box-shadow:0 8px 24px #0000004d;color:#fff;transform:translateY(-2px)}.loading-overlay{align-items:center;background:#050508;color:#ffffff4d;display:flex;flex-direction:column;font-family:Inter,sans-serif;height:100vh;justify-content:center;left:0;position:fixed;top:0;transition:opacity .8s cubic-bezier(.16,1,.3,1);width:100vw;z-index:9999}.loading-overlay.fade-out{opacity:0;pointer-events:none;transition:opacity 1.2s cubic-bezier(.16,1,.3,1) 1.6s}.loading-content{align-items:center;display:flex;flex-direction:column;gap:1.5rem}.loading-neon-title{color:#0000;font-size:2.8rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;-webkit-user-select:none;user-select:none}.loading-progress-track{background:#ffffff14;border-radius:2px;height:2px;overflow:hidden;width:200px}.loading-progress-bar{background:#ffffffb3;border-radius:2px;box-shadow:0 0 8px #ffffff4d,0 0 16px #ffffff1a;height:100%;transition:width .3s cubic-bezier(.16,1,.3,1)}.loading-percent{font-feature-settings:"tnum";color:#fff3;font-size:.7rem;font-variant-numeric:tabular-nums;font-weight:500;letter-spacing:.2em}.hero-neon-char,.neon-char{color:#fff0;display:inline-block;opacity:0;text-shadow:none}.neon-char.flicker-on{animation:neonFlickerOn 1s ease forwards}.hero-neon-char.flicker-on{animation:heroFlickerOn 1s ease forwards}@keyframes neonFlickerOn{0%{color:#fff0;opacity:0;text-shadow:none}10%{color:#ffffffe6;opacity:.8;text-shadow:0 0 6px #fff6,0 0 14px #ffffff26}20%{color:#ffffff1a;opacity:.1;text-shadow:none}35%{color:#fffffff2;opacity:.9;text-shadow:0 0 8px #ffffff80,0 0 20px #fff3}45%{color:#ffffff26;opacity:.15;text-shadow:none}55%{color:#fffc;opacity:.7;text-shadow:0 0 4px #ffffff4d}65%{color:#ffffff4d;opacity:.3;text-shadow:none}80%{color:#fff;opacity:1;text-shadow:0 0 10px #fff9,0 0 30px #fff3,0 0 60px #ffffff14}90%{color:#ffffffd9;opacity:.85;text-shadow:0 0 4px #fff3}to{color:#fff;opacity:1;text-shadow:0 0 10px #ffffff80,0 0 30px #ffffff26,0 0 60px #ffffff0d}}@keyframes heroFlickerOn{0%{color:#fff0;opacity:0;text-shadow:none}10%{color:#ffffffe6;opacity:.8;text-shadow:0 0 6px #ffffff4d}20%{color:#ffffff0d;opacity:.05;text-shadow:none}35%{color:#fffffff2;opacity:.9;text-shadow:0 0 4px #fff3}45%{color:#ffffff1a;opacity:.1;text-shadow:none}60%{color:#fffc;opacity:.7;text-shadow:none}75%{color:#fff;opacity:1;text-shadow:none}85%{color:#fff9;opacity:.6;text-shadow:none}to{color:#fff;opacity:1;text-shadow:none}}.error-container{align-items:center;background:#050508;display:flex;justify-content:center;min-height:100vh;width:100%}.error-content{padding:2rem;text-align:center}.error-content h2{color:#e74c3c;font-size:1.2rem;font-weight:600;margin-bottom:1rem}.error-content p{color:#fff6;font-size:.9rem;margin-bottom:.5rem}.model-counter{bottom:1.5rem;color:#fff;font-family:Inter,monospace;font-size:.7rem;font-weight:500;left:1.5rem;letter-spacing:.15em;opacity:.2;pointer-events:none;position:fixed;text-transform:uppercase;z-index:5}@media (max-width:768px){.menu-toggle{display:flex}.portfolio-overlay .nav-links{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#050508f2;border-bottom:1px solid #ffffff0a;flex-direction:column;gap:.5rem;left:0;opacity:0;padding:1.5rem 2rem;pointer-events:none;position:absolute;right:0;top:100%;transform:translateY(-100%);transition:all .4s cubic-bezier(.16,1,.3,1),visibility 0s linear .4s;visibility:hidden}.portfolio-overlay .nav-links.nav-open{opacity:1;pointer-events:auto;transform:translateY(0);transition:all .4s cubic-bezier(.16,1,.3,1),visibility 0s;visibility:visible}.hero-section h1{font-size:2.4rem}.tagline{font-size:.75rem}.portfolio-section h2{font-size:.7rem}.carousel-card{bottom:2rem;left:1.5rem;max-width:calc(100% - 3rem)}.carousel-arrow-left{left:1rem}.carousel-arrow-right{right:1rem}.carousel-counter{bottom:auto;right:1.5rem;top:2.5rem}.bio{font-size:.92rem}.timeline{padding-left:2rem}.timeline-item:before{left:-2.35rem}}@media (max-width:480px){.hero-section h1{font-size:2.2rem}.container{padding:0 1.25rem}.contact-links{align-items:center;flex-direction:column}.contact-btn{max-width:280px;text-align:center;width:100%}}.skip-to-content{background:#fff;border-radius:4px;color:#050508;font-weight:600;left:1rem;padding:.5rem 1rem;pointer-events:auto;position:fixed;text-decoration:none;top:1rem;transform:translateY(-200%);transition:transform .3s cubic-bezier(.16,1,.3,1);z-index:1001}.skip-to-content:focus{outline:2px solid #fff;outline-offset:2px;transform:translateY(0)}.scroll-indicator{align-items:center;animation:bounce 2s infinite;background:none;border:none;bottom:2rem;color:#fff6;cursor:pointer;display:flex;flex-direction:column;gap:.5rem;left:50%;padding:1rem;position:absolute;transform:translateX(-50%);transition:color .3s ease,opacity .5s ease;z-index:20}.scroll-indicator:focus-visible,.scroll-indicator:hover{color:#fff;outline:none}.scroll-indicator:focus-visible{background:#ffffff0d;border-radius:8px}.scroll-text{font-size:.7rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase}.scroll-arrow{font-size:1.2rem;line-height:1}@keyframes bounce{0%,20%,50%,80%,to{transform:translateX(-50%) translateY(0)}40%{transform:translateX(-50%) translateY(-6px)}60%{transform:translateX(-50%) translateY(-3px)}}
/*# sourceMappingURL=main.f1bb8c40.css.map*/