@import "https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=DM+Mono:wght@400;500&display=swap";:root{--bg:#0a0c10;--bg-2:#0f1117;--bg-card:#13161d;--border:#ffffff12;--border-h:#ffffff24;--accent:#4f8ef7;--accent-dim:#3b7de8;--text:#eef0f6;--text-2:#8e90a0;--text-3:#52546a;--font:"DM Sans", sans-serif;--mono:"DM Mono", monospace;--ease:cubic-bezier(.25, .46, .45, .94);--tr:.25s var(--ease);--radius:14px;--radius-lg:22px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;line-height:1.65;overflow-x:hidden}h1,h2,h3,h4{font-weight:700;line-height:1.15}a{color:inherit;transition:var(--tr);text-decoration:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}.container{max-width:1120px;margin:0 auto;padding:0 2rem}.section{padding:110px 0}.accent{color:var(--accent)}.btn-primary{background:var(--accent);color:#fff;letter-spacing:.02em;transition:var(--tr);border-radius:8px;align-items:center;gap:8px;padding:.75rem 1.8rem;font-size:.92rem;font-weight:600;display:inline-flex}.btn-primary:hover{background:#6aa0f9;transform:translateY(-2px);box-shadow:0 8px 24px #4f8ef74d}.btn-secondary{color:var(--text);border:1px solid var(--border);transition:var(--tr);background:0 0;border-radius:8px;align-items:center;gap:8px;padding:.75rem 1.8rem;font-size:.92rem;font-weight:500;display:inline-flex}.btn-secondary:hover{border-color:var(--border-h);background:#ffffff0a}.section-header{margin-bottom:4rem}.section-label{font-family:var(--mono);color:var(--accent);letter-spacing:.12em;text-transform:uppercase;margin-bottom:1rem;font-size:.78rem;display:block}.section-title{color:var(--text);margin-bottom:1rem;font-size:clamp(2rem,4vw,2.8rem)}.section-subtitle{color:var(--text-2);max-width:560px;font-size:1rem}@keyframes fadeUp{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeUp .7s var(--ease) forwards;opacity:0}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:#2a2a32;border-radius:6px}::-webkit-scrollbar-thumb:hover{background:var(--accent-dim)}.divider{background:var(--border);height:1px;margin:0 auto}.navbar{z-index:1000;width:100%;transition:var(--tr);padding:1.4rem 0;position:fixed;top:0;left:0}.navbar.scrolled{-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border);background:#0c0c0ed9;padding:1rem 0}.nav-container{justify-content:space-between;align-items:center;display:flex}.logo{font-family:var(--mono);color:var(--text);letter-spacing:.05em;font-size:1.05rem;font-weight:500}.logo .dot{color:var(--accent)}.nav-links{align-items:center;gap:2.5rem;display:flex}.nav-links a{color:var(--text-2);letter-spacing:.01em;font-size:.88rem;font-weight:500;position:relative}.nav-links a:hover{color:var(--text)}.nav-links a:after{content:"";background:var(--accent);width:0;height:1px;transition:var(--tr);position:absolute;bottom:-4px;left:0}.nav-links a:hover:after{width:100%}.social-links{border-left:1px solid var(--border);gap:1.2rem;margin-left:2.5rem;padding-left:2.5rem;display:flex}.social-links a{color:var(--text-3);transition:var(--tr);align-items:center;display:flex}.social-links a:hover{color:var(--text);transform:translateY(-2px)}.mobile-menu-btn{color:var(--text);display:none}@media (width<=768px){.mobile-menu-btn{display:block}.nav-links{background:var(--bg-2);border-left:1px solid var(--border);width:75%;height:100vh;transition:.35s var(--ease);z-index:999;flex-direction:column;justify-content:center;position:fixed;top:0;right:-100%}.nav-links.open{right:0}.social-links{border-left:none;margin-top:2rem;margin-left:0;padding-left:0}}.hero-section{align-items:center;min-height:100vh;padding-top:80px;display:flex;position:relative;overflow:hidden}.hero-section:before{content:"";pointer-events:none;background-image:linear-gradient(#ffffff06 1px,#0000 1px),linear-gradient(90deg,#ffffff06 1px,#0000 1px);background-size:60px 60px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 60% at 50% 40%,#000 40%,#0000 100%);mask-image:radial-gradient(70% 60% at 50% 40%,#000 40%,#0000 100%)}.hero-container{z-index:1;grid-template-columns:1fr 1fr;align-items:center;gap:5rem;display:grid;position:relative}.hero-tag{color:var(--accent);letter-spacing:.04em;background:#4f8ef714;border:1px solid #4f8ef733;border-radius:100px;align-items:center;gap:8px;margin-bottom:2rem;padding:.4rem 1rem;font-size:.8rem;font-weight:500;display:inline-flex}.hero-tag-dot{background:var(--accent);border-radius:50%;width:7px;height:7px;animation:2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.hero-title{color:var(--text);margin-bottom:1.5rem;font-size:clamp(2.6rem,6vw,4.2rem);font-weight:700;line-height:1.08}.hero-title .name{color:var(--accent);display:block}.hero-description{color:var(--text-2);max-width:500px;margin-bottom:2.5rem;font-size:1.05rem;line-height:1.75}.hero-btns{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.hero-visual{justify-content:center;display:flex}.hero-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:380px;padding:1.8rem;position:relative;box-shadow:0 32px 64px #0006}.hero-card:before{content:"";border-radius:var(--radius-lg);pointer-events:none;background:linear-gradient(135deg,#4f8ef70f 0%,#0000 60%);position:absolute;inset:0}.card-dots{gap:6px;margin-bottom:1.4rem;display:flex}.card-dot{border-radius:50%;width:11px;height:11px}.card-dot.r{background:#ff5f56}.card-dot.y{background:#ffbd2e}.card-dot.g{background:#27c93f}.card-label{font-family:var(--mono);color:var(--text-3);letter-spacing:.1em;text-transform:uppercase;margin-bottom:1rem;font-size:.72rem}.card-code{font-family:var(--mono);color:var(--text-2);font-size:.85rem;line-height:1.9}.kw{color:#c099ff}.str{color:#c3e88d}.key{color:#89dceb}.card-tags{border-top:1px solid var(--border);flex-wrap:wrap;gap:.5rem;margin-top:1.4rem;padding-top:1.4rem;display:flex}.card-tag{color:var(--accent-dim);font-size:.72rem;font-weight:500;font-family:var(--mono);background:#4f8ef714;border:1px solid #4f8ef726;border-radius:100px;padding:.3rem .75rem}@media (width<=900px){.hero-container{text-align:center;grid-template-columns:1fr;gap:3rem}.hero-description{margin-left:auto;margin-right:auto}.hero-btns{justify-content:center}.hero-visual{margin-top:1rem}.hero-card{max-width:340px}.hero-tag{margin-left:auto;margin-right:auto}}.about-section{background:var(--bg)}.about-content{grid-template-columns:1fr 1fr;align-items:start;gap:5rem;display:grid}.about-text p{color:var(--text-2);margin-bottom:1.4rem;font-size:1rem;line-height:1.8}.about-text p:last-child{margin-bottom:0}.education-timeline{flex-direction:column;gap:1.2rem;display:flex}.edu-label{font-family:var(--mono);color:var(--text-3);letter-spacing:.12em;text-transform:uppercase;margin-bottom:1.4rem;font-size:.72rem;display:block}.education-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);transition:var(--tr);align-items:flex-start;gap:1.2rem;padding:1.5rem;display:flex}.education-card:hover{border-color:var(--border-h);transform:translate(4px)}.education-icon{width:40px;height:40px;color:var(--accent);background:#4f8ef714;border:1px solid #4f8ef726;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.education-period{font-family:var(--mono);color:var(--accent-dim);letter-spacing:.06em;margin-bottom:.3rem;font-size:.72rem;display:block}.education-degree{color:var(--text);margin-bottom:.2rem;font-size:1rem;font-weight:700}.education-institution{color:var(--text-2);font-size:.88rem}@media (width<=900px){.about-content{grid-template-columns:1fr;gap:3rem}}.skills-section{background:var(--bg-2)}.skills-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;display:grid}.skill-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);transition:var(--tr);padding:2rem;position:relative}.skill-card:hover{border-color:var(--border-h);transform:translateY(-3px);box-shadow:0 16px 40px #0000004d}.skill-icon{width:44px;height:44px;color:var(--accent);background:#4f8ef714;border:1px solid #4f8ef726;border-radius:10px;justify-content:center;align-items:center;margin-bottom:1.2rem;display:flex}.skill-name{color:var(--text);margin-bottom:.6rem;font-size:1.1rem;font-weight:700}.skill-desc{color:var(--text-2);font-size:.88rem;line-height:1.65}@media (width<=600px){.skills-grid{grid-template-columns:1fr}}.projects-section{background:var(--bg)}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:1.5rem;display:grid}.project-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);transition:border-color .25s var(--ease), box-shadow .25s var(--ease), transform .25s var(--ease);cursor:default;flex-direction:column;gap:0;padding:2rem 2rem 1.6rem;display:flex;position:relative;overflow:hidden}.project-card:before{content:"";opacity:0;height:2px;transition:opacity .3s var(--ease);background:linear-gradient(90deg,#0000,#4f8ef799,#0000);position:absolute;top:0;left:0;right:0}.project-card:hover{border-color:var(--border-h);transform:translateY(-4px);box-shadow:0 20px 48px #00000059}.project-card:hover:before{opacity:1}.card-top{justify-content:space-between;align-items:flex-start;margin-bottom:1.6rem;display:flex}.card-num{font-family:var(--mono);color:var(--text-3);letter-spacing:.08em;font-size:.72rem}.card-actions{gap:.8rem;display:flex}.card-link{border:1px solid var(--border);width:32px;height:32px;color:var(--text-3);transition:var(--tr);border-radius:8px;justify-content:center;align-items:center;display:flex}.card-link:hover{border-color:var(--accent);color:var(--accent);background:#4f8ef70f}.project-stack{flex-wrap:wrap;gap:.4rem;margin-bottom:1rem;display:flex}.stack-chip{font-family:var(--mono);color:var(--accent-dim);letter-spacing:.04em;text-transform:uppercase;background:#4f8ef70f;border:1px solid #4f8ef724;border-radius:4px;padding:.2rem .6rem;font-size:.68rem}.project-title{color:var(--text);letter-spacing:-.01em;margin-bottom:.7rem;font-size:1.25rem;font-weight:700}.project-desc{color:var(--text-2);flex:1;font-size:.9rem;line-height:1.7}.card-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:1.6rem;padding-top:1.2rem;display:flex}.card-footer-link{color:var(--text-3);transition:var(--tr);letter-spacing:.02em;align-items:center;gap:5px;font-size:.82rem;font-weight:600;display:flex}.card-footer-link:hover{color:var(--accent)}.card-footer-arrow{transition:transform .2s var(--ease);display:inline-block}.card-footer-link:hover .card-footer-arrow{transform:translate(4px)}@media (width<=500px){.projects-grid{grid-template-columns:1fr}}.contact-section{background:var(--bg-2)}.contact-container{grid-template-columns:.85fr 1.15fr;align-items:start;gap:5rem;display:grid}.contact-info{flex-direction:column;gap:1.5rem;display:flex}.contact-item{align-items:flex-start;gap:1.2rem;display:flex}.contact-icon{width:42px;height:42px;color:var(--accent);background:#4f8ef714;border:1px solid #4f8ef726;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.contact-item h3{color:var(--text);margin-bottom:.2rem;font-size:.95rem;font-weight:600}.contact-item p,.contact-item a{color:var(--text-2);font-size:.88rem}.contact-item a:hover{color:var(--accent)}.contact-form{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:1.2rem;padding:2.5rem;display:flex}.status-message{text-align:center;border-radius:8px;padding:.85rem 1rem;font-size:.88rem}.status-message.success{color:#27c93f;background:#27c93f14;border:1px solid #27c93f33}.status-message.error{color:#ff5f56;background:#ff5f5614;border:1px solid #ff5f5633}.form-group{flex-direction:column;gap:.4rem;display:flex}.form-group label{color:var(--text-2);letter-spacing:.02em;font-size:.8rem;font-weight:500}.form-group input,.form-group textarea{border:1px solid var(--border);width:100%;color:var(--text);transition:var(--tr);background:#ffffff0a;border-radius:8px;padding:.85rem 1.1rem;font-family:inherit;font-size:.92rem}.form-group input:focus,.form-group textarea:focus{border-color:var(--accent);background:#e8c97a0a;outline:none}.form-group textarea{resize:vertical;min-height:130px}@media (width<=900px){.contact-container{grid-template-columns:1fr;gap:3rem}}.footer{border-top:1px solid var(--border);padding:2.5rem 0}.footer-container{justify-content:space-between;align-items:center;gap:1rem;display:flex}.footer-copy{color:var(--text-3);font-size:.82rem}.footer-links{gap:1.8rem;display:flex}.footer-links a{color:var(--text-3);transition:var(--tr);font-size:.82rem}.footer-links a:hover{color:var(--accent)}@media (width<=600px){.footer-container{text-align:center;flex-direction:column}}
