:root{--bg:#f7f6f1;--surface:#fff;--surface-2:#f0eee7;--text:#1a2320;--muted:#58625d;--line:#e3e0d6;--forest:#127a5b;--forest-tint:#e0f1e9;--water:#1d6fb0;--water-tint:#e2eef9;--sand:#8a5708;--sand-tint:#fbefd9;--clay:#a8431f;--clay-tint:#fbe6dd;--plum:#7b4aa8;--plum-tint:#efe6f8;--accent:var(--forest);--accent-2:var(--forest-tint);--accent-ink:#fff;--warn:var(--clay);--danger:#b42318;--map-water:#d4e6f3;--map-land:#edf2e3;--map-change:#d9653b;--band-bg:#127a5b;--band-text:#fff;--band-muted:#cfeee2;--shadow:0 1px 2px #1a23200d,0 8px 28px #1a232014;--radius:16px;--max:1120px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#111518;--surface:#181d21;--surface-2:#20262b;--text:#e9edf0;--muted:#9ba7af;--line:#2b3339;--forest:#45d39f;--forest-tint:#143529;--water:#6ab3ee;--water-tint:#15304a;--sand:#e8b45e;--sand-tint:#392b13;--clay:#f28d68;--clay-tint:#3d2219;--plum:#c4a0f2;--plum-tint:#2d2340;--accent:var(--forest);--accent-2:var(--forest-tint);--accent-ink:#07140f;--warn:var(--clay);--danger:#ff8a7a;--map-water:#17334a;--map-land:#1b2a22;--map-change:#f28d68;--band-bg:#143529;--band-text:#e9edf0;--band-muted:#a9d9c6;--shadow:0 1px 2px #0000004d,0 8px 28px #00000059}}:root[data-theme=dark]{--bg:#111518;--surface:#181d21;--surface-2:#20262b;--text:#e9edf0;--muted:#9ba7af;--line:#2b3339;--forest:#45d39f;--forest-tint:#143529;--water:#6ab3ee;--water-tint:#15304a;--sand:#e8b45e;--sand-tint:#392b13;--clay:#f28d68;--clay-tint:#3d2219;--plum:#c4a0f2;--plum-tint:#2d2340;--accent:var(--forest);--accent-2:var(--forest-tint);--accent-ink:#07140f;--warn:var(--clay);--danger:#ff8a7a;--map-water:#17334a;--map-land:#1b2a22;--map-change:#f28d68;--band-bg:#143529;--band-text:#e9edf0;--band-muted:#a9d9c6;--shadow:0 1px 2px #0000004d,0 8px 28px #00000059}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font:16px/1.6 Plus Jakarta Sans,system-ui,sans-serif;overflow-x:hidden}a{color:inherit}.mono{font-family:JetBrains Mono,ui-monospace,monospace}.wrap{max-width:var(--max);margin:0 auto;padding:0 16px}@media (width>=768px){.wrap{padding:0 32px}}h1,h2,h3{letter-spacing:-.02em;margin:0;line-height:1.15}h1{font-size:clamp(2.3rem,6vw,4rem);font-weight:700}h2{font-size:clamp(1.7rem,3.6vw,2.5rem);font-weight:700}h3{font-size:1.15rem;font-weight:600}p{margin:0}.muted{color:var(--muted)}.eyebrow{color:var(--hue,var(--accent));font-size:.9rem;font-weight:700}.btn{border:1px solid #0000;border-radius:999px;align-items:center;gap:8px;min-height:44px;padding:12px 20px;font-weight:600;text-decoration:none;transition:transform .15s,background .15s;display:inline-flex}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-primary:hover{transform:translateY(-1px)}.btn-ghost{border-color:var(--line);background:var(--surface)}.btn-ghost:hover{background:var(--surface-2)}nav{z-index:20;background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0}nav .wrap{justify-content:space-between;align-items:center;height:64px;display:flex}.logo{align-items:center;gap:10px;font-size:1.15rem;font-weight:700;text-decoration:none;display:flex}.logo-mark{background:var(--accent);width:30px;height:30px;color:var(--accent-ink);border-radius:9px;place-items:center;display:grid}.nav-links{gap:28px;font-size:.93rem;display:none}.nav-links a{color:var(--muted);text-decoration:none}.nav-links a:hover{color:var(--text)}@media (width>=860px){.nav-links{display:flex}}nav .btn{min-height:40px;padding:8px 16px;font-size:.9rem}.hero{padding:72px 0 56px;position:relative;overflow:hidden}.contours{z-index:0;opacity:.55;pointer-events:none;color:var(--line);position:absolute;inset:0}.hero .wrap{z-index:1;align-items:center;gap:48px;display:grid;position:relative}@media (width>=960px){.hero .wrap{grid-template-columns:1.05fr 1fr}}.hero p.lead{max-width:34rem;margin-top:20px;font-size:1.15rem}.hero .ctas{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.channels{flex-wrap:wrap;align-items:center;gap:10px;margin-top:28px;font-size:.88rem;display:flex}.chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;align-items:center;gap:6px;padding:5px 11px;font-size:.83rem;display:inline-flex}.chat{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:22px;overflow:hidden}.chat-head{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:14px 18px;display:flex}.avatar{background:linear-gradient(135deg,var(--accent),#7bc9a8);color:#fff;border-radius:50%;flex:none;place-items:center;width:34px;height:34px;font-size:.9rem;font-weight:700;display:grid}.chat-head small{color:var(--muted);font-size:.78rem;display:block}.chat-body{flex-direction:column;gap:12px;padding:18px;display:flex}.msg{border-radius:16px;max-width:88%;padding:11px 14px;font-size:.92rem}.msg.me{background:var(--accent);color:var(--accent-ink);border-bottom-right-radius:4px;align-self:flex-end}.msg.yerin{background:var(--surface-2);border-bottom-left-radius:4px;align-self:flex-start}.map-card{border:1px solid var(--line);background:var(--surface);border-radius:12px;margin-top:10px;overflow:hidden}.map-card svg{width:100%;height:auto;display:block}.map-meta{color:var(--muted);border-top:1px solid var(--line);justify-content:space-between;gap:8px;padding:8px 10px;font-size:.74rem;display:flex}.actions{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.actions span{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:5px 10px;font-size:.78rem}section{padding:88px 0}.section-head{max-width:40rem;margin-bottom:44px}.section-head p{margin-top:14px;font-size:1.06rem}.alt{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.int-grid{gap:14px;display:grid}@media (width>=720px){.int-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1000px){.int-grid{grid-template-columns:repeat(3,1fr)}}.int-group{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.int-group h3{font-size:.95rem}.int-group p{margin-top:4px;font-size:.86rem}.tool-list{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.tool-list span{background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:6px 12px;font-size:.85rem;font-weight:500}.tool-list span.new{border-color:var(--accent);color:var(--accent)}.feature{border-bottom:1px solid var(--line);align-items:center;gap:36px;padding:36px 0;display:grid}.feature:last-child{border-bottom:0}@media (width>=900px){.feature{grid-template-columns:1fr 1fr;gap:64px}.feature.flip .feature-copy{order:2}}.feature-copy p{margin-top:12px}.feature-copy ul{gap:8px;margin:18px 0 0;padding:0;list-style:none;display:grid}.feature-copy li{gap:10px;font-size:.95rem;display:flex}.feature-copy li:before{content:"";background:var(--accent);border-radius:2px;flex:none;width:6px;height:6px;margin-top:9px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;padding:20px}.brief-row{border-bottom:1px dashed var(--line);justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 0;font-size:.92rem;display:flex}.brief-row:last-child{border-bottom:0}.tag{background:var(--hue-tint,var(--accent-2));color:var(--hue,var(--accent));white-space:nowrap;border-radius:6px;padding:3px 8px;font-size:.72rem;font-weight:600}.tag.warn{background:var(--clay-tint);color:var(--clay)}.code{background:var(--surface-2);white-space:pre;border-radius:10px;padding:14px;font-family:JetBrains Mono,monospace;font-size:.8rem;line-height:1.7;overflow-x:auto}.flow{gap:10px;display:grid}.flow-step{background:var(--surface-2);border-radius:12px;align-items:center;gap:12px;padding:12px 14px;font-size:.9rem;display:flex}.flow-step b{color:var(--accent);min-width:64px;font-family:JetBrains Mono,monospace;font-size:.72rem}.mem{gap:8px;display:grid}.mem div{background:var(--surface-2);border-radius:10px;justify-content:space-between;gap:12px;padding:10px 12px;font-size:.88rem;display:flex}.mem div span:last-child{color:var(--muted);text-align:right;font-family:JetBrains Mono,monospace;font-size:.8rem}.dash-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;font-size:.85rem;display:flex}.bars{gap:10px;display:grid}.bar{grid-template-columns:92px 1fr 54px;align-items:center;gap:10px;font-size:.82rem;display:grid}.bar i{background:var(--accent);border-radius:4px;height:10px;display:block}.bar span:last-child{color:var(--muted);text-align:right;font-family:JetBrains Mono,monospace}.dash-foot{flex-wrap:wrap;gap:6px;margin-top:16px;display:flex}.apps{gap:16px;display:grid}@media (width>=720px){.apps{grid-template-columns:repeat(2,1fr)}}@media (width>=1040px){.apps{grid-template-columns:repeat(3,1fr)}}.app{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:10px;padding:22px;display:flex}.app-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.app-icon{background:var(--accent-2);width:38px;height:38px;color:var(--accent);border-radius:10px;place-items:center;font-family:JetBrains Mono,monospace;font-size:.8rem;font-weight:600;display:grid}.app p{font-size:.92rem}.app a{color:var(--accent);margin-top:auto;font-size:.85rem;font-weight:600;text-decoration:none}.app a:hover{text-decoration:underline}.more-head{margin:72px 0 24px}.builder{align-items:center;gap:32px;display:grid}@media (width>=900px){.builder{grid-template-columns:1.2fr 1fr;gap:64px}}.stats{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.stat{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);padding:18px}.stat b{letter-spacing:-.02em;font-size:1.6rem;display:block}.stat span{color:var(--muted);font-size:.82rem}.grid-4{gap:16px;display:grid}@media (width>=720px){.grid-4{grid-template-columns:repeat(2,1fr)}}@media (width>=1040px){.grid-4{grid-template-columns:repeat(4,1fr)}}.card{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:24px}.card p{margin-top:10px;font-size:.95rem}.card .q{background:var(--surface);border:1px solid var(--line);border-radius:10px;margin-top:16px;padding:10px 12px;font-size:.85rem}.steps{counter-reset:s;gap:16px;display:grid}@media (width>=800px){.steps{grid-template-columns:repeat(3,1fr)}}.step{border-left:2px solid var(--accent);background:var(--surface);border-radius:0 var(--radius) var(--radius) 0;padding:24px}.step:before{counter-increment:s;content:"0" counter(s);color:var(--accent);font-family:JetBrains Mono,monospace;font-size:.85rem}.step h3{margin-top:8px}.step p{margin-top:8px;font-size:.95rem}.privacy{gap:16px;display:grid}@media (width>=800px){.privacy{grid-template-columns:repeat(3,1fr)}}details{border-bottom:1px solid var(--line);padding:18px 0}summary{cursor:pointer;justify-content:space-between;gap:16px;font-weight:600;list-style:none;display:flex}summary::-webkit-details-marker{display:none}summary:after{content:"+";color:var(--accent);font-size:1.3rem;line-height:1}details[open] summary:after{content:"–"}summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}details p{color:var(--muted);margin-top:10px}.final{text-align:center;padding:96px 0}.final p{max-width:32rem;margin:16px auto 28px}.waitlist{flex-wrap:wrap;justify-content:center;gap:10px;max-width:460px;margin:0 auto;display:flex}.waitlist input{border:1px solid var(--line);background:var(--surface);min-height:46px;color:var(--text);font:inherit;border-radius:999px;flex:220px;padding:0 16px}.waitlist input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sr-only{position:absolute;left:-9999px}footer{border-top:1px solid var(--line);padding:36px 0;font-size:.88rem}footer .wrap{flex-wrap:wrap;justify-content:space-between;gap:16px;display:flex}footer .links{flex-wrap:wrap;gap:20px;display:flex}footer a{color:var(--muted);text-decoration:none}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.nav-links a[aria-current=page]{color:var(--text);font-weight:600}.page-hero{padding:72px 0 48px;position:relative;overflow:hidden}.page-hero .wrap{z-index:1;position:relative}.page-hero p.lead{max-width:40rem;margin-top:18px;font-size:1.15rem}.status{border:1px solid var(--line);background:var(--surface);border-radius:999px;align-items:center;gap:8px;padding:6px 12px;font-size:.82rem;font-weight:500;display:inline-flex}.status:before{content:"";background:var(--hue,var(--sand));border-radius:50%;width:8px;height:8px}.status.live:before{background:var(--forest)}.teasers{gap:16px;display:grid}@media (width>=900px){.teasers{grid-template-columns:repeat(3,1fr)}}.teaser{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);flex-direction:column;gap:10px;padding:24px;text-decoration:none;transition:border-color .15s;display:flex}.teaser:hover{border-color:var(--accent)}.teaser:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.teaser p{font-size:.93rem}.teaser .go{color:var(--accent);margin-top:auto;font-size:.88rem;font-weight:600}.roadmap{gap:0;max-width:720px;display:grid}.rm{grid-template-columns:28px 1fr;gap:16px;padding-bottom:28px;display:grid;position:relative}.rm:before{content:"";background:var(--line);width:2px;position:absolute;top:28px;bottom:0;left:13px}.rm:last-child:before{display:none}.rm-dot{border:2px solid var(--line);background:var(--surface);border-radius:50%;place-items:center;width:28px;height:28px;font-size:.75rem;font-weight:700;display:grid}.rm.done .rm-dot{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.rm.now .rm-dot{border-color:var(--accent);color:var(--accent)}.rm h3{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.rm p{margin-top:6px;font-size:.95rem}.studio{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:20px;position:relative;overflow:hidden}.studio-bar{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:12px 16px;font-size:.88rem;display:flex}.studio-bar .prompt{background:var(--surface-2);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;flex:1;min-width:0;padding:8px 14px;overflow:hidden}.studio-grid{display:grid}@media (width>=900px){.studio-grid{grid-template-columns:200px 1fr 1fr}}.studio-col{border-bottom:1px solid var(--line);min-width:0;padding:16px}@media (width>=900px){.studio-col{border-bottom:0;border-right:1px solid var(--line)}.studio-col:last-child{border-right:0}}.studio-col h4,.qgis h4{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:0 0 10px;font-family:JetBrains Mono,monospace;font-size:.72rem;font-weight:500}.cat{gap:6px;font-size:.82rem;display:grid}.cat span{background:var(--surface-2);border-radius:8px;padding:6px 8px}.cat span.on{background:var(--accent-2);color:var(--accent);font-weight:600}.studio .code{margin:0;font-size:.74rem}.studio-map svg{border-radius:10px;width:100%;height:auto;display:block}.legend{color:var(--muted);flex-wrap:wrap;gap:10px;margin-top:10px;font-size:.74rem;display:flex}.legend i{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:5px;display:inline-block}.qgis{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:14px;overflow:hidden}.qgis-title{background:var(--surface-2);border-bottom:1px solid var(--line);color:var(--muted);align-items:center;gap:8px;padding:9px 14px;font-size:.8rem;display:flex}.qgis-title i{background:var(--line);border-radius:50%;width:10px;height:10px;display:inline-block}.qgis-body{display:grid}@media (width>=860px){.qgis-body{grid-template-columns:180px 1fr 300px}}.qgis-col{border-bottom:1px solid var(--line);min-width:0;padding:14px}@media (width>=860px){.qgis-col{border-bottom:0;border-right:1px solid var(--line)}.qgis-col:last-child{border-right:0}}.layers{gap:6px;font-size:.8rem;display:grid}.layers span{align-items:center;gap:8px;display:flex}.layers span:before{content:"";border:1px solid var(--line);background:var(--sw,var(--surface-2));border-radius:3px;width:12px;height:12px}.qgis-map svg{border-radius:8px;width:100%;height:auto;display:block}.dock{flex-direction:column;gap:10px;font-size:.84rem;display:flex}.dock .msg{max-width:100%;font-size:.84rem}.approve{gap:8px;margin-top:4px;display:flex}.approve span{text-align:center;border:1px solid var(--line);border-radius:8px;flex:1;padding:7px;font-size:.8rem;font-weight:600}.approve span:first-child{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.install{counter-reset:i;gap:12px;max-width:720px;margin:0;padding:0;list-style:none;display:grid}.install li{counter-increment:i;background:var(--surface);border:1px solid var(--line);border-radius:12px;grid-template-columns:32px 1fr;align-items:start;gap:12px;padding:16px;font-size:.95rem;display:grid}.install li:before{content:counter(i);background:var(--accent-2);width:28px;height:28px;color:var(--accent);border-radius:8px;place-items:center;font-size:.85rem;font-weight:700;display:grid}kbd{border:1px solid var(--line);background:var(--surface-2);border-radius:5px;padding:2px 6px;font-family:JetBrains Mono,monospace;font-size:.82em}.featured{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:20px;gap:32px;padding:28px;display:grid}@media (width>=900px){.featured{grid-template-columns:1.1fr 1fr;gap:48px;padding:40px}}.featured h2{font-size:clamp(1.6rem,3vw,2.2rem)}.meta{color:var(--muted);flex-wrap:wrap;gap:8px 16px;margin-top:12px;font-size:.82rem;display:flex}.kv{gap:8px;display:grid}.kv div{background:var(--surface-2);border-radius:10px;grid-template-columns:110px 1fr;gap:12px;padding:10px 12px;font-size:.86rem;display:grid}.kv div span:first-child{color:var(--muted)}.article{max-width:720px}.article h3{margin-top:32px;font-size:1.25rem}.article p,.article ul{margin-top:12px}.article ul{padding-left:20px}.article li{margin-top:6px}.compare{border-collapse:collapse;width:100%;margin-top:16px;font-size:.88rem}.compare th,.compare td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:10px 12px}.compare th{background:var(--surface-2);font-weight:600}.table-wrap{border:1px solid var(--line);border-radius:12px;margin-top:16px;overflow-x:auto}.table-wrap .compare{margin-top:0}.notes{gap:16px;display:grid}@media (width>=720px){.notes{grid-template-columns:repeat(2,1fr)}}.note{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);flex-direction:column;gap:10px;padding:22px;display:flex}.note p{font-size:.93rem}.note a{color:var(--accent);margin-top:auto;font-size:.88rem;font-weight:600;text-decoration:none}.note a:hover{text-decoration:underline}.callout{border-left:3px solid var(--accent);background:var(--accent-2);border-radius:0 12px 12px 0;margin-top:20px;padding:16px 18px;font-size:.95rem}.labs{gap:16px;display:grid}@media (width>=800px){.labs{grid-template-columns:repeat(2,1fr)}}.lab{border-radius:var(--radius);background:var(--bg);border:1px solid var(--line);flex-direction:column;gap:10px;padding:24px;display:flex}.lab-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.lab p{font-size:.93rem}.lab-ask{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-style:italic;font-size:.85rem!important}.vote{border:1px solid var(--line);background:var(--surface);min-height:40px;color:var(--text);font:inherit;cursor:pointer;border-radius:999px;align-self:flex-start;align-items:center;gap:8px;margin-top:auto;padding:8px 16px;font-size:.88rem;font-weight:600;transition:background .15s,border-color .15s;display:inline-flex}.vote:hover{border-color:var(--accent)}.vote:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.vote[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.vote-icon{font-size:.7rem}.teaser-visual{background:var(--surface-2);border-radius:12px;margin:-8px -8px 6px;overflow:hidden}.teaser-visual svg{width:100%;height:auto;display:block}.teaser .status{align-self:flex-start}.teaser:hover .teaser-visual svg{transform:scale(1.02)}.teaser-visual svg{transition:transform .25s}@media (prefers-reduced-motion:reduce){.teaser-visual svg{transition:none}}.nav-links{align-items:center}.nav-sep{background:var(--line);width:1px;height:16px}.nav-right{align-items:center;gap:8px;display:flex}.nav-toggle{border:1px solid var(--line);background:var(--surface);width:44px;height:44px;color:var(--text);cursor:pointer;border-radius:12px;place-items:center;display:inline-grid}.nav-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.nav-toggle .i-close,.nav-toggle[aria-expanded=true] .i-menu{display:none}.nav-toggle[aria-expanded=true] .i-close{display:inline}@media (width>=860px){.nav-toggle{display:none}}@media (width<=859px){nav.open .nav-links{background:var(--bg);border-bottom:1px solid var(--line);box-shadow:var(--shadow);flex-direction:column;align-items:stretch;gap:0;max-height:calc(100vh - 64px);padding:8px 16px 16px;display:flex;position:absolute;top:64px;left:0;right:0;overflow-y:auto}nav.open .nav-links a{color:var(--text);min-height:44px;padding:14px 4px;font-size:1rem}nav.open .nav-links a[aria-current=page]{color:var(--accent)}nav.open .nav-sep{width:auto;height:1px;margin:6px 0}}.chat-body{justify-content:flex-end}.chat-replay{border:1px solid var(--line);background:var(--surface);min-height:32px;color:var(--muted);font:inherit;cursor:pointer;border-radius:999px;margin-left:auto;padding:6px 12px;font-size:.78rem}.chat-replay:hover{color:var(--text);border-color:var(--accent)}.chat-replay:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.chat-input{border:1px solid var(--line);background:var(--surface-2);border-radius:22px;align-items:center;gap:10px;min-height:44px;margin:0 18px 18px;padding:6px 6px 6px 16px;font-size:.9rem;display:flex}.chat-input-text{white-space:nowrap;flex:1;min-width:0;display:block;overflow:hidden}.chat-input-text:empty:before{content:attr(data-placeholder);color:var(--muted)}.chat-input.typing .chat-input-text:after{content:"";vertical-align:-2px;background:var(--accent);width:2px;height:1em;margin-left:1px;animation:1s step-end infinite caret;display:inline-block}.chat-send{background:var(--accent);width:32px;height:32px;color:var(--accent-ink);border-radius:50%;flex:none;place-items:center;transition:transform .15s;display:grid}.chat-send.press{transform:scale(.82)}.msg.typing{gap:5px;padding:14px 16px;display:inline-flex}.msg.typing i{background:var(--muted);border-radius:50%;width:7px;height:7px;animation:1.1s ease-in-out infinite dot}.msg.typing i:nth-child(2){animation-delay:.15s}.msg.typing i:nth-child(3){animation-delay:.3s}.msg.pop{animation:.35s ease-out msg-in}.reveal{transition:opacity .45s,transform .45s}.reveal.pending{opacity:0;transform:translateY(8px)}svg .reveal.pending{transform:none}.map-card.in .chg,.qgis-map.in .chg{animation:1.4s ease-out chg}@keyframes caret{50%{opacity:0}}@keyframes dot{0%,60%,to{opacity:.5;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}@keyframes msg-in{0%{opacity:0;transform:translateY(8px)}}@keyframes chg{0%{fill-opacity:0}50%{fill-opacity:1}to{fill-opacity:.75}}.qgis-title{min-height:44px;display:flex}.qgis-title .chat-replay{min-height:24px;padding:2px 10px}.dock .chat-input{min-height:38px;margin:auto 0 0;padding:4px 4px 4px 12px;font-size:.82rem}.dock .chat-send{width:28px;height:28px}.approve span{transition:transform .15s}.approve span.press{transform:scale(.9)}.ring{transition:opacity .5s}.ring.gone{opacity:0}.run-tag,.studio-bar .chat-replay{flex:none}.prompt.typing{text-overflow:clip}.prompt.typing:after{content:"";vertical-align:-2px;background:var(--accent);width:2px;height:1em;margin-left:1px;animation:1s step-end infinite caret;display:inline-block}.waitlist .btn{cursor:pointer;font:inherit;font-weight:600}.waitlist .btn:disabled{opacity:.7;cursor:progress}.waitlist .cf-turnstile{flex-basis:100%;justify-content:center;display:flex}.form-status{min-height:1.5em;color:var(--accent);text-align:center;flex-basis:100%;margin:2px 0 0;font-size:.9rem}.form-status.error{color:var(--danger)}.logo{gap:9px}.logo-mark svg{width:18px;height:18px}.wm{letter-spacing:-.045em;align-items:baseline;font-size:1.2rem;font-weight:800;display:inline-flex}.wm .i{position:relative}.wm .i:after{content:"";background:var(--accent);border-radius:50%;width:.21em;height:.21em;position:absolute;top:-.02em;left:50%;transform:translate(-50%)}footer .wm{font-size:1.05rem}footer .logo-mark{border-radius:8px;width:26px;height:26px}footer .logo-mark svg{width:15px;height:15px}.avatar{background:var(--accent)}.avatar svg{width:56%;height:56%;color:var(--accent-ink)}.status.planned:before{background:var(--muted)}.page-hero .channels{margin-top:22px}footer{padding-bottom:28px}.footer-legal{border-top:1px solid var(--line);margin-top:20px;padding-top:18px;font-size:.82rem}.form-consent{color:var(--muted);text-align:center;flex-basis:100%;margin:0;font-size:.8rem}.form-consent a{color:inherit}.legal-hero{padding-bottom:24px}.legal{max-width:760px}.legal h2{margin:40px 0 0;font-size:1.25rem}.legal p,.legal ul,.legal .table-wrap{margin-top:12px}.legal ul{padding-left:22px}.legal li{margin-top:6px}.legal a{color:var(--accent)}.legal .lead-note{border-left:3px solid var(--accent);background:var(--accent-2);border-radius:0 12px 12px 0;padding:16px 18px}.legal .compare td:first-child{width:38%}footer{background:var(--surface);padding:56px 0 28px}footer .wrap.footer-grid{gap:32px 24px;justify-content:initial;grid-template-columns:repeat(2,1fr);display:grid}@media (width>=900px){footer .wrap.footer-grid{grid-template-columns:1.6fr repeat(4,1fr)}}.footer-brand{flex-direction:column;grid-column:1/-1;align-items:flex-start;gap:12px;display:flex}@media (width>=900px){.footer-brand{grid-column:auto}}.footer-brand p{max-width:16rem;font-size:.92rem}footer a.footer-cta{color:var(--accent);font-size:.9rem;font-weight:600}footer a.footer-cta:hover{text-decoration:underline}.footer-col h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 12px;font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:500}.footer-col ul{gap:4px;margin:0;padding:0;list-style:none;display:grid}footer .footer-col a{color:var(--text);padding:4px 0;font-size:.92rem;display:inline-block}footer .footer-col a:hover{color:var(--accent)}footer .wrap.footer-bottom{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:8px 16px;margin-top:40px;padding-top:20px;font-size:.82rem;display:flex}footer a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}@media (width>=800px){.lab-wide{grid-column:1/-1}}.lab-featured{border-color:var(--accent)}.call-grid{align-items:start;gap:32px;display:grid}@media (width>=900px){.call-grid{grid-template-columns:1fr 1.3fr;gap:56px}}.call-info{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);padding:24px}.call-info h2{font-size:1.15rem}.call-info ul{gap:10px;margin:14px 0 0;padding-left:20px;font-size:.95rem;display:grid}.call-info a{color:var(--accent)}.call-form{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);gap:16px;padding:24px;display:grid}.field{gap:6px;display:grid}.field label{font-size:.92rem;font-weight:600}.field .optional{color:var(--muted);font-weight:400}.field input,.field select,.field textarea{border:1px solid var(--line);background:var(--bg);width:100%;min-height:46px;color:var(--text);font:inherit;border-radius:12px;padding:10px 14px}.field textarea{resize:vertical;min-height:120px}.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.call-form .btn{cursor:pointer;font:inherit;justify-self:start;font-weight:600}.call-form .btn:disabled{opacity:.7;cursor:progress}.call-form .form-status,.call-form .form-consent{text-align:left}.call-done{border-radius:var(--radius);background:var(--accent-2);border:1px solid var(--accent);padding:32px 24px}.call-done p{margin-top:8px}.lab-actions{flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:auto;display:flex}.lab-actions .vote{margin-top:0}.lab-call{color:var(--accent);font-size:.88rem;font-weight:600;text-decoration:none}.lab-call:hover{text-decoration:underline}.article-grid{gap:16px;display:grid}@media (width>=720px){.article-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1040px){.article-grid-3{grid-template-columns:repeat(3,1fr)}}.article-card{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);flex-direction:column;gap:10px;padding:24px;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}.article-card:hover{border-color:var(--accent);transform:translateY(-2px)}.article-card:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.article-card h3{font-size:1.15rem;line-height:1.3}.article-card p{font-size:.93rem}.article-card .go{color:var(--accent);margin-top:auto;font-size:.88rem;font-weight:600}.article-card[hidden]{display:none}.article-card-featured{background:var(--surface);box-shadow:var(--shadow);margin-bottom:16px;padding:32px}.article-card-featured h3{font-size:clamp(1.4rem,3vw,1.9rem)}.article-card-featured p{max-width:44rem;font-size:1.02rem}.article-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:.8rem;display:flex}.filters{flex-wrap:wrap;gap:8px;margin-bottom:24px;display:flex}.filter{border:1px solid var(--line);background:var(--surface);min-height:38px;color:var(--text);font:inherit;cursor:pointer;border-radius:999px;padding:6px 14px;font-size:.88rem}.filter[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.filter:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.filter-empty{margin-top:16px}.journal-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;max-width:none;display:flex}.go-link{color:var(--accent);font-weight:600;text-decoration:none}.go-link:hover{text-decoration:underline}.article-wrap{max-width:760px}.article-hero h1{margin-top:10px;font-size:clamp(1.9rem,4.5vw,2.8rem)}.back{color:var(--muted);font-size:.9rem;text-decoration:none}.back:hover{color:var(--accent)}.article-byline{align-items:center;gap:12px;margin-top:24px;font-size:.9rem;line-height:1.4;display:flex}.article-byline .logo-mark{flex:none;width:36px;height:36px}.prose{font-size:1.04rem;line-height:1.75}.prose>*+*{margin-top:1.1em}.prose h2{margin-top:2em;font-size:1.45rem}.prose h3{margin-top:1.8em;font-size:1.15rem}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:.4em}.prose a{color:var(--accent)}.prose strong{color:var(--text)}.prose blockquote{border-left:3px solid var(--accent);background:var(--accent-2);border-radius:0 12px 12px 0;margin:0;padding:14px 18px;font-size:.95rem}.prose blockquote p{margin:0}.prose code{background:var(--surface-2);border-radius:6px;padding:2px 6px;font-family:JetBrains Mono,monospace;font-size:.88em}.prose table{border-collapse:collapse;width:100%;font-size:.92rem;line-height:1.5;display:block;overflow-x:auto}.prose th,.prose td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:10px 12px}.prose thead th{background:var(--surface-2);font-weight:600}.prose thead:has(th:empty){display:none}.article-cta{border-radius:var(--radius);background:var(--surface);border:1px solid var(--accent);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:48px;padding:24px;display:flex}.article-cta p{max-width:30rem}.access{gap:16px;display:grid}@media (width>=800px){.access{grid-template-columns:repeat(2,1fr)}}.access-card{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);flex-direction:column;gap:10px;padding:28px;display:flex}.access-card:first-child{border:2px solid var(--accent)}.access-card h3{font-size:1.35rem}.access-card ul{flex:1;gap:8px;margin:6px 0 18px;padding:0;font-size:.95rem;list-style:none;display:grid}.access-card li:before{content:"✓ ";color:var(--accent);font-weight:700}.access-card .btn{align-self:flex-start}.access-note{text-align:center;margin-top:20px;font-size:.88rem}.industries-head{margin:56px 0 20px}.industries-head h3{font-size:1.35rem}.industries-head p{margin-top:6px;font-size:.92rem}.industries{gap:16px;display:grid}@media (width>=720px){.industries{grid-template-columns:repeat(2,1fr)}}@media (width>=1040px){.industries{grid-template-columns:repeat(3,1fr)}}.industry{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);flex-direction:column;gap:8px;padding:22px;display:flex}.industry h4{margin:0;font-size:1.08rem;line-height:1.35}.industry p.muted{font-size:.92rem}.industry a{color:var(--accent);margin-top:auto;padding-top:6px;font-size:.88rem;font-weight:600;text-decoration:none}.industry a:hover{text-decoration:underline}.flowmap{gap:10px;margin-bottom:28px;display:grid}@media (width>=960px){.flowmap{grid-template-columns:1fr auto 1.15fr auto 1fr auto 1fr;align-items:stretch}}.flow-col{border-radius:var(--radius);background:var(--bg);border:1px solid var(--line);padding:18px}.flow-yerin{border:2px solid var(--accent);background:var(--accent-2)}.flow-title{text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:10px;font-family:JetBrains Mono,monospace;font-size:.75rem}.flow-col ul{gap:6px;margin:0;padding:0;font-size:.9rem;list-style:none;display:grid}.flow-col li{padding-left:14px;position:relative}.flow-col li:before{content:"";background:var(--accent);border-radius:2px;width:6px;height:6px;position:absolute;top:.6em;left:0}.flow-arrow{color:var(--accent);place-items:center;font-size:1.3rem;display:grid;transform:rotate(90deg)}@media (width>=960px){.flow-arrow{transform:none}}.hue-forest{--hue:var(--forest);--hue-tint:var(--forest-tint)}.hue-water{--hue:var(--water);--hue-tint:var(--water-tint)}.hue-sand{--hue:var(--sand);--hue-tint:var(--sand-tint)}.hue-clay{--hue:var(--clay);--hue-tint:var(--clay-tint)}.hue-plum{--hue:var(--plum);--hue-tint:var(--plum-tint)}.hero .contours{opacity:.9}.hero .contours path{stroke-width:1.3px}.hero .contours path:first-child{stroke:var(--water);opacity:.35}.hero .contours path:nth-child(2){stroke:var(--water);opacity:.25}.hero .contours path:nth-child(3){stroke:var(--forest);opacity:.28}.hero .contours path:nth-child(4){stroke:var(--forest);opacity:.22}.hero .contours path:nth-child(5){stroke:var(--sand);opacity:.3}.hero .contours path:nth-child(6){stroke:var(--sand);opacity:.4}.hero .contours path:nth-child(7){stroke:var(--clay);opacity:.45}.flow-col[class*=hue-],.industry[class*=hue-],.int-group[class*=hue-]{border-top:3px solid var(--hue)}.flow-col[class*=hue-]{background:var(--hue-tint);border-color:#0000;border-top-color:var(--hue)}.flow-col[class*=hue-] .flow-title{color:var(--hue)}.flow-col[class*=hue-] li:before{background:var(--hue)}.flow-yerin{border-style:solid;border-width:2px;border-color:var(--forest)}.flow-arrow{color:var(--muted)}.industry .eyebrow{align-items:center;gap:8px;display:inline-flex}.industry .eyebrow:before{content:"";background:var(--hue);border-radius:3px;width:10px;height:10px}.industry a{color:var(--hue,var(--accent))}.int-group h3{align-items:center;gap:8px;display:flex}.int-group h3:before{content:"";background:var(--hue,var(--accent));border-radius:3px;width:10px;height:10px}.status[class*=hue-]{background:var(--hue-tint);color:var(--hue);border-color:#0000}.article-card .tag{background:var(--hue-tint);color:var(--hue)}.article-card:hover{border-color:var(--hue,var(--accent))}.bar i{background:var(--clay)}.flow-step b.hue-water,.flow-step b.hue-sand,.flow-step b.hue-clay{color:var(--hue)}.final{background:var(--band-bg);color:var(--band-text);border:0}.final.alt{background:var(--band-bg)}.final .muted,.final p{color:var(--band-muted)}.final .waitlist input{border-color:#0000}.final .form-status{color:var(--band-text)}.final .form-status.error{color:#ffd7cf}.final .form-consent,.final .form-consent a{color:var(--band-muted)}.final .btn-primary{background:var(--band-text);color:var(--band-bg)}.step{border-left:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg)}.step:before{background:var(--water-tint);width:30px;height:30px;color:var(--water);content:counter(s);border-radius:9px;place-items:center;font-family:inherit;font-size:.85rem;font-weight:800;display:inline-grid}.flow-title{text-transform:none;letter-spacing:0;font-family:inherit;font-size:.92rem;font-weight:800}.footer-col h2{text-transform:none;letter-spacing:0;color:var(--text);font-family:inherit;font-size:.85rem;font-weight:800}
