
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font-body);color:#16181B;background:#fff;line-height:1.55;font-size:16px}
img{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3{font-family:var(--font-display);line-height:1.12;margin:0;letter-spacing:-.01em}
p{margin:0}
ul{margin:0;padding:0;list-style:none}
.wrap{max-width:1160px;margin:0 auto;padding:0 20px}
.ic{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 22px;border-radius:999px;background:var(--accent);color:var(--on-accent,#fff);font:600 15px/1 var(--font-body);text-decoration:none;border:0;cursor:pointer;transition:filter .15s}
.btn:hover{filter:brightness(1.08)}
.btn .ic{width:17px;height:17px}
.btn-ghost{background:#fff;color:#16181B;box-shadow:inset 0 0 0 1.5px #D9DCE0}
.btn-light{background:#fff;color:#16181B}
.btn-block{width:100%}
.eyebrow{font:600 12px/1.2 var(--font-label,var(--font-body));letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}

/* top bar */
.top{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.92);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid #ECEEF0}
.top-in{display:flex;align-items:center;justify-content:space-between;height:60px;gap:12px}
.top-name{font:700 16px/1 var(--font-display);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top-logo{height:30px;width:auto;max-width:150px;object-fit:contain}
.top-act{display:flex;align-items:center;gap:6px}
.top-act a{display:inline-flex;align-items:center;gap:6px;text-decoration:none;font-size:14px;font-weight:500;padding:8px 10px;border-radius:999px}
.top-act a span{display:none}
.top-act .top-cta{background:var(--accent);color:var(--on-accent,#fff);padding:9px 16px;font-weight:600}

/* home page: the profile owns the top; the nav slides in once you scroll past it.
   Without scroll-driven animations the nav stays hidden there (the profile has
   the contact buttons, the footer has the rest). */
.home .top{position:fixed;left:0;right:0;opacity:0;visibility:hidden;transform:translateY(-100%)}
@supports (animation-timeline:scroll()){
  .home .top{animation:top-in linear both;animation-timeline:scroll(root);animation-range:260px 380px}
}
@keyframes top-in{from{opacity:0;visibility:hidden;transform:translateY(-100%)}to{opacity:1;visibility:visible;transform:none}}
.sec,.foot{scroll-margin-top:64px}

/* profile: the cover fills the top and fades into the page; logo, socials,
   headshot and name float over it */
.pf{position:relative;text-align:center;padding-bottom:12px;isolation:isolate}
.cover{position:absolute;z-index:-1;left:0;right:0;top:0;height:340px;overflow:hidden;background:linear-gradient(135deg,var(--accent),#16181B)}
.cover img,.cover video{display:block;width:100%;height:100%;object-fit:cover}
.cover::before{content:"";position:absolute;left:0;right:0;top:0;height:140px;background:linear-gradient(rgba(10,12,15,.42),rgba(10,12,15,0))}
.cover::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,0) 52%,rgba(255,255,255,.7) 82%,#fff 98%);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);-webkit-mask-image:linear-gradient(180deg,transparent 50%,#000 86%);mask-image:linear-gradient(180deg,transparent 50%,#000 86%)}
.hero-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:72px;padding-top:14px;padding-bottom:14px}
.hero-id{display:flex;min-width:0;max-width:48%}
.hero-plate{display:inline-flex;align-items:center;min-width:0;max-width:100%;padding:7px 12px;border-radius:12px;background:rgba(255,255,255,.92);box-shadow:0 4px 18px rgba(0,0,0,.18)}
.hero-plate img{height:26px;width:auto;max-width:min(140px,100%);object-fit:contain}
/* the brokerage name wraps (up to 3 lines on phones) rather than being cut off next to the icons */
.hero-brand{color:#fff;text-align:left;font:600 13px/1.25 var(--font-display);letter-spacing:.05em;text-transform:uppercase;text-shadow:0 1px 10px rgba(0,0,0,.4);overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.hero-acts{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.hero-social{display:contents}
.hero-share,.hero-social a,.hero-social .soc-empty,.hero-more summary{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;color:#fff;background:rgba(255,255,255,.16);box-shadow:inset 0 0 0 1px rgba(255,255,255,.42);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:background .15s,color .15s}
.hero-share:hover,.hero-social a:hover,.hero-more summary:hover,.hero-more[open] summary{background:#fff;color:#16181B}
.hero-social svg{width:16px;height:16px;fill:currentColor}
.hero-share .ic{width:17px;height:17px}
/* language switch: "中文" on English pages, "EN" on the Chinese one (the globe from tablet width up) */
.hero-acts:has(.hero-lang){flex-shrink:0}
.hero-lang{display:inline-flex;align-items:center;gap:5px;height:38px;padding:0 12px;white-space:nowrap;border-radius:999px;color:#fff;text-decoration:none;font:600 13px/1 var(--font-body);background:rgba(255,255,255,.16);box-shadow:inset 0 0 0 1px rgba(255,255,255,.42);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:background .15s,color .15s}
.hero-lang:hover{background:#fff;color:#16181B}
.hero-lang .ic{display:none;width:15px;height:15px}
.top-act .top-lang{font-weight:600;white-space:nowrap}
.top-act .top-lang span{display:inline}
.top-act .top-lang .ic{display:none;width:16px;height:16px}
.hero-social .soc-empty{opacity:.5;cursor:pointer}
.hero-more{position:relative}
.hero-more summary{list-style:none;cursor:pointer}
.hero-more summary::-webkit-details-marker{display:none}
.hero-more summary .ic{stroke-width:3.2}
.hero-more ul{position:absolute;right:0;top:calc(100% + 10px);z-index:30;min-width:220px;padding:6px;border-radius:18px;background:#fff;box-shadow:0 18px 50px rgba(16,24,40,.24);text-align:left}
.hero-more li a,.hero-more li .soc-empty{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:12px;color:#16181B;text-decoration:none;font-size:15px;font-weight:500;white-space:nowrap}
.hero-more li a:hover{background:#F3F4F6}
.hero-more li .soc-empty{color:#A3A9B1;cursor:pointer}
.hero-more svg{width:18px;height:18px;flex:none;fill:currentColor}
.pf-body{display:flex;flex-direction:column;align-items:center;padding-top:36px}
.pf-photo{width:156px;height:156px;border-radius:50%;overflow:hidden;border:4px solid #fff;background:var(--accent);box-shadow:0 20px 44px rgba(16,24,40,.28);display:grid;place-items:center}
.pf-photo img{width:100%;height:100%;object-fit:cover}
.pf-photo span{color:var(--on-accent,#fff);font:700 46px/1 var(--font-display)}
.pf-body h1{font-size:clamp(34px,9vw,68px);margin-top:20px;letter-spacing:-.025em}
.pf-headline{margin-top:10px;max-width:640px;font-size:14px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:#3D434B}
.pf-rec{display:inline-flex;align-items:center;gap:6px;margin-top:12px;font-size:14px;font-weight:600;color:#16181B}
.pf-rec .ic{width:17px;height:17px;color:var(--accent)}
.chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:18px;max-width:680px}
.chips li{font-size:13px;font-weight:500;padding:7px 14px;border-radius:999px;background:#fff;color:#2C3138;box-shadow:inset 0 0 0 1px #E6E8EB,0 2px 8px rgba(16,24,40,.05)}
.pf-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;margin-top:16px;font-size:14px;color:#5B626C}
.pf-meta span{display:inline-flex;align-items:center;gap:6px}
.pf-meta .ic{width:16px;height:16px}
.pf-actions{display:flex;justify-content:center;gap:14px;margin-top:24px}
.act{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--accent);color:var(--on-accent,#fff);box-shadow:0 10px 24px color-mix(in srgb,var(--accent) 32%,transparent);transition:transform .15s,filter .15s}
.act:hover{transform:translateY(-2px);filter:brightness(1.1)}
.act .ic{width:20px;height:20px}
/* booking: the profile's button, the top bar's, and the band above the footer */
.pf-book{margin-top:24px}
.pf-book+.pf-actions{margin-top:16px}
.top-book i{font-style:normal}
.book-in{display:flex;flex-direction:column;align-items:center;gap:18px;max-width:920px;margin:0 auto 44px;padding:30px 22px;border-radius:24px;background:#fff;box-shadow:inset 0 0 0 1px #ECEEF0,0 14px 40px rgba(16,24,40,.06);text-align:center}
.book-in h2{font-size:clamp(22px,4.4vw,30px)}
.book-in p{margin-top:6px;color:#5B626C}
.foot-social{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.foot-social a{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#fff;color:#2C3138;transition:background .15s,color .15s}
.foot-social a:hover{background:var(--accent);color:var(--on-accent,#fff)}
.foot-social svg{width:17px;height:17px;fill:currentColor}

/* sections */
.sec{padding:56px 0}
.sec-head{max-width:760px;margin:0 auto 30px;text-align:center}
.sec-head h2{font-size:clamp(26px,5vw,38px)}
.sec-sub{margin-top:10px;color:#5B626C;font-size:16px}
.tone-muted{background:#F6F7F8}
.tone-accent{background:var(--accent);color:var(--on-accent,#fff)}
.tone-accent .eyebrow,.tone-dark .eyebrow{color:rgba(255,255,255,.75)}
.tone-dark{background:#16181B;color:#fff}
.tone-accent .sec-sub,.tone-dark .sec-sub{color:rgba(255,255,255,.75)}

/* key stats: one card, hairline dividers, big figures, small tracked labels */
.stats{padding:40px 0}
.stat-row{display:grid;grid-template-columns:1fr 1fr;padding:6px;border-radius:28px;background:#fff;color:#16181B;box-shadow:inset 0 0 0 1px #ECEEF0,0 1px 2px rgba(16,24,40,.04),0 24px 60px rgba(16,24,40,.08)}
.stat-row li{padding:24px 10px;text-align:center}
.stat-row li:nth-child(even){border-left:1px solid #ECEEF0}
.stat-row li:nth-child(n+3){border-top:1px solid #ECEEF0}
.stat-row li:last-child:nth-child(odd){grid-column:1/-1}
.stat-row b{display:block;font:700 clamp(32px,9vw,50px)/1 var(--font-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.stat-row span{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:12px;font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#6B7280}
.stat-row .ic{width:14px;height:14px;color:var(--accent)}
.tone-accent .stat-row,.tone-dark .stat-row{background:rgba(255,255,255,.06);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}
.tone-accent .stat-row li,.tone-dark .stat-row li{border-color:rgba(255,255,255,.16)}
.tone-accent .stat-row span,.tone-dark .stat-row span{color:rgba(255,255,255,.72)}
.tone-accent .stat-row .ic,.tone-dark .stat-row .ic{color:#fff}

/* listing cards */
.cards{display:grid;grid-template-columns:1fr;gap:18px}
.card{background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 1px 0 #ECEEF0,0 8px 26px rgba(16,24,40,.07);color:#16181B}
.ph{position:relative;aspect-ratio:4/3;background:#EEF0F2}
.ph img{width:100%;height:100%;object-fit:cover}
.ph-empty{display:grid;place-items:center;height:100%;color:#A3A9B1}
.ph-empty .ic{width:36px;height:36px}
.pills{position:absolute;left:12px;top:12px;right:12px;display:flex;flex-wrap:wrap;gap:6px}
.pill{font-size:12px;font-weight:600;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.95);color:#16181B}
.pill-oh{background:var(--accent);color:var(--on-accent,#fff)}
.pill-sold{background:#16181B;color:#fff}
.card-b{padding:16px 18px 18px}
.price{font:700 22px/1.2 var(--font-display)}
.specs{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:8px;font-size:14px;color:#3D434B}
.specs span{display:inline-flex;align-items:center;gap:5px}
.specs .ic{width:16px;height:16px;color:#7A818B}
.addr{display:flex;gap:6px;margin-top:8px;font-size:14px;color:#5B626C}
.addr .ic{width:16px;height:16px;margin-top:2px}
.filter>input{position:absolute;opacity:0;pointer-events:none}
.filter{text-align:center}
.cards{text-align:left}
.filter>label{display:inline-block;margin:0 3px 18px;padding:9px 16px;border-radius:999px;font-size:14px;font-weight:600;cursor:pointer;background:#F3F4F6;color:#2C3138}
.filter>input:checked+label{background:#16181B;color:#fff}
.filter>input:focus-visible+label{outline:2px solid var(--accent);outline-offset:2px}
/* the page shows the first few of what the filter picks; "See all" opens the rest */
.filter .cards .card{display:none}
.filter .cards .card.top-a{display:block}
.filter>input:nth-of-type(2):checked~.cards .card,.filter>input:nth-of-type(3):checked~.cards .card{display:none}
.filter>input:nth-of-type(2):checked~.cards .card.top-s,.filter>input:nth-of-type(3):checked~.cards .card.top-r{display:block}

/* bio */
.bio-grid{display:grid;gap:28px}
.bio-text{width:100%;max-width:720px;margin:0 auto}
.bio-photo{width:100%;max-width:440px;margin:0 auto;aspect-ratio:4/5;border-radius:24px;overflow:hidden;background:#EEF0F2;box-shadow:0 18px 44px rgba(16,24,40,.12)}
.bio-photo img{width:100%;height:100%;object-fit:cover}
.bio-text .video{margin-top:26px}
.prose p:first-child{margin-top:0}
.prose p{margin-top:14px;font-size:17px;color:#3D434B}
.tone-accent .prose p,.tone-dark .prose p{color:rgba(255,255,255,.88)}
.video{position:relative;aspect-ratio:16/9;border-radius:20px;overflow:hidden;background:#16181B}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-ph{display:grid;place-items:center;align-content:center;gap:10px;color:#fff;text-align:center;font-size:14px}
.video-ph span{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:rgba(255,255,255,.16)}
.play{width:30px;height:30px;fill:#fff}

/* market pulse: service areas on top; story left, numbers + CTA right.
   Each market is a radio + panel; the panel's parts drop into the card's grid. */
.pulse-card{display:grid;grid-template-areas:"areas" "tag" "head" "sub" "side";border-radius:24px;padding:26px 22px;background:#fff;box-shadow:inset 0 0 0 1px #ECEEF0,0 14px 40px rgba(16,24,40,.06);color:#16181B;text-align:left}
.pulse-areas{grid-area:areas;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;padding-bottom:22px;margin-bottom:24px;border-bottom:1px solid #ECEEF0}
.areas-label{flex-basis:100%;display:inline-flex;justify-content:center;align-items:center;gap:6px;margin-bottom:4px;font-size:14px;font-weight:600;color:#16181B}
.areas-label .ic{width:15px;height:15px;color:var(--accent)}
.pulse-areas .chip{font-size:13px;line-height:1.4;font-weight:500;padding:6px 13px;border-radius:999px;background:#fff;color:#5B626C;box-shadow:inset 0 0 0 1px #E6E8EB;text-decoration:none}
/* areas with numbers: filled with the theme color (clickable); the one shown is solid black */
.pulse-areas .pick{display:inline-flex;align-items:center;gap:5px;font-weight:600;color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,#fff);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 30%,#fff);cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}
.pulse-areas .pick .ic{width:13px;height:13px;stroke-width:2.2}
.pulse-areas .pick:hover{box-shadow:inset 0 0 0 1px var(--accent)}
.pulse-areas .pick.on{background:#16181B;color:#fff;box-shadow:none}
.pulse-areas .area-more{font-weight:600;color:#16181B;background:#F3F4F6;box-shadow:none}
.pulse-pick{position:absolute;opacity:0;pointer-events:none}
.pulse-panel{display:none}
.pulse-pick:checked+.pulse-panel{display:contents}
.pulse-tag{grid-area:tag;display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;font-size:14px;font-weight:600;color:#3D434B}
.mkt{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px}
.mkt-buyers{background:#ECFDF3;color:#067647;box-shadow:inset 0 0 0 1px #ABEFC6}
.mkt-sellers{background:#FEF3F2;color:#B42318;box-shadow:inset 0 0 0 1px #FECDCA}
.mkt-balanced{background:#F2F4F7;color:#344054;box-shadow:inset 0 0 0 1px #D0D5DD}
.mkt+.pulse-area::before{content:"•";margin-right:8px;color:#A3A9B1}
.pulse-h{grid-area:head;font-size:clamp(24px,4.6vw,34px)}
.pulse-sub{grid-area:sub;margin-top:10px}
.pulse-side{grid-area:side;margin-top:24px}
.pulse-stats{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:14px;margin:0}
.pulse-stats dt{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#3D434B}
.pulse-stats dd{display:flex;align-items:center;gap:6px;margin:6px 0 0;font:700 clamp(22px,5.5vw,32px)/1.1 var(--font-display)}
.pulse-stats dd .ic{width:18px;height:18px;stroke-width:2.4}
.pulse-stats dd.up{color:#14804A}
.pulse-stats dd.down{color:#D92D20}
.pulse-cta{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:20px}
.asof{font-size:12px;color:#7A818B}
.areas-modal .pulse-areas{border:0;padding:0;margin:18px 0 0}
.pulse-card.no-numbers .pulse-side{margin-top:22px}

/* testimonials */
.quote-grid{display:grid;gap:16px}
.quote{margin:0;background:#fff;border-radius:20px;padding:22px;box-shadow:0 1px 0 #ECEEF0,0 8px 26px rgba(16,24,40,.06);color:#16181B;display:flex;flex-direction:column}
.stars{display:flex;gap:2px}
.stars svg{width:18px;height:18px}
.stars .on{fill:#F5B301}
.stars .off{fill:#E3E6EA}
/* 7 lines, cut cleanly (the text keeps its own height; the reviewer sits at the bottom of the card) */
.quote blockquote{margin:12px 0 0;font-size:16px;color:#3D434B;display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden}
.stars{align-items:center}
.q-score{margin-left:6px;font-size:15px;font-weight:600;color:#16181B}
.q-meta{display:flex;flex-wrap:wrap;align-items:center;gap:0 8px;margin-top:10px;font-size:14px;color:#5B626C}
.q-meta span+b::before{content:"•";margin-right:8px;color:#A3A9B1}
.q-meta b{font-weight:500}
.q-title{margin-top:10px;font:700 17px/1.35 var(--font-display);color:#16181B}
.quote .q-title+blockquote{margin-top:8px}
.q-src{margin-top:auto;padding-top:16px;font-size:12px;color:#7A818B}
.quote-more summary{display:inline-block;margin-top:8px;list-style:none;cursor:pointer;font-size:14px;font-weight:600;color:var(--accent)}
.quote-more summary::-webkit-details-marker{display:none}
.quote-more .rl,.quote-more[open] .rm{display:none}
.quote-more[open] .rl{display:inline}
.quote:has(.quote-more[open]) blockquote{display:block;overflow:visible}
.avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:color-mix(in srgb,var(--accent) 12%,#fff);color:var(--accent);font-size:15px}
.who{display:flex;flex-direction:column;gap:2px;min-width:0}
.who small{font-weight:400;font-size:13px;line-height:1.35;color:#6B7280}
.who .src{font-size:12px}
.more{margin-top:22px;text-align:center}

/* "See all" pop-up: every entry of a long list; full screen on phones */
.list-modal .modal-card{display:flex;flex-direction:column;width:100%;max-width:1280px;height:100%;max-height:none;padding:0;overflow:hidden}
.list-modal .ph{aspect-ratio:3/2}
.list-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid #ECEEF0}
.list-modal .list-head h3{font-size:22px;padding-right:0}
.list-modal .modal-x{position:static;flex:none}
.list-body{overflow:auto;padding:20px;background:#F6F7F8;text-align:left}
@media (max-width:699px){
  .modal.list-modal{padding:0}
  .list-modal .modal-card{max-width:none;height:100%;max-height:none;border-radius:0}
}

/* blog */
.post-card a{display:flex;flex-direction:column;height:100%;text-decoration:none}
.post-card .card-b{display:flex;flex-direction:column;gap:8px;flex:1}
.post-card h3{font-size:20px;line-height:1.25}
.post-date{font-size:13px;color:#7A818B}
.post-ex{font-size:15px;color:#3D434B;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.post-more{display:inline-flex;align-items:center;gap:6px;margin-top:auto;padding-top:6px;font-size:14px;font-weight:600;color:var(--accent)}
.post-more .ic{width:16px;height:16px}
.blog-empty{display:flex;align-items:center;gap:12px;padding:22px;border:1.5px dashed #D9DCE0;border-radius:20px;color:#5B626C}
.post-page{padding-bottom:24px}
.post{max-width:760px;padding-top:40px;padding-bottom:20px}
.post .eyebrow a{text-decoration:none}
.post h1,.blog-title{font-size:clamp(30px,6.5vw,46px)}
.post-meta{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:14px;font-size:14px;color:#5B626C}
.post-meta span+span::before{content:"·";margin-right:16px;color:#C2C7CE}
.post-cover{margin-top:26px;border-radius:20px;overflow:hidden;aspect-ratio:16/9;background:#EEF0F2}
.post-cover img{width:100%;height:100%;object-fit:cover}
.post-body{margin-top:26px;font-size:18px;line-height:1.7;color:#2C3138}
.post-body>*+*{margin-top:18px}
.post-body h2{font-size:clamp(23px,4.4vw,30px);margin-top:36px}
.post-body h3{font-size:21px;margin-top:28px}
.post-body ul,.post-body ol{padding-left:24px}
.post-body ul{list-style:disc}
.post-body li+li{margin-top:6px}
.post-body a{color:var(--accent);text-underline-offset:3px}
.post-body blockquote{margin:24px 0;padding:4px 0 4px 18px;border-left:3px solid var(--accent);color:#3D434B;font-style:italic}
.author{display:grid;grid-template-columns:72px 1fr;gap:16px;align-items:start;margin-top:40px;padding:22px;border-radius:20px;background:#F6F7F8}
.author-photo{width:72px;height:72px;border-radius:18px;overflow:hidden;background:var(--accent);display:grid;place-items:center}
.author-photo img{width:100%;height:100%;object-fit:cover}
.author-photo span{color:var(--on-accent,#fff);font:700 24px/1 var(--font-display)}
.author-name{font:700 20px/1.2 var(--font-display)}
.author-line{margin-top:4px;color:#5B626C;font-size:15px}
.author-act{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.author-act .btn{min-height:40px;padding:0 16px;font-size:14px}
.post-more-sec{padding-top:24px}

/* home valuation */
.val-band{display:grid;gap:22px;justify-items:center;text-align:center;border-radius:24px;padding:34px 24px;background:#16181B;color:#fff;background-image:radial-gradient(circle at 85% 20%,color-mix(in srgb,var(--accent) 55%,transparent),transparent 55%)}
.val-band h2{font-size:clamp(26px,5vw,38px)}
.val-band p{margin-top:10px;color:rgba(255,255,255,.75)}


/* lead modals (CSS :target, no JavaScript) */
.modal{position:fixed;inset:0;z-index:50;display:none;align-items:center;justify-content:center;padding:16px}
.modal:target{display:flex}
.modal-bg{position:absolute;inset:0;background:rgba(10,12,15,.55)}
.modal-card{position:relative;width:100%;max-width:460px;max-height:calc(100vh - 32px);overflow:auto;background:#fff;color:#16181B;border-radius:24px;padding:28px 22px 22px;box-shadow:0 30px 80px rgba(0,0,0,.3)}
.modal-x{position:absolute;right:14px;top:14px;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#F3F4F6}
.modal-card h3{font-size:24px;padding-right:36px}
.modal-sub{margin-top:6px;color:#5B626C;font-size:15px}
.modal-card form{display:grid;gap:12px;margin-top:20px}
.modal-card label{display:grid;gap:6px;font-size:14px;font-weight:600}
.modal-card input{width:100%;min-height:46px;border:0;border-radius:12px;background:#F1F2F4;padding:0 14px;font:16px var(--font-body);color:#16181B}
.modal-card input:focus{outline:2px solid var(--accent);background:#fff}
.row2{display:grid;gap:12px}
/* WeChat: QR code and ID */
.wechat-sheet .modal-card{max-width:360px;padding:24px 20px 22px;text-align:center}
.wechat-sheet h3{font-size:19px;padding:0 36px}
.wechat-qr{width:min(240px,64vw);margin:18px auto 0}
.wechat-qr img{display:block;width:100%;height:auto;border-radius:12px}
.wechat-id{margin-top:16px;font-size:16px}
.wechat-id strong{user-select:all;-webkit-user-select:all}
.wechat-hint{margin-top:6px;color:#5B626C;font-size:14px}
/* booking pop-up: the booking page in a frame; full screen on phones */
.book-sheet .modal-card{display:flex;flex-direction:column;width:100%;max-width:1040px;height:min(760px,calc(100vh - 32px));padding:0;overflow:hidden}
.book-head{display:flex;align-items:center;gap:12px;padding:14px 16px 14px 22px;border-bottom:1px solid #ECEEF0}
.book-head h3{flex:1;min-width:0;font-size:19px;padding-right:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.book-head .modal-x{position:static;flex:none}
.book-new{flex:none;font-size:13px;color:#5B626C;text-decoration:underline;text-underline-offset:3px}
.book-frame{flex:1;width:100%;border:0;background:#fff}
@media (max-width:699px){.modal.book-sheet{padding:0}.book-sheet .modal-card{max-width:none;height:100%;max-height:none;border-radius:0}}
/* share sheet */
.share-sheet .modal-card{max-width:440px;padding:24px 20px 20px}
.share-sheet h3{font-size:19px}
.qr-frame{margin-top:18px;padding:16px;border-radius:26px;background:#16181B}
.qr-card{display:flex;flex-direction:column;align-items:center;gap:12px;padding:26px 18px 22px;border-radius:20px;background:#fff}
.qr{width:min(220px,62vw)}
.qr svg{display:block;width:100%;height:auto}
.qr-url{font-size:14px;font-weight:600;color:#16181B;text-align:center;word-break:break-all}
.share-acts{display:flex;gap:10px;margin-top:16px}
.share-btn{flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:70px;padding:10px 6px;border-radius:18px;border:0;background:#fff;box-shadow:inset 0 0 0 1px #E3E6EA;color:#16181B;font:500 13px/1.2 var(--font-body);text-decoration:none;cursor:pointer;transition:background .15s}
.share-btn:hover{background:#F6F7F8}
.share-btn[hidden]{display:none}
.share-btn .ic{width:20px;height:20px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.fine{font-size:12px;color:#7A818B;text-align:center}

/* footer */
.foot{border-top:1px solid #ECEEF0;padding:48px 0 34px;background:#F6F7F8}
.foot{text-align:center}
.foot-grid{display:grid;gap:28px;max-width:720px;margin:0 auto}
.foot-social{justify-content:center}
.foot-name{font:700 22px/1.2 var(--font-display)}
.foot-lic{font-size:13px;color:#7A818B;margin-top:4px}
.foot p a{text-decoration:none;color:#3D434B}
.foot-grid p+p{margin-top:6px}
.foot-logo{max-height:40px;width:auto;margin:10px auto 0}
.foot-addr a{display:inline-flex;align-items:flex-start;gap:6px;max-width:320px;font-size:15px;line-height:1.45;text-align:left}
.foot-addr .ic{flex:none;width:16px;height:16px;margin-top:2px;color:#7A818B}
.foot-links{display:flex;justify-content:center;gap:4px 20px;flex-wrap:wrap;margin-top:28px;font-size:13px}
.foot .foot-links a{color:#5B626B;padding:8px 2px}
.foot .foot-links a:hover{color:#16181B}
.legal{margin:12px auto 0;max-width:640px;font-size:12px;line-height:1.55;color:#7A818B}
.legal+.legal{margin-top:8px}
.legal a{color:inherit}
.powered{margin-top:20px}
.foot .powered-btn{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 16px;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 1px #E1E4E8;color:#16181B;font:500 13px/1 var(--font-body);transition:box-shadow .15s}
.foot .powered-btn:hover{box-shadow:inset 0 0 0 1px #B9BEC5}
.powered-btn .ic{width:14px;height:14px}
.powered+.legal{margin-top:16px}
.fine a{color:inherit;text-decoration:underline}

@media (min-width:700px){
  /* Bio: photo or video beside the story from tablet width up (the editor's desktop preview included). */
  .has-video .bio-grid{grid-template-columns:1fr 1fr;align-items:center;gap:36px}
  .has-video .bio-text{max-width:none}
  .has-photo .bio-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center;gap:40px}
  .has-photo .bio-text{max-width:none}
  .has-photo .bio-photo{max-width:none}
  .wrap{padding:0 32px}
  .cover{height:660px}
  .hero-bar{min-height:88px;padding-top:20px;padding-bottom:20px}
  .hero-plate img{height:30px;max-width:min(170px,100%)}
  .hero-brand{font-size:15px;letter-spacing:.06em;-webkit-line-clamp:2}
  .hero-share,.hero-social a,.hero-social .soc-empty,.hero-more summary{width:42px;height:42px}
  .hero-lang{height:42px;padding:0 13px 0 11px}
  .hero-lang .ic,.top-act .top-lang .ic{display:block}
  .hero-social svg{width:18px;height:18px}
  .pf-body{padding-top:112px}
  .pf-photo{width:200px;height:200px;border-width:5px}
  .pf-headline{font-size:15px}
  .act{width:54px;height:54px}
  .top-act a span{display:inline}
  .top-book i{display:none}
  .book-in{flex-direction:row;justify-content:space-between;padding:30px 36px;text-align:left}
  .stat-row{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:1fr;padding:10px 6px}
  .stat-row li:nth-child(n){border:0;padding:30px 12px}
  .stat-row span{display:inline-flex;flex-direction:row}
  .stat-row li:nth-child(n)+li{border-left:1px solid #ECEEF0}
  .tone-accent .stat-row li:nth-child(n)+li,.tone-dark .stat-row li:nth-child(n)+li{border-color:rgba(255,255,255,.16)}
  .stat-row li:last-child:nth-child(odd){grid-column:auto}
  .cards{grid-template-columns:repeat(2,1fr)}
  .quote-grid{grid-template-columns:repeat(2,1fr)}
  .row2{grid-template-columns:1fr 1fr}
  .val-band{padding:48px}
  .foot-grid{grid-template-columns:1fr 1fr}
  .sec{padding:72px 0}
}
@media (min-width:1000px){
  .has-photo .bio-grid{gap:56px}
  .has-video .bio-grid{gap:48px}
  .cards{grid-template-columns:repeat(3,1fr)}
  .quote-grid{grid-template-columns:repeat(3,1fr)}
  .pulse-card{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);grid-template-areas:"areas areas" "tag side" "head side" "sub side";column-gap:56px;padding:36px 44px 40px}
  .pulse-side{align-self:center;margin-top:0}
  .pulse-card.no-numbers{grid-template-columns:minmax(0,1fr);grid-template-areas:"areas" "tag" "head" "sub" "side"}
  .pulse-card.no-numbers .pulse-side{align-self:start;margin-top:22px}
}
/* the "See all" pop-up fits more per row than the page: 3 across from tablet width, 4 on large screens */
@media (min-width:700px){.list-modal .cards,.list-modal .quote-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1200px){.list-modal .cards{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* ── Dark pages (theme.mode "dark"): near-black page, light text ─────────── */
.dark{color-scheme:dark}
.dark body{color:#F2F3F5;background:#0E1013}
.dark .btn-ghost{background:transparent;color:#F2F3F5;box-shadow:inset 0 0 0 1.5px #3A3F47}
.dark .btn-light{background:#F2F3F5;color:#0E1013}
.dark .top{background:rgba(14,16,19,.88);border-bottom-color:#22262C}
.dark .cover{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 40%,#0E1013),#0E1013)}
.dark .cover::after{background:linear-gradient(180deg,rgba(14,16,19,0) 52%,rgba(14,16,19,.7) 82%,#0E1013 98%)}
.dark .hero-more ul{background:#1A1D22;box-shadow:0 18px 50px rgba(0,0,0,.5)}
.dark .hero-more li a,.dark .hero-more li .soc-empty{color:#F2F3F5}
.dark .hero-more li a:hover{background:#23272E}
.dark .hero-more li .soc-empty{color:#5D636C}
.dark .pf-photo{border-color:#0E1013;box-shadow:0 20px 44px rgba(0,0,0,.5)}
.dark .pf-headline{color:#C4C9D0}
.dark .pf-rec{color:#F2F3F5}
.dark .chips li{background:#16191E;color:#D7DBE0;box-shadow:inset 0 0 0 1px #2A2F36}
.dark .pf-meta{color:#A1A7B0}
.dark .foot-social a{background:#1C2026;color:#D7DBE0}
.dark .sec-sub{color:#A1A7B0}
.dark .tone-muted{background:#14171B}
.dark .tone-dark{background:#07080A}
.dark .tone-accent .eyebrow,.dark .tone-accent .sec-sub,.dark .tone-accent .prose p,.dark .tone-accent .stat-row span{color:color-mix(in srgb,var(--on-accent) 78%,transparent)}
.dark .tone-accent .stat-row,.dark .tone-accent .stat-row .ic{color:var(--on-accent)}
.dark .stat-row{background:#16191E;color:#F2F3F5;box-shadow:inset 0 0 0 1px #262A31,0 24px 60px rgba(0,0,0,.35)}
.dark .stat-row li:nth-child(n){border-color:#262A31}
.dark .stat-row span{color:#9AA0A8}
.dark .card{background:#16191E;box-shadow:0 1px 0 #22262C,0 8px 26px rgba(0,0,0,.35);color:#F2F3F5}
.dark .ph,.dark .bio-photo,.dark .post-cover{background:#1E2228}
.dark .ph-empty{color:#4B515A}
.dark .pill{background:rgba(14,16,19,.88);color:#F2F3F5}
.dark .pill-oh{background:var(--accent);color:var(--on-accent)}
.dark .pill-sold{background:#F2F3F5;color:#0E1013}
.dark .specs,.dark .pulse-tag,.dark .post-ex,.dark .foot p a{color:#C4C9D0}
.dark .specs .ic,.dark .foot-addr .ic{color:#8A9099}
.dark .addr,.dark .post-meta,.dark .author-line,.dark .modal-sub,.dark .wechat-hint,.dark .pulse-stats dt{color:#A1A7B0}
.dark .filter>label{background:#1C2026;color:#D7DBE0}
.dark .filter>input:checked+label{background:#F2F3F5;color:#0E1013}
.dark .prose p,.dark .quote blockquote{color:#C9CED5}
.dark .pulse-card{background:#16191E;box-shadow:inset 0 0 0 1px #262A31,0 14px 40px rgba(0,0,0,.35);color:#F2F3F5}
.dark .pulse-areas{border-bottom-color:#262A31}
.dark .areas-label{color:#F2F3F5}
.dark .pulse-areas .chip{background:#16191E;color:#A1A7B0;box-shadow:inset 0 0 0 1px #2A2F36}
.dark .pulse-areas .pick{background:color-mix(in srgb,var(--accent) 14%,#16191E);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 35%,#16191E)}
.dark .pulse-areas .pick.on{background:#F2F3F5;color:#0E1013;box-shadow:none}
.dark .pulse-areas .area-more{color:#F2F3F5;background:#23272E}
.dark .mkt-buyers{background:rgba(23,178,106,.14);color:#5FE3A1;box-shadow:inset 0 0 0 1px rgba(23,178,106,.35)}
.dark .mkt-sellers{background:rgba(240,68,56,.14);color:#FF8A80;box-shadow:inset 0 0 0 1px rgba(240,68,56,.35)}
.dark .mkt-balanced{background:#1C2026;color:#C4C9D0;box-shadow:inset 0 0 0 1px #2A2F36}
.dark .pulse-stats dd.up{color:#3DD68C}
.dark .pulse-stats dd.down{color:#FF6B5E}
.dark .quote{background:#16191E;box-shadow:0 1px 0 #22262C,0 8px 26px rgba(0,0,0,.35);color:#F2F3F5}
.dark .stars .off{fill:#3A3F47}
.dark .avatar{background:color-mix(in srgb,var(--accent) 16%,#16191E)}
.dark .q-score,.dark .q-title{color:#F2F3F5}
.dark .q-meta{color:#A1A7B0}
.dark .q-src,.dark .who small,.dark .post-date,.dark .asof,.dark .fine,.dark .foot-lic{color:#8A9099}
.dark .list-head{border-bottom-color:#262A31}
.dark .list-body{background:#0E1013}
.dark .blog-empty{border-color:#3A3F47;color:#A1A7B0}
.dark .post-body{color:#D7DBE0}
.dark .post-body blockquote{color:#C4C9D0}
.dark .author{background:#16191E}
.dark .val-band{background-color:#16191E;box-shadow:inset 0 0 0 1px #262A31}
.dark .modal-card{background:#16191E;color:#F2F3F5;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.dark .modal-x{background:#23272E;color:#F2F3F5}
.dark .modal-card input{background:#0E1013;color:#F2F3F5}
.dark .modal-card input:focus{background:#0E1013}
.dark .qr-frame{background:#0E1013}
.dark .share-btn{background:#1C2026;box-shadow:inset 0 0 0 1px #2A2F36;color:#F2F3F5}
.dark .share-btn:hover{background:#23272E}
.dark .foot{border-top-color:#1E2228;background:#0A0B0D}
.dark .legal{color:#7D848E}
.dark .foot .foot-links a{color:#A6ADB6}
.dark .foot .foot-links a:hover{color:#F2F3F5}
.dark .foot .powered-btn{background:#16191E;box-shadow:inset 0 0 0 1px #2A2F36;color:#E6E8EB}
.dark .foot .powered-btn:hover{box-shadow:inset 0 0 0 1px #3D434B}
.dark .book-in{background:#16191E;box-shadow:inset 0 0 0 1px #262A31}
.dark .book-in p{color:#A1A7B0}
.dark .book-head{border-bottom-color:#262A31}
.dark .book-new{color:#A1A7B0}
.dark .book-frame{background:#16191E}
