/* A quiet, sans-serif invitation; the archive typography elsewhere is unchanged. */
:root{--field-ui:'PingFang SC','Noto Sans CJK SC','Noto Sans SC','Microsoft YaHei',system-ui,sans-serif;--field-heading:'Songti SC','Noto Serif CJK SC','Noto Serif SC','STSong',serif}
body{font-family:var(--field-ui);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font-family:var(--field-ui)}
h1,h2,h3,h4{font-family:var(--field-heading);font-weight:400}
small,.eyebrow,.field-kicker{font-family:var(--field-ui)}
.directory-dialog .field-directory a,.field-object>button{font-family:var(--field-heading)}
.immersive-map .map-point text,.immersive-map .sat-label{font-family:var(--field-ui);font-weight:400;letter-spacing:.04em;stroke-width:1.8px}
.immersive-map .nanling-region text{font-family:var(--field-heading)}
.immersive-map .nanling-region .nanling-subtitle{font-family:var(--field-ui);letter-spacing:.16em}
.immersive-map .field-tools button,.immersive-map .field-regions button{font-weight:400;letter-spacing:.04em}
.immersive-map .field-entry,.immersive-map .field-entry h1,
.immersive-map .field-entry h1 em,.immersive-map .field-entry .field-begin,
.loader-title{font-family:var(--field-ui,'PingFang SC',sans-serif);font-weight:400}
.immersive-map .field-entry>span{top:calc(50% - 171px);font-size:11px;letter-spacing:.24em;color:#b7c5b8}
.immersive-map .field-entry h1{top:calc(50% - 125px);font-size:23px;line-height:1.65;letter-spacing:.22em;color:#d4dece}
.immersive-map .field-entry h1 em{font-size:12px;letter-spacing:.28em;color:#aebfaf}
.immersive-map .field-entry .field-begin{font-size:clamp(54px,7.7vw,104px);font-weight:600;letter-spacing:.12em;color:#f2f0df;text-shadow:none}
.immersive-map .field-entry p{top:calc(50% + 108px);font-size:12px;line-height:2.1;letter-spacing:.13em;color:#c1cebd}
.opening-ready.immersive-map .map-surface:not(.has-entered) .field-entry .field-begin{
 animation:opening-ink 1.6s cubic-bezier(.22,1,.36,1) .58s both,invitation-breathe 5.8s ease-in-out 2.18s infinite;
}
@keyframes invitation-breathe{0%,100%{opacity:1}48%{opacity:.76}68%{opacity:.84}}
/* Keep the entrance animation mounted: replacing it on hover restarted its
   zero-opacity first frame every time the pointer left the invitation. */
.opening-ready.immersive-map .map-surface:not(.has-entered) .field-entry .field-begin:is(:hover,:focus-visible,:active){animation-play-state:running,paused;color:#fffbea;text-shadow:none}

/* Static elliptical limb: a globe-like frame, not a different map projection.
   No clipping of hit areas, animated masks, particles, or blur on the terrain. */
.immersive-map .map-surface:after{
 background:radial-gradient(ellipse 62% 74% at 50% 54%,transparent 44%,#04140c26 68%,#04140c85 87%,#06130fe0 100%),linear-gradient(0deg,#06130fcc,transparent 24%);
}
.immersive-map .field-surface:not(.has-entered) #map-svg{opacity:.72}
.immersive-map .field-surface:not(.has-entered) :is(.geo-labels,.nanling-region,.map-point){opacity:0;pointer-events:none}
.immersive-map .field-veil{
 background:radial-gradient(ellipse 66% 78% at 50% 67%,#08190e1a 12%,#08190e77 72%,#06130fe0 100%);
 backdrop-filter:none;-webkit-backdrop-filter:none;
}
/* Two soft gradient sheets move by transform only, behind the invitation. */
.immersive-map .field-veil:before,.immersive-map .field-veil:after{
 content:'';position:absolute;inset:5% -18%;pointer-events:none;
 background:radial-gradient(ellipse 43% 16% at 23% 52%,#c6d8bf24,transparent 73%),radial-gradient(ellipse 35% 12% at 76% 65%,#bfd2c022,transparent 75%);
 animation:field-mist-drift 26s ease-in-out infinite alternate;opacity:.8;
}
.immersive-map .field-veil:after{inset:18% -24% -4%;opacity:.55;animation-duration:34s;animation-direction:alternate-reverse}
@keyframes field-mist-drift{from{transform:translate3d(-3%,-1%,0)}to{transform:translate3d(4%,2%,0)}}
.immersive-map .has-entered .field-veil:before,.immersive-map .has-entered .field-veil:after{animation:none}

/* One forest-green hue and saturation; only province lightness varies. */
[data-geo-province="贵州"]{--province-tint:148 24% 32%}
[data-geo-province="广西"]{--province-tint:148 24% 23%}
[data-geo-province="湖南"]{--province-tint:148 24% 37%}
[data-geo-province="广东"]{--province-tint:148 24% 28%}
[data-geo-province="江西"]{--province-tint:148 24% 42%}
.immersive-map .geo-province{stroke:none!important}
.immersive-map .geo-region .geo-province.in-scope{fill:hsl(var(--province-tint)/.38)}
.immersive-map .geo-region:hover .geo-province.in-scope{fill:hsl(var(--province-tint)/.48)}
.immersive-map .region-focused .geo-region:not(.region-current) .geo-province.in-scope{fill:hsl(var(--province-tint)/.15)}
.immersive-map .region-focused .region-current .geo-province.in-scope{fill:hsl(var(--province-tint)/.46)}
.immersive-map .geo-label{fill:#e1e7ce;opacity:.6;font-family:var(--field-ui);letter-spacing:.15em}
.immersive-map .geo-detail .geo-label{opacity:.65}
.immersive-map .field-regions [data-province="贵州"]{--province-tint:148 24% 32%}
.immersive-map .field-regions [data-province="广西"]{--province-tint:148 24% 23%}
.immersive-map .field-regions [data-province="湖南"]{--province-tint:148 24% 37%}
.immersive-map .field-regions [data-province="广东"]{--province-tint:148 24% 28%}
.immersive-map .field-regions [data-province="江西"]{--province-tint:148 24% 42%}
.immersive-map .field-regions [data-province]:not([data-province="全部"]):before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:6px;background:hsl(var(--province-tint));vertical-align:middle}
@media(max-width:800px){
 .immersive-map .field-entry .field-begin{font-size:clamp(46px,10vw,70px);letter-spacing:.1em}
 .immersive-map .field-entry h1{font-size:20px}
 .immersive-map .field-entry p{font-size:12px}
 .immersive-map .field-regions [data-province]:before{display:none!important}
}
@media(max-height:540px){
 .immersive-map .field-entry>span{top:calc(50% - 137px)}
 .immersive-map .field-entry h1{top:calc(50% - 104px);font-size:19px}
 .immersive-map .field-entry .field-begin{font-size:48px}
 .immersive-map .field-entry p{top:calc(50% + 67px)}
}
@media(prefers-reduced-motion:reduce){
 .opening-ready.immersive-map .map-surface:not(.has-entered) .field-entry .field-begin{animation:none;opacity:1}
 .immersive-map .field-veil:before,.immersive-map .field-veil:after{animation:none}
}
