@import"https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700;800&display=swap";:root{font-family:Montserrat,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:600;text-decoration:none;transition:color .2s}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:Montserrat,Avenir,Helvetica,Arial,sans-serif;margin:0 0 .5em}@media (max-width: 600px){h1{font-size:2em}}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{--accent-primary: #00ff9d;--accent-secondary: #00b8ff;--accent-tertiary: #ff2fd6;--accent-gold: #FFD700;--accent-silver: #C0C0C0;--accent-blue: #00eaff;--accent-pink: #ff2fd6;--glass-bg: rgba(255, 255, 255, .05);--glass-bg-strong: rgba(10, 10, 10, .96);--text-main: #f5f5f5;--text-subtle: #b2c7d9;--text-primary: #ffffff;--text-secondary: rgba(255, 255, 255, .7);--bg-dark: #0a0a0a;--bg-darker: #050505}*{margin:0;padding:0;box-sizing:border-box}a{text-decoration:none;color:inherit;outline:none!important;-webkit-tap-highlight-color:transparent}a:focus,a:active,a:focus-visible{outline:none!important;-webkit-tap-highlight-color:transparent}body{font-family:JetBrains Mono,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;background:var(--bg-darker);color:var(--text-primary);line-height:1.6;overflow-x:hidden}#root{max-width:1280px;margin:0 auto;padding:0;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}.starry-canvas{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:0;pointer-events:none;opacity:.25;filter:blur(1px) grayscale(.2)}.app-root{position:relative;min-height:100vh;z-index:1}.navbar{position:fixed;top:0;left:0;right:0;z-index:1000;background:#000c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.1);padding:1rem 0;transition:background-color .3s ease}.nav-content{max-width:1200px;margin:0 auto;display:flex;justify-content:center;gap:2rem;padding:0 1rem}.navbar a{color:var(--text-secondary);font-family:JetBrains Mono,monospace;font-size:1rem;text-transform:uppercase;letter-spacing:1px;padding:.5rem 1rem;border-radius:4px;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.navbar a:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(45deg,var(--accent-primary),var(--accent-secondary));opacity:0;transition:opacity .3s cubic-bezier(.4,0,.2,1);z-index:-1}.navbar a:hover{color:var(--text-primary)}.navbar a:hover:before{opacity:.1}.navbar a.active{color:var(--text-primary)}.navbar a.active:before{opacity:1}@media (max-width: 768px){.nav-content{gap:1rem}.navbar a{font-size:.9rem;padding:.4rem .8rem}.about-content{width:90%}.contact-links{gap:1rem}}@media (max-width: 600px){.about-section,.contact-section{padding:6vh 3vw 4vh 3vw}.about-content,.contact-form{width:100%}.form-row{flex-direction:column;gap:.7rem}}.filler{height:8vh;width:100%}.hero,.portfolio-section,.about-section,.contact-section{opacity:0;transform:translateY(40px);transition:opacity .7s cubic-bezier(.4,0,.2,1),transform .7s cubic-bezier(.4,0,.2,1)}.hero.animate-in,.portfolio-section.animate-in,.about-section.animate-in,.contact-section.animate-in{opacity:1;transform:none}.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--text-primary);overflow:hidden;padding:2rem}.hero-content{position:relative;z-index:2;padding:3rem;width:100%;pointer-events:auto}.floating-particles{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.hero h1{font-size:3.5rem;font-weight:700;margin-bottom:1rem;background:linear-gradient(45deg,var(--accent-primary),var(--accent-secondary));-webkit-background-clip:text;background-clip:text;color:transparent;letter-spacing:-.02em;font-family:JetBrains Mono,monospace}.hero h2{font-size:1.25rem;font-weight:400;color:var(--text-secondary);margin-bottom:2rem;letter-spacing:.02em;font-family:Inter,sans-serif}.tech-stack{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-bottom:2rem}.tech-stack span{padding:.5rem 1rem;background:#ffffff0d;border-radius:6px;font-size:.9rem;color:var(--accent-primary);border:1px solid rgba(0,255,157,.2);font-family:JetBrains Mono,monospace;transition:all .3s ease}.tech-stack span:hover{background:#00ff9d1a;transform:translateY(-2px)}.cta-btn{display:inline-block;padding:1rem 2rem;background:linear-gradient(45deg,var(--accent-primary),var(--accent-secondary));color:var(--bg-darker);text-decoration:none;border-radius:8px;font-weight:600;transition:all .3s ease;border:none;cursor:pointer;position:relative;overflow:hidden;font-family:JetBrains Mono,monospace;font-size:.9rem;letter-spacing:.05em}.cta-btn:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(45deg,var(--accent-secondary),var(--accent-primary));opacity:0;transition:opacity .3s ease}.cta-btn:hover{transform:translateY(-2px);box-shadow:0 10px 20px #0003}.cta-btn:hover:before{opacity:1}.cta-btn span{position:relative;z-index:1}.portfolio-section{padding:6rem 2rem;background:var(--bg-dark)}.portfolio-section h2{text-align:center;font-size:2.5rem;margin-bottom:3rem;background:linear-gradient(45deg,var(--accent-primary),var(--accent-secondary));-webkit-background-clip:text;background-clip:text;color:transparent;font-family:JetBrains Mono,monospace}.portfolio-filters{display:flex;justify-content:center;gap:1rem;margin-bottom:3rem;flex-wrap:wrap}.portfolio-filters button{padding:.5rem 1.5rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:var(--text-secondary);border-radius:6px;cursor:pointer;transition:all .3s ease;font-family:JetBrains Mono,monospace;font-size:.9rem}.portfolio-filters button:hover{background:#ffffff1a;color:var(--text-primary)}.portfolio-filters button.active{background:var(--accent-primary);color:var(--bg-darker);border-color:var(--accent-primary)}.portfolio-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;max-width:1200px;margin:0 auto}.portfolio-item{background:#ffffff0d;border-radius:12px;overflow:hidden;transition:all .3s ease;cursor:pointer;border:1px solid rgba(255,255,255,.1)}.portfolio-item:hover{transform:translateY(-5px);box-shadow:0 10px 20px #0003}.portfolio-thumb{position:relative;aspect-ratio:16/9;overflow:hidden}.portfolio-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.portfolio-item:hover .portfolio-thumb img{transform:scale(1.05)}.portfolio-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease}.portfolio-item:hover .portfolio-overlay{opacity:1}.tech-tags{display:flex;flex-wrap:wrap;gap:.5rem;padding:1rem;justify-content:center}.tech-tags span{padding:.25rem .75rem;background:#00ff9d1a;border:1px solid rgba(0,255,157,.2);border-radius:4px;font-size:.8rem;color:var(--accent-primary);font-family:JetBrains Mono,monospace}.portfolio-meta{padding:1.5rem}.portfolio-meta h3{font-size:1.2rem;margin-bottom:.5rem;color:var(--text-primary);font-family:JetBrains Mono,monospace}.portfolio-meta p{color:var(--text-secondary);font-size:.9rem}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:1000;overflow-y:scroll}.lightbox-content{background:var(--bg-dark);padding:2rem;height:100%;width:100%;position:relative;border:1px solid rgba(255,255,255,.1)}.lightbox-close{position:absolute;top:1rem;right:1rem;background:none;border:none;color:var(--text-secondary);font-size:1.5rem;cursor:pointer;transition:color .3s ease}.lightbox-close:hover{color:var(--text-primary)}.lightbox-content h3{font-size:1.5rem;margin-bottom:1rem;color:var(--text-primary);font-family:JetBrains Mono,monospace}.lightbox-content img{width:100%;border-radius:8px;margin-bottom:1rem}.lightbox-content p{color:var(--text-secondary);margin-bottom:1rem}.about-section{padding:6rem 2rem;background:var(--bg-dark);display:flex;flex-direction:column;align-items:center}.about-section h2{text-align:center;font-size:2.5rem;margin-bottom:3rem;background:linear-gradient(45deg,var(--accent-primary),var(--accent-secondary));-webkit-background-clip:text;background-clip:text;color:transparent;font-family:JetBrains Mono,monospace}.about-section h2:after{content:"";position:absolute;bottom:-10px;left:50%;transform:translate(-50%);width:60px;height:3px;background:linear-gradient(90deg,var(--accent-primary),var(--accent-secondary));border-radius:2px}.about-content{display:flex;flex-direction:column;align-items:center;gap:3rem;width:80%;margin:0 auto}.headshot-container{position:relative;width:250px;aspect-ratio:1;border-radius:12px;overflow:hidden;background:#ffffff0d;border:1px solid rgba(255,255,255,.1)}.headshot-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-secondary);text-align:center;padding:1rem}.headshot-placeholder .material-icons{font-size:4rem;margin-bottom:1rem;opacity:.5}.headshot-placeholder p{font-size:.9rem;opacity:.7}.about-text{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1.5rem;width:100%}.about-text p{color:var(--text-secondary);line-height:1.6;font-size:1.1rem}.skills{margin-top:1rem;width:100%}.skills h3{color:var(--text-primary);margin-bottom:1rem;font-size:1.2rem}.skill-tags{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center}.skill-tags span{background:#ffffff0d;color:var(--text-secondary);padding:.5rem 1rem;border-radius:20px;font-size:.9rem;transition:all .3s ease}.skill-tags span:hover{background:#ffffff1a;color:var(--text-primary);transform:translateY(-2px)}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2rem}.skill-category{background:#ffffff0d;padding:1.5rem;border-radius:12px;border:1px solid rgba(255,255,255,.1)}.skill-category h3{color:var(--accent-primary);margin-bottom:1rem;font-family:JetBrains Mono,monospace;font-size:1.1rem}.skill-category ul{list-style:none}.skill-category li{color:var(--text-secondary);margin-bottom:.5rem;font-size:.9rem;font-family:JetBrains Mono,monospace}.contact-section{padding:6rem 2rem;background:var(--bg-dark)}.contact-section h2{text-align:center;font-size:2.5rem;margin-bottom:3rem;background:linear-gradient(45deg,var(--accent-primary),var(--accent-secondary));-webkit-background-clip:text;background-clip:text;color:transparent;font-family:JetBrains Mono,monospace}.contact-content{max-width:800px;margin:0 auto;text-align:center}.contact-links{display:flex;justify-content:center;gap:2rem;flex-wrap:wrap;margin-bottom:2rem}.contact-link{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:var(--text-primary);text-decoration:none;transition:all .3s ease;font-family:JetBrains Mono,monospace}.contact-link:hover{background:var(--accent-primary);color:var(--bg-darker);transform:translateY(-2px)}.contact-link .icon{font-size:1.2rem}.contact-divider{position:relative;text-align:center;margin:2rem 0}.contact-divider:before,.contact-divider:after{content:"";position:absolute;top:50%;width:calc(50% - 30px);height:1px;background:#ffffff1a}.contact-divider:before{left:0}.contact-divider:after{right:0}.contact-divider span{display:inline-block;padding:0 1rem;color:var(--text-secondary);font-size:.9rem;font-family:JetBrains Mono,monospace}.contact-form{background:#ffffff0d;border-radius:12px;padding:2rem;border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.form-row{display:flex;gap:1rem;margin-bottom:1rem}.contact-form input,.contact-form textarea{width:100%;padding:1rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:var(--text-primary);font-family:JetBrains Mono,monospace;font-size:1rem;transition:all .3s ease}.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px #00ff9d1a}.subject-input{margin:1rem 0}.contact-form textarea{resize:vertical;min-height:120px}.contact-form button{background:linear-gradient(45deg,var(--accent-primary),var(--accent-secondary));color:var(--bg-darker);border:none;padding:1rem 2rem;border-radius:6px;font-family:JetBrains Mono,monospace;font-size:1rem;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden;width:100%;margin-top:1rem}.contact-form button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #0003}.contact-form button:disabled{opacity:.7;cursor:not-allowed}.contact-form button.submitting{background:linear-gradient(45deg,var(--accent-secondary),var(--accent-primary))}.success-message,.error-message{margin-top:1rem;padding:1rem;border-radius:6px;font-family:JetBrains Mono,monospace;text-align:center}.success-message{background:#00ff9d1a;border:1px solid var(--accent-primary);color:var(--accent-primary)}.error-message{background:#ff2d2d1a;border:1px solid var(--accent-tertiary);color:var(--accent-tertiary)}.h-links{display:flex;justify-content:center;gap:2rem;flex-wrap:wrap;margin-bottom:2rem;position:relative;z-index:3}.h-link{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:var(--text-primary);text-decoration:none;transition:all .3s ease;font-family:JetBrains Mono,monospace;cursor:pointer;position:relative;z-index:3}.h-link:hover{background:var(--accent-primary);color:var(--bg-darker);transform:translateY(-2px)}.h-link .icon{font-size:1.2rem}.about-description{direction:ltr;text-align:left}@media (max-width: 1000px){.navbar{display:none}}.readme-page{background:#141414f2;color:#eaeaea;font-family:JetBrains Mono,Consolas,Menlo,monospace;border-radius:12px;padding:2.5rem 2rem;margin-top:2.5rem;max-width:900px;width:100%;box-shadow:0 4px 24px #00000040;direction:ltr;text-align:left}.readme-page h1{font-size:2rem;margin-bottom:1.5rem;color:var(--accent-primary)}.readme-page h2{font-size:1.3rem;margin-top:2rem;margin-bottom:.7rem;color:var(--accent-secondary)}.readme-page ul{margin-left:1.5rem;margin-bottom:1rem}.readme-page li{margin-bottom:.3rem}.readme-page pre{background:#181818;color:#00ff9d;padding:1rem;border-radius:8px;font-size:1rem;overflow-x:auto;margin-bottom:1.5rem;text-align:left;direction:ltr}.readme-page code{background:#222;color:#00b8ff;padding:.2em .4em;border-radius:4px;font-size:1em}.readme-page a:hover{color:var(--accent-primary);text-decoration:underline}
