:root{--green:#54a02d;--gold:#ec8a1e;--earth:#e8d4c0;--ink:#3a3028;--paper:#fef8f0;--gray-light:#e8dfd0;--gray-mid:#a89d92;--gray-dark:#7b6f64}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,sans-serif;line-height:1.6}.site{--font-head:"Inter",system-ui,sans-serif}.site.en{font-family:Inter,system-ui,sans-serif}.site.cn{--font-head:"Noto Sans SC",sans-serif;font-family:Noto Sans SC,Inter,sans-serif}a{color:var(--green);text-decoration:none}a:hover{opacity:.75}header{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--gray-light);background:#fef8f0f2;justify-content:space-between;align-items:center;padding:16px 32px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;display:flex}.mark-brand{flex-shrink:0;width:34px;height:34px}.logo{letter-spacing:-.02em;font-family:Inter,system-ui,sans-serif;font-size:18px;font-weight:700}.logo-en{color:var(--ink)}.logo-en b{color:var(--green);font-weight:700}nav{align-items:center;gap:24px;font-size:14px;font-weight:500;display:flex}nav a{color:var(--ink)}.btn-contact{background:var(--green);color:#fff;border-radius:4px;padding:8px 18px;font-size:13px;font-weight:600;transition:background .2s}.btn-contact:hover{opacity:1;background:#3f8e30}.hero{text-align:center;max-width:900px;margin:0 auto;padding:80px 32px;position:relative}.hero:before{content:"";pointer-events:none;z-index:-1;background:radial-gradient(circle,#ec8a1e14 0%,#0000 70%);width:400px;height:400px;position:absolute;top:-100px;right:-200px}.mark-hero{width:120px;height:120px;margin:0 auto 40px;display:block}.hero h1{font-family:var(--font-head);letter-spacing:-.03em;color:var(--ink);margin:0 0 12px;font-size:48px;font-weight:700;line-height:1.2}.hero h1.en{color:var(--ink);margin-top:4px;font-family:Inter,sans-serif;font-size:42px}.hero .tagline{color:var(--green);letter-spacing:.05em;margin:0 0 32px;font-size:18px;font-weight:600}.hero .tagline.en{margin-top:-8px;font-size:16px}.hero .byline{color:var(--gray-dark);max-width:600px;margin:0 auto;font-family:Noto Sans SC,sans-serif;font-size:15px;line-height:1.8}section{max-width:1200px;margin:0 auto;padding:72px 32px}.section-title{font-family:var(--font-head);text-align:center;color:var(--green);margin:0 0 48px;font-size:36px;font-weight:700}.projects{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:32px;display:grid}.project-card{border:1px solid var(--gray-light);background:#fff;border-radius:12px;padding:32px;transition:all .2s;position:relative;overflow:hidden}.project-card:before{content:"";background:linear-gradient(180deg,var(--green),var(--gold));width:4px;height:0;transition:height .3s;position:absolute;top:0;left:0}.project-card:hover:before{height:100%}.project-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px #54a02d1f}.project-card h3{font-family:var(--font-head);color:var(--ink);margin:0 0 8px;font-size:20px;font-weight:700}.project-card .desc{color:var(--gray-dark);margin:0 0 16px;font-size:14px;line-height:1.7}.tags{flex-wrap:wrap;gap:8px;display:flex}.tag{letter-spacing:.04em;color:var(--green);background:#54a02d1a;border-radius:3px;padding:4px 10px;font-size:11px;font-weight:600}.portfolio-group{padding-top:40px;padding-bottom:40px}.portfolio-group:first-of-type{padding-top:24px}.group-head{text-align:center;max-width:640px;margin:0 auto 40px}.group-span{letter-spacing:.08em;color:var(--gold);margin-bottom:12px;font-family:Space Mono,monospace;font-size:13px;font-weight:700}.group-blurb{color:var(--gray-dark);margin:0;font-size:15px;line-height:1.7}.proj-period{letter-spacing:.05em;color:var(--gray-mid);margin-bottom:8px;font-family:Space Mono,monospace;font-size:12px}.proj-role{color:var(--green);margin:0 0 12px;font-size:13px;font-weight:600}.proj-links{flex-wrap:wrap;gap:14px;margin-bottom:16px;display:flex}.proj-links a{color:var(--gold);font-size:13px;font-weight:600}.proj-links a:hover{color:var(--green);opacity:1}.about{border:1px solid var(--gray-light);background:linear-gradient(135deg,#ec8a1e0f 0%,#e8d4c066 100%);border-radius:12px;padding:48px}.about h2{font-family:var(--font-head);color:var(--green);margin:0 0 32px;font-size:28px;font-weight:700}.about-grid{grid-template-columns:1fr 1fr;align-items:flex-start;gap:48px;display:grid}.about-text{color:var(--gray-dark);font-size:15px;line-height:1.8}.about-text p{margin:0 0 16px}.about-text p:last-child{margin:0}.about-text strong{color:var(--ink);font-weight:700}.values{flex-direction:column;gap:20px;display:flex}.value-item{padding-left:24px;position:relative}.value-item:before{content:"🌱";font-size:18px;position:absolute;left:0}.value-item strong{color:var(--ink);font-weight:700}.value-item span{color:var(--gray-mid)}.contact{text-align:center;background:linear-gradient(135deg,#54a02d14 0%,#ec8a1e0d 100%);border-radius:12px;margin-top:40px;padding:80px 32px}.contact h2{font-family:var(--font-head);color:var(--green);margin:0 0 24px;font-size:32px;font-weight:700}.contact-sub{color:var(--gray-dark);margin:0 0 24px}.contact .email{color:var(--gold);margin:0 0 32px;font-family:Space Mono,monospace;font-size:18px;font-weight:600}.btn-primary{background:var(--green);color:#fff;border-radius:6px;padding:14px 40px;font-size:15px;font-weight:600;transition:all .2s;display:inline-block}.btn-primary:hover{opacity:1;background:#3f8e30;transform:translateY(-2px)}footer{border-top:1px solid var(--gray-light);text-align:center;color:var(--gray-mid);padding:32px;font-size:13px}.lang-switch{border:1px solid var(--gray-light);background:#fff;border-radius:999px;align-items:center;gap:2px;padding:3px;display:inline-flex}.lang-switch button{color:var(--gray-dark);letter-spacing:.02em;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:5px 12px;font-family:Inter,system-ui,sans-serif;font-size:12px;font-weight:600;line-height:1;transition:all .2s}.lang-switch button:hover{color:var(--ink)}.lang-switch button.active{background:var(--green);color:#fff}@media (max-width:768px){.hero h1{font-size:32px}.about-grid{grid-template-columns:1fr}header{flex-wrap:wrap;justify-content:center;gap:12px}nav{gap:16px;font-size:13px}}
