:root{--bg: #f6f9fc;--bg-soft: #ffffff;--bg-accent: #e8f3ff;--text: #2b3440;--text-muted: #64748b;--primary: #2f9e8f;--primary-deep: #1f7a6d;--accent: #5b8def;--accent-soft: #eef4ff;--border: #e3eaf2;--radius: 18px;--shadow: 0 8px 30px rgba(43, 52, 64, .08);--shadow-hover: 0 14px 40px rgba(43, 52, 64, .14);--gradient: linear-gradient(135deg, #2f9e8f 0%, #5b8def 100%)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:Noto Sans SC,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background-color:var(--bg);color:var(--text);line-height:1.7;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}ul{list-style:none}img{max-width:100%;display:block}.container{width:min(1080px,92%);margin:0 auto}.section{padding:96px 0}.section-head{text-align:center;margin-bottom:56px}.section-eyebrow{display:inline-block;font-size:13px;font-weight:500;letter-spacing:2px;color:var(--primary-deep);background:var(--bg-accent);padding:6px 16px;border-radius:999px;margin-bottom:14px}.section-title{font-size:clamp(26px,4vw,36px);font-weight:700;letter-spacing:1px}.section-desc{color:var(--text-muted);max-width:560px;margin:12px auto 0;font-size:15px}.card{background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);transition:transform .25s ease,box-shadow .25s ease}.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}.reveal.visible{opacity:1;transform:translateY(0)}@media(max-width:720px){.section{padding:64px 0}.section-head{margin-bottom:40px}}.navbar{position:fixed;inset:0 0 auto 0;z-index:100;transition:background .3s ease,box-shadow .3s ease}.navbar-scrolled{background:#ffffffd9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 2px 20px #2b34400f}.navbar-inner{display:flex;align-items:center;justify-content:space-between;height:68px}.navbar-brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:18px;letter-spacing:1px}.brand-dot{width:10px;height:10px;border-radius:50%;background:var(--gradient)}.nav-links{display:flex;gap:32px}.nav-links a{font-size:15px;color:var(--text-muted);transition:color .2s ease}.nav-links a:hover{color:var(--primary-deep)}.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px}.nav-toggle span{width:22px;height:2px;border-radius:2px;background:var(--text);transition:transform .25s ease,opacity .25s ease}.nav-toggle.active span:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav-toggle.active span:nth-child(2){opacity:0}.nav-toggle.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.hero{position:relative;overflow:hidden;padding:160px 0 80px;text-align:center}.hero-blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.45;pointer-events:none}.hero-blob-1{width:420px;height:420px;top:-120px;left:-80px;background:#bfe8dd}.hero-blob-2{width:380px;height:380px;bottom:-140px;right:-60px;background:#c9dcff}.hero-inner{position:relative}.hero-avatar{width:116px;height:116px;margin:0 auto 24px;border-radius:50%;background:var(--gradient);display:flex;align-items:center;justify-content:center;color:#fff;font-size:44px;font-weight:700;overflow:hidden;box-shadow:0 12px 32px #2f9e8f59}.hero-avatar img{width:100%;height:100%;object-fit:cover}.hero-role{display:inline-block;font-size:14px;font-weight:500;color:var(--primary-deep);background:var(--bg-accent);padding:6px 18px;border-radius:999px;letter-spacing:1px}.hero-name{font-size:clamp(36px,6vw,56px);font-weight:700;letter-spacing:3px;margin:18px 0 14px}.hero-bio{max-width:620px;margin:0 auto;color:var(--text-muted);font-size:17px}.hero-actions{display:flex;gap:14px;justify-content:center;margin-top:32px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 28px;border-radius:999px;font-size:15px;font-weight:500;cursor:pointer;border:1px solid transparent;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--gradient);color:#fff;box-shadow:0 8px 22px #2f9e8f4d}.btn-ghost{background:var(--bg-soft);color:var(--text);border-color:var(--border);box-shadow:var(--shadow)}.hero-stats{display:flex;justify-content:center;gap:48px;margin-top:56px;flex-wrap:wrap}.hero-stat{text-align:center}.hero-stat strong{display:block;font-size:30px;font-weight:700;background:var(--gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hero-stat span{font-size:13px;color:var(--text-muted)}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.about-card{padding:32px}.about-card h3{font-size:18px;margin-bottom:14px;color:var(--primary-deep)}.about-card p{color:var(--text-muted);margin-bottom:12px;font-size:15px}.about-location{color:var(--text)!important;font-weight:500}.about-list li{padding:8px 0;border-bottom:1px dashed var(--border);color:var(--text-muted);font-size:15px}.about-list li:last-child{border-bottom:none}.about-list li:before{content:"◆";color:var(--primary);margin-right:10px;font-size:12px}.skills-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.skill-card{padding:22px 26px}.skill-info{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}.skill-name{font-weight:500;font-size:15px}.skill-level{font-size:13px;color:var(--text-muted)}.skill-bar{height:8px;border-radius:999px;background:var(--bg-accent);overflow:hidden}.skill-fill{height:100%;border-radius:999px;background:var(--gradient);transition:width 1s ease}.projects-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.project-card{padding:28px;cursor:pointer}.project-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-hover)}.project-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.project-year{font-size:13px;color:var(--text-muted);background:var(--bg-accent);padding:4px 12px;border-radius:999px}.project-arrow{font-size:20px;color:var(--primary);opacity:0;transform:translate(-6px,6px);transition:opacity .25s ease,transform .25s ease}.project-card:hover .project-arrow{opacity:1;transform:translate(0)}.project-card h3{font-size:19px;margin-bottom:10px}.project-desc{color:var(--text-muted);font-size:14px;margin-bottom:18px}.project-tags{display:flex;flex-wrap:wrap;gap:8px}.project-tags span{font-size:12px;color:var(--accent);background:var(--accent-soft);padding:4px 12px;border-radius:999px}.blog-list{display:flex;flex-direction:column;gap:16px}.blog-card{display:flex;align-items:center;gap:24px;padding:24px 28px}.blog-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover)}.blog-date{flex-shrink:0;font-size:13px;color:var(--text-muted);font-variant-numeric:tabular-nums;width:84px}.blog-body{flex:1;min-width:0}.blog-body h3{font-size:17px;margin-bottom:6px;transition:color .2s ease}.blog-card:hover .blog-body h3{color:var(--primary-deep)}.blog-body p{color:var(--text-muted);font-size:14px;margin-bottom:10px}.blog-tag{font-size:12px;color:var(--primary-deep);background:var(--bg-accent);padding:3px 10px;border-radius:999px}.blog-arrow{font-size:20px;color:var(--primary);opacity:0;transform:translate(-6px);transition:opacity .25s ease,transform .25s ease}.blog-card:hover .blog-arrow{opacity:1;transform:translate(0)}.contact-card{text-align:center;padding:64px 32px}.contact-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:28px}.footer{padding:40px 0;border-top:1px solid var(--border);background:var(--bg-soft)}.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;color:var(--text-muted);font-size:14px}.footer-links{display:flex;gap:20px}.footer-links a{transition:color .2s ease}.footer-links a:hover{color:var(--primary-deep)}@media(max-width:860px){.about-grid,.skills-grid,.projects-grid{grid-template-columns:1fr}}@media(max-width:720px){.nav-toggle{display:flex}.nav-links{position:absolute;top:68px;left:0;right:0;flex-direction:column;gap:0;background:var(--bg-soft);border-bottom:1px solid var(--border);box-shadow:var(--shadow);max-height:0;overflow:hidden;transition:max-height .3s ease}.nav-links.open{max-height:320px}.nav-links a{padding:16px 6%;border-bottom:1px solid var(--border)}.hero-stats{gap:28px}.blog-card{flex-direction:column;align-items:flex-start;gap:10px}.blog-date{width:auto}.footer-inner{justify-content:center;text-align:center}}
