:root{--bg:#fafafa;--surface:#fff;--text:#111;--muted:#666;--border:#ececec;--radius:24px}html,body,#root{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}body{margin:0;overflow-x:hidden}.font-display{letter-spacing:-.03em;font-family:Geist,Inter,sans-serif;font-weight:700}.font-mono{font-family:JetBrains Mono,monospace}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#00000014;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#0000002e}::-webkit-scrollbar-track{background:0 0}::selection{color:#fafafa;background:#111}.card-surface{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 1px #00000005,0 8px 30px #0000000a}@keyframes kenburns{0%{transform:scale(1.08)translate(0,0)}50%{transform:scale(1.18)translate(-1%,-1%)}to{transform:scale(1.08)translate(0,0)}}.kenburns{will-change:transform;animation:24s ease-in-out infinite kenburns}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.marquee-track{width:max-content;animation:35s linear infinite marquee}@keyframes mapPulse{0%{box-shadow:0 0 #ffffff8c}70%{box-shadow:0 0 0 22px #fff0}to{box-shadow:0 0 #fff0}}.map-pulse{animation:2.4s ease-out infinite mapPulse}@keyframes dashflow{to{stroke-dashoffset:-200px}}.dashflow{animation:4s linear infinite dashflow}@keyframes caret{50%{opacity:0}}.caret{animation:.85s step-end infinite caret}.video-mask{-webkit-mask-image:linear-gradient(#000 70%,#0000 100%);mask-image:linear-gradient(#000 70%,#0000 100%)}@keyframes spin360{to{transform:rotate(360deg)}}.spin-slow{animation:18s linear infinite spin360}.grain:after{content:"";pointer-events:none;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='0.6'/></svg>");position:absolute;inset:0}@keyframes floaty{0%,to{transform:translateY(0)rotate(-6deg)}50%{transform:translateY(-14px)rotate(-4deg)}}.floaty{animation:6s ease-in-out infinite floaty}.maplibregl-ctrl-attrib,.maplibregl-ctrl-logo{opacity:.3!important}.maplibregl-canvas{outline:none!important}
