/* Shared finishing layer: native mobile hero composition, exact supplied QR,
   and a visible, controllable route animation. No page scaling. */
html[data-theme] body #app .wechat-qr-frame{position:relative;display:block;width:132px;height:132px;overflow:hidden;background:#fff;border-radius:8px;flex:none;}
html[data-theme] body #app .wechat-qr-frame img{position:absolute;width:133.735%;height:auto;max-width:none;left:-16.867%;top:-42.169%;margin:0;padding:0;border:0;border-radius:0;object-fit:initial;}
html[data-theme] body #app .wechat-qr-frame:focus-visible{outline:3px solid var(--gold);outline-offset:4px;}
html[data-theme] body #app .qr-code>span{display:block;margin-top:9px;font-size:13px;}
.network-explorer{--route-light:var(--map-source);--route-core:var(--map-source);}
.network-explorer .network-line{stroke-width:1.6;opacity:.65;}
.network-explorer .network-flow{stroke:var(--map-blue);stroke-width:1.4;stroke-dasharray:4 24;opacity:.45;animation:route-current 12s linear infinite;filter:none;}
.network-explorer .network-traveller{fill:var(--route-core);stroke:none;opacity:.85;filter:none;}
.network-explorer .network-end-ring{stroke-width:1.4;opacity:.8;}
.network-explorer .network-source-pulse{animation-duration:5s;stroke-width:1;opacity:.3;}
.network-explorer.is-highlighting .network-lane:not(.is-active){opacity:.5;}
.network-explorer .network-motion-toggle{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;min-width:120px;margin:14px auto 0;padding:8px 16px;border:1px solid var(--line);border-radius:24px;background:var(--white);color:var(--muted);font:inherit;font-size:12px;cursor:pointer;}
.network-motion-toggle::before{content:'Ⅱ';font-size:13px;font-weight:700;color:var(--gold);}
.network-motion-toggle[aria-pressed="true"]::before{content:'▶';font-size:11px;}
.network-motion-toggle:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}
.network-explorer[data-motion-paused="true"] :is(.network-flow,.network-source-pulse){animation-play-state:paused;}
@keyframes route-current{to{stroke-dashoffset:-136;}}
@media(prefers-reduced-motion:reduce){
 .network-explorer .network-flow,.network-explorer .network-source-pulse{animation:none;}
 .network-explorer .network-traveller{display:none;}
}
@media(max-width:1099px){
 html[data-theme] body #app main :is(.page-hero,.drone-hero,.drone-export-hero){display:block;position:relative;isolation:isolate;overflow:hidden;background:var(--mist);}
 /* Match the supplied desktop reference: one continuous full-height photo,
    with all copy over the left-to-right scrim. Never a separate image strip. */
 html[data-theme] body #app main .page-hero::before,html[data-theme] body #app main .drone-hero-media{position:absolute;inset:0;display:block;width:100%;height:100%;aspect-ratio:auto;margin:0;z-index:0;background-size:cover;background-position:87% center;background-repeat:no-repeat;mask-image:none;-webkit-mask-image:none;transform:none;}
 html[data-theme] body #app main .page-hero::after,html[data-theme] body #app main .drone-hero-media::after{display:block;position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(90deg,var(--mist) 0%,color-mix(in srgb,var(--mist) 95%,transparent) 26%,color-mix(in srgb,var(--mist) 68%,transparent) 56%,color-mix(in srgb,var(--mist) 12%,transparent) 100%);}
 html[data-theme] body #app main :is(.page-hero-inner,.drone-hero-inner){position:relative;z-index:1;display:flex;align-items:center;min-height:360px;padding:40px 0;}
 html[data-theme] body #app main :is(.page-hero-copy,.drone-hero-copy){display:block;width:68%;max-width:none;}
 html[data-theme] body #app main :is(.page-hero-copy,.drone-hero-copy)>h1{display:block;min-height:0;padding:0;margin:12px 0;text-wrap:balance;overflow-wrap:normal;}
}
@media(max-width:599px){
 html[data-theme] body #app main .page-hero::after,html[data-theme] body #app main .drone-hero-media::after{background:linear-gradient(90deg,color-mix(in srgb,var(--mist) 96%,transparent) 0%,color-mix(in srgb,var(--mist) 88%,transparent) 38%,color-mix(in srgb,var(--mist) 63%,transparent) 72%,color-mix(in srgb,var(--mist) 30%,transparent) 100%);}
 html[data-theme] body #app main :is(.page-hero-inner,.drone-hero-inner){min-height:300px;padding:32px 0;}
 html[data-theme] body #app main :is(.drone-hero,.drone-export-hero) .drone-hero-inner{min-height:400px;}
 html[data-theme] body #app main :is(.page-hero-copy,.drone-hero-copy){width:100%;}
 html[data-theme] body #app main :is(.page-hero-copy,.drone-hero-copy)>h1{max-width:100%;margin:14px 0 12px;}
 html[data-theme] body #app main .drone-hero-copy h2{margin:10px 0;font-size:17px;}
 html[lang="zh-CN"][data-theme] body #app main .drone-export-hero h1{word-break:keep-all;}
 html[data-theme] body #app main :is(.page-hero-copy,.drone-hero-copy)>p{max-width:94%;margin:10px 0;}
 html[data-theme] body #app main :is(.hero-points,.drone-hero-points){margin-top:20px;gap:12px;}
 html[data-theme] body #app main .hero-actions{margin-top:20px;}
}
@media(max-width:359px){
 html[data-theme] body #app .brand img{width:64px;}
 html[data-theme] body #app .theme-trigger{display:grid;}
}
