:root{--navy: #020617;--deep: #07182e;--horizon: #0b2b3a;--teal: #2dd4bf;--teal-light: #5eead4;--emerald: #4ade80;--orange: #f97316;--yellow: #fde047;--red: #dc2626;--slate: #64748b;--text: #f8fafc;--muted: #b6c2d4;--line: rgba(148, 163, 184, .18);--card: rgba(11, 43, 58, .42);--card-hover: rgba(13, 55, 74, .62);--panel-bg: rgba(2, 6, 23, .82);--panel-solid: rgba(2, 6, 23, .95);--nav-bg: rgba(2, 6, 23, .72);--gradient: linear-gradient(90deg, #2dd4bf, #4ade80);--bg: linear-gradient(160deg, #020617, #0b2b3a);--globe-bg: radial-gradient(circle at 60% 42%, #0b2b3a 0%, #020617 72%);--hero-overlay: linear-gradient( 90deg, rgba(2, 6, 23, .94) 0%, rgba(2, 6, 23, .72) 42%, rgba(2, 6, 23, .2) 100% );--max: 1160px;--font-display: "Space Grotesk", system-ui, sans-serif;--font-body: "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace}[data-theme=light]{--slate: #64748b;--text: #0f172a;--muted: #475569;--line: rgba(15, 23, 42, .12);--card: rgba(255, 255, 255, .72);--card-hover: #ffffff;--panel-bg: rgba(255, 255, 255, .88);--panel-solid: rgba(255, 255, 255, .97);--nav-bg: rgba(248, 250, 252, .8);--teal: #0d9488;--teal-light: #0f766e;--emerald: #16a34a;--orange: #ea580c;--yellow: #b45309;--bg: linear-gradient(160deg, #ffffff, #e8eef4);--globe-bg: radial-gradient(circle at 60% 42%, #e8eef4 0%, #ffffff 72%);--hero-overlay: linear-gradient( 90deg, rgba(255, 255, 255, .96) 0%, rgba(255, 255, 255, .72) 42%, rgba(255, 255, 255, .15) 100% )}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background-color:#020617;background-image:var(--bg);background-size:cover;background-repeat:no-repeat;color:var(--text);font-family:var(--font-body);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;transition:background .3s ease,color .3s ease}[data-theme=light] body{background-color:#fff}a{color:var(--teal-light);text-decoration:none}a:hover{color:var(--emerald)}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.12;margin:0 0 .4em;letter-spacing:-.01em}p{margin:0 0 1em}.container{width:100%;max-width:var(--max);margin:0 auto;padding:0 24px}.section{padding:96px 0;position:relative}.section--tight{padding:64px 0}.eyebrow{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--teal);margin:0 0 .9em}.lead{font-size:1.12rem;color:var(--muted);max-width:62ch}.section h2{font-size:clamp(1.7rem,3vw,2.4rem)}.src{display:block;margin-top:2em;font-family:var(--font-mono);font-size:.76rem;color:var(--slate)}.src a{color:var(--slate);text-decoration:underline;text-underline-offset:3px}.src a:hover{color:var(--teal-light)}.sep{margin:0 .5em;opacity:.6}.nav{position:sticky;top:0;z-index:50;backdrop-filter:blur(14px);background:var(--nav-bg);border-bottom:1px solid var(--line)}.nav__inner{display:flex;align-items:center;gap:28px;height:64px}.nav__brand{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:600;color:var(--text);font-size:1.02rem}.nav__brand:hover{color:var(--text)}.nav__dot{width:11px;height:11px;border-radius:50%;background:var(--gradient);box-shadow:0 0 12px #2dd4bfb3}.nav__links{display:flex;align-items:center;gap:22px;margin-left:auto;font-size:.94rem}.nav__links a{color:var(--muted);display:inline-flex;align-items:center;line-height:1}.nav__links a:hover,.nav__links a[aria-current=page]{color:var(--text)}.nav__cta{margin-left:6px}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer;padding:0}.theme-toggle:hover{color:var(--text);border-color:var(--teal)}.theme-toggle svg{width:17px;height:17px}.btn{display:inline-flex;align-items:center;gap:8px;padding:11px 20px;border-radius:999px;font-family:var(--font-display);font-weight:600;font-size:.95rem;border:1px solid transparent;transition:transform .15s ease,background .2s ease,border-color .2s ease}.btn:hover{transform:translateY(-1px)}.btn--primary{background:var(--gradient);color:#04231f}.btn--primary:hover{color:#04231f}.btn--ghost{border-color:var(--line);color:var(--text);background:#94a3b80f}.btn--ghost:hover{border-color:var(--teal);color:var(--text)}.hero{position:relative;min-height:calc(100vh - 64px);display:flex;align-items:center;overflow:hidden}.hero__globe{position:absolute;inset:0;z-index:0}.hero__globe:after{content:"";position:absolute;inset:0;background:var(--hero-overlay);pointer-events:none}.hero__content{position:relative;z-index:1;max-width:640px;padding:80px 0}.hero h1{font-size:clamp(2.4rem,6vw,4rem);margin-bottom:.35em}.hero h1 .accent{background:var(--gradient);-webkit-background-clip:text;background-clip:text;color:transparent}.hero__sub{font-size:1.15rem;color:var(--muted);max-width:54ch;margin-bottom:1.6em}.hero__actions{display:flex;flex-wrap:wrap;gap:14px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:18px}.stat{padding:22px 20px;border:1px solid var(--line);border-radius:16px;background:var(--card)}.stat__num{font-family:var(--font-display);font-size:clamp(1.5rem,2.6vw,2.1rem);font-weight:600;background:var(--gradient);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1.1}.stat__label{font-size:.9rem;color:var(--muted);margin-top:4px}.grid{display:grid;gap:20px}.grid--3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.grid--2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.card{padding:26px 24px;border:1px solid var(--line);border-radius:18px;background:var(--card);transition:border-color .2s ease,background .2s ease,transform .2s ease}.card:hover{border-color:#2dd4bf80;background:var(--card-hover);transform:translateY(-2px)}.card h3{font-size:1.18rem;margin-bottom:.3em}.card p{color:var(--muted);font-size:.96rem;margin:0}.card__tag{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--orange);margin-bottom:.7em}.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;counter-reset:step}.step{position:relative;padding:26px 24px 24px;border:1px solid var(--line);border-radius:18px;background:var(--card)}.step:before{counter-increment:step;content:counter(step,decimal-leading-zero);font-family:var(--font-mono);font-size:.85rem;color:var(--teal);display:block;margin-bottom:.8em}.step h3{font-size:1.1rem}.step p{color:var(--muted);font-size:.94rem;margin:0}.code{position:relative;border:1px solid var(--line);border-radius:14px;background:#020617bf;padding:20px 22px;font-family:var(--font-mono);font-size:.88rem;color:var(--teal-light);overflow-x:auto}[data-theme=light] .code{background:#0f172a;color:#5eead4}.code .tok-key{color:var(--emerald)}.code .tok-str{color:var(--yellow)}.code .tok-com{color:var(--slate)}[data-theme=light] .code .tok-key{color:#4ade80}[data-theme=light] .code .tok-str{color:#fde047}.prose{max-width:74ch}.prose h2{margin-top:2.2em}.prose h3{margin-top:1.6em;font-size:1.2rem}.prose ul{color:var(--muted)}.prose table{width:100%;border-collapse:collapse;margin:1.4em 0;font-size:.92rem}.prose th,.prose td{border-bottom:1px solid var(--line);padding:10px 12px;text-align:left}.prose th{font-family:var(--font-mono);font-size:.76rem;letter-spacing:.06em;text-transform:uppercase;color:var(--teal)}.prose code{font-family:var(--font-mono);font-size:.85em;color:var(--teal-light)}.footer{border-top:1px solid var(--line);padding:48px 0;color:var(--slate);font-size:.9rem}.footer a{color:var(--muted)}.footer__row{display:flex;flex-wrap:wrap;gap:18px 32px;align-items:baseline;justify-content:space-between}@media(max-width:720px){.nav__links{display:none}.section{padding:64px 0}}.maplibregl-popup.plume-popup .maplibregl-popup-content{background:var(--panel-solid);border:1px solid var(--line);border-radius:12px;padding:12px 14px;color:var(--text);font-family:var(--font-body);box-shadow:0 14px 44px #00000059}.maplibregl-popup.plume-popup .maplibregl-popup-tip{border-top-color:var(--panel-solid);border-bottom-color:var(--panel-solid)}.pp-sensor{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase}.pp h4{margin:3px 0 9px;font-size:1.02rem;color:var(--text)}.pp-row{display:flex;justify-content:space-between;gap:18px;font-size:.82rem;color:var(--muted);padding:1px 0}.pp-row b{color:var(--text);font-weight:500}[data-astro-cid-dmqpwcec][data-theme=light] .icon-sun[data-astro-cid-dmqpwcec],:root:not([data-theme=light]) .icon-moon[data-astro-cid-dmqpwcec]{display:none}
