/* A single scene eliminates joins between separately scaled city backdrops. */
body::before { display:none; }
.hero-hd { margin-top:-94px; padding:150px 4% 54px; min-height:680px; height:clamp(680px,50vw,900px); background:#fff1dc; }
.hero-hd .hero-canvas { position:absolute; inset:0; width:100%; height:100%; max-width:none; margin:0; transform:none; aspect-ratio:auto; z-index:0; }
.hero-hd .hero-art { display:block; width:100%; height:100%; mask:none; -webkit-mask:none; overflow:hidden; }
.hero-hd .mobile-hero-copy { width:42%; min-height:0; padding:0; background:none; justify-content:center; }
.hero-hd::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#fff9eff2 0%,#fff9efdb 24%,#fff9ef80 36%,transparent 49%); pointer-events:none; z-index:1; }
.hero-hd .mobile-hero-copy h1 { font-size:clamp(46px,5.2vw,94px); line-height:1.02; }
.hero-hd .mobile-hero-copy > p:not(.eyebrow) { font-size:clamp(15px,1.25vw,22px); }
.hero-hd .scene-caption { bottom:5%; right:6%; z-index:3; }
.hero-hd .hero-motion { z-index:4; right:2%; bottom:3%; }
.energy-trail { stroke:#fff6bd; stroke-width:3; stroke-dasharray:9 91; filter:drop-shadow(0 0 5px #ff6100) drop-shadow(0 0 9px #ffb000); animation:energy-flow 5s linear infinite; }
.energy-trail-two { animation-duration:6.5s; animation-delay:-2s; stroke-width:2; }
@keyframes energy-flow { to { stroke-dashoffset:-100; } }
.hero-hd.is-paused .energy-trail { animation-play-state:paused; }
@media(max-width:900px) {
 .hero-hd { margin-top:-94px; padding-top:130px; min-height:780px; }
 .hero-hd .mobile-hero-copy { width:46%; }
 .hero-hd .mobile-hero-copy h1 { font-size:clamp(38px,6vw,58px); }
}
@media(max-width:700px) {
 .hero-hd { margin-top:0; padding:28px 24px 0; min-height:0; height:auto; display:flex; flex-direction:column; gap:20px; }
 .hero-hd::after { display:none; }
 .hero-hd .mobile-hero-copy { width:100%; padding:0; }
 .hero-hd .mobile-hero-copy h1 { font-size:46px; }
 .hero-hd .hero-canvas { position:relative; inset:auto; width:calc(100% + 48px); height:auto; aspect-ratio:1.5; margin-left:-24px; overflow:hidden; }
 .hero-hd .hero-art { width:162%; max-width:none; margin-left:-62%; }
 .hero-hd .scene-caption { right:12%; bottom:3%; }
 .hero-hd .hero-motion { bottom:5%; }
}
@media(prefers-reduced-motion:reduce) { .energy-trail { animation:none; } }

/* Independent, sharp animation layers over the continuous background. */
.live-flight { animation:flight-cruise 12s linear infinite; transform-box:fill-box; transform-origin:center; }
.live-pin { animation:pin-hover 3.8s ease-in-out infinite; animation-delay:var(--delay,0s); }
.live-route { fill:none; stroke:#ff6714; stroke-width:1.5; stroke-dasharray:8 10; animation:route-travel 14s linear infinite; }
.live-leaf { transform-box:view-box; animation:leaf-breeze 5s ease-in-out infinite; }
.live-leaf-left { transform-origin:970px 465px; }
.live-leaf-right { transform-origin:1610px 565px; animation-delay:-2s; }
@keyframes flight-cruise {
 0% { transform:translate(-210px,16px); opacity:0; }
 10% { opacity:1; }
 78% { opacity:1; }
 92%,100% { transform:translate(290px,0); opacity:0; }
}
@keyframes pin-hover { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-10px); } }
@keyframes route-travel { to { stroke-dashoffset:-180; } }
@keyframes leaf-breeze { 0%,100% { transform:skewX(-.7deg); } 50% { transform:skewX(.7deg); } }
.hero-hd.is-paused :is(.live-flight,.live-pin,.live-route,.live-leaf) { animation-play-state:paused; }
@media(min-width:1101px) {
 .hero-hd { margin-top:-96px; padding-top:170px; height:clamp(740px,47vw,100svh); min-height:740px; }
}
@media(prefers-reduced-motion:reduce) { .live-flight,.live-pin,.live-route,.live-leaf { animation:none; } }

/* Give the partner ribbon its own breathing room and protect the label. */
.marketplace-strip { margin:64px auto 56px; padding:36px 0; }
.mp-inner { gap:36px; padding-inline:30px; }
.mp-label { min-width:170px; padding:12px 22px 12px 0; border-right:1px solid #e6eaf0; }
.mp-label p { font-size:12px; }
.mp-label strong { display:block; font-size:17px; margin-top:5px; }
.dark-mode body,body.dark-mode { background-image:none; background-color:#081320!important; }
.dark-mode .hero-hd::after { background:linear-gradient(90deg,#081320fa 0%,#081320f0 25%,#081320c9 38%,#08132035 60%,#08132018 100%); }
.dark-mode .hero-hd .hero-art { filter:brightness(.78) saturate(.88); }
html.dark-mode .mobile-hero-copy > p:not(.eyebrow),body.dark-mode .mobile-hero-copy > p:not(.eyebrow) { color:#cad6e6!important; }
.dark-mode .marketplace-strip { border:1px solid #294159!important; box-shadow:0 12px 30px #0003; }
html.dark-mode .section.about,body.dark-mode .section.about { background:transparent!important; }
.dark-mode .header .brand { background:#fff; padding:7px 12px; border-radius:12px; box-sizing:content-box; }
.dark-mode .mp-label { border-color:#2b405b; }
.dark-mode :is(.world-panel,footer,.quote,.service-card) { background:#102238!important; border-color:#294159!important; color:#d5e1ef; }
.dark-mode :is(.world-panel p,footer p,footer a,.quote p,.service-card li) { color:#c2d0df!important; }
.dark-mode :is(.services-wrap,.testimonials-wrap) { background:#0a192a!important; }
.dark-mode .scene-caption strong { color:#fff; }
.dark-mode .scene-caption small { color:#b7c8dc; }
@media(max-width:700px) {
 .marketplace-strip { width:calc(100% - 32px); margin:24px auto 30px; padding:24px 0; }
 .mp-inner { gap:24px; padding-inline:20px; }
 .mp-label { min-width:0; width:100%; border-right:0; border-bottom:1px solid #e6eaf0; padding:0 0 18px; }
 .dark-mode .hero-hd .mobile-hero-copy { background:#0b1828; }
}

/* Full-viewport loader with real rotating arcs rather than a static picture. */
.page-loader { background:#fffcf8 url('assets/flow-background.svg') center/cover no-repeat; overflow:hidden; }
.loader-design { width:100%; height:100%; aspect-ratio:auto; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:28px; padding:40px 24px 70px; box-sizing:border-box; background:radial-gradient(ellipse,#ffffffed 25%,#ffffffa8 68%,transparent); }
.loader-emblem { position:relative; width:min(48vh,440px); aspect-ratio:1; margin:30px 0; }
.loader-ring { display:block; width:100%; height:100%; overflow:visible; filter:drop-shadow(0 12px 20px #ff781020); }
.loader-ring-motion { transform-origin:200px 200px; animation:loader-turn 2.8s linear infinite; }
.loader-brand { position:absolute; width:65%; height:auto; left:17.5%; top:40%; }
.loader-market { position:absolute; width:clamp(58px,8vh,84px); aspect-ratio:1; display:grid; place-items:center; border-radius:50%; background:#fff; box-shadow:0 6px 26px #ef813017; font-size:clamp(12px,1.4vw,20px); font-weight:700; color:#102b48; animation:loader-bob 3s ease-in-out infinite; }
.lm1 { left:-8%; top:-7%; color:#111; }.lm2 { right:-8%; top:-7%; animation-delay:-.4s; }
.lm3 { left:-28%; top:22%; color:#1569d1; animation-delay:-.8s; }.lm4 { right:-28%; top:22%; color:#ffb800; font-size:40px; animation-delay:-1.2s; }
.lm5 { left:-30%; bottom:23%; color:#ff0086; animation-delay:-1.6s; }.lm6 { right:-30%; bottom:23%; color:#f1641e; animation-delay:-2s; }
.lm7 { left:-8%; bottom:-7%; color:#007bbf; animation-delay:-2.4s; }.lm8 { right:-8%; bottom:-7%; color:#e53238; animation-delay:-2.8s; }
.loader-message { font-size:clamp(15px,1.6vw,26px); color:#34485e; text-align:center; margin:22px 0 0; }
.loader-design .loader-progress { position:relative; left:auto; top:auto; flex-shrink:0; width:min(440px,70vw); height:12px; }
@keyframes loader-bob { 50% { transform:translateY(-6px); } }
@media(max-width:700px) { .loader-emblem { width:min(56vw,40vh); } .loader-design { gap:20px; } .loader-market { width:52px; font-size:10px; } .lm4 { font-size:30px; } .loader-message { max-width:85%; } }
@media(prefers-reduced-motion:reduce) { .loader-ring-motion,.loader-market { animation:none; } }
