:root { --ink:#1d1d1f; --soft-ink:#45454a; --muted:#737378; --line:#dedee3; --paper:#fff; --wash:#f5f5f7; --blue:#0071e3; --mint:#def2eb; --peach:#f8e7dc; --lavender:#e9e8fb; --shadow:0 28px 70px rgba(23,23,25,.08); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif; line-height:1.55; overflow-x:hidden; }
body::before { content:""; position:fixed; inset:0; z-index:-1; pointer-events:none; background:radial-gradient(circle at 10% -5%,rgba(213,231,247,.62),transparent 25rem),radial-gradient(circle at 95% 25%,rgba(250,231,217,.46),transparent 29rem); }
a { color:inherit; } button { font:inherit; }
.site-header,main,.footer { width:min(1180px,calc(100% - 40px)); margin-inline:auto; }
.site-header { position:sticky; top:0; z-index:20; display:flex; align-items:center; justify-content:space-between; min-height:78px; border-bottom:1px solid rgba(222,222,227,.7); background:rgba(255,255,255,.78); backdrop-filter:blur(20px) saturate(165%); }
.brand { display:flex; align-items:center; gap:10px; font-size:15px; font-weight:700; text-decoration:none; }.brand img { width:34px; height:34px; border:1px solid var(--line); border-radius:50%; object-fit:cover; }
.nav { display:flex; gap:3px; padding:4px; border:1px solid var(--line); border-radius:999px; background:rgba(255,255,255,.86); }.nav a { padding:7px 12px; border-radius:999px; color:#58585d; font-size:14px; text-decoration:none; transition:background .2s,color .2s; }.nav a:hover { color:var(--ink); background:#f0f0f2; }
.hero { display:grid; grid-template-columns:minmax(0,1fr) 285px; column-gap:70px; align-items:end; min-height:calc(100svh - 78px); padding:clamp(70px,11vw,135px) 0 74px; }.hero-copy { align-self:center; }.hero-name,.eyebrow { margin:0 0 14px; color:var(--blue); font-size:13px; font-weight:700; letter-spacing:0; }.hero-name { font-size:17px; }.hero h1,h2,h3,p { margin-top:0; }.hero h1 { max-width:860px; margin-bottom:26px; font-size:clamp(54px,7.7vw,103px); line-height:.99; letter-spacing:0; }.hero-lead { max-width:615px; margin-bottom:31px; color:var(--soft-ink); font-size:18px; line-height:1.78; }.hero-actions { display:flex; flex-wrap:wrap; gap:11px; }.button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:45px; padding:10px 18px; border:1px solid var(--line); border-radius:999px; background:#fff; font-size:15px; font-weight:650; text-decoration:none; transition:transform .2s,box-shadow .2s; }.button:hover { transform:translateY(-2px); box-shadow:0 9px 18px rgba(23,23,25,.1); }.button.primary { border-color:var(--blue); color:#fff; background:var(--blue); }
.identity { position:relative; display:grid; gap:15px; padding:22px; overflow:hidden; border:1px solid rgba(29,29,31,.1); border-radius:8px; background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(239,247,252,.9)); box-shadow:var(--shadow); }.identity::after { content:""; position:absolute; right:-53px; bottom:-58px; width:165px; height:165px; border:1px solid rgba(0,113,227,.18); border-radius:50%; box-shadow:0 0 0 28px rgba(0,113,227,.05),0 0 0 56px rgba(0,113,227,.025); }.identity img { width:78px; height:78px; border:3px solid #fff; border-radius:50%; object-fit:cover; box-shadow:0 8px 22px rgba(0,0,0,.13); }.identity span { color:var(--blue); font-size:12px; font-weight:700; }.identity strong { display:block; margin-top:3px; font-size:24px; }.identity p { margin:8px 0 0; color:var(--muted); font-size:14px; line-height:1.6; }.identity small { position:relative; z-index:1; padding-top:15px; border-top:1px solid var(--line); color:#606066; font-size:13px; line-height:1.7; }.hero-stats { grid-column:1 / -1; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:23px; max-width:720px; margin-top:72px; }.hero-stats div { padding-right:20px; border-right:1px solid var(--line); }.hero-stats div:last-child { border:0; }.hero-stats strong { display:block; font-size:25px; letter-spacing:0; }.hero-stats span { display:block; margin-top:4px; color:var(--muted); font-size:13px; }
.about { display:grid; grid-template-columns:.9fr 1.1fr; gap:100px; padding:116px 0; border-top:1px solid var(--line); }.about h2,.section-heading h2,.skills h2,.records h2 { margin-bottom:0; font-size:clamp(37px,4.7vw,62px); line-height:1.06; letter-spacing:0; }.about-copy { max-width:505px; color:var(--soft-ink); font-size:18px; line-height:1.8; }.principles { display:flex; flex-wrap:wrap; gap:8px; margin-top:29px; }.principles span { padding:7px 10px; border:1px solid var(--line); border-radius:999px; color:#56565b; background:#fff; font-size:13px; }
.projects { padding:23px 0 118px; }.section-heading { display:grid; grid-template-columns:1.3fr .7fr; gap:55px; align-items:end; margin-bottom:43px; }.section-heading > p { max-width:350px; margin:0 0 7px; color:var(--muted); font-size:16px; line-height:1.72; }.featured-projects { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }.featured-project { display:grid; grid-template-columns:145px 1fr; gap:22px; min-height:324px; padding:21px; overflow:hidden; border:1px solid var(--line); border-radius:8px; background:#fff; transition:transform .3s,box-shadow .3s; }.featured-project:hover { transform:translateY(-5px); box-shadow:var(--shadow); }.featured-project h3 { margin-bottom:8px; font-size:25px; letter-spacing:0; }.featured-project p:not(.card-index) { margin-bottom:14px; color:#54545a; font-size:14px; line-height:1.68; }.featured-project ul { display:grid; gap:6px; margin:0 0 17px; padding:0; list-style:none; color:#5d5d62; font-size:13px; line-height:1.55; }.featured-project li { position:relative; padding-left:12px; }.featured-project li::before { content:""; position:absolute; left:0; top:.57em; width:4px; height:4px; border-radius:50%; background:currentColor; }.featured-project > div:last-child > span { display:block; padding-top:13px; border-top:1px solid rgba(29,29,31,.11); color:#55555a; font-size:12px; font-weight:650; line-height:1.55; }.card-index { margin:0 0 22px; font-size:12px; font-weight:700; }.project-art { position:relative; min-height:100%; overflow:hidden; border-radius:6px; }.project-vision { background:#f5f8fc; }.project-vision .card-index { color:#5577a8; }.project-vision .project-art { background:linear-gradient(150deg,#1f395d,#7597c0); }.project-vision .project-art i { position:absolute; left:25%; top:22%; width:50%; height:55%; border:2px solid #b9fa9c; }.project-vision .project-art b { position:absolute; left:34%; top:32%; width:10px; height:10px; border-radius:50%; background:#ffcf66; box-shadow:47px 37px #ff9d8d; }.project-vision .project-art em { position:absolute; inset:0; background:linear-gradient(90deg,transparent 49%,rgba(255,255,255,.12) 50%,transparent 51%),linear-gradient(transparent 49%,rgba(255,255,255,.12) 50%,transparent 51%); background-size:19px 19px; }.project-embedded { background:#fbf7f3; }.project-embedded .card-index { color:#a45f42; }.project-embedded .project-art { background:#efd8c8; }.project-embedded .project-art i { position:absolute; left:50%; top:50%; width:91px; height:110px; transform:translate(-50%,-50%) rotate(8deg); border:10px solid #d36e43; border-radius:8px; background:repeating-linear-gradient(90deg,#352c2b 0 7px,#f7d5ae 7px 13px); }.project-embedded .project-art b,.project-embedded .project-art em { position:absolute; width:17px; height:17px; border-radius:50%; background:#77a9d9; }.project-embedded .project-art b { left:20%; top:24%; }.project-embedded .project-art em { right:17%; bottom:20%; background:#f4c34e; }.project-agriculture { background:#f3f8f0; }.project-agriculture .card-index { color:#4f8151; }.project-agriculture .project-art { background:linear-gradient(145deg,#b9ddbc,#ecf4d9); }.project-agriculture .project-art i { position:absolute; left:50%; top:50%; width:100px; height:100px; transform:translate(-50%,-50%); border:2px solid #39764b; border-radius:52% 0 52% 0; }.project-agriculture .project-art b { position:absolute; left:45%; top:33%; width:17px; height:17px; border-radius:50%; background:#fff9d3; box-shadow:25px 43px #55935b,-28px 38px #e9946b; }.project-agriculture .project-art em { position:absolute; left:50%; top:43%; width:2px; height:80px; background:#39764b; transform:rotate(41deg); }.project-intelligence { background:#f7f5fb; }.project-intelligence .card-index { color:#6e659c; }.project-intelligence .project-art { background:#dfdbef; }.project-intelligence .project-art i { position:absolute; left:50%; top:50%; width:80px; height:80px; transform:translate(-50%,-50%) rotate(45deg); border:12px solid #7665aa; border-radius:8px; background:#f8f3ff; }.project-intelligence .project-art b,.project-intelligence .project-art em { position:absolute; height:2px; background:#7665aa; transform-origin:left; }.project-intelligence .project-art b { left:50%; top:50%; width:78px; transform:rotate(137deg); }.project-intelligence .project-art em { left:50%; top:50%; width:65px; transform:rotate(-45deg); }
.method { display:grid; grid-template-columns:1.25fr repeat(3,1fr); gap:17px; align-items:start; margin:16px 0 104px; padding:26px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.method .eyebrow { margin-top:7px; }.method > div { min-height:123px; padding-left:17px; border-left:1px solid var(--line); }.method strong { display:block; color:var(--blue); font-size:13px; }.method span { display:block; margin:9px 0 8px; font-size:17px; font-weight:700; }.method p { margin:0; color:var(--muted); font-size:13px; line-height:1.65; }
.archive { padding:77px 0 0; border-top:1px solid var(--line); }.archive-heading { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:end; margin-bottom:30px; }.archive-heading .eyebrow { grid-column:1 / -1; margin-bottom:-44px; }.archive-heading h3 { margin:0; font-size:clamp(30px,3.6vw,49px); line-height:1.1; letter-spacing:0; }.archive-heading > p:last-child { max-width:345px; margin:0; color:var(--muted); font-size:15px; line-height:1.7; }.filters { display:flex; flex-wrap:wrap; gap:7px; margin:31px 0 16px; }.filters button { min-height:36px; padding:6px 12px; border:1px solid var(--line); border-radius:999px; color:#55555a; background:#fff; cursor:pointer; font-size:13px; transition:background .2s,color .2s,border .2s; }.filters button.active,.filters button:hover { border-color:var(--ink); color:#fff; background:var(--ink); }
.table-shell { overflow:auto; border:1px solid var(--line); border-radius:8px; background:rgba(255,255,255,.9); box-shadow:0 13px 37px rgba(23,23,25,.05); }.table-shell table { width:100%; min-width:770px; border-collapse:collapse; text-align:left; }.table-shell th { padding:16px 18px; border-bottom:1px solid var(--line); color:#55555a; background:#fafafa; font-size:13px; font-weight:650; white-space:nowrap; }.table-shell td { padding:17px 18px; border-bottom:1px solid #eeeeef; font-size:14px; vertical-align:middle; }.table-shell tbody tr:last-child td { border-bottom:0; }.table-shell tbody tr { transition:background .18s; }.table-shell tbody tr:hover { background:#f7fbfe; }.table-shell td:first-child { width:72px; color:var(--blue); font-family:ui-monospace,"PingFang SC",monospace; font-weight:700; }.table-shell td:nth-child(2) { min-width:240px; font-weight:650; }.table-shell td:nth-child(3) { min-width:130px; color:#4f5c65; }.table-shell td:nth-child(4) { min-width:260px; color:var(--muted); }.table-shell tr[hidden] { display:none; }.table-note { margin:14px 2px 0; color:var(--muted); font-size:13px; }
.skills { display:grid; grid-template-columns:.9fr 1.1fr; gap:74px; align-items:start; padding:110px 0; border-top:1px solid var(--line); }.skills-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }.skills-grid article { min-height:194px; padding:22px; border:1px solid var(--line); border-radius:8px; background:#fff; }.skills-grid span { color:var(--blue); font-size:13px; font-weight:700; }.skills-grid h3 { margin:25px 0 9px; font-size:19px; }.skills-grid p { margin-bottom:0; color:var(--muted); font-size:14px; line-height:1.7; }
.records { display:grid; grid-template-columns:1.1fr .9fr; gap:40px; align-items:center; margin-bottom:100px; padding:50px; overflow:hidden; border-radius:8px; color:#fff; background:linear-gradient(125deg,#232326,#161619); }.records .eyebrow { color:#9bd9ff; }.records h2 { margin-bottom:17px; }.records p:last-child { max-width:460px; margin-bottom:0; color:#c2c2c5; }.record-link { display:grid; grid-template-columns:1fr auto; gap:7px; align-items:center; padding:21px; border:1px solid rgba(255,255,255,.19); border-radius:8px; background:rgba(255,255,255,.08); text-decoration:none; transition:background .2s,transform .2s; }.record-link:hover { transform:translateY(-2px); background:rgba(255,255,255,.14); }.record-link span { color:#c4c5c8; font-size:13px; }.record-link strong { font-size:18px; }.record-link b { grid-column:2; grid-row:1 / span 2; color:#9ad8ff; font-size:25px; font-weight:400; }
.footer { display:flex; justify-content:space-between; gap:16px; padding:27px 0 38px; border-top:1px solid var(--line); color:var(--muted); font-size:13px; }.footer a { text-decoration:none; }.reveal { opacity:0; transform:translateY(20px); transition:opacity .65s ease,transform .65s ease; }.reveal.visible { opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition-duration:.01ms!important; } }
@media (max-width:940px) { .hero { grid-template-columns:1fr; gap:35px; min-height:auto; }.hero-copy { align-self:auto; }.identity { width:min(100%,460px); }.hero-stats { margin-top:15px; }.about,.skills,.records { grid-template-columns:1fr; }.about { gap:30px; padding:88px 0; }.section-heading { grid-template-columns:1fr; gap:7px; }.section-heading > p { margin-bottom:0; }.method { grid-template-columns:repeat(3,1fr); }.method .eyebrow { grid-column:1 / -1; margin:0 0 -2px; }.archive-heading { grid-template-columns:1fr; gap:17px; }.archive-heading .eyebrow { grid-column:auto; margin:0 0 -8px; }.skills { gap:35px; padding:88px 0; }.records { gap:28px; margin-bottom:78px; }.record-link { max-width:520px; } }
@media (max-width:700px) { .featured-projects { grid-template-columns:1fr; }.featured-project { grid-template-columns:112px 1fr; min-height:0; }.project-art { min-height:245px; }.method { grid-template-columns:1fr; gap:0; }.method .eyebrow { margin:0 0 15px; }.method > div { min-height:0; padding:15px 0; border-top:1px solid var(--line); border-left:0; }.method > div:last-child { padding-bottom:0; } }
@media (max-width:620px) { .site-header,main,.footer { width:min(100% - 24px,1180px); }.site-header { min-height:68px; }.brand { font-size:14px; }.brand img { width:29px; height:29px; }.nav { gap:0; }.nav a { padding:6px 7px; font-size:12px; }.hero { padding:82px 0 61px; gap:27px; }.hero h1 { font-size:51px; }.hero-lead { font-size:16px; }.identity { grid-template-columns:70px 1fr; gap:13px; padding:18px; }.identity img { width:66px; height:66px; }.identity strong { font-size:21px; }.identity small { grid-column:1 / -1; padding-top:12px; }.hero-stats { gap:9px; margin-top:2px; }.hero-stats div { padding-right:8px; }.hero-stats strong { font-size:17px; }.hero-stats span { font-size:11px; }.about { gap:24px; padding:65px 0; }.about h2,.section-heading h2,.skills h2,.records h2 { font-size:38px; }.about-copy { font-size:16px; }.projects { padding:10px 0 68px; }.section-heading { margin-bottom:28px; }.featured-project { grid-template-columns:1fr; gap:17px; padding:17px; }.project-art { min-height:150px; }.featured-project h3 { font-size:23px; }.featured-project ul { font-size:13px; }.method { margin:16px 0 67px; }.archive { padding-top:62px; }.archive-heading h3 { font-size:32px; }.filters { flex-wrap:nowrap; overflow:auto; padding-bottom:4px; }.filters button { flex:0 0 auto; }.table-shell { margin-inline:-1px; }.table-shell th,.table-shell td { padding:13px 14px; }.skills { padding:65px 0; }.skills-grid { grid-template-columns:1fr; }.skills-grid article { min-height:0; }.records { margin-bottom:62px; padding:31px 22px; }.record-link { padding:18px; }.footer { flex-direction:column; gap:5px; } }

.identity-fans { position:relative; z-index:1; display:flex; align-items:baseline; gap:7px; padding-top:2px; }.identity-fans strong { margin:0; color:var(--blue); font-size:21px; }.identity-fans span { color:var(--muted); font-size:12px; font-weight:500; }
.project-art img { display:block; width:100%; height:100%; min-height:100%; object-fit:cover; filter:saturate(.86) contrast(1.04); transition:transform .55s ease; }.featured-project:hover .project-art img { transform:scale(1.05); }
.gallery { margin:10px 0 104px; padding:73px 0 0; border-top:1px solid var(--line); }.gallery-heading { display:grid; grid-template-columns:1fr 1fr; gap:35px; align-items:end; margin-bottom:26px; }.gallery-heading .eyebrow { grid-column:1 / -1; margin:0 0 -41px; }.gallery-heading h3 { margin:0; font-size:clamp(30px,3.6vw,49px); line-height:1.1; }.gallery-heading > p:last-child { max-width:340px; margin:0; color:var(--muted); font-size:15px; line-height:1.7; }.gallery-track { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(220px,300px); gap:13px; overflow-x:auto; padding:3px 2px 17px; scroll-snap-type:x mandatory; scrollbar-width:none; }.gallery-track::-webkit-scrollbar { display:none; }.gallery-track figure { position:relative; aspect-ratio:3 / 4; margin:0; overflow:hidden; border-radius:8px; background:#eee; scroll-snap-align:start; }.gallery-track img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }.gallery-track figure:hover img { transform:scale(1.04); }.gallery-track figcaption { position:absolute; right:0; bottom:0; left:0; padding:42px 16px 16px; color:#fff; background:linear-gradient(transparent,rgba(0,0,0,.68)); }.gallery-track figcaption span { display:block; margin-bottom:3px; opacity:.8; font-size:12px; }.gallery-track figcaption strong { font-size:17px; }
.archive { position:relative; }.pagination { display:flex; align-items:center; justify-content:center; gap:14px; margin-top:21px; }.pagination button { min-width:70px; min-height:36px; padding:6px 12px; border:1px solid var(--line); border-radius:999px; color:#3f3f44; background:#fff; cursor:pointer; font-size:13px; }.pagination button:not(:disabled):hover { border-color:var(--blue); color:var(--blue); }.pagination button:disabled { opacity:.38; cursor:not-allowed; }.pagination span { min-width:88px; color:var(--muted); font-size:13px; text-align:center; }.archive-hint { position:sticky; bottom:18px; z-index:5; width:max-content; max-width:calc(100% - 20px); margin:14px auto 0; padding:9px 13px; border:1px solid rgba(29,29,31,.12); border-radius:999px; color:#3e3e43; background:rgba(255,255,255,.92); box-shadow:0 8px 22px rgba(0,0,0,.1); backdrop-filter:blur(10px); font-size:12px; opacity:0; transform:translateY(14px); transition:opacity .25s,transform .25s; pointer-events:none; }.archive-hint.visible { opacity:1; transform:none; }.archive-hint span { display:inline-block; color:var(--blue); font-size:16px; vertical-align:-1px; }
@media (max-width:940px) { .gallery-heading { grid-template-columns:1fr; gap:17px; }.gallery-heading .eyebrow { grid-column:auto; margin:0 0 -8px; } }
@media (max-width:620px) { .identity-fans { grid-column:1 / -1; }.gallery { margin-bottom:67px; padding-top:62px; }.gallery-heading h3 { font-size:32px; }.gallery-track { grid-auto-columns:minmax(232px,76vw); }.pagination { justify-content:flex-start; }.archive-hint { display:block; } }

.contact-end { display:grid; grid-template-columns:1fr auto; gap:55px; align-items:center; padding:0 0 96px; }.contact-end h2,.thanks h2 { margin-bottom:16px; font-size:clamp(34px,4vw,55px); line-height:1.08; }.contact-end p { max-width:520px; margin-bottom:21px; color:var(--muted); font-size:16px; line-height:1.72; }.contact-end a { color:var(--blue); font-size:16px; font-weight:650; text-decoration:none; }.contact-end figure { margin:0; padding:9px; border:1px solid var(--line); border-radius:8px; background:#fff; box-shadow:var(--shadow); text-align:center; }.contact-end img { display:block; width:132px; height:132px; object-fit:contain; }.contact-end figcaption { padding:8px 0 2px; color:var(--muted); font-size:12px; }.thanks { padding:76px 0 92px; border-top:1px solid var(--line); }.thanks > p:last-child { max-width:730px; margin:0; color:#55555a; font-size:17px; line-height:1.85; }
.archive-guide { display:none; }.archive-guide[hidden] { display:none; }
@media (max-width:760px) { .contact-end { grid-template-columns:1fr auto; gap:22px; padding-bottom:67px; }.contact-end img { width:108px; height:108px; }.contact-end figure { padding:7px; }.thanks { padding:62px 0 68px; }.thanks > p:last-child { font-size:16px; }.archive-guide:not([hidden]) { position:fixed; inset:0; z-index:60; display:grid; place-items:center; padding:24px; background:rgba(20,20,23,.7); backdrop-filter:blur(13px); }.archive-guide > div { width:min(100%,360px); padding:30px 25px 24px; border:1px solid rgba(255,255,255,.28); border-radius:8px; color:#fff; background:linear-gradient(145deg,#25262a,#101114); box-shadow:0 25px 65px rgba(0,0,0,.36); }.archive-guide span { color:#9bd9ff; font-size:13px; font-weight:700; }.archive-guide h2 { margin:14px 0 12px; color:#fff; font-size:37px; line-height:1.08; }.archive-guide p { margin:0; color:#d0d0d4; font-size:15px; line-height:1.72; }.archive-guide i { display:block; width:45px; height:45px; margin:23px 0; border:1px solid rgba(255,255,255,.25); border-radius:50%; color:#9bd9ff; font-size:27px; font-style:normal; line-height:40px; text-align:center; animation:guide-move 1.4s ease-in-out infinite; }.archive-guide button { width:100%; min-height:45px; border:0; border-radius:999px; color:#151518; background:#fff; font-size:15px; font-weight:700; }.archive-guide button:active { transform:scale(.98); } }
@keyframes guide-move { 0%,100% { transform:translateX(0); } 50% { transform:translateX(9px); } }

.identity-contacts { position:relative; z-index:1; display:grid; gap:7px; padding-top:1px; }.identity-contacts a,.identity-contacts button { display:flex; align-items:baseline; justify-content:space-between; gap:14px; width:100%; padding:9px 0; border:0; border-bottom:1px solid rgba(29,29,31,.09); border-radius:0; background:none; color:var(--ink); font:inherit; text-align:left; text-decoration:none; cursor:pointer; }.identity-contacts a:last-child,.identity-contacts button:last-child { border-bottom:0; }.identity-contacts span { color:var(--muted); font-size:12px; font-weight:500; }.identity-contacts strong { margin:0; color:#3d3d42; font-size:13px; font-weight:650; }.identity-contacts a:hover strong,.identity-contacts button:hover strong { color:var(--blue); }.identity-contacts .wechat-open strong { color:var(--blue); }
.featured-project { display:block; min-height:276px; }.featured-project > div { height:100%; }.featured-project > div:last-child > span { margin-top:20px; }.project-vision { background:linear-gradient(145deg,#f7fbff,#edf5fb); }.project-embedded { background:linear-gradient(145deg,#fffaf6,#f7eee8); }.project-agriculture { background:linear-gradient(145deg,#f8fcf5,#edf6e9); }.project-intelligence { background:linear-gradient(145deg,#faf9fd,#f0effa); }
@media (max-width:700px) { .featured-project { min-height:0; }.featured-project > div:last-child > span { margin-top:17px; } }

@media (max-width:940px) {
  .identity { order:-1; width:100%; }
  .identity-contacts { grid-column:1 / -1; }
}
@media (max-width:620px) {
  .identity-contacts a,
  .identity-contacts button { min-height:44px; align-items:center; padding:10px 0; }
}

.wechat-card {
  display:flex; flex-direction:column; justify-content:center;
  min-width:168px; min-height:132px; padding:18px 20px;
  border:1px solid var(--line); border-radius:8px;
  background:#fff; box-shadow:var(--shadow);
  cursor:pointer; text-align:left; font:inherit; color:inherit;
}
.wechat-card span { color:var(--muted); font-size:12px; font-weight:700; }
.wechat-card strong { display:block; margin-top:8px; color:var(--blue); font-size:17px; font-weight:650; }
.wechat-card:hover { transform:translateY(-2px); }

.wechat-dialog {
  width:min(320px, calc(100% - 40px));
  padding:26px 22px 20px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  color:var(--ink);
  text-align:center;
}
.wechat-dialog::backdrop { background:rgba(20,20,23,.55); }
.wechat-dialog p { margin:0; }
.wechat-dialog p:first-child { font-size:15px; font-weight:700; }
.wechat-dialog img { display:block; width:220px; height:220px; margin:16px auto 12px; object-fit:contain; }
.wechat-dialog p:nth-of-type(2) { color:var(--muted); font-size:13px; }
.wechat-dialog button {
  min-height:42px; margin-top:18px; padding:0 18px;
  border:1px solid var(--line); border-radius:999px;
  background:#fff; color:var(--ink); font:inherit; font-weight:650; cursor:pointer;
}
