/* One short scroll scene: camera motion, then concurrent bases and culture. */
body .fds-group{height:220svh;min-height:0;position:relative;background:transparent;color:#fff;font-family:'Noto Sans CJK SC','Microsoft YaHei','PingFang SC',sans-serif;--fg-card:0;--fg-culture:0;--fg-about:1}
.fg-stage{height:100svh;position:sticky;top:0;overflow:hidden;background:#05080d;border-radius:36px 36px 0 0}
.fg-earth-canvas,.fg-anchors,.fg-static-earth{position:absolute;inset:0;width:100%;height:100%;display:block}
.fg-earth-canvas{opacity:0}.fds-group[data-earth=ready] .fg-earth-canvas{opacity:1}
.fg-static-earth{object-fit:cover}.fds-group[data-earth=ready] .fg-static-earth{visibility:hidden}
.fg-fallback{opacity:0}.fds-group[data-earth=error] .fg-fallback{opacity:1}
.fg-shade{position:absolute;inset:0;background:linear-gradient(90deg,#05080dd9,transparent 60%);pointer-events:none}
.fg-copy{position:absolute;left:6%;top:16%;width:34%;max-width:480px;letter-spacing:0;pointer-events:none}
.fg-copy[inert]{pointer-events:none!important}
.fg-about{opacity:var(--fg-about);transform:translateY(calc((1 - var(--fg-about))*-16px))}
.fg-eyebrow{font-size:13px;line-height:1.5;letter-spacing:.14em;color:#ff737a;margin:0 0 20px}
.fg-copy h2{font-size:clamp(32px,4.3vw,62px);font-weight:400;line-height:1.25;letter-spacing:.01em;margin:0 0 24px}
.fg-copy p:not(.fg-eyebrow){font-size:clamp(16px,1.35vw,21px);line-height:1.8;color:#d7dce4}
.fg-bases{top:12%;opacity:var(--fg-card);transform:translateY(calc((1 - var(--fg-card))*12px))}.fg-bases h2{font-size:clamp(28px,3vw,44px)}.fg-city-list{display:none}.fg-bases .fg-cta{display:none}
.fg-anchors{pointer-events:none;overflow:visible}.fg-anchor{opacity:0}.fg-anchor .fg-dot{fill:#ed2435;stroke:#fff;stroke-width:1.2}.fg-anchor .fg-halo{fill:#ed2435;stroke:none;opacity:.22;transform-box:fill-box;transform-origin:center;animation:fg-location-halo 2.8s ease-in-out infinite;animation-play-state:var(--fg-pulse-state,paused)}.fg-anchor#chongqing .fg-dot{transform-box:fill-box;transform-origin:center;animation:fg-location-breathe 2.8s ease-in-out infinite;animation-play-state:var(--fg-pulse-state,paused)}.fg-anchor text{font:18px 'Noto Sans CJK SC','Microsoft YaHei',sans-serif;fill:#fff;paint-order:stroke;stroke:#06101b;stroke-width:3px;stroke-linejoin:round}
.fg-culture{z-index:2;left:0;top:auto;bottom:0;width:100%;max-width:none;height:33svh;min-height:210px;box-sizing:border-box;border-radius:36px 36px 0 0;background:#fff;color:#25252a;padding:30px 6% 54px;opacity:1;transform:translateY(calc((1 - var(--fg-card))*102%));will-change:transform;pointer-events:auto;display:flex;flex-direction:column;justify-content:center}
.fg-culture .fg-eyebrow{color:#c7000b;margin-bottom:16px;opacity:var(--fg-culture)}
.fg-culture-lines{display:flex;justify-content:space-between;gap:24px;font-size:clamp(24px,3vw,44px);line-height:1.3;opacity:var(--fg-culture);transform:translateY(calc((1 - var(--fg-culture))*12px))}
.fg-culture-lines span{display:block;border-left:2px solid #c7000b;padding-left:18px}
.fg-cta{display:inline-block;align-self:flex-start;margin-top:20px;padding-bottom:4px;border-bottom:1px solid currentColor;color:inherit;font-size:14px;line-height:1.5}.fg-culture .fg-cta{opacity:var(--fg-culture)}
.fg-cta:hover{color:#c7000b}.fg-cta:focus-visible{outline:2px solid currentColor;outline-offset:5px}
.fg-map-note{position:absolute;z-index:3;right:6%;bottom:22px;margin:0;font-size:10px;line-height:1.5;color:#8b8b91;letter-spacing:0;text-align:right}
.fg-media-error{display:none;position:absolute;right:6%;top:12px;font-size:12px;color:#d7dce4}.fds-group[data-earth=error] .fg-media-error{display:block}
@media(max-width:899px){body .fds-group{height:230svh}.fg-stage{border-radius:26px 26px 0 0}.fg-copy{left:6%;top:7%;width:88%;max-width:none}.fg-copy h2{font-size:32px;margin-bottom:12px}.fg-copy p:not(.fg-eyebrow){font-size:15px;line-height:1.65;max-width:560px}.fg-eyebrow{font-size:12px;margin-bottom:12px}.fg-bases{top:6%;width:88%}.fg-bases h2{font-size:24px}.fg-bases h2 br{display:none}.fg-anchor text{font-size:15px}.fg-shade{background:linear-gradient(180deg,#05080dcc,transparent 42%)}.fg-culture{left:0;top:auto;bottom:0;width:100%;height:33svh;min-height:205px;border-radius:26px 26px 0 0;padding:22px 6% 48px}.fg-culture-lines{gap:8px;font-size:clamp(18px,5vw,28px)}.fg-culture-lines span{border-left:0;border-top:2px solid #c7000b;padding:10px 0 0;white-space:nowrap}.fg-culture .fg-eyebrow{margin-bottom:8px}.fg-cta{font-size:13px;margin-top:16px}.fg-map-note{left:6%;right:6%;bottom:18px;text-align:left;font-size:9px}}
@media(max-height:640px){.fg-copy{top:24px}.fg-copy h2{font-size:28px}.fg-copy p:not(.fg-eyebrow){font-size:14px;line-height:1.5}.fg-eyebrow{margin-bottom:8px}.fg-culture{top:auto;min-height:180px;padding-top:18px;padding-bottom:42px}.fg-culture-lines{font-size:clamp(18px,5vw,22px)}.fg-cta{margin-top:12px}.fg-bases h2{font-size:22px}}
@media(prefers-reduced-motion:reduce){body .fds-group{height:auto;background:#05080d}.fg-stage{height:auto;min-height:100svh;position:relative;overflow:hidden;padding-top:60svh}.fg-earth-canvas,.fg-anchors,.fg-static-earth{height:60svh}.fg-copy{position:relative;inset:auto;width:88%;max-width:none;margin:24px 6%;opacity:1!important;transform:none!important;pointer-events:auto}.fg-culture{width:100%;margin:24px 0 0;height:auto;min-height:210px;padding:28px 6% 60px}.fg-culture-lines,.fg-culture .fg-eyebrow,.fg-culture .fg-cta{opacity:1;transform:none}.fg-about{display:none}.fg-map-note{position:absolute;bottom:20px}.fg-shade{display:none}}

/* A slow, soft breath on the leftmost Chongqing marker. No rapid flashing. */
@keyframes fg-location-breathe{0%,100%{transform:scale(.94)}50%{transform:scale(1.1)}}
@keyframes fg-location-halo{0%,100%{transform:scale(1.35);opacity:.16}50%{transform:scale(2.5);opacity:.34}}
@media(prefers-reduced-motion:reduce){.fg-anchor#chongqing .fg-dot{animation:none;transform:none}.fg-anchor .fg-halo{display:none;animation:none}}
