:root{--dual-dark:linear-gradient(120deg,#081510 0%,#174e39 100%);--dual-gold:linear-gradient(120deg,#c5a45e 0%,#f0d898 100%);--prism:var(--dual-gold)}
/* Every interactive surface has a visible two-colour base, before hovering. */
body :is(button,a.primary,a.ghost,.main-nav a,.footer-links a,.window-body aside a,[data-detail],[data-scroll-target],.product-card,.case-card,.module-card,.engine-card,.download-grid article,.principle-list article,.tech-capabilities article){background-image:var(--dual-dark);background-size:180% 180%;background-position:15% 50%;transition:background-position .35s,color .2s,border-color .2s,box-shadow .2s;}
body :is(button,a.primary,a.ghost,.main-nav a,.footer-links a,.window-body aside a,[data-detail],[data-scroll-target],.product-card,.case-card,.module-card,.engine-card,.download-grid article,.principle-list article,.tech-capabilities article):is(:hover,:focus-visible){background-image:var(--dual-dark);animation:dual-flow 3.8s ease-in-out infinite alternate;border-color:#8fac70;color:#f1e6c5;box-shadow:0 6px 24px #123c2b35;}
body :is(.primary,.main-nav a.active,.main-nav a:hover,.main-nav a:focus-visible,.product-toolbar button.active,.role-tabs button.active,.flow-tabs button.active,.account-types button.active,.join-options button.selected,.commerce-mode-switch button.active){background-image:var(--dual-gold);color:#182415;border-color:#c9b37a;}
body :is(.primary,.main-nav a.active,.product-toolbar button.active,.role-tabs button.active,.flow-tabs button.active,.account-types button.active,.join-options button.selected,.commerce-mode-switch button.active):is(:hover,:focus-visible){background-image:var(--dual-gold);color:#132215;}
.main-nav,.modal-card,.role-panel,.commerce-window,.resource-window,.library-title,.console-status{background-image:linear-gradient(130deg,#081510,#193d2d);}
.section,.manifesto,.midstage,.closing-cta,body>footer{background-image:linear-gradient(135deg,#070e0b,#102b20);}
body .main-nav{background-image:linear-gradient(120deg,#081510,#234c35);border-color:#586a43;}
body .main-nav a{border-radius:12px;}
.main-nav a:nth-child(even){background-position:85% 50%;}
.footer-links a,.window-body aside a{padding:7px 10px;border-radius:7px;}
body .brand{background:none;}
body :is(.modal-close,.news-arrow,.menu-toggle){border-radius:8px;}
.qianhai-hero .hero-video{display:block;position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:55% center;pointer-events:none;}
.qianhai-backdrop{display:none;}
.qianhai-hero .hero-copy{position:relative;z-index:1;}
@keyframes dual-flow{from{background-position:0% 50%}to{background-position:100% 50%}}
@media(max-width:700px){.qianhai-hero .hero-video{object-position:60% center}}
@media(prefers-reduced-motion:reduce){body :is(button,a,[data-detail],[data-scroll-target],.product-card,.case-card,.module-card,.engine-card):is(:hover,:focus-visible){animation:none}}

.image-pending{display:flex!important;position:static!important;flex-direction:column;align-items:center;justify-content:center;gap:12px;width:100%;height:100%;min-height:130px;padding:22px;background:linear-gradient(135deg,#0b2119,#1c3c2c);color:#e5d5a8!important;font-size:16px!important;text-align:center;line-height:1.5}.image-pending small{color:#a5b6ab;font-size:13px}.file-actions{display:flex;gap:8px;align-items:center}
/* Scene carousel: keep all media behind the existing copy and readable overlay. */
.qianhai-hero .hero-scene{position:absolute;inset:0;z-index:-2;width:100%;height:100%;opacity:0;transform:translateX(2%);transition:opacity 1.4s ease,transform 1.8s ease;pointer-events:none;overflow:hidden;}
.qianhai-hero .hero-scene.is-active{opacity:1;transform:translateX(0);}
.hero-scene-photo img{width:100%;height:100%;object-fit:cover;object-position:60% center;max-width:none;transform:scale(1.02);}
.hero-scene-photo.is-active img{animation:scene-pan 15s ease-in-out both;}
.scene-paused .hero-scene-photo img{animation-play-state:paused;}
.hero-scene-controls{position:absolute;bottom:35px;left:200px;display:flex;gap:10px;align-items:center;z-index:2;}
.hero-scene-controls>button{width:42px;height:42px;padding:0;border:1px solid #b6c2a45c;border-radius:50%;color:#f4e1af;font-size:20px;}
.hero-scene-dots{display:flex;gap:5px;align-items:center;}
.hero-scene-dots button{width:28px;height:42px;min-width:0;padding:0;position:relative;border:0;background:none!important;box-shadow:none!important;}
.hero-scene-dots button::after{content:'';display:block;width:7px;height:7px;margin:auto;border-radius:10px;background:#acbca7;transition:width .3s,background .3s;}
.hero-scene-dots button[aria-pressed=true]::after{width:23px;background:#e9ce8c;}
.hero-scene-counter{font:12px/1.4 var(--font-en);color:#e4ddc8;letter-spacing:.12em;}
@keyframes scene-pan{from{transform:scale(1.02) translateX(-.5%)}to{transform:scale(1.1) translateX(.5%)}}
@media(min-width:1500px){.hero-scene-controls{left:calc((100vw - 1440px)/2 + 168px)}}
@media(max-width:700px){.qianhai-hero{padding-bottom:190px}.qianhai-caption{bottom:85px}.hero-scene-controls{left:auto;right:18px;bottom:24px;gap:4px}.hero-scene-counter{display:none}.hero-scene-controls>button{width:34px;height:40px}.hero-scene-dots button{width:23px}.qianhai-motion{font-size:11px;padding:8px}.hero-scene-dots{gap:0}}
@media(prefers-reduced-motion:reduce){.qianhai-hero .hero-scene{transition:none;transform:none}.hero-scene-photo.is-active img{animation:none}}

.topic-group{scroll-margin-top:110px}.topic-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr))!important}.topic-grid .module-card{grid-column:auto!important;grid-row:auto!important}.topic-intro .module-grid:has(>article:only-child){grid-template-columns:1fr!important}.topic-intro .module-grid>article:only-child{min-height:0}.topic-group:focus{outline:none}

/* Guangzhou concept nightscapes: moving facades and rippling river reflections. */
.night-motion-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}
.has-night-motion>video,.has-night-motion>img{visibility:hidden;animation:none!important}
.has-night-motion>.guangzhou-river,.has-night-motion>.guangzhou-light-glow{display:none}
.qianhai-hero .hero-scene-dots button{background:transparent!important;animation:none!important}
.guangzhou-scene .guangzhou-panorama,.guangzhou-scene.is-active .guangzhou-panorama{animation:none;transform:none}
.city-landmark-scene img,.city-landmark-scene.is-active img{animation:none;transform:none}
.guangzhou-river,.guangzhou-light-glow{display:none}
.scene-paused .guangzhou-scene :is(img,.guangzhou-river,.guangzhou-light-glow),.scene-paused .guangzhou-river::after{animation-play-state:paused!important}
@media(min-width:701px) and (max-width:1000px){.hero-scene-controls{left:28px;bottom:24px}.qianhai-caption{bottom:88px}.qianhai-motion{left:auto;right:28px;bottom:24px}}
@media(max-width:700px){.qianhai-hero{padding-bottom:270px}.guangzhou-scene img{object-position:72% center}.qianhai-caption{left:20px;right:20px;bottom:141px;text-align:left}.qianhai-caption p{margin-top:4px}.qianhai-motion{left:20px;right:auto;bottom:84px}.hero-scene-controls{left:20px;right:20px;bottom:20px;justify-content:center}.hero-scene-controls>button,.hero-scene-dots button{height:44px}.hero-scene-dots button{width:25px}.hero-scene-dots button[aria-pressed=true]::after{width:19px}}
@media(prefers-reduced-motion:reduce){.guangzhou-scene :is(img,.guangzhou-river,.guangzhou-light-glow),.guangzhou-river::after{animation:none!important}.guangzhou-river,.guangzhou-light-glow{display:none}}
@media(max-width:700px){.city-landmark-scene img{object-position:70% center}}
@media(max-width:380px){.hero-scene-controls{left:12px;right:12px}.hero-scene-dots button{width:20px}.hero-scene-dots button[aria-pressed=true]::after{width:16px}}
