:root{color-scheme:dark;--bg:#08111f;--text:#edf3fc;--muted:#96a8bf;--line:#203047;--mint:#78edc3}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 77% 30%,#10314a65,transparent 50%),var(--bg);color:var(--text);font:16px/1.65 Inter,Segoe UI,Arial,sans-serif}a{color:inherit;text-decoration:none}button,input{font:inherit}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--mint);outline-offset:5px}.shell{max-width:1280px;margin:auto;padding:0 56px}header{height:112px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:14px;font-size:19px;font-weight:650;line-height:1.2}.brand-icon{border:1px solid #436a78;border-radius:12px;padding:8px;color:var(--mint);font-size:24px;letter-spacing:-3px}.brand small{display:block;color:var(--mint);letter-spacing:4px;font-size:10px;margin-top:7px}nav{display:flex;gap:28px;font-size:13px;color:#bfccdc}.hero{min-height:600px;display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:40px;padding:64px 0}.eyebrow,.number{font-size:10px;letter-spacing:2px;color:var(--mint);font-weight:650}.eyebrow:before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--mint);margin-right:10px}h1{font-size:clamp(40px,4.7vw,66px);line-height:1.08;letter-spacing:-3px;font-weight:550;margin:26px 0}h1 span{color:var(--mint)}.intro{font-size:17px;color:var(--muted);max-width:460px;line-height:1.85}.button,button.primary{display:inline-flex;align-items:center;justify-content:center;gap:30px;background:var(--mint);color:#082019;padding:15px 24px;border:0;border-radius:8px;font-weight:650;cursor:pointer}.actions{display:flex;gap:24px;align-items:center;margin-top:30px}.text-link{font-size:13px;color:#bfccdc}.status{font-size:12px;color:var(--muted);margin-top:26px}.status:before{content:'';display:inline-block;width:6px;height:6px;background:#96a8bf;border-radius:50%;margin-right:9px}.status.online:before{background:var(--mint)}.art{position:relative;min-height:430px;border-radius:50%;background:radial-gradient(ellipse,#19445166,transparent 68%)}.art svg{width:100%;height:430px}.art-label{position:absolute;padding:11px 18px;background:#101f30;border:1px solid #2a4657;border-radius:9px;font-size:12px;box-shadow:0 10px 40px #0003}.art-label b{display:block;color:var(--mint);font-weight:500;font-size:10px;letter-spacing:1px}.art-label.one{top:65px;left:4%}.art-label.two{right:0;bottom:90px}.caption{text-align:center;font-size:10px;letter-spacing:2px;color:var(--muted)}.features{display:grid;grid-template-columns:repeat(3,1fr);gap:38px;padding:38px 0 56px;border-top:1px solid var(--line)}h2{font-size:20px;letter-spacing:-.4px;line-height:1.3;font-weight:550}.features p{color:var(--muted);font-size:14px;line-height:1.9}footer{border-top:1px solid var(--line);padding:26px 0;display:flex;justify-content:space-between;gap:18px;font-size:11px;color:var(--muted)}.demo-intro{padding:55px 0 30px}.demo-intro h1{font-size:44px;letter-spacing:-1.8px;margin:18px 0}.demo-intro p{color:var(--muted);max-width:720px}.workspace{display:grid;grid-template-columns:1.1fr 1fr;gap:24px;margin-bottom:60px}.panel{padding:26px;border:1px solid var(--line);background:#0b1727;border-radius:14px}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.panel-heading h2{margin:0}.badge{font-size:9px;letter-spacing:1.5px;color:var(--mint)}.hint{font-size:12px;color:var(--muted)}.dropzone{min-height:265px;border:1px dashed #456276;border-radius:10px;display:flex;align-items:center;justify-content:center;text-align:center;flex-direction:column;gap:10px;cursor:pointer;background:#0d1c2c}.dropzone:hover,.dropzone.drag{border-color:var(--mint);background:#102b33}.upload-symbol{font-size:40px;color:var(--mint)}input[type=file]{width:100%;margin:15px 0;color:var(--muted);font-size:12px}.preview{position:relative;line-height:0}.preview img{width:100%;height:auto;display:block;border-radius:8px}.bbox{position:absolute;border:2px solid var(--mint);pointer-events:none;box-shadow:0 0 0 1px #0006}.bbox span{position:absolute;top:-24px;left:-2px;padding:4px;background:var(--mint);color:#082019;font:bold 12px/1.2 monospace;white-space:nowrap}button.primary{width:100%;margin-top:16px}button:disabled{opacity:.45;cursor:wait}.empty{min-height:290px;display:flex;align-items:center;justify-content:center;flex-direction:column;color:var(--muted);text-align:center}.empty span{font-size:42px;color:#55788a}.result-plate{padding:25px;background:#112b2d;border:1px solid #29594f;border-radius:9px;color:var(--mint)}.result-plate strong{display:block;font-size:38px;letter-spacing:3px;line-height:1.4}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:24px}.metrics div{border-bottom:1px solid var(--line);padding-bottom:12px}.metrics span{display:block;font-size:11px;color:var(--muted)}.metrics strong{font-size:16px;font-weight:500}.plate-row{display:flex;justify-content:space-between;font-size:12px;padding:10px 0;border-bottom:1px solid var(--line)}.alert{color:#ffc0ab;font-size:13px;margin-top:12px}.map-wrap{position:relative;border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:22px}#map{height:560px;background:#102333}.toolbar{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 22px}.toolbar button{background:#0c1b2b;color:var(--muted);border:1px solid var(--line);border-radius:30px;padding:10px 18px;cursor:pointer;font-size:12px}.toolbar button.active{color:var(--mint);border-color:#4a9d86}.maplibregl-ctrl{color:#14242c}code{font-size:12px;color:var(--mint)}[hidden]{display:none!important}@media(max-width:850px){.shell{padding:0 24px}.hero{grid-template-columns:1fr;gap:10px;padding:48px 0}.art{max-width:480px;width:100%;margin:auto}.features{gap:22px}.workspace{grid-template-columns:1fr}nav{gap:16px}h1{font-size:52px}}@media(max-width:560px){header{height:88px}.shell{padding:0 20px}.brand{font-size:16px}nav .optional{display:none}.hero{padding-top:40px}h1{font-size:43px;letter-spacing:-2px}.art,.art svg{min-height:330px;height:330px}.features{grid-template-columns:1fr;gap:20px}.features article{padding-bottom:10px}.art-label.one{top:45px}.art-label.two{bottom:45px}.demo-intro h1{font-size:36px}.panel{padding:20px}.panel-heading{gap:8px}footer{flex-wrap:wrap}.footer-note{display:none}#map{height:480px}}
