*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary: #4bb8c2;--bg-secondary: #369fb7;--bg-card: #b4b5d5;--accent: #240eb5;--accent-glow: rgba(88, 166, 255, .15);--accent-2: #2f31aa;--text-primary: #e6edf3;--text-secondary: #260f4b;--border: #361e62;--font-mono: "JetBrains Mono", "Fira Code", monospace;--font-sans: "Inter", system-ui, sans-serif}html{scroll-behavior:smooth}body{background-color:var(--bg-primary);color:var(--text-primary);font-family:var(--font-sans);line-height:1.6;overflow-x:hidden}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}::selection{background:var(--accent);color:var(--bg-primary)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:1100px;margin:0 auto;padding:0 1.5rem}.section{padding:clamp(3rem,8vw,6rem) 0}.section-alt{background-color:var(--bg-secondary)}.mono{font-family:var(--font-mono)}.accent{color:var(--accent)}.navbar{position:fixed;top:0;left:0;right:0;z-index:100;background:#dda5dfd9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.navbar-inner{max-width:1100px;margin:0 auto;padding:0 1.5rem;height:64px;display:flex;align-items:center;justify-content:space-between}.navbar-logo{font-family:var(--font-mono);font-size:1.25rem;font-weight:600;color:var(--accent);text-decoration:none;letter-spacing:.02em}.navbar-logo:hover{text-decoration:none;opacity:.85}.navbar-logo .mono{color:var(--text-secondary)}.navbar-links{display:flex;list-style:none;gap:2rem;align-items:center}.navbar-links a{color:var(--text-secondary);font-size:.9rem;font-weight:500;transition:color .2s;text-decoration:none}.navbar-links a:hover,.navbar-links a.active{color:var(--accent)}.menu-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:4px}.menu-toggle span{display:block;width:22px;height:2px;background:var(--text-primary);transition:transform .3s,opacity .3s}.menu-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-toggle.open span:nth-child(2){opacity:0}.menu-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}@media (max-width: 400px){.navbar-logo{font-size:1.05rem}.container,.navbar-inner{padding:0 1rem}}@media (max-width: 768px){.menu-toggle{display:flex}.navbar-links{position:fixed;top:64px;left:0;right:0;background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-direction:column;padding:1.5rem;gap:1.25rem;transform:translateY(-100%);opacity:0;pointer-events:none;transition:transform .3s,opacity .3s}.navbar-links.open{transform:translateY(0);opacity:1;pointer-events:auto}}.section-title{display:flex;align-items:center;gap:1rem;margin-bottom:clamp(1.75rem,5vw,3rem)}.section-number{color:var(--accent);font-size:1rem;font-weight:600}.section-title h2{font-size:clamp(1.35rem,4.5vw,1.75rem);font-weight:700;white-space:nowrap}.title-line{flex:1;height:1px;background:var(--border)}.hero{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;padding:clamp(4.5rem,12vw,6rem) 1.5rem clamp(2.5rem,6vw,4rem);overflow:hidden}.hero-bg-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(88,166,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(88,166,255,.04) 1px,transparent 1px);background-size:50px 50px;-webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 50%,black 40%,transparent 100%);mask-image:radial-gradient(ellipse 80% 60% at 50% 50%,black 40%,transparent 100%)}.hero-content{display:flex;flex-direction:column;align-items:center;gap:2rem;text-align:center;position:relative;z-index:1}.hero-avatar{width:clamp(120px,30vw,180px);height:clamp(120px,30vw,180px);border-radius:50%;overflow:hidden;border:3px solid var(--accent);box-shadow:0 0 30px #58a6ff4d;flex-shrink:0}.hero-avatar img{width:100%;height:100%;object-fit:cover;object-position:50% 10%}.avatar-placeholder{width:100%;height:100%;background:var(--bg-card);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:clamp(1.5rem,6vw,2.5rem);font-weight:700;color:var(--accent)}.hero-text{display:flex;flex-direction:column;align-items:center;gap:.75rem;max-width:700px}.hero-greeting{color:var(--accent);font-size:1rem;letter-spacing:.1em}.hero-name{font-size:clamp(2.5rem,6vw,4rem);font-weight:700;line-height:1.1;letter-spacing:-.02em}.hero-role{font-size:clamp(1.2rem,3vw,1.75rem);font-weight:400;color:var(--text-secondary);font-family:var(--font-mono)}.cursor{animation:blink 1s step-end infinite;color:var(--accent)}@keyframes blink{50%{opacity:0}}.hero-tagline{color:var(--text-secondary);font-size:1rem;max-width:520px;line-height:1.7}.hero-video-wrapper{width:100%;max-width:560px;border-radius:10px;overflow:hidden;border:1px solid var(--border);box-shadow:0 8px 30px #0006;margin-top:.5rem}.hero-video{width:100%;display:block;background:#000}.hero-cta{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center;margin-top:.5rem}.hero-socials{display:flex;gap:1.25rem;margin-top:.5rem}.hero-socials a{color:var(--text-secondary);transition:color .2s,transform .2s;display:flex}.hero-socials a:hover{color:var(--accent);transform:translateY(-2px);text-decoration:none}.scroll-indicator{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--text-secondary);font-size:.75rem;text-decoration:none;animation:float 2s ease-in-out infinite;z-index:1}.scroll-indicator:hover{color:var(--accent);text-decoration:none}@keyframes float{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(6px)}}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.65rem 1.5rem;border-radius:6px;font-size:.9rem;font-weight:600;transition:all .2s;text-decoration:none;cursor:pointer;border:none}.btn-primary{background:var(--accent);color:#0d1117}.btn-primary:hover{background:#79b8ff;text-decoration:none;transform:translateY(-2px);box-shadow:0 6px 20px #58a6ff4d}.btn-outline{border:1px solid var(--accent);color:var(--accent);background:transparent}.btn-outline:hover{background:var(--accent-glow);text-decoration:none;transform:translateY(-2px)}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}.about-text p{color:var(--text-secondary);margin-bottom:1rem;line-height:1.8}.about-text strong{color:var(--text-primary)}.about-details{margin-top:1.5rem;display:flex;flex-direction:column;gap:.5rem}.detail-item{display:flex;align-items:center;gap:.75rem;font-size:.9rem;color:var(--text-secondary)}.subsection-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.lang-item{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem;font-size:.9rem;color:var(--text-secondary)}.lang-bar{height:24px;background:var(--bg-card);border-radius:4px;overflow:hidden;border:1px solid var(--border)}.lang-fill{height:100%;background:linear-gradient(90deg,var(--accent),#3fb950);display:flex;align-items:center;padding-left:.75rem;font-size:.75rem;font-weight:600;color:#0d1117;white-space:nowrap;border-radius:4px}.cert-list{list-style:none;display:flex;flex-direction:column;gap:.5rem}.cert-list li{font-size:.875rem;color:var(--text-secondary);display:flex;align-items:center;gap:.5rem}.cert-badge{background:var(--bg-card);border:1px solid var(--border);color:var(--accent);font-size:.65rem;font-family:var(--font-mono);font-weight:700;padding:.1rem .4rem;border-radius:4px;flex-shrink:0}@media (max-width: 768px){.about-grid{grid-template-columns:1fr}}.skills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:1.25rem}.skill-card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:1.25rem;transition:border-color .2s,box-shadow .2s}.skill-card:hover{border-color:var(--accent);box-shadow:0 0 20px #58a6ff1a}.skill-category{font-size:.8rem;font-weight:600;font-family:var(--font-mono);color:var(--accent);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.75rem}.skill-tags{display:flex;flex-wrap:wrap;gap:.5rem}.skill-tag{background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-secondary);font-size:.8rem;padding:.2rem .6rem;border-radius:4px;transition:color .2s,border-color .2s}.skill-card:hover .skill-tag{color:var(--text-primary);border-color:#58a6ff4d}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:1.5rem}.project-card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:1.5rem;display:flex;flex-direction:column;gap:.75rem;transition:border-color .2s,transform .2s,box-shadow .2s}.project-card:hover{border-color:var(--accent);transform:translateY(-4px);box-shadow:0 8px 30px #58a6ff1f}.project-header{display:flex;justify-content:space-between;align-items:center}.project-emoji{font-size:1.75rem}.project-links{display:flex;gap:.75rem}.project-links a{color:var(--text-secondary);transition:color .2s;display:flex}.project-links a:hover{color:var(--accent);text-decoration:none}.project-title{font-size:1.1rem;font-weight:600}.project-note{font-size:.75rem;font-family:var(--font-mono);color:var(--accent);background:var(--accent-glow);border:1px solid rgba(88,166,255,.2);padding:.15rem .5rem;border-radius:4px;align-self:flex-start}.project-desc{color:var(--text-secondary);font-size:.875rem;line-height:1.7;flex:1}.project-stack{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:auto;padding-top:.5rem;border-top:1px solid var(--border)}.stack-tag{font-family:var(--font-mono);font-size:.72rem;color:var(--accent);padding:.15rem .5rem;background:var(--accent-glow);border-radius:4px}.resume-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;margin-bottom:3rem}.timeline-heading{display:flex;align-items:center;gap:.6rem;font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:1.5rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.timeline-heading svg{color:var(--accent);flex-shrink:0}.timeline{position:relative;display:flex;flex-direction:column;gap:1.75rem;padding-left:28px;border-left:2px solid var(--border)}.timeline-item{position:relative}.timeline-item:before{content:"";position:absolute;top:4px;left:-33px;width:10px;height:10px;border-radius:50%;background:var(--bg-primary);border:2px solid var(--accent)}.timeline-item.timeline-accent:before{background:var(--accent);box-shadow:0 0 0 4px var(--accent-glow)}.timeline-date{display:block;font-size:.78rem;color:var(--accent);margin-bottom:.25rem}.timeline-title{display:block;font-size:.95rem;font-weight:600;color:var(--text-primary);line-height:1.4}.timeline-accent .timeline-title{color:var(--accent)}.timeline-place{display:block;font-size:.85rem;color:var(--text-secondary);margin-top:.15rem}.recommendation-section .timeline-heading{margin-bottom:1rem}.resume-download{margin-top:3rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:1rem}.resume-download p{color:var(--text-secondary)}@media (max-width: 768px){.resume-grid{grid-template-columns:1fr;gap:2.5rem}}.timeline-image-button{display:block;width:min(100%,420px);margin-top:1.25rem;padding:0;border:1px solid rgba(255,255,255,.2);border-radius:12px;overflow:hidden;background:transparent;cursor:zoom-in;text-align:left}.timeline-image{display:block;width:100%;height:auto;max-height:300px;object-fit:contain;background:#ffffff0f}.timeline-image-caption{display:block;padding:.65rem 1rem;font-size:.85rem;text-align:center;color:inherit;background:#00000014}.timeline-image-rotate-frame{position:relative;display:block;width:100%;aspect-ratio:3507 / 2550;overflow:hidden;background:#ffffff0f}.timeline-image-rotate-frame-img{position:absolute;top:50%;left:50%;width:auto;height:137.53%;max-width:none;transform-origin:center}.recommendation-section{margin-top:3rem}.image-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:2rem;background:#000000e6;cursor:zoom-out}.image-modal-content{display:block;width:auto;height:auto;max-width:92vw;max-height:90vh;object-fit:contain;border-radius:8px;background:#fff;cursor:default}.image-modal-rotate-frame{position:relative;width:min(92vw,calc(90vh * 3507 / 2550));aspect-ratio:3507 / 2550;overflow:hidden;border-radius:8px;background:#fff;cursor:default}.image-modal-rotate-frame-img{position:absolute;top:50%;left:50%;width:auto;height:137.53%;max-width:none;transform-origin:center}.image-modal-close{position:fixed;top:1rem;right:1.25rem;z-index:10000;width:46px;height:46px;border:0;border-radius:50%;color:#fff;background:#000000a6;font-size:2rem;line-height:1;cursor:pointer}@media (max-width: 768px){.timeline-image-button{width:100%}.timeline-image{max-height:230px}.image-modal{padding:1rem}}.contact-wrapper{max-width:700px;margin:0 auto}.contact-intro{color:var(--text-secondary);font-size:1.05rem;text-align:center;margin-bottom:2.5rem;line-height:1.8}.contact-cards{display:flex;flex-direction:column;gap:1rem}.contact-card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:1.25rem 1.5rem;display:flex;align-items:center;gap:1.25rem;color:var(--text-primary);transition:border-color .2s,transform .2s,box-shadow .2s;text-decoration:none}.contact-card:hover{border-color:var(--accent);transform:translate(4px);box-shadow:0 4px 20px #58a6ff1a;text-decoration:none;color:var(--text-primary)}.contact-card svg{color:var(--accent);flex-shrink:0}.contact-card div{display:flex;flex-direction:column;gap:.1rem}.contact-card strong{font-size:.875rem;font-weight:600}.contact-card span{font-size:.8rem;color:var(--text-secondary);font-family:var(--font-mono)}.error-boundary-fallback{max-width:700px;margin:2rem auto;padding:1.5rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-card);text-align:center;display:flex;flex-direction:column;align-items:center;gap:1rem}.error-boundary-fallback p{color:var(--text-secondary)}.error-boundary-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;text-align:center;padding:2rem}.footer{border-top:1px solid var(--border);padding:2rem 1.5rem;text-align:center;display:flex;flex-direction:column;gap:.35rem}.footer p{color:var(--text-secondary);font-size:.75rem}.footer-sub{font-size:.78rem!important}.profile-stats{margin-top:2rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(140px,100%),1fr));gap:1rem;margin-top:1rem}.stat-card{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:1.2rem;text-align:center}.stat-value{display:block;font-size:1.5rem;font-weight:700;color:var(--accent, #64ffda);margin-bottom:.35rem}.stat-label{font-size:.9rem;opacity:.8}.profile-achievements{margin-top:2rem}.achievement-list{margin-top:1rem;padding-left:1.2rem}.achievement-list li{margin-bottom:.8rem;line-height:1.6}.qr-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(160px,100%),1fr));gap:1rem;margin-top:1rem}.stat-card-error{grid-column:1 / -1}
