:root{--bg-primary: #0a0a0b;--bg-secondary: #111113;--bg-card: #161618;--bg-card-hover: #1e1e21;--border-color: #2a2a2d;--text-primary: #f5f5f7;--text-secondary: #a1a1a6;--text-muted: #636366;--accent: #e0e0e0;--accent-hover: #ffffff;--accent-glow: rgba(255, 255, 255, .06);--tag-bg: rgba(255, 255, 255, .06);--tag-border: rgba(255, 255, 255, .12);--timeline-line: #2a2a2d;--timeline-dot: #e0e0e0;--timeline-dot-inactive: #3a3a3d;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4);--shadow-md: 0 4px 16px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .6);--radius-sm: 10px;--radius-md: 14px;--radius-lg: 18px;--radius-xl: 24px;--font-sans: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-heading: "Space Grotesk", "Poppins", sans-serif;--font-mono: "JetBrains Mono", monospace;--transition: .3s cubic-bezier(.4, 0, .2, 1);--glow-subtle: 0 0 40px rgba(255, 255, 255, .03)}[data-theme=light]{--bg-primary: #f5f5f7;--bg-secondary: #ffffff;--bg-card: #ffffff;--bg-card-hover: #fafafa;--border-color: #e0e0e2;--text-primary: #1a1a1d;--text-secondary: #6e6e73;--text-muted: #a1a1a6;--accent: #1a1a1d;--accent-hover: #000000;--accent-glow: rgba(0, 0, 0, .04);--tag-bg: rgba(0, 0, 0, .04);--tag-border: rgba(0, 0, 0, .1);--timeline-line: #e0e0e2;--timeline-dot: #1a1a1d;--timeline-dot-inactive: #d1d1d3;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06);--shadow-md: 0 4px 16px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .1);--glow-subtle: 0 0 40px rgba(0, 0, 0, .02)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--transition),color var(--transition)}a{text-decoration:none;color:var(--text-primary);transition:color var(--transition)}a:hover{color:var(--accent-hover)}img{max-width:100%;display:block}button{cursor:pointer;font-family:inherit;border:none;outline:none}.container{max-width:1200px;margin:0 auto;padding:0 24px}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.theme-toggle{position:fixed;top:24px;right:24px;z-index:1000;background:var(--bg-card);border:1px solid var(--border-color);border-radius:50%;width:44px;height:44px;display:flex;align-items:center;justify-content:center;color:var(--text-primary);font-size:1.15rem;transition:all var(--transition);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.theme-toggle:hover{background:var(--bg-card-hover);transform:rotate(30deg);border-color:var(--text-muted)}.hero-section{padding:80px 0 60px}.hero-content{display:flex;align-items:center;gap:40px}.hero-avatar{width:200px;height:200px;border-radius:var(--radius-lg);overflow:hidden;flex-shrink:0;border:2px solid var(--border-color);box-shadow:var(--shadow-lg);background:var(--bg-secondary);display:flex;align-items:center;justify-content:center}.hero-avatar img{width:100%;height:100%;object-fit:cover;object-position:center 20%}.avatar-placeholder{font-size:3.5rem;color:var(--text-muted);font-family:var(--font-heading);font-weight:700}.hero-info h1{font-family:var(--font-heading);font-size:2.8rem;font-weight:700;letter-spacing:-.03em;display:flex;align-items:center;gap:12px;line-height:1.1}.verified-badge{color:#4a9eed;font-size:1.2rem}.hero-location{display:flex;align-items:center;gap:6px;color:var(--text-secondary);margin-top:6px;font-size:.9rem;font-weight:400}.hero-title{color:var(--text-secondary);font-size:1.05rem;font-weight:500;margin-top:8px;letter-spacing:.01em}.hero-other-portfolio{color:var(--text-secondary);font-size:.88rem;margin-top:8px;display:flex;align-items:center;gap:6px}.hero-other-portfolio a{color:var(--text-secondary);display:inline-flex;align-items:center;gap:4px;font-weight:500;transition:color var(--transition)}.hero-other-portfolio a:hover{color:var(--text-primary)}.hero-buttons{display:flex;gap:12px;margin-top:20px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:8px;padding:11px 24px;border-radius:var(--radius-sm);font-weight:600;font-size:.88rem;transition:all var(--transition);letter-spacing:.01em}.btn-primary{background:var(--text-primary);color:var(--bg-primary)}.btn-primary:hover{background:var(--accent-hover);color:var(--bg-primary);transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.btn-secondary:hover{background:var(--bg-card-hover);border-color:var(--text-muted);transform:translateY(-2px)}.section-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:24px}.section-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:32px;transition:all var(--transition);box-shadow:var(--glow-subtle)}.section-card:hover{border-color:var(--text-muted);box-shadow:var(--shadow-md);transform:translateY(-2px)}.section-card.full-width{grid-column:1 / -1}.section-title{font-family:var(--font-heading);font-size:1.35rem;font-weight:700;margin-bottom:20px;display:flex;align-items:center;gap:10px;letter-spacing:-.01em}.section-title .icon{font-size:1.2rem;color:var(--text-muted)}.about-text p{color:var(--text-secondary);line-height:1.85;margin-bottom:16px;font-weight:400}.about-text p:last-child{margin-bottom:0}.timeline{position:relative;padding-left:24px}.timeline:before{content:"";position:absolute;left:5px;top:8px;bottom:8px;width:2px;background:var(--timeline-line)}.timeline-item{position:relative;padding-bottom:28px}.timeline-item:last-child{padding-bottom:0}.timeline-dot{position:absolute;left:-24px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--timeline-dot-inactive);border:2px solid var(--bg-card);z-index:1}.timeline-item:first-child .timeline-dot{background:var(--timeline-dot);box-shadow:0 0 0 4px var(--accent-glow)}.timeline-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.timeline-title{font-size:.95rem;font-weight:600}.timeline-year{color:var(--text-muted);font-size:.82rem;font-family:var(--font-mono);white-space:nowrap}.timeline-subtitle{color:var(--text-secondary);font-size:.85rem;margin-top:4px;line-height:1.5}.tech-category{margin-bottom:20px}.tech-category:last-child{margin-bottom:0}.tech-category-title{font-size:.9rem;font-weight:600;margin-bottom:10px}.tech-tags{display:flex;flex-wrap:wrap;gap:8px}.tech-tag{display:inline-flex;align-items:center;padding:7px 16px;background:var(--tag-bg);border:1px solid var(--tag-border);border-radius:22px;font-size:.8rem;font-weight:500;color:var(--text-primary);transition:all var(--transition)}.tech-tag:hover{background:var(--text-primary);color:var(--bg-primary);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.projects-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.project-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:22px;transition:all var(--transition)}.project-card:hover{border-color:var(--text-muted);transform:translateY(-3px);box-shadow:var(--shadow-md)}.project-name{font-size:1rem;font-weight:700;margin-bottom:6px}.project-desc{color:var(--text-secondary);font-size:.84rem;line-height:1.55;margin-bottom:12px}.project-link{display:inline-flex;align-items:center;gap:4px;padding:5px 14px;background:var(--tag-bg);border:1px solid var(--tag-border);border-radius:18px;font-size:.78rem;color:var(--text-primary);font-weight:500;transition:all var(--transition)}.project-link:hover{background:var(--text-primary);color:var(--bg-primary)}.cert-list{display:flex;flex-direction:column;gap:12px}.cert-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:18px 22px;transition:all var(--transition);cursor:pointer}.cert-card:hover{border-color:var(--text-muted);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.cert-name{font-size:.92rem;font-weight:600;color:var(--text-primary)}.cert-issuer{color:var(--text-secondary);font-size:.8rem;margin-top:3px}.cert-modal-overlay{position:fixed;inset:0;z-index:2000;background:#000c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.cert-modal{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:24px;max-width:600px;width:90%;position:relative;box-shadow:var(--shadow-lg)}.cert-modal img{width:100%;border-radius:var(--radius-md)}.cert-modal-close{position:absolute;top:12px;right:12px;background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;transition:all var(--transition)}.cert-modal-close:hover{background:var(--bg-card-hover)}.footer-section{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:32px;margin-bottom:24px;box-shadow:var(--glow-subtle)}.footer-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:32px}.footer-col-title{font-family:var(--font-heading);font-size:1.05rem;font-weight:700;margin-bottom:16px;display:flex;align-items:center;gap:8px}.footer-col-title .icon{color:var(--text-muted)}.goal-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:14px 16px;margin-bottom:10px;font-size:.84rem;color:var(--text-secondary);line-height:1.5;transition:all var(--transition);font-weight:400}.goal-card:hover{border-color:var(--text-muted)}.social-link{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:var(--radius-sm);color:var(--text-primary);margin-bottom:6px;transition:all var(--transition);font-size:.9rem;font-weight:500;border:1px solid transparent}.social-link:hover{background:var(--bg-card-hover);border-color:var(--border-color);color:var(--text-primary)}.social-link .icon{font-size:1.1rem;color:var(--text-muted)}.contact-text{color:var(--text-secondary);font-size:.86rem;line-height:1.6;margin-bottom:12px}.contact-get-in-touch{color:var(--text-primary);font-weight:600;display:flex;align-items:center;gap:4px}.contact-card{display:flex;align-items:center;gap:14px;padding:14px 18px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);margin-bottom:10px;transition:all var(--transition);cursor:pointer}.contact-card:hover{border-color:var(--text-muted);transform:translateY(-1px)}.contact-card .icon{font-size:1.2rem;color:var(--text-primary)}.contact-card-info h4{font-size:.86rem;font-weight:600}.contact-card-info p{font-size:.78rem;color:var(--text-secondary)}.contact-arrow{margin-left:auto;color:var(--text-muted);font-size:1rem}.gallery-section{margin-bottom:24px}.gallery-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:32px;overflow:hidden;box-shadow:var(--glow-subtle)}.gallery-track-wrapper{overflow:hidden;border-radius:var(--radius-md);mask-image:linear-gradient(to right,transparent,black 4%,black 96%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,black 4%,black 96%,transparent)}.gallery-track{display:flex;gap:16px;animation:scrollGallery 35s linear infinite;width:max-content}.gallery-track:hover{animation-play-state:paused}.gallery-img{width:280px;height:210px;border-radius:var(--radius-md);object-fit:cover;filter:grayscale(70%) brightness(.9);transition:all .6s cubic-bezier(.4,0,.2,1);flex-shrink:0;border:1px solid var(--border-color)}.gallery-img:hover{filter:grayscale(0%) brightness(1);transform:scale(1.04);border-color:var(--text-muted);box-shadow:var(--shadow-md)}@keyframes scrollGallery{0%{transform:translate(0)}to{transform:translate(-50%)}}.footer-bar{text-align:center;padding:32px 0;border-top:1px solid var(--border-color);margin-top:20px;color:var(--text-muted);font-size:.82rem;font-weight:400;letter-spacing:.01em}.chatbot-toggle{position:fixed;bottom:24px;right:24px;z-index:999;width:56px;height:56px;border-radius:50%;background:var(--text-primary);color:var(--bg-primary);display:flex;align-items:center;justify-content:center;font-size:1.3rem;box-shadow:var(--shadow-lg);transition:all var(--transition)}.chatbot-toggle:hover{transform:scale(1.08);box-shadow:0 8px 30px #ffffff1a}.chatbot-label{position:fixed;bottom:36px;right:88px;z-index:999;background:var(--bg-card);border:1px solid var(--border-color);padding:6px 14px;border-radius:20px;font-size:.78rem;color:var(--text-secondary);white-space:nowrap;box-shadow:var(--shadow-sm);pointer-events:none;font-weight:500}.chatbot-window{position:fixed;bottom:90px;right:24px;z-index:1000;width:380px;height:520px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;animation:chatSlideUp .3s ease}@keyframes chatSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.chatbot-header{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border-color);background:var(--bg-secondary)}.chatbot-header-avatar{width:36px;height:36px;border-radius:50%;background:var(--accent-glow);border:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;color:var(--text-primary);overflow:hidden;font-family:var(--font-heading)}.chatbot-header-avatar img{width:100%;height:100%;object-fit:cover}.chatbot-header-info h3{font-size:.92rem;font-weight:600}.chatbot-header-info .status{display:flex;align-items:center;gap:5px;font-size:.72rem;color:#4ade80}.chatbot-header-info .status:before{content:"";width:7px;height:7px;border-radius:50%;background:#4ade80}.chatbot-header-actions{margin-left:auto;display:flex;gap:8px}.chatbot-header-actions button{background:transparent;color:var(--text-secondary);font-size:1rem;padding:4px;border-radius:4px;transition:color var(--transition)}.chatbot-header-actions button:hover{color:var(--text-primary)}.chatbot-messages{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:16px}.chat-message{display:flex;gap:10px;align-items:flex-start}.chat-message-avatar{width:30px;height:30px;border-radius:50%;background:var(--accent-glow);border:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;color:var(--text-primary);flex-shrink:0;overflow:hidden;font-family:var(--font-heading)}.chat-message-avatar img{width:100%;height:100%;object-fit:cover}.chat-bubble{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:12px 16px;font-size:.84rem;color:var(--text-primary);line-height:1.65;max-width:280px}.chat-time{font-size:.68rem;color:var(--text-muted);margin-top:4px;margin-left:40px}.chat-message.user{flex-direction:row-reverse}.chat-message.user .chat-bubble{background:var(--text-primary);color:var(--bg-primary);border-color:transparent;font-weight:500}.chat-message.user .chat-time{text-align:right;margin-left:0;margin-right:40px}.chatbot-input{display:flex;align-items:center;gap:10px;padding:14px 20px;border-top:1px solid var(--border-color);background:var(--bg-secondary)}.chatbot-input input{flex:1;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:10px 14px;font-size:.84rem;color:var(--text-primary);font-family:var(--font-sans);outline:none;transition:border-color var(--transition)}.chatbot-input input::placeholder{color:var(--text-muted)}.chatbot-input input:focus{border-color:var(--text-muted)}.chatbot-input button{background:var(--text-primary);color:var(--bg-primary);width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;transition:all var(--transition)}.chatbot-input button:hover{opacity:.85}.chatbot-hint{text-align:center;padding:0 20px 12px;font-size:.7rem;color:var(--text-muted);font-weight:400}.typing-indicator{display:flex;gap:4px;padding:4px 0}.typing-indicator span{width:6px;height:6px;border-radius:50%;background:var(--text-muted);animation:typingBounce 1.4s infinite}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-6px)}}@media(max-width:1024px){.footer-grid{grid-template-columns:1fr 1fr;gap:24px}}@media(max-width:768px){.hero-content{flex-direction:column;text-align:center}.hero-info h1{justify-content:center;font-size:2rem}.hero-location,.hero-other-portfolio,.hero-buttons{justify-content:center}.section-grid,.projects-grid,.footer-grid{grid-template-columns:1fr}.chatbot-window{width:calc(100% - 32px);right:16px;bottom:80px;height:60vh}.chatbot-label{display:none}.gallery-img{width:200px;height:160px}}@media(max-width:480px){.hero-avatar{width:150px;height:150px}.hero-info h1{font-size:1.6rem}.section-card,.footer-section{padding:24px}}
