body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,"Courier New",monospace}:root{--bg-primary:#0a192f;--bg-secondary:#112240;--text-primary:#ccd6f6;--text-secondary:#8892b0;--accent:#64ffda;--font-mono:"SF Mono","Fira Code","Fira Mono",monospace;--font-sans:"Calibre","San Francisco","SF Pro Text",sans-serif}*{margin:0;padding:0;box-sizing:border-box}html{scroll-padding-top:100px}body{background-color:#0a192f;background-color:var(--bg-primary);color:#ccd6f6;color:var(--text-primary);font-family:"Calibre","San Francisco","SF Pro Text",sans-serif;font-family:var(--font-sans);overflow-x:hidden}a{color:#64ffda;color:var(--accent);text-decoration:none;transition:all .2s ease}a:hover{opacity:.8}.cta-button{display:inline-block;padding:.75rem 1.5rem;background-color:transparent;border:2px solid #64ffda;border:2px solid var(--accent);color:#64ffda;color:var(--accent);font-family:"SF Mono","Fira Code","Fira Mono",monospace;font-family:var(--font-mono);font-size:.9rem;border-radius:4px;cursor:pointer;transition:all .2s ease}.cta-button:hover{background-color:rgba(100,255,218,.1)}section{padding:6rem 10%}.section-title{font-size:2rem;margin-bottom:2.5rem;position:relative;display:inline-block}.section-title:after{content:"";display:block;position:absolute;height:1px;width:300px;background-color:#8892b0;background-color:var(--text-secondary);top:50%;margin-left:220px}header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;position:fixed;top:0;width:100%;background-color:rgba(10,25,47,.85);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10}.logo{font-family:"SF Mono","Fira Code","Fira Mono",monospace;font-family:var(--font-mono);font-size:1.5rem;font-weight:700;color:#64ffda;color:var(--accent)}nav ul{display:flex;list-style:none}nav ul li{margin-left:2rem}nav ul li a{color:#ccd6f6;color:var(--text-primary);font-family:"SF Mono","Fira Code","Fira Mono",monospace;font-family:var(--font-mono);font-size:.9rem}nav ul li a:hover{color:#64ffda;color:var(--accent)}.menu-button{display:none;background:none;border:none;color:#ccd6f6;color:var(--text-primary);font-size:1.5rem;cursor:pointer;transition:transform .3s ease}.menu-button:hover{color:#64ffda;color:var(--accent)}.close-nav-button{display:none;background:none;border:none;color:#ccd6f6;color:var(--text-primary);font-size:1.5rem;cursor:pointer;position:absolute;top:1.5rem;right:1.5rem;transition:color .2s ease}.close-nav-button:hover{color:#64ffda;color:var(--accent)}.hero{position:relative;overflow:hidden;width:100%;min-height:100vh}#animation-canvas{position:absolute!important;top:0!important;left:0!important;width:100%!important;height:100%!important;z-index:1!important;opacity:.3!important}@supports (-webkit-appearance:none){#animation-canvas{width:100vw!important;height:100vh!important}}.hero-content{position:relative;z-index:2;pointer-events:auto}.typewriter{min-width:10ch;max-width:100%}@media (min-width:769px){.typewriter{min-width:25ch}}@media (min-width:1025px){.typewriter{min-width:40ch}}.hero-intro{color:#64ffda;color:var(--accent);font-family:"SF Mono","Fira Code","Fira Mono",monospace;font-family:var(--font-mono);margin-bottom:1rem;font-size:1rem}.hero-name{font-size:3.5rem;margin-bottom:1rem;color:#ccd6f6;color:var(--text-primary)}.hero-title{font-size:2.5rem;margin-bottom:1.5rem}.hero-description,.hero-title{color:#8892b0;color:var(--text-secondary)}.hero-description{font-size:1.1rem;max-width:600px;margin-bottom:2rem;line-height:1.6}.hero-cta{margin-top:2rem}.typewriter-container{margin-top:2rem;margin-bottom:2rem;overflow:hidden;max-width:100%}.typewriter{font-family:"SF Mono","Fira Code","Fira Mono",monospace;font-family:var(--font-mono);font-size:1rem;color:#8892b0;color:var(--text-secondary);overflow:hidden;border-right:.15em solid #64ffda;border-right:.15em solid var(--accent);white-space:nowrap;letter-spacing:.15em;animation:blink-caret .75s step-end infinite;display:inline-block}@keyframes typing{0%{width:0}to{width:100%}}@keyframes blink-caret{0%,to{border-color:transparent}50%{border-color:#64ffda;border-color:var(--accent)}}.resume-container{display:grid;grid-template-columns:1fr 1fr;grid-gap:2rem;gap:2rem;margin-top:2rem}.resume-left,.resume-right{padding:1.5rem;background-color:#112240;background-color:var(--bg-secondary);border-radius:5px;box-shadow:0 10px 30px -15px rgba(2,12,27,.7)}.resume-section{margin-bottom:2rem}.resume-section h3{color:#64ffda;color:var(--accent);font-size:1.3rem;margin-bottom:1rem}.resume-item{margin-bottom:1.5rem}.resume-item h4{font-size:1.1rem;margin-bottom:.3rem}.resume-item h5{font-size:.9rem;color:#64ffda;color:var(--accent);margin-bottom:.5rem}.resume-item p,.resume-item ul li{color:#8892b0;color:var(--text-secondary);font-size:.9rem;line-height:1.6}.skills-list{display:flex;flex-wrap:wrap;list-style:none}.skills-list li{margin-right:1rem;margin-bottom:.5rem;background-color:rgba(100,255,218,.1);padding:.5rem 1rem;border-radius:3px;font-family:"SF Mono","Fira Code","Fira Mono",monospace;font-family:var(--font-mono);font-size:.8rem}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));grid-gap:2rem;gap:2rem;margin-top:2rem;grid-auto-rows:unset;align-items:start}.project-card{background-color:#112240;background-color:var(--bg-secondary);border-radius:5px;padding:2rem;transition:transform .2s ease;box-shadow:0 10px 30px -15px rgba(2,12,27,.7);display:flex;flex-direction:column;height:auto;min-height:unset;align-self:start}@supports (display:grid){.projects-grid>*{height:auto!important;margin-bottom:0!important}}.project-card:hover{transform:translateY(-5px)}.project-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.folder-icon{font-size:2.5rem;color:#64ffda;color:var(--accent)}.project-logo{width:40px;height:40px;border-radius:8px;object-fit:cover}.project-links{display:flex;grid-gap:15px;gap:15px}.project-links a,.video-button{color:#ccd6f6;color:var(--text-primary);transition:color .2s ease;background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center}.project-links a:hover,.video-button:hover{color:#64ffda;color:var(--accent)}.project-title{font-size:1.3rem;margin-bottom:1rem;color:#ccd6f6;color:var(--text-primary)}.project-description{color:#8892b0;color:var(--text-secondary);font-size:.9rem;line-height:1.6;margin-bottom:1.5rem}.tech-list{list-style:none;display:flex;flex-wrap:wrap;grid-gap:10px;gap:10px;margin-bottom:20px}.tech-list li{padding:5px 10px;background-color:rgba(100,255,218,.1);border-radius:3px;font-size:.8rem;color:#8892b0;color:var(--text-secondary)}.tech-tags{display:flex;flex-wrap:wrap;grid-gap:10px;gap:10px;margin-top:auto;padding-top:20px}.tech-category{margin-bottom:10px;margin-top:auto;padding-top:10px}.tech-tag{display:inline-block;padding:6px 12px;background-color:#1c2e50;border-radius:20px;font-size:.8rem;color:#ccd6f6;color:var(--text-primary);font-family:"SF Mono","Fira Code","Fira Mono",monospace;font-family:var(--font-mono);box-shadow:0 4px 8px rgba(0,0,0,.2);white-space:nowrap}.features-list{color:#8892b0;color:var(--text-secondary);margin-bottom:2rem;padding-left:2rem}.features-list li{margin-bottom:.5rem}.highlight{color:#4169e1}.icon-react{color:#61dafb}.project-link{display:flex;align-items:center;color:#64ffda;color:var(--accent);margin-right:1rem;padding:.5rem 1rem;border:1px solid #64ffda;border:1px solid var(--accent);border-radius:4px;transition:all .2s ease}.project-link:hover{background-color:rgba(100,255,218,.1)}.project-link span{margin-left:8px}.store-link{display:flex;align-items:center;margin-bottom:1rem;color:#ccd6f6;color:var(--text-primary);transition:color .2s ease}.store-link:hover{color:#64ffda;color:var(--accent)}.store-link span{margin-left:10px}.project-anchor-link{color:#ccd6f6;color:var(--text-primary);text-decoration:none;position:relative;display:inline-block}.project-anchor-link:hover,.project-anchor-link:hover:after{color:#64ffda;color:var(--accent)}.project-anchor-link:hover:after{content:"#";position:absolute;right:-15px;opacity:.6}.project-highlight{animation:highlight-pulse 2s ease-in-out;box-shadow:0 0 0 4px #64ffda;box-shadow:0 0 0 4px var(--accent)}@keyframes highlight-pulse{0%{box-shadow:0 0 0 0 rgba(100,255,218,.8);transform:translateY(-5px)}50%{box-shadow:0 0 0 8px rgba(100,255,218,.2);transform:translateY(-5px)}to{box-shadow:0 0 0 4px #64ffda;box-shadow:0 0 0 4px var(--accent);transform:translateY(-5px)}}.video-modal{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(10,25,47,.95);display:flex;justify-content:center;align-items:center;z-index:100;padding:20px}.video-modal-content{position:relative;max-width:800px;width:90%;max-height:90vh;overflow:auto;background-color:#112240;background-color:var(--bg-secondary);border-radius:8px;padding:20px;box-shadow:0 20px 40px rgba(0,0,0,.5)}.close-button{position:absolute;top:10px;right:10px;background:none;border:none;color:#ccd6f6;color:var(--text-primary);cursor:pointer;z-index:101;transition:color .2s ease}.close-button:hover{color:#64ffda;color:var(--accent)}.video-container{margin-top:10px}.video-container video{width:100%;max-height:calc(90vh - 80px);object-fit:contain;border-radius:4px;box-shadow:0 10px 30px -15px rgba(2,12,27,.7)}.contact{text-align:center;max-width:600px;margin:0 auto}.contact h2{font-size:2.5rem;margin-bottom:1rem}.contact p{color:#8892b0;color:var(--text-secondary);margin-bottom:2rem;line-height:1.6}.contact-links,.linkedin-button{display:flex;justify-content:center}.linkedin-button{align-items:center;grid-gap:10px;gap:10px}.linkedin-icon{font-size:1.2rem}.linkedin-button:hover .linkedin-icon{transform:translateY(-2px);transition:transform .2s}footer{padding:2rem;text-align:center;color:#8892b0;color:var(--text-secondary);font-family:"SF Mono","Fira Code","Fira Mono",monospace;font-family:var(--font-mono);font-size:.9rem}@media (max-width:1024px){.hero-name{font-size:3rem}.hero-title{font-size:2rem}}@media (max-width:768px){.menu-button{display:flex;align-items:center;justify-content:center}.close-nav-button{display:block}nav{position:fixed;top:0;right:0;height:100vh;width:250px;background-color:#112240;background-color:var(--bg-secondary);padding:5rem 2rem;transform:translateX(100%);transition:transform .3s ease;z-index:20}nav.open{transform:translateX(0)}nav.open:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);z-index:-1}nav ul{flex-direction:column}nav ul li{margin:1rem 0}.hero{align-items:flex-start;padding:25vh 8% 0}.hero-name{font-size:2.5rem}.hero-title{font-size:1.8rem}.hero-description{font-size:1rem}.typewriter{font-size:.9rem}.section-title:after{width:100px}.projects-grid,.resume-container{grid-template-columns:1fr}.tech-category,.tech-tags{justify-content:flex-start}.video-modal-content{width:95%;padding:15px}}@media (max-width:480px){.hero{padding:20vh 6% 0}.hero-name{font-size:2rem}.hero-title{font-size:1.5rem}.hero-description{font-size:.9rem}.typewriter{font-size:.8rem}}