:root,[data-theme=dark],[data-theme=light]{--accent-darker:#6d28d9;--accent-darkest:#4c1d95}.font-mono,.section-tag{font-family:'JetBrains Mono',monospace}#cursorDot,#cursorRing{transform:translate(-50%,-50%);position:fixed;pointer-events:none}#cursorDot,#cursorRing,#loader,#navbar,#scrollProgress{position:fixed}.btn svg,.nav-icon-btn svg{width:16px;height:16px}#hero,.nav-link,section{position:relative}.grad,.loader-code,.logo-bracket,.typing-text{-webkit-text-fill-color:transparent}#cursorDot,#cursorRing,#loader.hidden,#particleCanvas,.blob,.focus-glow,.hero-grid-overlay{pointer-events:none}.proj-link,a{text-decoration:none}.about-card,.form-feedback,.hero-inner,.loader-content,.section-sub,.terminal-filename{text-align:center}#education,#footer,#loader,#projects,#skills,body{background:var(--bg)}.back-top-btn,.btn,.nav-hamburger,.nav-icon-btn,.nav-logo,.roaming-bot,.theme-btn{cursor:pointer}#hero,.chat-panel,.hero-focus-card,.project-card,.skill-bar,.terminal-window{overflow:hidden}.chat-messages,html{scrollbar-width:thin}:root,[data-theme=dark]{--bg:#020617;--bg-2:#0f172a;--bg-3:#1e293b;--glass:rgba(15, 23, 42, 0.6);--glass-strong:rgba(15, 23, 42, 0.88);--glass-card:rgba(30, 41, 59, 0.45);--border:rgba(255, 255, 255, 0.07);--border-glow:rgba(139, 92, 246, 0.35);--accent:#8b5cf6;--accent-2:#06b6d4;--accent-3:#3b82f6;--grad:linear-gradient(135deg, #8b5cf6 0%, #06b6d4 50%, #3b82f6 100%);--grad-glow:0 0 25px rgba(139, 92, 246, 0.4);--text:#f1f5f9;--text-muted:#94a3b8;--text-faint:#334155;--radius:14px;--radius-sm:8px;--radius-pill:999px;--transition:0.3s cubic-bezier(0.4, 0, 0.2, 1);--shadow:0 20px 60px rgba(0, 0, 0, 0.5)}.btn,.glass-card{transition:all var(--transition)}[data-theme=light]{--bg:#f0f4ff;--bg-2:#e6ecff;--bg-3:#dce5ff;--glass:rgba(255, 255, 255, 0.65);--glass-strong:rgba(255, 255, 255, 0.92);--glass-card:rgba(255, 255, 255, 0.75);--border:rgba(0, 0, 0, 0.07);--border-glow:rgba(109, 40, 217, 0.3);--accent:#7c3aed;--accent-2:#0891b2;--accent-3:#2563eb;--grad:linear-gradient(135deg, #7c3aed 0%, #0891b2 50%, #2563eb 100%);--grad-glow:0 0 25px rgba(124, 58, 237, 0.3);--text:#0f172a;--text-muted:#475569;--text-faint:#94a3b8;--shadow:0 20px 60px rgba(0, 0, 0, 0.12)}[data-theme=light] #particleCanvas{opacity:.35}.nav-hamburger.open span:nth-child(2),.reveal{opacity:0}[data-theme=cyber]{--bg:#000805;--bg-2:#000f0a;--bg-3:#001a10;--glass:rgba(0, 255, 100, 0.04);--glass-strong:rgba(0, 10, 6, 0.92);--glass-card:rgba(0, 255, 100, 0.06);--border:rgba(0, 255, 100, 0.12);--border-glow:rgba(0, 255, 100, 0.45);--accent:#00ff88;--accent-2:#ff00ff;--accent-3:#00ffff;--accent-darker:#00cc66;--accent-darkest:#009944;--grad:linear-gradient(135deg, #00ff88 0%, #ff00ff 50%, #00ffff 100%);--grad-glow:0 0 30px rgba(0, 255, 136, 0.5);--text:#ccffe6;--text-muted:#66cc99;--text-faint:#224433}::-webkit-scrollbar{width:5px}.full-w,.nav-link.active::after,.nav-link:hover::after{width:100%}::-webkit-scrollbar-track{background:var(--bg-2)}::-webkit-scrollbar-thumb{background:var(--accent);border-radius:99px}.glass,.glass-card,.glass-strong{border:1px solid var(--border)}*,::after,::before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scrollbar-color:var(--accent) var(--bg-2)}body{font-family:Inter,sans-serif;color:var(--text);line-height:1.75;overflow-x:hidden;cursor:none;transition:background .4s,color .4s}a{color:inherit}ul{list-style:none}img{display:block;max-width:100%}#particleCanvas{position:fixed;inset:0;z-index:0;opacity:.7;transition:opacity .4s}.grad,.logo-bracket{background:var(--grad);-webkit-background-clip:text;background-clip:text}.glass{background:var(--glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.glass-strong{background:var(--glass-strong);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}.glass-card{background:var(--glass-card);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.glass-card:hover{border-color:var(--border-glow);transform:translateY(-5px);box-shadow:0 20px 40px -12px rgba(139,92,246,.25)}.container{max-width:1160px;margin:0 auto;padding:0 1.5rem}section{padding:6rem 0;z-index:2}.section-tag{display:inline-block;font-size:.75rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);border:1px solid var(--border-glow);border-radius:var(--radius-pill);padding:.3rem .9rem;margin-bottom:1rem;background:rgba(139,92,246,.08)}.btn,.section-title{font-family:Inter,sans-serif}.section-tag.alt{color:var(--accent-2);border-color:rgba(6,182,212,.35);background:rgba(6,182,212,.08)}.section-title{font-size:clamp(1.9rem, 3.5vw, 2.8rem);font-weight:800;line-height:1.15;margin-bottom:3.5rem;color:var(--text)}.section-title.center{text-align:center;margin-left:auto;margin-right:auto}.section-sub{color:var(--text-muted);margin-top:-2.5rem;margin-bottom:3rem}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.8rem;border-radius:var(--radius-pill);font-weight:700;font-size:.9rem;letter-spacing:.02em;border:none}.hero-status-badge,.loader-code,.loader-tip,.nav-logo{font-family:'JetBrains Mono',monospace}.btn svg{flex-shrink:0}.full-w,.hero-cta{justify-content:center}.btn-primary{background:var(--grad);color:#fff;box-shadow:var(--grad-glow)}.btn-primary:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 0 40px rgba(139,92,246,.6)}.btn-outline{background:0 0;color:var(--text);border:1.5px solid var(--border-glow)}.btn-outline:hover{background:rgba(139,92,246,.1);transform:translateY(-2px)}#loader,.nav-inner{display:flex;align-items:center}.reveal{transform:translateY(36px);transition:opacity .75s,transform .75s}.nav-link,.nav-logo{transition:color var(--transition);font-weight:500}.reveal.visible{opacity:1;transform:translateY(0)}#loader{inset:0;z-index:9999;justify-content:center;transition:opacity .6s,visibility .6s}#loader.hidden{opacity:0;visibility:hidden}.loader-code{font-size:clamp(1.4rem, 4vw, 2.2rem);font-weight:500;background:var(--grad);-webkit-background-clip:text;background-clip:text;margin-bottom:1.5rem;animation:1.5s ease-in-out infinite loaderPulse}@keyframes loaderPulse{0%,100%{opacity:1}50%{opacity:.6}}.loader-bar-wrap{width:200px;height:3px;background:var(--border);border-radius:99px;overflow:hidden;margin:0 auto 1rem}.loader-fill{height:100%;width:0%;background:var(--grad);border-radius:99px;animation:2s forwards loaderFill}@keyframes loaderFill{to{width:100%}}.loader-tip{font-size:.75rem;color:var(--text-muted);letter-spacing:.1em}.nav-link.active,.nav-link:hover,.nav-logo{color:var(--text)}#cursorDot{width:8px;height:8px;background:var(--accent);border-radius:50%;z-index:9998;transition:transform 50ms}#cursorRing{width:34px;height:34px;border:1.5px solid rgba(139,92,246,.5);border-radius:50%;z-index:9997;transition:left .1s,top .1s,width .25s,height .25s,border-color .25s}#cursorRing.hovered{width:52px;height:52px;border-color:var(--accent);background:rgba(139,92,246,.08)}#scrollProgress{top:0;left:0;height:3px;width:0%;background:var(--grad);z-index:9900;transition:width .1s linear}#navbar{top:0;left:0;right:0;z-index:800;padding:1rem 2rem;transition:padding var(--transition),background var(--transition),border-color var(--transition)}#navbar.scrolled{background:var(--glass-strong);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border);padding:.65rem 2rem}.nav-inner{max-width:1160px;margin:0 auto;justify-content:space-between}.nav-actions,.nav-links{align-items:center;display:flex}.nav-logo{font-size:1.25rem}.nav-links{gap:2rem}.nav-link{font-size:.875rem;color:var(--text-muted)}.nav-icon-btn,.social-pill{transition:all var(--transition)}.nav-link::after{content:'';position:absolute;bottom:-3px;left:0;width:0;height:1.5px;background:var(--grad);transition:width var(--transition)}.nav-actions{gap:.75rem}.nav-icon-btn{width:36px;height:36px;border-radius:50%;background:rgba(139,92,246,.1);border:1px solid var(--border-glow);color:var(--accent);display:flex;align-items:center;justify-content:center}.nav-icon-btn:hover{background:rgba(139,92,246,.25);transform:rotate(20deg)}.nav-hamburger{display:none;flex-direction:column;gap:5px;background:0 0;border:none;padding:4px}.nav-hamburger span{display:block;width:22px;height:2px;background:var(--text);border-radius:2px;transition:var(--transition)}.nav-hamburger.open span:first-child{transform:translateY(7px) rotate(45deg)}.nav-hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}#hero{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:5rem 1.5rem 2rem}.blob{position:absolute;border-radius:50%;filter:blur(90px);animation:10s ease-in-out infinite alternate blobFloat}.blob-1{width:600px;height:600px;background:rgba(139,92,246,.18);top:-150px;right:-100px;animation-duration:12s}.blob-2{width:400px;height:400px;background:rgba(6,182,212,.14);bottom:-80px;left:-60px;animation-duration:9s;animation-delay:-4s}.blob-3{width:280px;height:280px;background:rgba(59,130,246,.1);top:40%;left:25%;animation-duration:7s;animation-delay:-7s}@keyframes blobFloat{0%{transform:translate(0,0) scale(1)}100%{transform:translate(25px,-35px) scale(1.07)}}.hero-grid-overlay{position:absolute;inset:0;background-image:radial-gradient(var(--text-faint) 1px,transparent 1px);background-size:32px 32px;mask-image:radial-gradient(ellipse 80% 70% at 50% 50%,black 20%,transparent 100%);opacity:.6}.hero-inner{max-width:820px;margin:0 auto;position:relative;z-index:2}.hero-status-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem 1.1rem;border-radius:var(--radius-pill);background:var(--glass);border:1px solid rgba(0,255,100,.2);color:#4ade80;font-size:.8rem;font-weight:500;margin-bottom:1.8rem}.focus-title,.hero-name,.typing-text{font-family:Inter,sans-serif}.status-dot{width:7px;height:7px;background:#4ade80;border-radius:50%;animation:1.5s ease-in-out infinite dotPulse}@keyframes dotPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.4)}}.hero-name{font-size:clamp(2.8rem, 7vw, 5.5rem);font-weight:800;line-height:1.05;letter-spacing:-.02em;color:var(--text);margin-bottom:1rem}.hero-typing-row{display:flex;align-items:center;justify-content:center;gap:.15rem;margin-bottom:1.5rem;min-height:2rem}.typing-text{font-size:clamp(1rem, 2.5vw, 1.4rem);font-weight:600;background:var(--grad);-webkit-background-clip:text;background-clip:text}.type-cursor{font-size:1.4rem;color:var(--accent);animation:.7s step-end infinite typeBlink}.focus-badge,.hero-bio,.social-pill{color:var(--text-muted)}@keyframes typeBlink{0%,100%{opacity:1}50%{opacity:0}}.hero-bio{font-size:1.05rem;max-width:560px;margin:0 auto 2.2rem;line-height:1.8}.hero-cta{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:2rem}.hero-social{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap;margin-bottom:3rem}.social-pill{display:flex;align-items:center;gap:.4rem;padding:.4rem .9rem;border-radius:var(--radius-pill);border:1px solid var(--border);font-size:.8rem;font-weight:500}.social-pill svg{width:14px;height:14px;flex-shrink:0}.social-pill:hover{border-color:var(--accent);color:var(--text);transform:translateY(-2px);background:rgba(139,92,246,.08)}.skill-category:hover,.stat-chip:hover,.timeline-card:hover{border-color:var(--border-glow)}.hero-focus-card{max-width:380px;margin:0 auto;border-radius:var(--radius);position:relative;border:1px solid var(--border-glow);transform-style:preserve-3d;perspective:1000px}.focus-card-inner{padding:2rem;position:relative;z-index:1}.focus-badge{font-size:.75rem;letter-spacing:.06em;margin-bottom:.75rem}.focus-title{font-size:1.4rem;font-weight:700;color:var(--text);margin-bottom:1.2rem}.card-badges,.focus-tags{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.tag{font-size:.73rem;font-weight:600;padding:.25rem .8rem;border-radius:var(--radius-pill);background:rgba(139,92,246,.12);border:1px solid rgba(139,92,246,.25);color:var(--accent)}#profileInitials,.stat-val{font-weight:800;font-family:Inter,sans-serif}.focus-glow{position:absolute;inset:-20px;background:radial-gradient(circle at 50% 50%,rgba(139,92,246,.15),transparent 70%)}.scroll-hint{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--text-faint);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;z-index:3}.scroll-line{width:1px;height:45px;background:linear-gradient(to bottom,var(--text-faint),transparent);animation:1.6s ease-in-out infinite scrollAnim}@keyframes scrollAnim{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}#about,#console-section,#contact,#resume{background:var(--bg-2)}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}.about-paragraphs{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem}.about-paragraphs p{color:var(--text-muted);font-size:1rem;line-height:1.8}.about-paragraphs strong{color:var(--text);font-weight:500}.about-stats{display:flex;flex-wrap:wrap;gap:.85rem}.stat-chip{display:flex;flex-direction:column;align-items:center;padding:.85rem 1.2rem;background:var(--glass-card);border:1px solid var(--border);border-radius:var(--radius-sm);min-width:70px;transition:border-color var(--transition)}#profileInitials,#profilePhoto{background:var(--grad);width:120px}.stat-val{font-size:1.4rem;line-height:1}.stat-key{font-size:.7rem;color:var(--text-muted);margin-top:.3rem;letter-spacing:.04em}.cc-label,.timeline-date{letter-spacing:.08em;text-transform:uppercase}.about-card-col{position:relative;display:flex;justify-content:center}.card-gradient-border{position:absolute;inset:-4px;background:var(--grad);border-radius:calc(var(--radius) + 6px);opacity:.4;filter:blur(12px);animation:4s ease-in-out infinite alternate borderPulse}.photo-overlay,.project-card::before{opacity:0;transition:opacity var(--transition);inset:0}@keyframes borderPulse{0%{opacity:.3;transform:scale(1)}100%{opacity:.6;transform:scale(1.02)}}.about-card{position:relative;z-index:1;border-radius:var(--radius);padding:2.5rem 2rem;max-width:320px;width:100%}.profile-photo-wrap{position:relative;width:120px;height:120px;margin:0 auto 1.2rem;cursor:pointer;border-radius:50%}#profilePhoto{height:120px;border-radius:50%;object-fit:cover;border:3px solid transparent;background-clip:padding-box;display:none}#profileInitials,.photo-overlay{border-radius:50%;display:flex;color:#fff}#profileInitials{height:120px;align-items:center;justify-content:center;font-size:2.5rem}.photo-overlay{position:absolute;background:rgba(0,0,0,.65);flex-direction:column;align-items:center;justify-content:center;gap:.35rem;font-size:.72rem;font-weight:500}#footer,.project-card,.project-card>*,.timeline,.timeline-item{position:relative}.form-group input,.form-group textarea,.skill-category{transition:border-color var(--transition),box-shadow var(--transition)}.photo-overlay svg{width:22px;height:22px}.profile-photo-wrap:hover .photo-overlay{opacity:1}#photoInput{display:none}.card-code-tag{font-size:.8rem;color:var(--accent);margin-bottom:.5rem}.card-name{font-family:Inter,sans-serif;font-size:1.25rem;font-weight:800;color:var(--text);margin-bottom:.25rem}.card-title,.cbadge{color:var(--text-muted)}.card-title{font-size:.875rem;margin-bottom:1.2rem}.cbadge{font-size:.72rem;padding:.25rem .7rem;border-radius:var(--radius-pill);background:rgba(139,92,246,.1);border:1px solid rgba(139,92,246,.2)}.project-card,.skill-category{border:1px solid var(--border)}.skills-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.skill-category{background:var(--glass-card);border-radius:var(--radius);padding:1.8rem}.skill-category:hover{box-shadow:0 8px 30px rgba(139,92,246,.1)}.category-title{font-family:Inter,sans-serif;font-size:1rem;font-weight:700;color:var(--text);margin-bottom:1.5rem;display:flex;align-items:center;gap:.6rem}.skill-pct,.terminal-code,.terminal-lang{font-family:'JetBrains Mono',monospace}.cat-icon{font-size:1.1rem}.skill-items{display:flex;flex-direction:column;gap:1rem}.skill-row{display:flex;justify-content:space-between;font-size:.85rem;color:var(--text-muted);margin-bottom:.5rem}.skill-pct{color:var(--accent);font-weight:600}.skill-bar{height:5px;background:rgba(255,255,255,.07);border-radius:99px}.skill-fill{height:100%;width:0;background:var(--grad);border-radius:99px;transition:width 1.4s cubic-bezier(.4, 0, .2, 1)}.proj-link,.project-card{transition:all var(--transition)}.terminal-window{border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);max-width:800px;margin:0 auto}.terminal-header{display:flex;align-items:center;gap:1rem;padding:.85rem 1.2rem;background:rgba(0,0,0,.4);border-bottom:1px solid var(--border)}.terminal-dots{display:flex;gap:6px}.tdot{width:12px;height:12px;border-radius:50%;display:block}.tdot-red{background:#ff5f57}.tdot-yellow{background:#febc2e}.tdot-green{background:#28c840}.terminal-filename{font-size:.8rem;color:var(--text-muted);flex:1}.terminal-lang{font-size:.72rem;color:var(--accent);border:1px solid var(--border-glow);border-radius:4px;padding:.1rem .5rem}.terminal-body{background:rgba(2,6,23,.85);padding:1.5rem;min-height:280px}.terminal-code{font-size:.85rem;line-height:1.75;color:#a8b8d8;white-space:pre-wrap;word-break:break-word}.project-title,.resume-name{font-family:Inter,sans-serif;font-weight:700}.kw{color:#c678dd}.str{color:#98c379}.num{color:#d19a66}.cmt{color:#5c6370;font-style:italic}.prop{color:#e06c75}.fn{color:#61afef}.pun{color:#abb2bf}.console-cursor{display:inline-block;color:var(--accent);animation:1s step-end infinite consoleBlink;font-size:.9rem}@keyframes consoleBlink{0%,100%{opacity:1}50%{opacity:0}}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.75rem}.project-card{background:var(--glass-card);border-radius:var(--radius);padding:1.8rem;display:flex;flex-direction:column;gap:1rem}.proj-link,.timeline-card{border:1px solid var(--border)}.project-card::before{content:'';position:absolute;background:var(--grad)}.cv-note code,.proj-link:hover,.resume-icon-wrap{background:rgba(139,92,246,.1)}.project-card:hover{transform:translateY(-6px);border-color:var(--border-glow);box-shadow:var(--shadow)}.project-card:hover::before{opacity:.04}.project-card>*{z-index:1}.project-top{display:flex;justify-content:space-between;align-items:flex-start}.project-emoji{font-size:2.2rem;line-height:1}.project-links{display:flex;gap:.4rem}.proj-link{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-muted);font-size:.8rem}.proj-link svg{width:14px;height:14px}.proj-link:hover{border-color:var(--accent);color:var(--text)}.project-title{font-size:1.1rem;color:var(--text)}.project-desc{font-size:.875rem;color:var(--text-muted);line-height:1.7;flex:1}.project-tags,.resume-meta{flex-wrap:wrap;display:flex}.project-tags{gap:.4rem}.resume-card{display:flex;align-items:center;gap:2rem;border-radius:var(--radius);padding:2.5rem;flex-wrap:wrap;margin-bottom:1.25rem}.resume-icon-wrap{width:80px;height:80px;border-radius:50%;border:2px solid var(--border-glow);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--accent)}.resume-icon-wrap svg{width:36px;height:36px}.resume-info{flex:1;min-width:200px}.resume-name{font-size:1.25rem;color:var(--text);margin-bottom:.4rem}.cv-note,.resume-meta,.resume-subtitle{color:var(--text-muted)}.resume-subtitle{font-size:.9rem;margin-bottom:.85rem}.resume-meta{gap:.75rem;font-size:.8rem}.resume-actions{display:flex;gap:.85rem;flex-wrap:wrap}.cv-note{font-size:.82rem;background:rgba(139,92,246,.05);border:1px dashed var(--border-glow);border-radius:var(--radius-sm);padding:.75rem 1.2rem}.cv-note code,.timeline-date{font-family:'JetBrains Mono',monospace;color:var(--accent)}.cv-note code{font-size:.8rem;padding:.1rem .4rem;border-radius:4px}.timeline{max-width:700px;margin:0 auto}.timeline::before{content:'';position:absolute;left:14px;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,var(--accent),transparent)}.timeline-item{padding-left:54px;margin-bottom:2.5rem}.timeline-dot{position:absolute;left:7px;top:8px;width:16px;height:16px;border-radius:50%;background:var(--accent);border:3px solid var(--bg);box-shadow:0 0 14px rgba(139,92,246,.65)}.bot-speech,.toast{left:50%;opacity:0;pointer-events:none}.contact-card,.timeline-card{background:var(--glass-card)}.timeline-card{border-radius:var(--radius);padding:1.6rem 1.8rem;transition:border-color var(--transition)}.back-top-btn,.contact-card{transition:all var(--transition)}.timeline-date{display:block;font-size:.75rem;margin-bottom:.5rem}.timeline-card h3{font-family:Inter,sans-serif;font-size:1.1rem;font-weight:700;color:var(--text);margin-bottom:.2rem}.timeline-org{font-size:.85rem;color:var(--accent-2);font-weight:500;margin-bottom:.6rem;display:block}.timeline-desc{font-size:.875rem;color:var(--text-muted);line-height:1.7}.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:3rem;align-items:start}.contact-blurb{color:var(--text-muted);font-size:1rem;line-height:1.8;margin-bottom:2rem}.contact-cards{display:flex;flex-direction:column;gap:.85rem}.contact-card{display:flex;align-items:center;gap:1.1rem;padding:1rem 1.25rem;border:1px solid var(--border);border-radius:var(--radius-sm)}.contact-card:not(.no-hover):hover{border-color:var(--border-glow);transform:translateX(6px)}.cc-icon-wrap{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff}#chatSendBtn svg,.cc-icon-wrap svg,.footer-links a svg{width:18px;height:18px}.email-ico{background:rgba(139,92,246,.15);color:var(--accent)}.phone-ico{background:rgba(6,182,212,.15);color:var(--accent-2)}.li-ico{background:rgba(59,130,246,.15);color:var(--accent-3)}.link-ico{background:rgba(236,72,153,.15);color:#ec4899}.loc-ico{background:rgba(74,222,128,.15);color:#4ade80}.cc-label{display:block;font-size:.72rem;color:var(--text-muted);margin-bottom:.2rem}.cc-value{display:block;font-size:.875rem;color:var(--text);font-weight:500;word-break:break-all}.contact-form-wrap{border-radius:var(--radius);padding:2rem}.form-title{font-family:Inter,sans-serif;font-size:1.2rem;font-weight:700;color:var(--text);margin-bottom:1.5rem}.form-group{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1.1rem}.footer-inner,.theme-btn{display:flex;align-items:center}.form-group label{font-size:.8rem;font-weight:500;color:var(--text-muted);letter-spacing:.04em}.form-group input,.form-group textarea{background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem 1rem;color:var(--text);font-family:Inter,sans-serif;font-size:.9rem;outline:0;resize:none}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-faint)}.form-group input:focus,.form-group textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(139,92,246,.12)}[data-theme=light] .form-group input,[data-theme=light] .form-group textarea{background:rgba(255,255,255,.8);border-color:rgba(0,0,0,.12)}.form-feedback{font-size:.82rem;min-height:1.2rem;margin-top:.75rem}#footer{border-top:1px solid var(--border);padding:2rem 0;z-index:2}.footer-inner{justify-content:space-between;flex-wrap:wrap;gap:1rem}.footer-logo{font-family:'JetBrains Mono',monospace;font-size:1.1rem}#chatInput,.chat-bot-name,.qr-btn,.theme-btn{font-family:Inter,sans-serif}.footer-text{font-size:.85rem;color:var(--text-muted)}.footer-links{display:flex;gap:.85rem}.footer-links a{color:var(--text-muted);transition:color var(--transition),transform var(--transition);display:flex}.footer-links a:hover{color:var(--text);transform:translateY(-2px)}.back-top-btn{width:38px;height:38px;border-radius:50%;background:rgba(139,92,246,.12);border:1px solid var(--border-glow);color:var(--accent);font-size:1rem}.back-top-btn:hover{background:var(--accent);color:#fff;transform:translateY(-3px)}.theme-panel{position:fixed;top:70px;right:1.5rem;z-index:900;border-radius:var(--radius);padding:1rem;min-width:160px;display:flex;flex-direction:column;gap:.5rem;transform:scale(.85) translateY(-10px);opacity:0;pointer-events:none;transform-origin:top right;transition:.25s cubic-bezier(.4, 0, .2, 1)}.chat-panel.open,.theme-panel.open{transform:scale(1) translateY(0);opacity:1;pointer-events:all}.theme-panel-title{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);padding-bottom:.5rem;border-bottom:1px solid var(--border);margin-bottom:.25rem}.theme-btn{gap:.6rem;padding:.55rem .9rem;border-radius:var(--radius-sm);border:1px solid transparent;background:0 0;color:var(--text-muted);font-size:.85rem;font-weight:500;transition:all var(--transition);text-align:left}.theme-btn:hover{background:rgba(255,255,255,.05);color:var(--text)}.theme-btn.active{border-color:var(--border-glow);color:var(--accent);background:rgba(139,92,246,.1)}.roaming-bot{position:fixed;z-index:600;width:62px;user-select:none;filter:drop-shadow(0 6px 16px rgba(139, 92, 246, .5));transition:filter var(--transition)}.roaming-bot:hover{filter:drop-shadow(0 8px 24px rgba(139, 92, 246, .8))}.bot-svg{width:62px;display:block}.roaming-bot.walking .bot-leg-l{animation:.45s ease-in-out infinite alternate legLeft;transform-origin:19px 67px}.roaming-bot.walking .bot-leg-r{animation:.45s ease-in-out infinite alternate legRight;transform-origin:41px 67px}@keyframes legLeft{from{transform:rotate(-12deg) translateY(0)}to{transform:rotate(12deg) translateY(3px)}}@keyframes legRight{from{transform:rotate(12deg) translateY(3px)}to{transform:rotate(-12deg) translateY(0)}}.bot-eye{animation:4s ease-in-out infinite eyeBlink;transform-origin:center}.bot-eye:nth-child(2){animation-delay:.1s}@keyframes eyeBlink{0%,100%,88%{transform:scaleY(1)}92%{transform:scaleY(.1)}}.bot-speech{position:absolute;bottom:calc(100% + 10px);transform:translateX(-50%) translateY(6px) scale(.92);transform-origin:bottom center;white-space:nowrap;background:rgba(15,23,42,.85);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(139,92,246,.38);border-radius:14px 14px 14px 4px;padding:8px 13px;box-shadow:0 0 0 1px rgba(139,92,246,.1),0 8px 28px rgba(0,0,0,.45),0 2px 8px rgba(139,92,246,.18);font-size:.76rem;font-weight:500;color:#e2e8f0;line-height:1.4;visibility:hidden;transition:opacity .28s,transform .28s cubic-bezier(.34, 1.4, .64, 1),visibility 0s linear .28s}.bot-speech::after{content:'';position:absolute;bottom:-7px;left:16px;border-left:7px solid transparent;border-right:0 solid transparent;border-top:7px solid rgba(15,23,42,.85)}.bot-speech.visible{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0) scale(1);transition:opacity .28s,transform .28s cubic-bezier(.34, 1.4, .64, 1),visibility linear}.bot-bubble-dots{display:inline-flex;align-items:center;gap:4px}.bot-bubble-dots span{display:inline-block;width:5px;height:5px;border-radius:50%;background:rgba(139,92,246,.8);animation:1.1s ease-in-out infinite botDotPulse}.bot-bubble-dots span:nth-child(2){animation-delay:.18s}.bot-bubble-dots span:nth-child(3){animation-delay:.36s}@keyframes botDotPulse{0%,100%,80%{transform:scale(.7);opacity:.4}40%{transform:scale(1);opacity:1}}.chat-panel{position:fixed;bottom:1.5rem;right:1.5rem;width:360px;max-height:520px;display:flex;flex-direction:column;border-radius:var(--radius);z-index:700;transform:scale(.88) translateY(20px);opacity:0;pointer-events:none;transform-origin:bottom right;transition:.35s cubic-bezier(.4, 0, .2, 1)}.chat-header{display:flex;align-items:center;gap:.85rem;padding:1rem 1.2rem;border-bottom:1px solid var(--border);flex-shrink:0}.chat-avatar-wrap{position:relative;flex-shrink:0}.chat-avatar{width:40px;height:40px;border-radius:50%;background:var(--grad);display:flex;align-items:center;justify-content:center;font-size:1.2rem}.chat-online-dot{position:absolute;bottom:1px;right:1px;width:9px;height:9px;background:#4ade80;border-radius:50%;border:2px solid var(--glass-strong)}.chat-bot-name{display:block;font-weight:700;font-size:.9rem;color:var(--text)}.chat-status-text{display:block;font-size:.7rem;color:var(--text-muted)}.chat-close-btn{margin-left:auto;width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.05);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;font-size:.75rem;transition:all var(--transition)}#chatSendBtn,.qr-btn{color:var(--accent);cursor:pointer;transition:all var(--transition)}.chat-close-btn:hover{background:rgba(239,68,68,.15);border-color:#ef4444;color:#ef4444}.chat-msg.bot,.qr-btn{background:rgba(139,92,246,.1)}.chat-messages{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.75rem;scrollbar-color:var(--border) transparent}.chat-msg{max-width:84%;padding:.65rem .95rem;border-radius:14px;font-size:.85rem;line-height:1.55;animation:.28s msgSlide}@keyframes msgSlide{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.chat-msg.bot{border:1px solid rgba(139,92,246,.18);color:var(--text);border-bottom-left-radius:4px;align-self:flex-start}.chat-msg.user{background:var(--grad);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.typing-dots{display:flex;gap:4px;align-items:center;padding:.4rem .2rem}.typing-dots span{width:6px;height:6px;background:var(--accent);border-radius:50%;display:block;animation:.9s ease-in-out infinite dotBounce}.typing-dots span:nth-child(2){animation-delay:.14s}.typing-dots span:nth-child(3){animation-delay:.28s}@keyframes dotBounce{0%,100%,80%{transform:translateY(0)}40%{transform:translateY(-6px)}}.quick-replies{padding:.5rem .8rem;display:flex;gap:.4rem;flex-wrap:wrap;border-top:1px solid var(--border);flex-shrink:0}.qr-btn{font-size:.72rem;padding:.28rem .7rem;border-radius:99px;border:1px solid rgba(139,92,246,.2)}#chatInput,#chatSendBtn{background:0 0;border:none}#chatInput,.toast{font-size:.875rem;color:var(--text)}.qr-btn:hover{background:rgba(139,92,246,.25);border-color:var(--accent)}.chat-input-row{display:flex;border-top:1px solid var(--border);flex-shrink:0}#chatInput{flex:1;padding:.85rem 1rem;outline:0}#chatInput::placeholder{color:var(--text-faint)}#chatSendBtn{padding:0 1rem}#chatSendBtn:hover{color:var(--accent-2);transform:scale(1.15) rotate(-10deg)}.toast{position:fixed;bottom:1.5rem;transform:translateX(-50%) translateY(80px);z-index:9500;display:flex;align-items:center;gap:.6rem;padding:.75rem 1.5rem;border-radius:var(--radius-pill);border:1px solid var(--border-glow);font-weight:500;transition:.4s cubic-bezier(.4, 0, .2, 1)}.toast.visible{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:all}#toastIcon{font-size:1rem}[data-theme=cyber]::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:1;background:repeating-linear-gradient(0deg,rgba(0,255,100,.015) 0,rgba(0,255,100,.015) 1px,transparent 1px,transparent 3px)}[data-theme=cyber] .hero-name,[data-theme=cyber] .section-title{text-shadow:0 0 30px rgba(0,255,136,.3)}@media (max-width:960px){.about-grid,.contact-grid,.skills-grid{grid-template-columns:1fr}.about-grid{gap:2.5rem}.about-card-col{order:-1}.resume-card{flex-direction:column;text-align:center}.resume-icon-wrap{margin:0 auto}.resume-actions,.resume-meta{justify-content:center}}@media (max-width:680px){.hero-cta,.nav-links{flex-direction:column}#navbar{padding:.9rem 1.25rem}.nav-links{position:fixed;top:0;right:-100%;width:min(70vw,300px);height:100dvh;background:var(--glass-strong);border-left:1px solid var(--border);backdrop-filter:blur(20px);align-items:flex-start;gap:0;padding:5rem 2rem 2rem;transition:right var(--transition);z-index:799}.nav-links.open{right:0}.nav-link{display:block;padding:.85rem 0;border-bottom:1px solid var(--border);font-size:1rem;width:100%}.nav-hamburger{display:flex;z-index:801}section{padding:4rem 0}.hero-name{white-space:normal}.hero-cta{align-items:center}.projects-grid{grid-template-columns:1fr}.chat-panel{width:calc(100vw - 2rem);right:1rem;bottom:1rem}.bot-svg,.roaming-bot{width:50px}.footer-inner{flex-direction:column;align-items:center;text-align:center}.timeline-item{padding-left:40px}.timeline::before{left:8px}.timeline-dot{left:1px}}@media (pointer:coarse){body{cursor:auto}#cursorDot,#cursorRing{display:none}}@media (prefers-reduced-motion:reduce){.blob,.bot-leg-l,.bot-leg-r,.roaming-bot{animation:none}.reveal{opacity:1;transform:none}}