/* Shared volumetric map surface and subtle 3D depth for both site and console. */
.map3d-host{position:relative;isolation:isolate;overflow:hidden;aspect-ratio:1360/1090;background:radial-gradient(ellipse at 50% 45%,#334438,#111a21 78%);perspective:1000px;touch-action:none;cursor:grab}
.map3d-host:active{cursor:grabbing}
.map3d-host>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.94;transition:opacity .6s}
.map3d-host.map3d-ready>img{opacity:0}
.map3d-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;animation:map3d-enter .8s cubic-bezier(.2,.8,.2,1) both}
.map3d-host:after{content:'拖动旋转 · 滚轮缩放';position:absolute;z-index:3;top:11px;right:11px;padding:6px 9px;border:1px solid #ffffff38;border-radius:8px;background:#0a1522d9;color:#e1f1f1;font-size:10px;pointer-events:none;box-shadow:0 6px 16px #0004}
.map3d-fallback:after{content:'3D 预览暂不可用 · 显示平面地图';position:absolute;left:12px;bottom:12px;padding:7px 9px;border:1px solid #ffffff2a;border-radius:8px;background:#0b1421df;color:#d2e3ee;font-size:10px}
.map3d-fallback .map3d-canvas{display:none}
.home-map-3d{border-radius:17px;aspect-ratio:1360/980}
.detail-map-3d{border-radius:10px;aspect-ratio:1360/1090}
.world-map-canvas{min-height:300px;border-color:#405d70;box-shadow:inset 0 1px 0 #ffffff22,0 20px 50px #0006;transform-style:preserve-3d}
.world-map-canvas>.map3d-host{width:100%;height:100%;min-height:300px;aspect-ratio:1360/900}
.world-map-canvas>#world-markers{display:none}
.world-map-panel{background:linear-gradient(150deg,#111e2d,#101827 62%,#111e27);box-shadow:0 18px 48px #0003,inset 0 1px #ffffff08}
.world-map-panel .panel-heading{position:relative;z-index:1}
.world-map-panel .map-live-label{box-shadow:0 4px 16px #0003}
.site-nav{position:relative;z-index:4;backdrop-filter:blur(16px);background:linear-gradient(180deg,#080f19ef,#080f1940);transform:translateZ(20px)}
.map-frame{transform-style:preserve-3d;transform:perspective(1100px) rotateY(-7deg) rotateX(4deg);box-shadow:10px 30px 0 -19px #7ac8d452,0 38px 90px #0009,inset 0 1px #ffffff3b;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.map-frame:hover{transform:perspective(1100px) rotateY(-2deg) rotateX(1deg) translateY(-5px)}
.map-frame:before,.map-showcase:before{content:'';position:absolute;z-index:3;inset:0;border:1px solid #d9eeff2d;border-radius:inherit;pointer-events:none;box-shadow:inset 0 0 35px #bbebff0a}
.map-caption{z-index:4;box-shadow:0 9px 22px #0007,0 1px #ffffff25 inset}
.floating-card,.feature-card,.proof-strip,.map-showcase,.release-section{transform-style:preserve-3d;box-shadow:0 16px 36px #0003,inset 0 1px #ffffff0b}
.feature-card{transition:transform .28s cubic-bezier(.2,.8,.2,1),border-color .24s,box-shadow .28s}
.feature-card:hover{transform:perspective(800px) translateY(-7px) rotateX(2deg) rotateY(-1deg);box-shadow:0 25px 50px #0006,0 1px #ffffff18 inset}
.map-showcase{transform:perspective(1050px) rotateY(5deg) rotateX(2deg);transition:transform .5s cubic-bezier(.2,.8,.2,1);box-shadow:12px 26px 0 -16px #74d5b34a,0 30px 65px #0007,inset 0 1px #ffffff25}
.map-showcase:hover{transform:perspective(1050px) rotateY(1deg) rotateX(0) translateY(-4px)}
.map-showcase-tag{z-index:2;box-shadow:0 8px 24px #0007}
.proof-strip,.release-section{box-shadow:0 18px 40px #0003,inset 0 1px #ffffff13}
@keyframes map3d-enter{from{opacity:0;transform:scale(.97) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}
@media(max-width:860px){.map-frame{transform:perspective(1000px) rotateY(-4deg) rotateX(2deg)}}
@media(max-width:620px){.map-frame,.map-showcase{transform:none}.world-map-canvas,.world-map-canvas>.map3d-host{min-height:230px}.home-map-3d{aspect-ratio:1360/930}}
@media(prefers-reduced-motion:reduce){.map3d-canvas,.map-frame,.map-showcase,.feature-card{animation:none!important;transition:none!important}}
.platform-note{display:flex;align-items:center;gap:9px;margin-top:12px;color:#8297ad;font-size:9px}.platform-note b{color:#cfe5f2;font-size:10px}.platform-note i{padding:4px 7px;border:1px solid #375366;border-radius:6px;background:#102333;color:#8edcc8;font-size:8px;font-style:normal;letter-spacing:.05em}
.brand-logo{display:block;width:35px;height:35px;flex:none;object-fit:contain;border-radius:10px;filter:drop-shadow(0 5px 12px #3cbad333)}.site-footer .brand-logo{width:29px;height:29px;border-radius:8px}.brand-mark>.app-logo{display:block;width:100%;height:100%;object-fit:contain;border-radius:inherit}
