:root{
  --ink:#17201e;
  --ink-soft:#394743;
  --paper:#ede8de;
  --paper-deep:#dcd5c7;
  --lake:#91aaa7;
  --mountain:#a76545;
  --brass:#b3905b;
  --line:rgba(23,32,30,.17);
  --serif:"Cormorant Garamond",Georgia,serif;
  --sans:"Jost","Helvetica Neue",sans-serif;
  --serif-sc:"Noto Serif SC","Songti SC",serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#151d1b;color:var(--ink);font-family:var(--sans);font-weight:300;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{font:inherit}
.symbol-library{position:absolute;pointer-events:none}
.landing-shell{width:100%;min-height:100vh;background:var(--paper);overflow:hidden}

.brand-nav{position:absolute;z-index:20;top:0;left:0;right:0;height:94px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 clamp(28px,4.5vw,74px);border-bottom:1px solid var(--line);animation:arrive .8s .05s both}
.brand{display:flex;align-items:center;gap:15px;justify-self:start}
.brand svg{width:34px;height:34px}
.brand span{display:flex;flex-direction:column;line-height:1.25}
.brand b{font-size:12px;font-weight:400;letter-spacing:.34em;text-transform:uppercase}
.brand small{margin-top:5px;font-family:var(--serif-sc);font-size:9px;letter-spacing:.2em;opacity:.58}
.brand-nav nav{display:flex;align-items:center;gap:29px;text-transform:uppercase;font-size:10px;letter-spacing:.2em}
.brand-nav nav span{color:var(--brass)}
.brand-nav nav a{position:relative;padding:8px 0}
.brand-nav nav a::after{content:"";position:absolute;left:0;right:100%;bottom:2px;height:1px;background:var(--ink);transition:right .35s ease}
.brand-nav nav a:hover::after,.brand-nav nav a:focus-visible::after{right:0}
.nav-actions{justify-self:end;display:flex;align-items:center;gap:26px;text-transform:uppercase;font-size:10px;letter-spacing:.19em}
.nav-actions button,.nav-actions .language-link{border:0;background:none;padding:8px 0;cursor:pointer;color:inherit;text-transform:inherit;letter-spacing:inherit}
.nav-actions button i,.nav-actions .language-link i{display:inline-block;width:17px;height:1px;margin:0 7px;vertical-align:middle;background:currentColor;opacity:.35}
.nav-actions>a:not(.language-link){border:1px solid rgba(23,32,30,.48);padding:11px 17px;transition:.3s ease}
.nav-actions>a:not(.language-link):hover{background:var(--ink);color:var(--paper)}

.brand-hero{position:relative;min-height:100vh;padding-top:94px;display:grid;grid-template-columns:minmax(360px,42%) 1fr;grid-template-rows:1fr auto}
.hero-copy{position:relative;z-index:4;padding:clamp(78px,10vh,130px) clamp(32px,6vw,104px) 188px;display:flex;flex-direction:column;justify-content:center}
.hero-copy::after{content:"";position:absolute;width:1px;top:0;right:0;bottom:0;background:var(--line)}
.eyebrow{display:flex;align-items:center;gap:16px;margin:0 0 34px;font-size:9px;letter-spacing:.28em;text-transform:uppercase;color:var(--mountain);animation:rise .8s .2s both}
.eyebrow span+span::before{content:"";display:inline-block;width:28px;height:1px;margin:0 16px 3px 0;background:currentColor;opacity:.45}
.hero-copy h1{margin:0;font-family:var(--serif);font-size:clamp(66px,7.3vw,120px);font-weight:300;line-height:.82;letter-spacing:-.035em;animation:rise .9s .3s both}
.hero-copy h1 em{display:inline-block;margin-top:.08em;margin-left:clamp(24px,3vw,56px);font-weight:300;color:var(--mountain)}
.intro{max-width:510px;margin:48px 0 0;font-size:15px;line-height:1.9;letter-spacing:.018em;color:rgba(23,32,30,.7);animation:rise .9s .42s both}
.cn-intro{margin:27px 0 0;font-family:var(--serif-sc);font-size:13px;line-height:2;letter-spacing:.09em;color:rgba(23,32,30,.56);animation:rise .9s .5s both}
.scroll-note{position:absolute;left:clamp(32px,6vw,104px);bottom:122px;display:flex;align-items:center;gap:12px;font-size:8px;letter-spacing:.24em;text-transform:uppercase;color:rgba(23,32,30,.48)}
.scroll-note span{position:relative;width:36px;height:1px;background:var(--ink)}
.scroll-note span::after{content:"";position:absolute;right:0;top:-2px;width:5px;height:5px;border-right:1px solid;border-bottom:1px solid;transform:rotate(-45deg)}

.map-stage{position:relative;min-height:720px;background:linear-gradient(145deg,#d8d7cd 0%,#cfd3cb 45%,#b7c3bf 100%);overflow:hidden;isolation:isolate}
.map-stage::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.23;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 140 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E");mix-blend-mode:multiply}
.map-wash{position:absolute;inset:0;background:radial-gradient(circle at 65% 36%,rgba(255,255,255,.5),transparent 38%),linear-gradient(90deg,rgba(237,232,222,.38),transparent 28%);pointer-events:none}
.dali-map{position:absolute;top:50%;left:50%;width:min(96%,930px);height:min(90%,880px);transform:translate(-50%,-50%);overflow:visible;animation:map-in 1.2s .15s both}
.mountain-lines path,.east-land path{fill:none;stroke:#745948;stroke-width:1;opacity:.24}
.east-land path{stroke:#36534e;opacity:.22}
.lake{fill:url(#lake-fill);stroke:rgba(41,71,68,.5);stroke-width:1.3}
.shoreline{fill:none;stroke:rgba(255,255,255,.65);stroke-width:2.2}
.map-label text{font-family:var(--sans);font-size:9px;letter-spacing:.28em;fill:rgba(23,32,30,.5)}
.map-label text+text{font-family:var(--serif-sc);font-size:8px;letter-spacing:.3em;fill:rgba(23,32,30,.36)}
.map-label--lake text{font-size:10px;letter-spacing:.35em;fill:rgba(34,71,69,.48)}
.connection{fill:none;stroke:var(--brass);stroke-width:1;stroke-dasharray:3 6;opacity:.7}
.connection-dot{fill:var(--brass)}
.map-pin{outline:none}
.pin-halo{fill:rgba(237,232,222,.72);stroke:rgba(255,255,255,.86);stroke-width:1;transform-box:fill-box;transform-origin:center;transition:.35s ease}
.pin-core{fill:var(--ink);transition:.35s ease}
.map-pin--erhai .pin-core{fill:#486a68}
.map-pin text{font-family:var(--sans);font-size:9px;letter-spacing:.08em;fill:#fff}
.pin-copy{opacity:.58;transition:.35s ease}
.pin-copy text{fill:var(--ink)}
.pin-copy .pin-kicker{font-size:7px;letter-spacing:.22em}
.pin-copy .pin-name{font-family:var(--serif);font-size:26px;font-weight:300;letter-spacing:0}
.pin-copy .pin-meta{font-size:7.5px;letter-spacing:.12em;fill:rgba(23,32,30,.65)}
.map-pin:hover .pin-halo,.map-pin:focus-visible .pin-halo,.map-pin.is-active .pin-halo{transform:scale(1.16);fill:rgba(255,255,255,.9)}
.map-pin:hover .pin-copy,.map-pin:focus-visible .pin-copy,.map-pin.is-active .pin-copy{opacity:1}
.map-note,.north-label{font-family:var(--sans);font-size:7px;letter-spacing:.22em;fill:rgba(23,32,30,.38)}
.north{fill:none;stroke:rgba(23,32,30,.42);stroke-width:1}

.property-rail{position:absolute;z-index:8;left:clamp(32px,3.7vw,64px);right:clamp(32px,3.7vw,64px);bottom:32px;display:grid;grid-template-columns:1fr 1fr;gap:12px;grid-column:1/-1;animation:rise .9s .62s both}
.property-card{height:142px;display:grid;grid-template-columns:48px 138px 1fr;align-items:center;background:rgba(235,230,220,.88);border:1px solid rgba(255,255,255,.55);box-shadow:0 16px 42px rgba(20,29,27,.08);backdrop-filter:blur(18px);transition:transform .35s ease,background .35s ease,box-shadow .35s ease}
.property-card:hover,.property-card:focus-visible,.property-card.is-active{transform:translateY(-6px);background:rgba(243,239,231,.96);box-shadow:0 22px 52px rgba(20,29,27,.16)}
.card-number{align-self:start;padding:15px 0 0 15px;font-size:8px;letter-spacing:.18em;color:var(--brass)}
.card-photo{width:118px;height:106px;overflow:hidden}
.card-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.76) contrast(.92);transition:transform .6s ease,filter .4s ease}
.property-card:hover img,.property-card:focus-visible img,.property-card.is-active img{transform:scale(1.05);filter:saturate(.95) contrast(.96)}
.card-copy{display:flex;flex-direction:column;padding:0 24px}
.card-copy small{font-size:8px;letter-spacing:.22em;text-transform:uppercase;color:rgba(23,32,30,.48)}
.card-copy b{margin-top:5px;font-family:var(--serif);font-size:27px;font-weight:300;line-height:1}
.card-copy b em{font-weight:300;color:var(--mountain)}
.property-card--erhai .card-copy b em{color:#527674}
.card-copy i{display:flex;justify-content:space-between;margin-top:16px;padding-top:8px;border-top:1px solid var(--line);font-style:normal;font-size:8px;letter-spacing:.18em;text-transform:uppercase}
.zh-page .hero-copy h1{font-family:var(--serif-sc);font-size:clamp(52px,5.8vw,90px);line-height:1.2;letter-spacing:.05em}.zh-page .hero-copy h1 em{font-style:normal;color:var(--mountain);margin-top:.16em;margin-left:clamp(16px,2.3vw,38px)}.zh-page .intro{font-family:var(--serif-sc);font-size:16px;line-height:2}.zh-page .cn-intro{font-family:var(--serif);font-size:15px;font-style:italic;letter-spacing:.02em}.zh-page .card-copy b{font-family:var(--serif-sc);font-size:24px}.zh-page .card-copy b em{font-style:normal}.zh-page .pin-copy .pin-name{font-family:var(--serif-sc);font-size:22px}.zh-page .pin-copy .pin-kicker,.zh-page .pin-copy .pin-meta{font-family:var(--serif-sc)}

@keyframes arrive{from{opacity:0}to{opacity:1}}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes map-in{from{opacity:0;transform:translate(-50%,-48%) scale(.97)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}

@media(max-width:1050px){
  .brand-nav{grid-template-columns:1fr auto}.brand-nav nav{display:none}
  .brand-hero{grid-template-columns:44% 56%}
  .hero-copy{padding-left:42px;padding-right:36px}.hero-copy h1{font-size:clamp(62px,8vw,90px)}
  .property-card{grid-template-columns:38px 100px 1fr}.card-photo{width:86px;height:96px}.card-copy{padding:0 14px}.card-copy b{font-size:23px}
}

@media(max-width:720px){
  .landing-shell{overflow:visible}.brand-nav{position:absolute;height:78px;padding:0 19px}.brand svg{width:29px;height:29px}.brand b{font-size:10px}.brand small{font-size:8px}.nav-actions{gap:0}.nav-actions>a:not(.language-link){display:none}.nav-actions button,.nav-actions .language-link{font-size:9px}
  .brand-hero{display:block;padding-top:78px}
  .hero-copy{height:415px;padding:72px 24px 48px;justify-content:flex-start}.hero-copy::after{display:none}
  .eyebrow{margin-bottom:25px;font-size:8px}.eyebrow span:nth-child(2){display:none}
  .hero-copy h1{font-size:68px;line-height:.86}.hero-copy h1 em{margin-top:.06em;margin-left:18px}
  .intro{margin-top:30px;font-size:13px;line-height:1.75}.cn-intro{display:none}.scroll-note{display:none}
  .map-stage{min-height:480px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .dali-map{width:110%;height:100%;left:48%}.map-label--cangshan{display:none}.map-note{display:none}
  .property-rail{position:relative;left:auto;right:auto;bottom:auto;display:block;padding:18px;background:var(--paper-deep)}
  .property-card{height:120px;grid-template-columns:34px 92px 1fr;transform:none!important}.property-card+.property-card{margin-top:12px}.card-photo{width:78px;height:88px}.card-copy b{font-size:22px}.card-copy i{margin-top:12px;font-size:7px}
  .zh-page .hero-copy h1{font-size:48px;line-height:1.22}.zh-page .hero-copy h1 em{margin-top:.13em;margin-left:12px}.zh-page .intro{font-size:14px;line-height:1.9}
}

@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
