*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg: #0a0a0f;--bg-card: rgba(255,255,255,.03);--bg-card-hover: rgba(255,255,255,.06);--border: rgba(255,255,255,.08);--text: #c8c8d0;--text-bright: #eeeef0;--text-dim: #6b6b78;--cyan: #00ffff;--magenta: #ff00ff;--green: #00ff41;--red: #ff3e3e;--yellow: #ffdd57;--accent: var(--cyan);--font-body: "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--glow: 0 0 20px rgba(0,255,255,.3)}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-body);background:var(--bg);color:var(--text);line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased}::selection{background:#0ff3;color:var(--cyan)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:#00ffff4d;border-radius:3px}a{color:var(--cyan);text-decoration:none;transition:all .3s ease}a:hover{color:var(--magenta);text-shadow:0 0 10px rgba(255,0,255,.4)}strong{color:var(--text-bright)}#bg-canvas{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none}.nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem;background:#0a0a0fd9;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--border);transition:all .4s ease}.nav.scrolled{padding:.6rem 2rem;background:#0a0a0ff2}.nav-logo{font-family:var(--font-mono);font-size:1.5rem;font-weight:700;color:var(--text-bright);letter-spacing:2px}.nav-logo:hover{color:var(--text-bright);text-shadow:var(--glow)}.nav-cursor{animation:navBlink .7s infinite;color:var(--cyan)}@keyframes navBlink{0%,to{opacity:1}50%{opacity:0}}.nav-links{display:flex;gap:1.5rem;align-items:center}.nav-link{font-size:.85rem;font-weight:500;color:var(--text-dim);text-transform:uppercase;letter-spacing:1.5px;position:relative;padding:.3rem 0}.nav-link:after{content:"";position:absolute;bottom:0;left:0;width:0;height:1px;background:var(--cyan);transition:width .3s ease}.nav-link:hover{color:var(--cyan);text-shadow:none}.nav-link:hover:after{width:100%}.nav-resume{border:1px solid var(--cyan);padding:.4rem 1rem;border-radius:4px;color:var(--cyan)}.nav-resume:hover{background:#00ffff1a}.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:.5rem;flex-direction:column;gap:5px}.nav-toggle span{display:block;width:24px;height:2px;background:var(--text);transition:all .3s}.mobile-nav{display:none;position:fixed;top:0;left:0;right:0;bottom:0;z-index:99;background:#0a0a0ff7;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);flex-direction:column;align-items:center;justify-content:center;gap:1.2rem}.mobile-nav.active{display:flex}.mobile-nav-link{font-size:1.1rem;color:var(--text);font-weight:600;text-transform:uppercase;letter-spacing:2px}.mobile-nav-link:hover{color:var(--cyan)}@media(max-width:768px){.nav-links{display:none}.nav-toggle{display:flex}}.section{position:relative;z-index:1;min-height:100vh;display:flex;align-items:center;padding:6rem 2rem}.container{max-width:1100px;margin:0 auto;width:100%}.section-title{font-family:var(--font-mono);font-size:2rem;font-weight:700;color:var(--text-bright);margin-bottom:3rem;letter-spacing:1px}.title-accent{color:var(--cyan);margin-right:.5rem}.hero-section{min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;flex-direction:column;position:relative}.hero-content{z-index:2;max-width:800px}.hero-prefix{font-family:var(--font-mono);font-size:.9rem;color:var(--green);margin-bottom:1rem;opacity:0;animation:fadeInUp .8s .3s forwards}.hero-name{font-size:clamp(3rem,10vw,7rem);font-weight:900;letter-spacing:8px;color:var(--text-bright);line-height:1;margin-bottom:1.5rem;position:relative;opacity:0;animation:fadeInUp .8s .6s forwards}.glitch{position:relative}.glitch:before,.glitch:after{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%}.glitch:before{color:var(--cyan);z-index:-1;animation:glitch1 3s infinite}.glitch:after{color:var(--magenta);z-index:-2;animation:glitch2 3s infinite}@keyframes glitch1{0%,93%,to{transform:none;opacity:0}94%{transform:translate(-3px,-2px);opacity:.7}95%{transform:translate(3px,2px);opacity:.7}}@keyframes glitch2{0%,93%,to{transform:none;opacity:0}96%{transform:translate(3px,-1px);opacity:.7}97%{transform:translate(-2px,3px);opacity:.7}}.hero-tagline{font-family:var(--font-mono);font-size:1.1rem;color:var(--text-dim);min-height:1.6em;opacity:0;animation:fadeInUp .8s .9s forwards}.cursor{animation:blink 1s infinite;color:var(--cyan)}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.hero-cta{display:flex;gap:1rem;justify-content:center;margin-top:2.5rem;opacity:0;animation:fadeInUp .8s 1.2s forwards}.btn{font-family:var(--font-mono);font-size:.85rem;font-weight:600;padding:.75rem 2rem;border-radius:4px;text-transform:uppercase;letter-spacing:1.5px;transition:all .3s ease;display:inline-block}.btn-primary{background:linear-gradient(135deg,#00ffff26,#ff00ff26);border:1px solid var(--cyan);color:var(--cyan)}.btn-primary:hover{background:linear-gradient(135deg,#00ffff40,#ff00ff40);box-shadow:0 0 30px #0ff3;color:var(--cyan);text-shadow:none}.btn-outline{border:1px solid var(--border);color:var(--text)}.btn-outline:hover{border-color:var(--magenta);color:var(--magenta);text-shadow:none}.scroll-indicator{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;opacity:0;animation:fadeInUp .8s 1.8s forwards}.scroll-indicator span{font-family:var(--font-mono);font-size:.7rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:3px}.scroll-arrow{width:1px;height:40px;background:linear-gradient(to bottom,var(--cyan),transparent);animation:scrollPulse 2s infinite}@keyframes scrollPulse{0%,to{opacity:.3}50%{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.curl-section{min-height:auto;padding:4rem 2rem}.terminal-window{background:#1a1a2e;border:1px solid var(--border);border-radius:10px;overflow:hidden;max-width:700px;margin:0 auto;box-shadow:0 20px 60px #00000080}.terminal-header{background:#12121e;padding:.75rem 1rem;display:flex;align-items:center;gap:.5rem}.terminal-dot{width:12px;height:12px;border-radius:50%}.terminal-dot.red{background:#ff5f56}.terminal-dot.yellow{background:#ffbd2e}.terminal-dot.green{background:#27c93f}.terminal-title{font-family:var(--font-mono);font-size:.75rem;color:var(--text-dim);margin-left:.5rem}.terminal-body{padding:1.5rem;font-family:var(--font-mono);font-size:.85rem;line-height:1.8;position:relative}.terminal-prompt{color:var(--green)}.terminal-cmd{color:var(--text-bright)}.terminal-output{color:var(--text-dim);margin-top:.75rem;padding-bottom:2rem}.terminal-comment{color:var(--yellow)}.copy-cmd-btn{position:absolute;bottom:1rem;right:1.5rem;background:transparent;border:1px solid var(--border);color:var(--text-dim);font-family:var(--font-mono);font-size:.75rem;padding:.4rem .8rem;border-radius:4px;cursor:pointer;display:flex;align-items:center;gap:.4rem;transition:all .3s}.copy-cmd-btn:hover{border-color:var(--cyan);color:var(--cyan);background:#00ffff0d}.copy-cmd-btn.copied{border-color:var(--green);color:var(--green)}.curl-description{text-align:center;margin-top:1.5rem;font-size:.95rem;color:var(--text-dim)}.curl-description code{font-family:var(--font-mono);color:var(--cyan);background:#00ffff14;padding:.2rem .5rem;border-radius:3px}.about-section{min-height:auto}.about-grid{display:grid;grid-template-columns:280px 1fr;gap:4rem;align-items:start}.about-image-wrapper{position:relative}.about-image{width:100%;border-radius:12px;display:block;filter:grayscale(30%);transition:filter .5s}.about-image-wrapper:hover .about-image{filter:grayscale(0%)}.image-border-glow{position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:14px;z-index:-1;background:linear-gradient(135deg,var(--cyan),var(--magenta),var(--green));animation:borderRotate 4s linear infinite;filter:blur(6px);opacity:.6}@keyframes borderRotate{0%{filter:blur(6px) hue-rotate(0deg)}to{filter:blur(6px) hue-rotate(360deg)}}.about-text p{margin-bottom:1.2rem;font-size:.95rem}.about-text em{color:var(--cyan);font-style:normal}@media(max-width:768px){.about-grid{grid-template-columns:1fr;gap:2rem}.about-image-wrapper{max-width:250px;margin:0 auto}}.experience-section{min-height:auto}.timeline{position:relative;padding-left:2rem}.timeline:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,var(--cyan),var(--magenta),transparent)}.timeline-item{position:relative;margin-bottom:3rem}.timeline-marker{position:absolute;left:-2rem;top:1.5rem;width:12px;height:12px;border-radius:50%;background:var(--bg);border:2px solid var(--cyan);transform:translate(-5px);box-shadow:0 0 10px #0ff6}.timeline-content{padding:1.5rem 2rem}.timeline-date{font-family:var(--font-mono);font-size:.8rem;color:var(--cyan)}.timeline-content h3{font-size:1.2rem;color:var(--text-bright);margin:.5rem 0 .2rem}.timeline-content h4{font-size:.95rem;color:var(--magenta);margin-bottom:1rem;font-weight:400}.timeline-content ul{list-style:none}.timeline-content li{position:relative;padding-left:1.2rem;margin-bottom:.5rem;font-size:.9rem}.timeline-content li:before{content:"▹";position:absolute;left:0;color:var(--cyan)}.skills-section{min-height:auto}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}.skill-category h3{font-family:var(--font-mono);font-size:1rem;color:var(--text-bright);margin-bottom:1rem}.skill-icon{margin-right:.5rem}.skill-pills{display:flex;flex-wrap:wrap;gap:.5rem}.pill{font-family:var(--font-mono);font-size:.75rem;padding:.35rem .75rem;border:1px solid var(--border);border-radius:20px;color:var(--text);transition:all .3s ease;cursor:default}.pill:hover{border-color:var(--cyan);color:var(--cyan);box-shadow:0 0 12px #00ffff26}.glass-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1.5rem;transition:all .4s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.glass-card:hover{background:var(--bg-card-hover);border-color:#00ffff26;box-shadow:0 8px 40px #0000004d,inset 0 0 30px #00ffff05}.projects-section{min-height:auto}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.project-card{display:flex;flex-direction:column;gap:.75rem;text-decoration:none;color:var(--text)}.project-card:hover{color:var(--text);text-shadow:none;transform:translateY(-4px)}.project-icon{width:48px;height:48px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:700;font-size:.9rem;color:#fff}.project-card h3{font-size:1.1rem;color:var(--text-bright)}.project-card p{font-size:.85rem;color:var(--text-dim);flex:1}.project-link{font-family:var(--font-mono);font-size:.8rem;color:var(--cyan)}.awards-section{min-height:auto}.awards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.award-card{text-align:center}.award-icon{font-size:2.5rem;margin-bottom:1rem}.award-card h3{font-size:1rem;color:var(--text-bright);margin-bottom:.5rem}.award-card p{font-size:.85rem;color:var(--text-dim)}.contact-section{min-height:auto}.contact-intro{text-align:center;font-size:1rem;color:var(--text-dim);margin-top:-2rem;margin-bottom:3rem}.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem}.contact-card{text-align:center;text-decoration:none;color:var(--text);display:flex;flex-direction:column;align-items:center;gap:.5rem}.contact-card:hover{color:var(--text);text-shadow:none;transform:translateY(-4px)}.contact-icon{font-size:2rem}.contact-card h3{font-size:.95rem;color:var(--text-bright)}.contact-card p{font-size:.8rem;color:var(--text-dim);font-family:var(--font-mono)}.footer{position:relative;z-index:1;text-align:center;padding:3rem 2rem;border-top:1px solid var(--border);font-size:.85rem;color:var(--text-dim)}.footer-curl{margin-top:.5rem}.footer-curl code{font-family:var(--font-mono);color:var(--green)}.fab{position:fixed;bottom:2rem;right:2rem;z-index:200;width:56px;height:56px;border-radius:50%;border:1px solid var(--cyan);background:#0a0a0fe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 0 20px #0ff3;transition:all .3s ease;color:var(--cyan);animation:fabPulse 3s ease-in-out infinite}.fab:hover{box-shadow:0 0 30px #0ff6;transform:scale(1.1);animation:none}.fab .fab-icon{transition:opacity .2s,transform .3s;position:absolute}.fab .fab-close{opacity:0;transform:rotate(-90deg)}.fab.active .fab-chat{opacity:0;transform:rotate(90deg)}.fab.active .fab-close{opacity:1;transform:rotate(0)}.fab.active{animation:none}@keyframes fabPulse{0%,to{box-shadow:0 0 20px #0ff3}50%{box-shadow:0 0 30px #00ffff59}}.chat-popup{display:none;position:fixed;bottom:6rem;right:2rem;z-index:200;width:auto;min-width:360px;max-width:600px;max-height:550px;border-radius:12px;overflow:hidden;background:#0f0f19f2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border);box-shadow:0 20px 60px #0009;flex-direction:column}@media(max-width:600px){.chat-popup{right:1rem;bottom:5rem;min-width:0;width:calc(100vw - 2rem);max-width:none;max-height:75vh}}.chat-popup.active{display:flex}.chat-popup-header{padding:1rem 1.25rem;border-bottom:1px solid var(--border);background:#00ffff08}.chat-popup-header h2{font-family:var(--font-mono);font-size:.85rem;color:var(--cyan);font-weight:600;letter-spacing:.5px}.chat-messages{flex:1;overflow-y:auto;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.75rem;max-height:320px;min-height:200px}.chat-message p,.markdown-content p{margin:0 0 .5rem;font-size:.85rem;line-height:1.5}.chat-message p:last-child,.markdown-content p:last-child{margin-bottom:0}.markdown-content ul,.markdown-content ol{margin:0 0 .5rem 1.2rem;padding:0;font-size:.85rem}.markdown-content li{margin-bottom:.2rem}.markdown-content a{color:var(--cyan);text-decoration:none}.markdown-content a:hover{text-decoration:underline}.markdown-content code{background:#0000004d;padding:.1rem .3rem;border-radius:4px;font-family:var(--font-mono);font-size:.75rem}.chat-message.user-message{align-self:flex-end;background:#00ffff1a;border:1px solid rgba(0,255,255,.15);border-radius:12px 12px 2px;padding:.6rem 1rem;max-width:85%;color:var(--text-bright)}.chat-message.bot-message{align-self:flex-start;background:#ffffff0a;border:1px solid var(--border);border-radius:12px 12px 12px 2px;padding:.6rem 1rem;max-width:85%;color:var(--text)}.chat-message.error-message{align-self:flex-start;color:var(--red);font-size:.8rem}.typing-indicator{display:none;align-self:flex-start;gap:4px;padding:.6rem 1rem;background:#ffffff0a;border-radius:12px 12px 12px 2px;border:1px solid var(--border)}.typing-indicator .dot{width:6px;height:6px;border-radius:50%;background:var(--text-dim);animation:dotPulse 1.4s infinite}.typing-indicator .dot:nth-child(2){animation-delay:.2s}.typing-indicator .dot:nth-child(3){animation-delay:.4s}@keyframes dotPulse{0%,to{opacity:.3}50%{opacity:1}}.command-menu{position:absolute;bottom:100%;left:0;right:0;background:#0f0f19f2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border);border-bottom:none;border-radius:12px 12px 0 0;padding:.5rem 0;max-height:200px;overflow-y:auto;box-shadow:0 -10px 20px #0006;z-index:10}.command-menu.hidden{display:none}.command-item{padding:.6rem 1rem;cursor:pointer;display:flex;align-items:center;gap:.5rem;color:var(--text);font-size:.85rem;transition:background .2s}.command-item:hover,.command-item.active{background:#00ffff1a;color:var(--cyan)}.command-item strong{color:var(--cyan);font-family:var(--font-mono)}.chat-input-container{position:relative;display:flex;gap:.5rem;padding:.75rem 1rem;align-items:flex-end;border-top:1px solid var(--border);background:#0003}.chat-input{flex:1;background:#ffffff0d;border:1px solid var(--border);border-radius:8px;padding:.6rem .75rem;color:var(--text-bright);@keyframes blink{0%,to{opacity:1}50%{opacity:0}}}.chat-input .chat-input::placeholder{color:var(--text-dim);opacity:.6}.chat-input .chat-input:focus{border-color:var(--cyan)}@media(max-width:480px){.chat-input .chat-input{font-size:.8rem;padding:.5rem .6rem}.chat-input .chat-input::placeholder{font-size:.75rem}}.chat-input .chat-send-button{background:#00ffff1a;border:1px solid var(--cyan);border-radius:8px;padding:.5rem .75rem;cursor:pointer;color:var(--cyan);transition:all .3s}.chat-input .chat-send-button:hover{background:#0ff3}.chat-input .chat-quick-buttons{display:flex;flex-wrap:wrap;gap:.4rem;padding:.25rem 0}.chat-input .quick-btn{font-family:var(--font-mono);font-size:.7rem;padding:.35rem .65rem;border-radius:20px;border:1px solid rgba(0,255,255,.2);background:#00ffff0d;color:var(--cyan);cursor:pointer;transition:all .25s ease;white-space:normal;text-align:center}@media(max-width:480px){.chat-input .quick-btn{font-size:.65rem;padding:.3rem .5rem}}.chat-input .quick-btn:hover{background:#00ffff26;border-color:var(--cyan);box-shadow:0 0 10px #00ffff1a;transform:translateY(-1px)}.chat-input .chat-quick-buttons.hidden{display:none}.chat-input .bot-message.streaming p:after{content:"▌";color:var(--cyan);animation:blink .6s infinite;margin-left:1px}@media(max-width:600px){.chat-input .fab{bottom:1.5rem;right:1.5rem}}.chat-input .reveal{opacity:1;transform:translateY(0)}.chat-input body.js-loaded .reveal{opacity:0;transform:translateY(40px);transition:opacity .7s ease,transform .7s ease}.chat-input body.js-loaded .reveal.visible{opacity:1;transform:translateY(0)}@media(max-width:600px){.chat-input .section{padding:4rem 1.25rem}.chat-input .section-title{font-size:1.5rem}.chat-input .hero-name{letter-spacing:4px}.chat-input .hero-cta{flex-direction:column;align-items:center}.chat-input .projects-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.chat-input *,.chat-input *:before,.chat-input *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.chat-input .hero-prefix,.chat-input .hero-name,.chat-input .hero-tagline,.chat-input .hero-cta,.chat-input .scroll-indicator{opacity:1!important;transform:none!important;animation:none!important}.chat-input body.js-loaded .reveal{opacity:1!important;transform:none!important;transition:none!important}}
