:root{
  --ink:#22302b; --muted:#5d6a63; --dim:#7b867f;
  --cream:#faf7f0; --sand:#efe9db; --card:#fffdf8; --line:#e3dccd;
  --green:#2f6b57; --green-deep:#245545; --gold:#b58a4a; --sky:#dfeaf1;
  --serif: Georgia, 'Iowan Old Style', 'Palatino Linotype', 'Times New Roman', serif;
  --sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
  --maxw:1160px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--sans); background:var(--cream); color:var(--ink); line-height:1.7; font-size:16px; -webkit-font-smoothing:antialiased;}
html:not([data-lang="zh"]) .lang-zh{display:none;}
html[data-lang="zh"] .lang-en{display:none;}
html[data-lang="zh"] body{font-family:'PingFang SC','Microsoft YaHei',var(--sans);}
img{display:block; max-width:100%;}
a{color:inherit; text-decoration:none;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 28px;}
.section{padding:88px 0;}
.section.alt{background:var(--sand);}
.eyebrow{display:block; font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--green); font-weight:600; margin-bottom:12px;}
html[data-lang="zh"] .eyebrow{letter-spacing:.1em;}
h1,h2,h3{font-family:var(--serif); font-weight:400; line-height:1.15;}
h2{font-size:clamp(30px,4vw,42px); margin-bottom:14px;}
.lede{font-size:17px; color:var(--muted); max-width:720px;}
.section-head{margin-bottom:40px;}

/* header */
header{position:fixed; top:0; left:0; right:0; z-index:100; background:rgba(250,247,240,.94); backdrop-filter:blur(8px); border-bottom:1px solid var(--line);}
.navwrap{max-width:var(--maxw); margin:0 auto; padding:0 28px; height:66px; display:flex; align-items:center; justify-content:space-between; gap:20px;}
.wordmark{font-family:var(--serif); font-size:20px; letter-spacing:.04em;}
.wordmark span{color:var(--green);}
nav ul{list-style:none; display:flex; gap:28px;}
nav a{font-size:13px; letter-spacing:.06em; color:var(--muted);}
nav a:hover, nav a.on{color:var(--green);}
.lang-toggle{display:flex; border:1px solid var(--green);}
.lang-btn{background:transparent; border:0; padding:6px 13px; font-size:12px; cursor:pointer; color:var(--green); font-family:inherit;}
.lang-btn.active{background:var(--green); color:var(--cream);}

