/* Landing-only light theme. SVG geometry and motion run entirely in the browser. */
.landing{--ink:#20374f;--muted:#596c83;--cyan:#16809a;--violet:#7761b6;--line:#dbe5ef;background:#f7faff;color:var(--ink);overflow-x:clip;color-scheme:light}
.landing ::selection{background:#c5e6f2;color:#14344d}
.landing [hidden]{display:none!important}
.landing .page{max-width:1440px;padding:0 6%;position:relative;z-index:1}
.landing a:focus-visible,.landing button:focus-visible,.landing select:focus-visible,.globe-stage:focus-visible{outline:2px solid #187a9b;outline-offset:4px}
.skip-link{position:absolute;top:12px;left:20px;transform:translateY(-180%);padding:12px 18px;background:#fff;color:#183f57;z-index:100}
.skip-link:focus{transform:none}
.ambient{position:absolute;inset:0 0 auto;height:1100px;pointer-events:none;overflow:hidden}
.ambient-grid{position:absolute;inset:0;background-image:linear-gradient(#6489ac09 1px,transparent 1px),linear-gradient(90deg,#6489ac09 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(#000,transparent)}
.ambient-glow{position:absolute;inset:0;background:radial-gradient(ellipse at 80% 34%,#cee6f77d,transparent 49%),radial-gradient(ellipse at 24% 0%,#ebe1fc6e,transparent 42%)}
.landing .nav{height:100px;border-color:var(--line);position:relative}
.landing .logo{font-size:22px;letter-spacing:1px;color:#233d56;gap:10px}
.brandmark{width:37px;height:37px;color:#287d98}
.landing .logo small{font-size:8px;letter-spacing:2px;color:#657c96}
.landing .nav nav{gap:28px;color:#546b85;font-size:12px}
.landing .nav nav>a:not(.nav-cta):hover{color:#167a96}
.landing #language{font-family:inherit;font-size:11px;min-height:36px}
.landing .nav-cta{border-color:#c6d7e8;background:#ffffff99;border-radius:6px;color:#2e5776;padding:12px 17px;transition:background .2s,border-color .2s}
.landing .nav-cta:hover{border-color:#82b5c6;background:#eaf5fb}
.landing .hero{grid-template-columns:1fr 1.16fr;min-height:780px;gap:22px;padding:45px 0 52px;overflow:visible}
.landing .hero-copy{position:relative;z-index:2;padding-bottom:14px;min-width:0}
.landing .pill{background:#edf5fb;border-color:#d5e4f1;color:#466b87;border-radius:30px;font-size:10px;letter-spacing:.3px;padding:8px 12px}
.landing .pill>span:first-child{background:var(--cyan);box-shadow:0 0 12px #258ba640}
.hero-kicker{font-size:10px;letter-spacing:3px;color:#617a96;margin:34px 0 0;font-family:Consolas,"SFMono-Regular",monospace}
.landing .hero h1{font-weight:600;font-size:clamp(42px,4.4vw,65px);letter-spacing:-2px;line-height:1.28;margin:16px 0 23px}
.landing .hero h1 em{color:#247eaa;background:linear-gradient(110deg,#187e91 5%,#3f77b8 48%,#8765b0 95%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.landing .hero-copy>p{color:var(--muted);font-size:14px;line-height:2;max-width:395px}
.landing .hero-actions{margin-top:31px;gap:25px}
.landing .button{background:#247c97;color:#fff;border:1px solid #247c97;border-radius:6px;min-height:49px;padding:14px 22px;gap:27px;font-size:12px;font-weight:600;box-shadow:0 7px 24px #26748b1c;transition:background .25s,box-shadow .25s,transform .25s;position:relative}
.landing .button:hover{background:#1c657f;box-shadow:0 8px 30px #26748b2e;transform:translateY(-2px)}
.landing .button>span:last-child{font-size:17px}
.landing .text-link{display:inline-flex;gap:12px;align-items:center;color:#486985;font-size:12px}
.landing .text-link:hover{color:#147d97}
.landing .hero-note{display:flex;gap:11px;align-items:center;margin-top:23px;color:#667b91;font-size:10px;letter-spacing:.2px}
.hero-note i{width:3px;height:3px;border-radius:50%;background:#94a8ba}
.hero-coordinate{display:flex;gap:15px;align-items:center;font:8px Consolas,monospace;letter-spacing:1.3px;color:#7890a8;margin-top:57px}
.hero-coordinate svg{width:70px;height:14px;fill:none;stroke:#79a4b5}
.landing .hero-visual{padding:0;min-width:0;position:relative;align-self:center;margin:0}
.scene-topline{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 8px;font:8px Consolas,monospace;letter-spacing:1.4px;color:#607b96}
.scene-topline>span{display:flex;align-items:center;gap:6px}
.scene-topline i{width:4px;height:4px;border-radius:50%;background:#418a9d}
.landing #motion-toggle{display:flex;align-items:center;gap:6px;color:#536e87;font-family:inherit;letter-spacing:0;font-size:10px;min-height:36px;padding:5px 8px;border:1px solid #d3e2ee;border-radius:5px;background:#ffffffa6}
.landing #motion-toggle:hover{border-color:#8ab7c5}
.motion-symbol{font-size:11px;color:var(--cyan)}
.globe-stage{position:relative;width:100%;aspect-ratio:600/540;isolation:isolate;cursor:grab;touch-action:none;user-select:none;border-radius:50%}
.globe-stage.is-dragging{cursor:grabbing}
.network-globe{width:100%;height:100%;overflow:visible;display:block}
.orbit-spinner{transform-origin:300px 270px;animation:orbit-spin 52s linear infinite;pointer-events:none}
.network-route{stroke-width:1;opacity:.18;stroke-dasharray:3 5;pointer-events:none}
.network-route.is-selected{opacity:1;stroke-width:2.2;animation:route-flow 2.7s linear infinite}
.city-marker{cursor:pointer}
.city-halo{fill:#3c8ca5;fill-opacity:.07;stroke:#3c8ca5;stroke-opacity:.16}
.city-dot{fill:#76a4b7;stroke:#fff;stroke-width:1.5}
.is-origin .city-dot{fill:#087f91}
.is-destination .city-dot{fill:#7854b5}
.is-origin .city-halo{fill:#16899b;stroke:#16899b;fill-opacity:.13;stroke-opacity:.45}
.is-destination .city-halo{fill:#8061bf;stroke:#8061bf;fill-opacity:.13;stroke-opacity:.45}
.city-label{font:600 12px "Segoe UI","Microsoft YaHei",sans-serif;fill:#254b69;paint-order:stroke;stroke:#f7fbff;stroke-width:4px;stroke-linejoin:round;pointer-events:none}
.globe-badge{position:absolute;bottom:5%;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:7px;padding:8px 12px;border:1px solid #d9e5f1;background:#ffffffbf;border-radius:20px;color:#587e99;font:8px Consolas,monospace;letter-spacing:1px;white-space:nowrap;pointer-events:none}
.globe-badge i{width:4px;height:4px;border-radius:50%;background:#488da6}
.globe-navigation{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0 18px 12px}
.globe-navigation p{margin:0;color:#60758d;font-size:10px}
.rotation-controls{display:flex;gap:5px}
.landing .rotation-controls button{width:34px;height:34px;border:1px solid #ccdeed;border-radius:6px;background:#ffffffb3;color:#376381;font-size:17px;line-height:1}
.landing .rotation-controls button:hover{background:#e2eff9;border-color:#96b6cf}
.connection-console{position:relative;margin:0 14px;background:linear-gradient(120deg,#ffffffed,#f8faff);border:1px solid #cfdfea;border-radius:12px;padding:14px;box-shadow:0 12px 40px #335b8510}
.route-endpoints{display:grid;grid-template-columns:minmax(0,1fr) 30px minmax(0,1fr) auto;gap:9px;align-items:center;padding-bottom:12px}
.route-endpoint{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:5px;row-gap:5px}
.route-endpoint>label,.route-endpoint>span{grid-column:1/-1;font-size:9px;color:#647a91;letter-spacing:.5px}
.route-endpoint select{min-width:0;width:100%;border:0;border-bottom:1px solid #d8e5ee;padding:5px 0;background:transparent;color:#285b75;font-family:inherit;font-size:12px;font-weight:600;cursor:pointer}
.route-endpoint strong{font-size:12px;font-weight:600;color:#6b5598;overflow-wrap:anywhere}
.route-endpoint time{font:10px Consolas,monospace;color:#647b91}
#swap-route{width:30px;height:36px;color:#7b8ca7;font-size:21px;border-radius:5px}
#swap-route:hover{background:#edf3fa;color:#326481}
.route-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
.landing .city-button{border:1px solid #dfe7ef;background:#f5f8fc;min-width:0;min-height:34px;padding:6px 5px;border-radius:5px;transition:background .2s,border-color .2s;font:11px "Segoe UI","Microsoft YaHei",sans-serif;color:#586f86;overflow-wrap:anywhere}
.landing .city-button:hover{background:#e8f2fb;border-color:#a4bfd5}
.landing .city-button.is-active{background:#edf0fc;border-color:#b0acd6;color:#66508e}
.landing .city-button:disabled{color:#567885;border-style:dashed;background:#eff7f7;cursor:default}
.landing .signal-button{display:flex;gap:10px;align-items:center;justify-content:center;min-height:38px;color:#fff;background:#6e61a4;border:1px solid #6e61a4;border-radius:6px;font-size:11px;white-space:nowrap;padding:8px 11px}
.landing .signal-button:hover{background:#5b508f}
.landing .signal-button:disabled{cursor:wait;opacity:.65}
.console-status{display:flex;justify-content:space-between;gap:10px;padding:10px 1px 0;font-size:10px;color:#58748b;border-top:1px solid #e3eaf2;margin-top:11px;min-height:28px;line-height:1.6}
.demo-label{color:#697d94;white-space:nowrap;font-size:8px;letter-spacing:.8px}
.scene-disclaimer{color:#677d92;font-size:9px;text-align:center;line-height:1.6;margin:12px 16px 0}
.connection-strip{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:23px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:#6e849b;font:9px Consolas,monospace;letter-spacing:2px}
.connection-strip svg{width:100px;height:20px;fill:none;stroke:#88a9b9;flex-shrink:1}
.strip-end{color:#788da4;font-size:8px;letter-spacing:1px}
.landing .manifesto{padding:80px 0 43px;border:0}
.landing .eyebrow{color:#57839e;font:9px Consolas,monospace;letter-spacing:2px}
.landing .manifesto h2{font-size:31px;font-weight:500;color:#2a405b;margin:19px 0 13px;line-height:1.5}
.landing .manifesto p{font-size:12px;color:#667b91;max-width:610px;margin:0 auto;line-height:1.9}
.landing .features{gap:18px;padding-bottom:75px;scroll-margin-top:30px}
.landing .features article{position:relative;border:1px solid #d9e4ef;background:linear-gradient(155deg,#ffffff,#f3f7fd 65%);padding:25px 25px 20px;overflow:hidden;border-radius:10px;transition:border-color .3s,transform .3s;isolation:isolate;box-shadow:0 5px 24px #365b7b05}
.tech-card::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(300px circle at var(--light-x,50%) var(--light-y,20%),#80cadb26,transparent 70%);opacity:0;transition:opacity .35s;pointer-events:none}
.landing .features article:hover{border-color:#9cbdd3;transform:translateY(-5px)}
.tech-card:hover::before{opacity:1}
.card-top{display:flex;align-items:center;justify-content:space-between}
.landing .feature-num{font:8px Consolas,monospace;letter-spacing:1.5px;color:#6d829c}
.card-arrow{font-size:19px;color:#7892b7}
.feature-art{display:block;width:100%;height:140px;margin:7px 0 19px;overflow:visible}
.diagram-line{stroke:#73a2b9;stroke-width:1.3;stroke-dasharray:4 5}
.diagram-ring{stroke:#50a2b8;stroke-opacity:.4}
.diagram-packet{transition:transform .7s ease}
.tech-card:hover .diagram-packet{transform:translateX(15px)}
.stack-front,.stack-middle,.stack-back{transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.tech-card:hover .stack-front{transform:translate(-7px,4px)}
.tech-card:hover .stack-middle{transform:translate(1px,-2px)}
.tech-card:hover .stack-back{transform:translate(9px,-9px)}
.team-orbit{transform-origin:160px 70px;transition:transform 1.2s}
.tech-card:hover .team-orbit{transform:rotate(50deg)}
.landing .features h3{font-size:19px;color:#2c4762;font-weight:500;letter-spacing:-.2px;margin-bottom:13px}
.landing .features p{color:#5f758c;font-size:12px;line-height:1.95;max-width:none;min-height:70px}
.feature-foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #dde7f0;margin-top:25px;padding-top:16px;color:#6b819b;font:9px Consolas,"Microsoft YaHei",monospace;letter-spacing:1.3px}
.feature-foot i{width:4px;height:4px;border-radius:50%;background:#5d9cb1;box-shadow:0 0 8px #82bcd14d}
.landing .early{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 85% 50%,#ddd5f145,transparent 65%),linear-gradient(110deg,#e7f3f8,#eef0fb 75%);border-color:#cedde9;border-radius:12px;padding:45px 40px;margin-bottom:25px;min-height:236px;gap:35px}
.early-orbits{position:absolute;z-index:-1;right:-65px;top:50%;transform:translateY(-50%);width:500px;height:340px;stroke:#8b9add;opacity:.25;pointer-events:none}
.landing .early h2{font-size:28px;font-weight:500;line-height:1.5;color:#2d4964;margin:17px 0 12px}
.landing .early p{font-size:12px;color:#5d758d;max-width:530px;line-height:1.95}
.landing .early .button{white-space:nowrap;flex-shrink:0}
.landing .alpha-notice{color:#697e94;font-size:10px;line-height:1.9;max-width:950px;margin:0 auto 49px;padding:0 12px}
.landing .alpha-notice strong{color:#4e6782;font-size:10px}
.landing footer{border-color:var(--line);padding:28px 0 35px;gap:20px}
.landing footer .logo{font-size:18px}
.landing footer .brandmark{width:28px;height:28px}
.landing footer>span,.landing footer>a:not(.logo){font-size:10px;color:#6c8097}
.landing footer .footer-note{font-size:8px;color:#788fa6;letter-spacing:1.5px}
/* The consultation widget keeps its original form behavior and light surfaces. */
.landing .support{color:#2b435b;color-scheme:light}
.landing .support-launch,.landing .support-send{background:#257b94!important;color:#fff!important;border:1px solid #257b94;border-radius:8px;box-shadow:0 5px 28px #3f7c9a20}
.landing .support-panel{background:#fff;border-color:#c9dce9;box-shadow:0 12px 60px #264f6b26}
.landing .support-panel header{background:#edf5fa}
.landing .support-panel header small,.landing .support small{color:#627990}
.landing .support-welcome{background:#f3f7fc}
.landing .support-prompts button{background:#f2f7fc;color:#346982;border-color:#d4e4ef}
.landing .support input:not([type=checkbox]),.landing .support textarea{background:#fff;color:#2b435b;border-color:#c2d4e3}
.landing .support-message{border-color:#dde7ef}
.landing .support-message.visitor{background:#eaf5f9}
.landing .support-error{color:#a44532}
.landing .support-delete{color:#a1463d}
.landing .support-close{color:#446681}
.landing [data-reveal]{transition:opacity .65s,transform .65s}
.landing .reveal-pending{opacity:0;transform:translateY(18px)}
.landing.motion-paused *,.landing.scene-idle .hero-visual *{animation-play-state:paused!important}
.landing.motion-paused .reveal-pending{opacity:1;transform:none}
.landing.motion-paused *{scroll-behavior:auto!important}
.landing.motion-paused .stack-front,.landing.motion-paused .stack-middle,.landing.motion-paused .stack-back,.landing.motion-paused .team-orbit,.landing.motion-paused .diagram-packet{transform:none!important}
@keyframes orbit-spin{to{transform:rotate(360deg)}}
@keyframes route-flow{to{stroke-dashoffset:-60}}
@media(min-width:1500px){.landing .hero h1{font-size:66px}}
@media(max-width:1100px){
 .landing .page{padding:0 4.5%}.landing .hero{gap:12px;grid-template-columns:1fr 1.1fr}
 .landing .hero h1{font-size:47px}.landing .hero-copy>p{font-size:13px;max-width:340px}
 .landing .pill{font-size:9px}.hero-kicker{font-size:8px;letter-spacing:2px}
 .landing .nav nav{gap:20px}.hero-coordinate{gap:9px;font-size:7px;letter-spacing:1px}.hero-coordinate svg{width:50px}
 .scene-topline{font-size:7px;letter-spacing:.8px}.connection-console{margin:0;padding:12px}
 .globe-navigation{margin-left:2px;margin-right:2px}.route-endpoints{gap:6px}
 .route-endpoint{grid-template-columns:minmax(0,1fr)}.route-endpoint time{font-size:9px}
 .landing .features article{padding:23px 20px 18px}.landing .features h3{font-size:17px}
 .landing .early{padding:35px 30px}.landing .early h2{font-size:25px}.landing .early p{max-width:480px}.strip-end{display:none}
}
@media(max-width:800px){
 .landing .page{padding:0 24px}.landing .nav{height:85px}
 .landing .nav nav>a:not(.nav-cta){display:none}.landing .nav nav{gap:16px}
 .landing .hero{grid-template-columns:1fr;gap:38px;padding:54px 0 40px;min-height:0}
 .landing .hero-copy{padding:0;max-width:600px}.landing .hero h1{font-size:54px;line-height:1.25}
 .landing .hero-copy>p{max-width:450px;font-size:14px}.hero-kicker{margin-top:28px;font-size:9px}.hero-coordinate{display:none}
 .landing .hero-visual{width:100%;max-width:590px;margin:0 auto}
 .scene-topline{font-size:8px;letter-spacing:1px}.connection-console{margin:0 16px;padding:14px}
 .globe-navigation{margin-left:20px;margin-right:20px}.rotation-controls button{min-width:38px;min-height:38px}
 .route-endpoint{grid-template-columns:minmax(0,1fr) auto}
 .landing .manifesto{padding:63px 0 35px}.landing .manifesto h2{font-size:27px}
 .landing .features{grid-template-columns:1fr;gap:16px;padding-bottom:48px}
 .landing .features article{padding:24px;display:grid;grid-template-columns:1fr 155px;column-gap:24px;align-items:start}
 .card-top{grid-column:1/-1}.feature-art{grid-column:2;grid-row:2/4;height:130px;margin:16px 0 0;align-self:center}
 .landing .features h3{grid-column:1;margin:23px 0 10px;font-size:20px}.landing .features p{grid-column:1;min-height:0;max-width:400px}
 .feature-foot{grid-column:1/-1;margin-top:22px}.landing .early{padding:32px;display:block}
 .landing .early .button{margin-top:26px}.landing .early h2{font-size:26px}.landing .early p{max-width:470px}
 .early-orbits{right:-170px;opacity:.2}.landing .alpha-notice{margin-bottom:32px}.landing footer{flex-wrap:wrap}.landing footer .footer-note{display:none}
}
@media(max-width:480px){
 .landing .page{padding:0 20px}.landing .nav{height:78px;gap:8px}
 .landing .logo{font-size:20px;gap:7px}.landing .brandmark{width:30px;height:30px}
 .landing .logo small{font-size:6px;letter-spacing:1.4px}.landing .nav nav{gap:8px}
 .landing .nav-cta{padding:10px 8px;font-size:9px}.landing #language{font-size:10px}
 .landing .hero{padding-top:41px;gap:37px}.landing .pill{font-size:8px;letter-spacing:.15px;padding:8px 10px}
 .landing .hero h1{font-size:clamp(34px,10.8vw,48px);letter-spacing:-1.5px;margin-top:13px}
 .landing .hero-copy>p{font-size:12px;line-height:2;max-width:340px}
 .hero-kicker{font-size:8px;letter-spacing:2.1px;margin-top:28px}.landing .hero-actions{gap:23px;margin-top:25px}
 .landing .button{font-size:11px;padding:13px 18px;min-height:47px;gap:20px}.landing .hero-note{font-size:9px;gap:9px;flex-wrap:wrap}
 .scene-topline{padding:0;font-size:7px;letter-spacing:.6px}.landing #motion-toggle{font-size:9px;gap:5px;padding:4px 6px}
 .globe-navigation{margin:0 0 12px;flex-wrap:wrap}.globe-navigation p{font-size:9px}
 .rotation-controls{gap:4px}.landing .rotation-controls button{width:34px;min-width:34px;min-height:36px}
 .globe-badge{font-size:7px;bottom:3%;padding:6px 10px}
 .connection-console{margin:0;padding:11px}.route-endpoints{grid-template-columns:minmax(0,1fr) 26px minmax(0,1fr);gap:8px}
 .route-endpoint{grid-template-columns:minmax(0,1fr) auto}.route-endpoint strong,.route-endpoint select{font-size:12px}
 .landing .signal-button{grid-column:1/-1;font-size:11px;min-height:36px;margin-top:3px}
 .route-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
 .landing .city-button{font-size:10px;min-height:36px}
 .console-status{font-size:9px;gap:7px;min-height:43px}.demo-label{font-size:7px;letter-spacing:.2px}
 .scene-disclaimer{font-size:8px;margin:10px 0 0}
 .connection-strip{font-size:7px;letter-spacing:1px;gap:10px;padding:20px 0}.connection-strip svg{width:30px}
 .landing .manifesto{padding:51px 0 30px}.landing .eyebrow{font-size:8px;letter-spacing:1.5px}
 .landing .manifesto h2{font-size:23px;letter-spacing:-.6px;margin-top:16px}.landing .manifesto p{font-size:11px}
 .landing .features article{display:block;padding:23px}.feature-art{height:135px;width:100%;margin:7px 0 20px}
 .landing .features h3{font-size:20px;margin:0 0 12px}.landing .features p{font-size:12px;line-height:1.9}.feature-foot{margin-top:24px}
 .landing .early{padding:27px 24px}.landing .early h2{font-size:23px;line-height:1.55}.landing .early p{font-size:11px}
 .landing .alpha-notice{font-size:9px;padding:0}.landing footer{column-gap:14px;row-gap:19px;padding-bottom:90px}
 .landing footer>span,.landing footer>a:not(.logo){font-size:9px}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}.landing *,.landing *::before,.landing *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 .landing .reveal-pending{opacity:1;transform:none}.landing .stack-front,.landing .stack-middle,.landing .stack-back,.landing .team-orbit,.landing .diagram-packet{transform:none!important}
}
