body{margin:0;background:#070d0a}
*{box-sizing:border-box}
a{color:#d6f36d}a:hover{color:#e9fbae}
h1,h2,h3,h4,p{margin:0}
.wrap{width:100%;max-width:1200px;margin:0 auto;padding:0 24px}
.mono{font-family:'Geist Mono',ui-monospace,SFMono-Regular,monospace}
.eyebrow{font:500 12px/1.4 'Geist Mono',ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase;color:#d6f36d;display:inline-flex;align-items:center;gap:8px}
.eyebrow:before{content:'';width:6px;height:6px;background:#d6f36d;border-radius:1px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 18px;border-radius:10px;font:600 14.5px/1 Geist,Inter,system-ui,sans-serif;text-decoration:none;cursor:pointer;white-space:nowrap;border:1px solid transparent}
.btn-lime{background:#d6f36d;color:#0a1a12;border-color:#d6f36d}.btn-lime:hover{background:#e6fb9a;color:#0a1a12}
.btn-ghost{background:transparent;color:#e8efe9;border-color:#2a3b31}.btn-ghost:hover{background:#111c16;border-color:#3b5145;color:#ffffff}
.btn svg{width:16px;height:16px}
.card{background:#0c1510;border:1px solid #1d2b23;border-radius:14px;min-width:0}
.tag{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px;border-radius:6px;font:500 11.5px/1 'Geist Mono',monospace;color:#b9c8bd;background:#111c16;border:1px solid #1f2e25;white-space:nowrap}
.check{display:flex;gap:10px;font-size:14px;color:#c6d3c9;line-height:1.5}
.check:before{content:'';flex-shrink:0;width:16px;height:16px;margin-top:2px;border-radius:4px;background:#1b3324 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%23d6f36d' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px no-repeat}
.navlink{color:#b9c8bd;text-decoration:none;font-size:14px;font-weight:500}.navlink:hover{color:#ffffff}
.faq{border-top:1px solid #1d2b23}
.faq>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;font-size:17px;font-weight:600;color:#e8efe9;cursor:pointer;list-style:none}
.faq>summary::-webkit-details-marker{display:none}
.faq>summary:after{content:'+';font:400 22px 'Geist Mono',monospace;color:#d6f36d}
.faq[open]>summary:after{content:'−'}
.faq>p{padding:0 0 22px;color:#9fb0a4;font-size:15px;line-height:1.65;max-width:760px}
.mx td,.mx th{padding:11px 12px;border-top:1px solid #1a2820;text-align:center;font-size:13.5px}
.mx th{font:500 11.5px/1.3 'Geist Mono',monospace;letter-spacing:.08em;text-transform:uppercase;color:#8fa195;border-top:0}
.mx td:first-child,.mx th:first-child{text-align:left;padding-left:0;color:#dfe8e1}
.yes{display:inline-block;width:8px;height:8px;border-radius:2px;background:#d6f36d}
.no{display:inline-block;width:10px;height:1.5px;background:#3a4a40;vertical-align:middle}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible{outline:2px solid #d6f36d;outline-offset:3px}

/* pipeline */
.pipe{display:flex;align-items:flex-start;gap:0}
.node{flex:0 0 176px;height:164px;border:1px solid #22342a;border-radius:12px;background:#0d1712;padding:12px;display:flex;flex-direction:column;gap:7px;position:relative;animation:glow 3.2s ease-in-out infinite}
.node.hl{border-color:#4f6f3a;background:#101d15}
.node-h{display:flex;align-items:center;justify-content:space-between;gap:6px;font:500 10.5px/1.2 'Geist Mono',monospace;letter-spacing:.08em;text-transform:uppercase;color:#8fa195}
.node-t{font-size:15px;font-weight:650;color:#ffffff;letter-spacing:-.01em;line-height:1.2}
.conn{flex:1 1 36px;min-width:26px;height:164px;position:relative;overflow:hidden}
.conn:before{content:'';position:absolute;left:0;right:0;top:50%;height:1px;background:repeating-linear-gradient(90deg,#335a40 0 6px,transparent 6px 11px)}
.pkt{position:absolute;top:50%;left:-10px;width:8px;height:8px;margin-top:-4px;border-radius:2px;background:#d6f36d;box-shadow:0 0 10px rgba(214,243,109,.8);animation:flowX 1.9s linear infinite}
.pkt.d2{animation-delay:.63s}.pkt.d3{animation-delay:1.26s}
.pkt.slow{animation-duration:2.6s;background:#7fd1a8;box-shadow:0 0 10px rgba(127,209,168,.8)}
@keyframes flowX{from{left:-10px}to{left:100%}}
@keyframes flowY{from{top:-10px}to{top:100%}}
@keyframes glow{0%,100%{box-shadow:0 0 0 0 rgba(214,243,109,0)}50%{box-shadow:0 0 0 3px rgba(214,243,109,.06)}}
@keyframes ping{0%{transform:scale(1);opacity:.9}100%{transform:scale(2.6);opacity:0}}
@keyframes lineIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@keyframes rowA{from{opacity:0;transform:translateY(-8px);background:rgba(214,243,109,.16)}to{opacity:1;transform:none;background:transparent}}
@keyframes rowB{from{opacity:0;transform:translateY(-8px);background:rgba(214,243,109,.16)}to{opacity:1;transform:none;background:transparent}}
@keyframes fill{0%{width:0}70%,100%{width:100%}}
@keyframes blink{50%{opacity:0}}
@keyframes shimmer{from{background-position:200% 0}to{background-position:-200% 0}}
.live{position:relative;width:8px;height:8px;border-radius:50%;background:#d6f36d;flex-shrink:0}
.live:after{content:'';position:absolute;inset:0;border-radius:50%;background:#d6f36d;animation:ping 1.6s ease-out infinite}
.ln{opacity:0;animation:lineIn .35s ease forwards}
.fadein{animation:lineIn .45s ease}
.sql{font:12.5px/1.75 'Geist Mono',monospace;color:#c6d3c9;white-space:pre}
.k{color:#d6f36d}.s{color:#e9c46a}.c{color:#5f7266}.n{color:#7fd1a8}
.cursor{display:inline-block;width:7px;height:14px;background:#d6f36d;vertical-align:-2px;animation:blink 1s step-end infinite}
@media(max-width:900px){
 .pipe{flex-direction:column;align-items:stretch}
 .node{flex:none;width:100%;height:auto;min-height:0}
 .conn{flex:0 0 34px;height:34px;min-width:0}
 .conn:before{left:50%;right:auto;top:0;bottom:0;width:1px;height:auto;background:repeating-linear-gradient(180deg,#335a40 0 6px,transparent 6px 11px)}
 .pkt{left:50%;margin-left:-4px;top:-10px;margin-top:0;animation-name:flowY}
}

/* spreadsheet */
.xl{border-collapse:separate;border-spacing:0;font:12.5px/1.35 'Geist Mono',ui-monospace,monospace;color:#192a25;min-width:100%}
.xl th,.xl td{border-right:1px solid #e3e8df;border-bottom:1px solid #e3e8df;padding:0 10px;height:30px;white-space:nowrap;text-align:right;background:#ffffff}
.xl .lt{position:sticky;top:0;z-index:3;height:22px;background:#f3f6ef;color:#7a887f;font-size:11px;font-weight:500;text-align:center}
.xl .hd{position:sticky;top:22px;z-index:3;background:#eaf1e1;color:#193c30;font:600 12px Geist,Inter,sans-serif;text-align:left;cursor:pointer;user-select:none}
.xl .hd:hover{background:#dfead2}
.xl .rn{position:sticky;left:0;z-index:2;width:40px;min-width:40px;background:#f3f6ef;color:#7a887f;font-size:11px;text-align:center;padding:0}
.xl .w{position:sticky;left:40px;z-index:2;text-align:left;font-weight:500}
.xl .corner{position:sticky;left:0;top:0;z-index:5;background:#e9eee4}
.xl .corner2{position:sticky;left:0;top:22px;z-index:5;background:#e9eee4}
.xl .lt.w,.xl .hd.w{z-index:4}
.xl td{cursor:cell}
.xl tbody tr:hover td{background:#f7faf2}
.xl tbody tr:hover td.rn{background:#e9eee4}
.sheet-tab{height:30px;padding:0 14px;border:0;border-right:1px solid #dfe5da;background:transparent;font:500 12.5px Geist,Inter,sans-serif;color:#5d6b63;cursor:pointer}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.ln{opacity:1}}
[hidden]{display:none!important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
.lang-link{display:flex;align-items:center;justify-content:center;width:32px;height:28px;border-radius:6px;font:500 12px 'Geist Mono',monospace;text-decoration:none;color:#8fa195}
.lang-link:hover{color:#ffffff}
.lang-link[aria-current]{font-weight:600;background:#16241c;color:#d6f36d}
@media(max-width:960px){
 #landing header nav{display:none!important}
}
@media(max-width:600px){
 .wrap{padding:0 16px}
 #landing header .btn{padding:0 12px}
 #landing section[id]{scroll-margin-top:72px}
}
@media(min-width:901px){
 .pipe{align-items:stretch}
 .node{height:auto;min-height:164px}
 .conn{height:auto}
}
@media(max-width:700px){
 .xl-footer{flex-wrap:wrap}
 .xl-footer .xl-status{white-space:normal!important;padding:6px 14px 8px!important}
}
@media(max-width:600px){
 .xl-head{padding:10px 12px!important;gap:10px!important}
 .xl-tools{width:100%;display:grid!important;grid-template-columns:1fr 1fr;gap:6px!important}
 .xl-tools .xl-search{grid-column:1/-1}
 .xl-tools .xl-search-input{width:100%!important;min-width:0}
 .xl-tools .xl-expand{display:none!important}
 .xl-tools>button,.xl-tools>a{justify-content:center}
 .xl-kpis{flex-wrap:nowrap!important;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none}
 .xl-kpis::-webkit-scrollbar{display:none}
 .xl-kpi{flex:0 0 auto!important;min-width:116px;padding:8px 12px!important;gap:1px!important;scroll-snap-align:start}
 .xl-kpi-label{font-size:9.5px!important}
 .xl-kpi-value{font-size:16px!important;line-height:1.25!important}
 .xl-kpi-sub{font-size:10.5px!important}
 .xl-dist{flex:0 0 240px!important;padding:8px 12px!important;gap:5px!important}
 .xl-box{max-height:400px!important}
}
@media(max-width:600px){
 #landing section{padding-top:64px!important;padding-bottom:64px!important}
 #landing #community{padding-top:0!important}
 #landing .hero{padding-top:36px!important;padding-bottom:48px!important;gap:32px!important}
 .stats-strip{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .stats-strip>div{padding:18px 12px!important;border-right:0!important}
 .stats-strip>div:nth-child(odd){border-right:1px solid #16221b!important}
 .stats-strip>div:nth-child(-n+2){border-bottom:1px solid #16221b}
 .stats-strip>div>div:first-child{font-size:24px!important}
 .stats-strip>div>div:last-child{font-size:12.5px!important}
 .mx{min-width:0!important}
 .mx td,.mx th{padding:9px 5px!important;font-size:12.5px!important}
 .mx th{font-size:10px!important;letter-spacing:.04em!important}
 .feed-row{grid-template-columns:56px 48px 32px minmax(0,1fr) auto!important;gap:6px!important;font-size:11px}
 .feed-row>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
@media(max-width:600px){
 #dda-calc .calc-pad{padding:18px 16px!important}
 #dda-calc .calc-presets{grid-template-columns:repeat(3,minmax(0,1fr))!important}
 #dda-calc .calc-presets .mono{font-size:10px!important}
}