/* buttons */
.btn{display:inline-flex; align-items:center; gap:10px; padding:13px 24px; font-size:13px; letter-spacing:.08em; text-transform:uppercase; font-weight:600; border:1px solid var(--green); transition:all .2s; cursor:pointer; font-family:inherit; background:transparent; color:var(--green);}
html[data-lang="zh"] .btn{letter-spacing:.04em; text-transform:none; font-size:14px;}
.btn.solid{background:var(--green); color:var(--cream);}
.btn.solid:hover{background:#24554a;}
.btn:hover{background:var(--sand);}
.btn svg{width:17px; height:17px;}
.btn-row{display:flex; gap:12px; flex-wrap:wrap;}

/* hero */
.hero{padding:130px 0 70px; background:linear-gradient(180deg,var(--cream),#f3ede0);}
.hero-grid{display:grid; grid-template-columns:1.2fr .8fr; gap:56px; align-items:center;}
.hero h1{font-size:clamp(40px,5.6vw,66px); margin-bottom:8px;}
.hero h1 em{color:var(--green); font-style:italic;}
html[data-lang="zh"] .hero h1 em{font-style:normal;}
.hero p.sub{font-size:18px; color:var(--muted); max-width:560px; margin:20px 0 30px;}
.me{background:var(--card); border:1px solid var(--line); padding:30px; display:flex; flex-direction:column; align-items:center; text-align:center; box-shadow:0 22px 50px rgba(34,48,43,.1);}
.me img{width:132px; height:132px; border-radius:50%; object-fit:cover; object-position:center 15%; border:3px solid var(--green); margin-bottom:16px;}
.me h3{font-size:26px;}
.me .role{font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--green); margin:4px 0 10px; font-weight:600;}
.me .cea{font-size:13px; color:var(--dim); line-height:1.7;}

/* directory */
.search{width:100%; padding:14px 16px; border:1px solid var(--line); background:var(--card); font-size:15px; font-family:inherit; color:var(--ink);}
.search:focus{outline:none; border-color:var(--green);}
.chips{display:flex; flex-wrap:wrap; gap:8px; margin:16px 0 8px;}
.chip{border:1px solid var(--line); background:var(--card); color:var(--muted); padding:7px 16px; font-size:13px; cursor:pointer; font-family:inherit;}
.chip.on{background:var(--green); color:var(--cream); border-color:var(--green);}
.count{font-size:13px; color:var(--dim); margin:6px 0 22px;}
.grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.card{background:var(--card); border:1px solid var(--line); display:flex; flex-direction:column; transition:transform .25s, border-color .25s;}
.card:hover{transform:translateY(-3px); border-color:var(--green);}
.card .ph{aspect-ratio:16/10; background:linear-gradient(135deg,#dfe7dd,#e9e2d0); position:relative; overflow:hidden; display:flex; align-items:flex-end;}
.card .ph img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.card .ph .init{font-family:var(--serif); font-size:54px; color:rgba(47,107,87,.28); padding:0 18px 6px; line-height:1;}
.badge{position:absolute; left:12px; top:12px; background:rgba(255,253,248,.95); font-size:11.5px; font-weight:700; letter-spacing:.06em; padding:3px 9px; z-index:2;}
.badge.own{left:auto; right:12px; background:var(--green); color:var(--cream);}
.card .bd{padding:18px 20px 20px; display:flex; flex-direction:column; gap:4px; flex:1;}
.card .tn{font-size:12px; color:var(--dim); letter-spacing:.04em;}
.card h3{font-size:22px; line-height:1.25;}
.card .zh-name{font-size:14px; color:var(--muted);}
.card .go{margin-top:auto; padding-top:14px; font-size:12.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--green); font-weight:600;}
html[data-lang="zh"] .card .go{letter-spacing:.03em; text-transform:none; font-size:13.5px;}
.empty{padding:40px 0; color:var(--dim);}
.note{font-size:12.5px; color:var(--dim); margin-top:18px; max-width:820px;}

/* contact */
.cta{background:var(--green); color:var(--cream); text-align:center; padding:84px 0;}
.cta h2{color:var(--cream);} .cta p{max-width:600px; margin:0 auto 28px; color:#dcebe5; font-size:17px;}
.cta .btn{border-color:var(--cream); color:var(--cream);}
.cta .btn.solid{background:var(--cream); color:var(--green);}
footer{background:var(--ink); color:#c4cdc8; padding:48px 0 110px; font-size:13px;}
footer .wordmark{color:var(--cream);} footer .wordmark span{color:#8fc3ae;}
footer p{margin-top:10px; max-width:700px;}
.disc{margin-top:22px; padding-top:20px; border-top:1px solid rgba(255,255,255,.14); font-size:11.5px; color:#9aa6a0; line-height:1.75;}

/* floating agent card */
.agent-card{position:fixed; right:22px; bottom:22px; z-index:200; background:var(--card); border:1px solid var(--line); box-shadow:0 14px 40px rgba(34,48,43,.22); display:flex; align-items:center; gap:13px; padding:12px 16px 12px 12px; max-width:320px;}
.agent-photo{width:56px; height:56px; border-radius:50%; object-fit:cover; object-position:center 15%; border:1.5px solid var(--green); flex-shrink:0;}
.a-name{font-family:var(--serif); font-size:15px; line-height:1.2;}
.a-role{font-size:10.5px; color:var(--green); letter-spacing:.05em; text-transform:uppercase; margin-top:2px; font-weight:600;}
.a-cea{font-size:10.5px; color:var(--dim); margin-top:3px; line-height:1.5;} .a-cea b{display:block; font-weight:400;}
.agent-actions{display:flex; flex-direction:column; gap:6px;}
.agent-actions a{width:34px; height:34px; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; transition:all .2s;}
.agent-actions a:hover{background:var(--green); border-color:var(--green); color:var(--cream);}
.agent-actions svg{width:16px; height:16px;}

.reveal{opacity:0; transform:translateY(20px); transition:opacity .7s, transform .7s;} .reveal.in{opacity:1; transform:none;}

@media (max-width:960px){
  nav{display:none;} .hero{padding:104px 0 56px;} .hero-grid{grid-template-columns:1fr; gap:34px;} .me{max-width:420px;}
  .grid{grid-template-columns:repeat(2,1fr);} .section{padding:68px 0;}
}
@media (max-width:600px){
  .wrap,.navwrap{padding:0 18px;} .grid{grid-template-columns:1fr;} .wordmark{font-size:17px;}
  .agent-card{left:14px; right:14px; bottom:14px; max-width:none; padding:10px 12px;}
}

/* calculators */
.tool-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
.tool{display:block; background:var(--card); border:1px solid var(--line); padding:28px 24px; transition:border-color .25s, transform .25s;}
.tool:hover{border-color:var(--green); transform:translateY(-3px);}
.tool .no{font-family:var(--serif); font-size:34px; line-height:1; color:var(--green); margin-bottom:12px;}
.tool h4{font-family:var(--serif); font-weight:400; font-size:20px; margin-bottom:8px;}
.tool p{font-size:14px; color:var(--muted);}
.tool .go{display:inline-block; margin-top:14px; font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--green); font-weight:600;}
html[data-lang="zh"] .tool .go{letter-spacing:.04em; text-transform:none; font-size:13px;}
@media (max-width:960px){ .tool-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:600px){ .tool-grid{grid-template-columns:1fr;} }
