/* Ryan's 2026-10-22 direction: soft charcoal with restrained beige accents, English first. */
body{background:var(--paper)}header{background:#34363a;border-bottom:1px solid #55575a}.preview{background:#3b3d41;color:#d0ceca;border-bottom-color:#55575a}.header .brand{padding:10px 0}.header nav a{color:#f3f1ed}.header nav a[aria-current=page]{text-decoration-color:#d5c3a6;text-decoration-thickness:2px}.header .language-switch{border:1px solid #80786b;border-radius:30px;padding:0 16px;background:#414347;color:#f0e8dc}
.home-hero{color:#f3f1ed}.home-hero:after{content:'';position:absolute;inset:18px;border:1px solid #d5c3a650;z-index:-1;pointer-events:none}.hero-shade{background:linear-gradient(90deg,rgba(35,37,41,.48),rgba(40,42,46,.06) 72%),linear-gradient(0deg,rgba(35,37,41,.26),transparent 45%)}.hero-message>p{color:#e0d1ba;letter-spacing:.19em}.hero-message>p:before{content:'';display:inline-block;width:32px;height:1px;background:#d5c3a6;vertical-align:middle;margin-right:15px}.hero-message h1{color:#f3f1ed;text-shadow:2px 3px 12px #25262a66}.hero-message h1 .hero-highlight{color:#e2d2b8}.hero-link{background:#d5c3a6;color:#303236;border:1px solid #d5c3a6;border-radius:3px;padding:12px 22px;font-weight:600;gap:35px;box-shadow:0 5px 20px #25262a22}.hero-link:hover{background:#e5d6bf}.hero-caption{color:#f3f1ed}#hero-video-toggle{background:#36383ca8;color:#f3f1ed;border-color:#d5c3a680;border-radius:3px}
.home-finder{background:#3a3c40;border-top:3px solid #8a8173;border-bottom-color:#55575a}.home-finder input,.home-finder button{background:transparent;color:#f3f1ed}.home-finder input::placeholder{color:#c4c2bd}.home-finder form{border-color:#80786b}.home-finder p{color:#d0ceca}
.home-page h2,.area-title h1,.area-opening h1,.people-page h1,.people-page h2,.svc-heading h1{color:#f3f1ed}.home-page .place-photo h3{color:#f3f1ed}.section-number,.area-kicker,.svc-kicker{color:#d5c3a6}.residence-copy,.people-join,.join-conversation,.area-next,.home-close{background:#393b3f}.home-close,.people-join{border-top:1px solid #6c6860!important}.home-close>div:first-child:before,.people-intro:before{content:'';display:block;width:58px;height:3px;background:#c5b394;margin-bottom:24px}.ryan-portrait:before{background:#414347;border:1px solid #68645e}.people-intro{background:linear-gradient(110deg,#3d3f43,transparent 80%);border-left:3px solid #a99a84;margin-top:32px}.people-hero figure,.person-profile figure{border:1px solid #66635d;padding:8px;background:#3d3f43}.person-image{border:1px solid #5b5b5a}.person-name h3{color:#f3f1ed}.person-initials{background:#45474b;color:#d5c3a6}.people-roster{background:#303236}.join-hero{background:#3b3d41}.join-topics{background:#3b3d41}.join-meet figure{border:1px solid #777064;padding:8px}.area-boundary{border-left-color:#a99a84!important;background:#3b3d41}.area-visit{background:#3b3d41}.guide-row:hover{background:#404246}.area-photo figcaption{color:#f3f1ed}.directory-panorama>p{color:#f3f1ed}footer{border-top:1px solid #58595b;background:#37393d;color:#d0ceca}
html[lang=zh-CN] .hero-message{max-width:670px}html[lang=zh-CN] .hero-message h1{font-size:clamp(42px,4.5vw,66px);line-height:1.4;letter-spacing:.025em}html[lang=zh-CN] .people-intro h1{font-size:clamp(40px,5vw,68px)}html[lang=zh-CN] .area-title h1{letter-spacing:-.025em}html[lang=zh-CN] .area-editorial p{color:#d0ceca}
@media(max-width:600px){.header .language-switch{top:23px;right:16px;padding:0 10px;min-height:34px}.home-hero:after{inset:12px}.hero-message{left:27px;right:27px;top:25%}.hero-message h1{font-size:47px}.hero-link{padding:11px 17px;gap:25px}.hero-message>p{font-size:9px}.hero-message>p:before{width:22px;margin-right:10px}.hero-caption{left:27px;right:27px}.people-intro{margin:18px 14px 0;padding:32px 20px}.people-intro h1{font-size:43px}html[lang=zh-CN] .hero-message h1{font-size:36px;line-height:1.5}html[lang=zh-CN] .people-intro h1{font-size:36px}.home-finder{padding-top:26px}.people-hero figure,.person-profile figure{padding:6px}}
.person-image:has(.portrait-thumbnail),.profile-compact{display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#4b4d50,#3b3d41)}.person-image .portrait-thumbnail,.person-profile .portrait-thumbnail{width:240px;max-width:85%;height:auto;aspect-ratio:1;object-fit:contain;border-radius:50%;border:5px solid #515154;box-shadow:0 0 0 1px #80786b}.person-profile .profile-compact{height:430px}.person-link:hover .portrait-thumbnail{transform:none}.local-photo figcaption{display:flex;flex-direction:column;gap:5px;background:#37393df2!important;padding:10px 14px!important;font-size:12px!important;text-shadow:none!important}.local-photo figcaption small{font-size:10px;line-height:1.5}.local-photo figcaption a{color:#e0cfb4;text-underline-offset:3px}.local-gallery .local-photo{height:380px;margin:25px 0;border:1px solid #68645e}.local-photo img{object-position:center}.area-contents{align-self:start}
@media(max-width:600px){.local-photo figcaption{left:12px;right:12px;max-width:calc(100% - 24px);font-size:10px!important;padding:8px 10px!important}.local-photo figcaption small{font-size:9px}.local-gallery .local-photo{height:280px}.person-profile .profile-compact{height:330px}}
/* Mobile: readable navigation and photo credits, with no green UI. */
.nav-toggle{display:none}.header>.language-switch{flex-shrink:0;min-height:44px;display:flex;align-items:center;font-size:13px;text-decoration:none}.header nav{margin-left:auto}.area-editorial section{scroll-margin-top:25px}
@media(max-width:600px){.header{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:12px;padding:12px 20px}.header .brand{margin-right:auto;padding:4px 0}.header .brand-logo{width:130px}.header>.language-switch{position:static;order:2;min-height:44px;padding:0 11px;border:1px solid #80786b;font-size:12px}.header .nav-toggle:not([hidden]){display:block;order:1;min-height:44px;padding:0 10px;border:0;border-bottom:1px solid #a99a84;background:transparent;color:#f3f1ed;font:inherit;font-size:13px}.header nav{order:3;width:100%;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:0 22px;border-top:1px solid #55575a;padding-top:10px}.header.menu-ready nav{display:none}.header.menu-open nav{display:grid}.header nav a{min-height:48px;font-size:14px;border-bottom:1px solid #55575a}.preview{font-size:8px;letter-spacing:.02em}.area-title h1{font-size:clamp(34px,10vw,46px);overflow-wrap:anywhere}.area-title>p:last-child{font-size:16px;line-height:1.8}.area-breadcrumb{font-size:11px;flex-wrap:wrap;gap:8px}.area-contents nav{grid-template-columns:1fr}.area-contents nav a{min-height:44px;font-size:14px;padding:8px 0}.area-editorial h2{font-size:27px;line-height:1.35}.area-editorial section>p{font-size:16px;line-height:1.85}.area-photo.local-photo,.city-feature .area-photo.local-photo,.local-gallery .area-photo.local-photo{height:auto!important;display:flex;flex-direction:column;overflow:visible}.local-photo img{height:265px;flex:none;object-fit:cover}.local-photo figcaption{position:static;width:100%;max-width:none;padding:12px 16px!important;font-size:12px!important;line-height:1.55}.local-photo figcaption small{font-size:11px;line-height:1.6}.local-gallery .local-photo{margin:24px 0}.city-child-links a{min-height:44px;display:inline-flex;align-items:center}.area-sources a{display:inline-flex;align-items:center;min-height:44px}.people-intro h1{overflow-wrap:anywhere}.hero-message h1{font-size:44px}.hero-message{top:24%}}

/* The original transparent black logo is reversed for the charcoal header. */
.brand-logo{filter:invert(1)}

.hero-message>p{width:fit-content;padding:5px 9px;background:#303236ad;text-shadow:0 1px 5px #25262a;border-left:1px solid #d5c3a6}.hero-message>p:before{display:none}

/* Stronger contrast shadows over moving footage, per Ryan. No text outlines. */
.hero-message h1{text-shadow:var(--shadow-image-title)}
.hero-message>p,.hero-caption{text-shadow:var(--shadow-image-small)}
.hero-link{text-shadow:none}

/* Shared image-overlay treatment across home, guide and service templates. */
.place-photo h3,.directory-panorama>p{text-shadow:var(--shadow-image-title)}
.place-photo span,.area-photo:not(.local-photo) figcaption,.svc-photo figcaption,.residence-image p{text-shadow:var(--shadow-image-small)}
.area-photo:not(.local-photo) figcaption,.svc-photo figcaption,.residence-image p{background:var(--image-caption-bg)}
.directory-panorama:after{background:linear-gradient(90deg,#30323690,transparent 85%)}
.place-photo:after{background:linear-gradient(transparent,rgba(38,40,44,.8))}
