:root{--bg:#070b14;--bg-soft:#0d1424;--bg-card:#111a2e;--line:#1e2a44;--line-strong:#22d3ee59;--text:#e6edf7;--muted:#8a9bb8;--accent:#22d3ee;--accent-2:#3b82f6;--glow:#22d3ee59;--radius:14px;--radius-sm:10px;--ease:cubic-bezier(.22, 1, .36, 1);--shadow-card:0 18px 50px #00000047;--font-sans:"Sora", "Noto Sans SC", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}html,body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;line-height:1.6}body{overflow-x:hidden}::selection{color:#fff;background:#22d3ee47}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.mono{font-family:var(--font-mono)}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.container{max-width:1180px;margin:0 auto;padding:0 24px}.bg-grid{z-index:-1;pointer-events:none;background-image:linear-gradient(#22d3ee0a 1px,#0000 1px),linear-gradient(90deg,#22d3ee0a 1px,#0000 1px);background-size:56px 56px;position:fixed;inset:0;mask-image:radial-gradient(at 50% 0,#000 22%,#0000 72%)}.glow-top{z-index:-1;pointer-events:none;background:radial-gradient(circle,#22d3ee24,#0000 62%);width:980px;height:620px;position:fixed;top:-220px;left:50%;transform:translate(-50%)}.sec-tag{color:var(--accent);letter-spacing:.18em;text-transform:uppercase;font-size:12px;font-family:var(--font-mono);align-items:center;gap:10px;margin-bottom:14px;display:inline-flex}.sec-tag:after{content:"";background:linear-gradient(90deg, var(--accent), transparent);width:0;height:1px;transition:width .7s var(--ease);display:block}.sec-tag.is-in:after,[data-reveal].is-in .sec-tag:after{width:48px}h1,h2,h3{letter-spacing:-.02em;line-height:1.2}h2{margin-bottom:14px;font-size:clamp(28px,4vw,42px);font-weight:700}.sec-desc{color:var(--muted);max-width:640px;margin-bottom:44px;font-size:16px;line-height:1.7}section{padding:96px 0;scroll-margin-top:80px}main header[id]{scroll-margin-top:80px}.grid-3{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.grid-2{grid-template-columns:repeat(2,1fr);gap:18px;display:grid}.panel{border-top:1px solid var(--line);transition:border-color .3s var(--ease);background:0 0;padding:28px 0}.panel:hover{border-top-color:var(--line-strong)}.tags{flex-wrap:wrap;gap:6px;margin-top:14px;display:flex}.tag{color:#93c5fd;font-size:11px;font-family:var(--font-mono);background:#3b82f61f;border:1px solid #3b82f629;border-radius:6px;padding:4px 8px}.btn{cursor:pointer;transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease), border-color .25s var(--ease), color .25s var(--ease);border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:13px 22px;font-size:14px;font-weight:500;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--accent);color:#001018;font-weight:600}.btn-primary:hover{box-shadow:0 0 28px var(--glow)}.btn-ghost{color:var(--text);backdrop-filter:blur(8px);background:#111a2e8c;border-color:#e6edf72e}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.page-hero{padding:140px 0 56px;position:relative;overflow:hidden}.page-hero:before{content:"";background:linear-gradient(180deg, #070b1459, var(--bg)), url(/images/gis/earth-night.jpg) center/cover no-repeat;opacity:.45;z-index:-1;position:absolute;inset:0}.page-hero h1{margin-bottom:14px;font-size:clamp(34px,5vw,52px);font-weight:700}.page-hero p{color:var(--muted);max-width:640px;font-size:17px;line-height:1.7}[data-reveal]{opacity:0;transition:opacity .7s var(--ease), transform .7s var(--ease);transition-delay:var(--reveal-delay,0s);will-change:opacity, transform;transform:translateY(22px)}[data-reveal].is-in{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}[data-reveal]{opacity:1;transition:none;transform:none}.sec-tag:after{width:48px;transition:none}}@media (width<=900px){.grid-3,.grid-2{grid-template-columns:1fr}section{padding:64px 0}}.page-nav[data-astro-cid-uc5wsy3x]{z-index:90;flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:fixed;bottom:24px;right:20px}.page-nav-fab[data-astro-cid-uc5wsy3x]{width:52px;height:52px;color:var(--text);cursor:pointer;backdrop-filter:blur(12px)saturate(1.2);transition:transform .25s var(--ease), border-color .25s var(--ease), box-shadow .25s var(--ease);background:radial-gradient(circle at 30% 25%,#22d3ee47,#0000 55%),#070b14e6;border:1px solid #22d3ee59;border-radius:50%;place-items:center;display:grid;position:relative;box-shadow:0 12px 32px #00000059}.page-nav-fab[data-astro-cid-uc5wsy3x]:hover{border-color:var(--accent);transform:translateY(-1px)scale(1.03);box-shadow:0 0 24px #22d3ee47}.fab-ring[data-astro-cid-uc5wsy3x]{pointer-events:none;border:1px dashed #22d3ee47;border-radius:50%;position:absolute;inset:4px}.fab-idx[data-astro-cid-uc5wsy3x]{color:var(--accent);letter-spacing:.04em;font-size:13px;font-weight:700}.fab-icon[data-astro-cid-uc5wsy3x]{color:var(--accent);display:none}.page-nav[data-astro-cid-uc5wsy3x].is-open .fab-idx[data-astro-cid-uc5wsy3x]{display:none}.page-nav[data-astro-cid-uc5wsy3x].is-open .fab-icon[data-astro-cid-uc5wsy3x]{display:grid}.page-nav-panel[data-astro-cid-uc5wsy3x]{backdrop-filter:blur(14px)saturate(1.2);transform-origin:100% 100%;width:min(220px,100vw - 40px);max-height:min(58vh,440px);animation:page-nav-in .22s var(--ease);background:#070b14eb;border:1px solid #22d3ee38;border-radius:14px;grid-template-rows:auto minmax(0,1fr);gap:8px;padding:12px;display:grid;box-shadow:0 18px 48px #0006}.page-nav-panel[data-astro-cid-uc5wsy3x][hidden]{display:none!important}@keyframes page-nav-in{0%{opacity:0;transform:translateY(8px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.page-nav-head[data-astro-cid-uc5wsy3x]{border-bottom:1px solid #1e2a44e6;justify-content:space-between;align-items:flex-start;gap:8px;padding:2px 4px 10px;display:flex}.page-nav-k[data-astro-cid-uc5wsy3x]{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:2px;font-size:10px;display:block}.page-nav-current[data-astro-cid-uc5wsy3x]{color:var(--text);font-size:13px;font-weight:600;line-height:1.35;display:block}.page-nav-close[data-astro-cid-uc5wsy3x]{width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;flex-shrink:0;font-size:18px;line-height:1}.page-nav-close[data-astro-cid-uc5wsy3x]:hover{color:var(--text);background:#22d3ee1a}.page-nav-list[data-astro-cid-uc5wsy3x]{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#22d3ee59 transparent;gap:2px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.page-nav-list[data-astro-cid-uc5wsy3x]::-webkit-scrollbar{width:4px}.page-nav-list[data-astro-cid-uc5wsy3x]::-webkit-scrollbar-thumb{background:#22d3ee59;border-radius:999px}.page-nav-list[data-astro-cid-uc5wsy3x]::-webkit-scrollbar-track{background:0 0}.page-nav-link[data-astro-cid-uc5wsy3x]{color:var(--muted);transition:background .2s var(--ease), color .2s var(--ease);border-radius:8px;grid-template-columns:10px auto 1fr;align-items:center;gap:8px;padding:8px;display:grid}.page-nav-link[data-astro-cid-uc5wsy3x]:hover{color:var(--text);background:#22d3ee14}.page-nav-link[data-astro-cid-uc5wsy3x].is-active{color:var(--text);background:#22d3ee1f}.dot[data-astro-cid-uc5wsy3x]{width:8px;height:8px;transition:background .2s var(--ease), box-shadow .2s var(--ease), transform .2s var(--ease);background:#8a9bb873;border-radius:50%}.page-nav-link[data-astro-cid-uc5wsy3x].is-active .dot[data-astro-cid-uc5wsy3x]{background:var(--accent);transform:scale(1.15);box-shadow:0 0 12px #22d3ee8c}.idx[data-astro-cid-uc5wsy3x]{color:var(--accent);font-size:10px}.lbl[data-astro-cid-uc5wsy3x]{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}@media (width<=640px){.page-nav[data-astro-cid-uc5wsy3x]{bottom:16px;right:14px}.page-nav-panel[data-astro-cid-uc5wsy3x]{max-height:48vh}}@media (prefers-reduced-motion:reduce){.page-nav-fab[data-astro-cid-uc5wsy3x],.page-nav-link[data-astro-cid-uc5wsy3x],.dot[data-astro-cid-uc5wsy3x],.page-nav-panel[data-astro-cid-uc5wsy3x]{transition:none;animation:none}}nav[data-astro-cid-wpvy4v7s]{z-index:100;backdrop-filter:blur(16px)saturate(1.2);transition:background .35s var(--ease), border-color .35s var(--ease), box-shadow .35s var(--ease);background:#070b14b8;border-bottom:1px solid #1e2a448c;position:sticky;top:0}nav[data-astro-cid-wpvy4v7s].is-scrolled{background:#070b14eb;border-bottom-color:#22d3ee2e;box-shadow:0 10px 36px #00000047}.nav-inner[data-astro-cid-wpvy4v7s]{justify-content:space-between;align-items:center;gap:16px;height:66px;display:flex}.logo[data-astro-cid-wpvy4v7s]{flex-shrink:0;align-items:center;gap:10px;font-size:16px;font-weight:700;display:flex}.logo[data-astro-cid-wpvy4v7s] img[data-astro-cid-wpvy4v7s]{border-radius:50%}.nav-desktop[data-astro-cid-wpvy4v7s]{align-items:center;gap:18px;display:flex}.nav-links[data-astro-cid-wpvy4v7s]{gap:16px;display:flex}.nav-links[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s]{color:var(--muted);transition:color .2s var(--ease);font-size:13px}.nav-links[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s]:hover{color:var(--text)}.lang[data-astro-cid-wpvy4v7s]{font-family:var(--font-mono);color:var(--accent);border:1px solid #22d3ee59;border-radius:8px;padding:6px 10px;font-size:12px}.nav-cta[data-astro-cid-wpvy4v7s]{background:var(--accent);color:#001018;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600}.nav-mobile[data-astro-cid-wpvy4v7s]{display:none}.nav-mobile[data-astro-cid-wpvy4v7s] summary[data-astro-cid-wpvy4v7s]{cursor:pointer;color:var(--muted);padding:8px;font-size:18px;list-style:none}.nav-mobile[data-astro-cid-wpvy4v7s] summary[data-astro-cid-wpvy4v7s]::-webkit-details-marker{display:none}.mobile-panel[data-astro-cid-wpvy4v7s]{border:1px solid var(--line);width:min(280px,100vw - 32px);box-shadow:var(--shadow-card);background:#0d1424f5;border-radius:12px;flex-direction:column;gap:4px;padding:12px;display:flex;position:absolute;top:62px;right:16px}.mobile-panel[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s]{color:var(--muted);border-radius:8px;padding:10px 12px;font-size:14px}.mobile-panel[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s]:hover{color:var(--text);background:#22d3ee14}.mobile-panel[data-astro-cid-wpvy4v7s] .nav-cta[data-astro-cid-wpvy4v7s]{text-align:center;color:#001018;margin-top:6px}@media (width<=980px){.nav-desktop[data-astro-cid-wpvy4v7s]{display:none}.nav-mobile[data-astro-cid-wpvy4v7s]{display:block;position:relative}}footer[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--line);color:var(--muted);background:linear-gradient(#0000,#0d14248c);padding:36px 0 44px;font-size:13px}.foot-inner[data-astro-cid-jo6i4kqk]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;display:flex}.foot-brand[data-astro-cid-jo6i4kqk]{gap:4px;display:grid}.foot-site[data-astro-cid-jo6i4kqk]{color:var(--muted);font-size:12px}.foot-meta[data-astro-cid-jo6i4kqk]{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.foot-meta[data-astro-cid-jo6i4kqk] .mono[data-astro-cid-jo6i4kqk]{color:var(--muted);font-size:12px}.foot-meta[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover,.beian[data-astro-cid-jo6i4kqk]:hover{color:var(--accent)}
