/* H19 Data Import — 26s loop: tour your favorite tools → pick Customer Spreadsheet → drop CSV → columns auto-map (one picked manually) → import → 248 customers in (needs hero-graphics.css shell) */
.rcg .h19{--t:26s}
.rcg .h19 .vw{position:absolute;inset:0;padding:18px 22px;opacity:0}
.rcg .h19 .vw.src{opacity:1;animation:diA var(--t) ease-in-out infinite}.rcg .h19 .vw.map{animation:diB var(--t) ease-in-out infinite}
@keyframes diA{0%,15.38%,28.08%{opacity:1;transform:none}29.77%,100%{opacity:0;transform:translateX(-10px)}}
@keyframes diB{0%,15.38%,28.5%{opacity:0;transform:translateX(10px)}30.19%,100%{opacity:1;transform:none}}
.rcg .h19 .kk{font-size:8px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--g-mute,#6b7280)}
.rcg .h19 .ttl{font-size:14px;font-weight:700;letter-spacing:-.01em;margin:3px 0 12px}
.rcg .h19 .cols{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.rcg .h19 .gl{font-size:9.5px;color:var(--g-mute,#6b7280);margin-bottom:6px}
.rcg .h19 .srow{display:flex;align-items:center;gap:9px;height:38px;padding:0 9px;border:1px solid var(--g-line,#e6e8ed);border-radius:7px;margin-bottom:6px;background:var(--g-bg,#fff);position:relative}
.rcg .h19 .srow .ic{width:22px;height:22px;border-radius:5px;border:1px solid var(--g-line,#e6e8ed);background:var(--g-soft,#f6f7f9);display:grid;place-items:center;flex:none;font-size:9px;font-weight:800}
.rcg .h19 .srow .ic.g{color:var(--grn)}.rcg .h19 .srow .ic.b{color:var(--blue)}.rcg .h19 .srow .ic.p{color:var(--pur)}.rcg .h19 .srow .ic.qb{background:#2ca01c;border-color:#2ca01c;color:#fff;border-radius:50%}.rcg .h19 .srow .ic.tq{background:#111318;border-color:#111318;color:#fff;font-size:10px}
.rcg .h19 .srow b{font-size:10.5px;font-weight:600}
.rcg .h19 .srow .cp{margin-left:auto;display:flex;gap:7px;font-size:8.5px;color:var(--g-mute,#6b7280);white-space:nowrap}
.rcg .h19 .srow.pick{animation:dipick var(--t) step-end infinite}
@keyframes dipick{0%,15.38%,26.89%{border-color:var(--g-line,#e6e8ed);box-shadow:none}26.9%,100%{border-color:var(--blue);box-shadow:0 0 0 2px var(--g-bluetint,rgba(27,100,243,.12))}}
/* map view */
.rcg .h19 .hd2{display:flex;align-items:center;gap:8px;margin-bottom:10px}.rcg .h19 .hd2 .bk{font-size:9px;color:var(--g-mute,#6b7280)}.rcg .h19 .hd2 .ttl{margin:0}.rcg .h19 .hd2 .stp{margin-left:auto;font-size:9px;color:var(--g-mute,#6b7280)}
.rcg .h19 .dz{position:relative;height:64px;border:1.5px dashed var(--g-blueline,#c9d8fb);border-radius:8px;display:grid;place-items:center;align-content:center;gap:3px;text-align:center;margin-bottom:10px;overflow:hidden}
.rcg .h19 .dz .ph{display:grid;gap:3px;justify-items:center;animation:diph var(--t) step-end infinite}.rcg .h19 .dz .ph b{font-size:10.5px;font-weight:700}.rcg .h19 .dz .ph small{font-size:8.5px;color:var(--g-mute,#6b7280)}
@keyframes diph{0%,15.38%,30.62%{opacity:1}30.62%,100%{opacity:0}}
.rcg .h19 .dz .fc{position:absolute;left:14px;right:14px;top:14px;display:flex;align-items:center;gap:10px;opacity:0;animation:difc var(--t) cubic-bezier(.2,.9,.3,1.2) infinite}
@keyframes difc{0%,15.38%,30.62%{opacity:0;transform:translateY(-10px)}31.88%,100%{opacity:1;transform:none}}
.rcg .h19 .dz .fc .fi{width:26px;height:30px;border-radius:4px;background:var(--g-gtint,#f0fdf4);border:1px solid var(--g-gline,#bbf7d0);color:var(--grn);font-size:6.5px;font-weight:800;display:grid;place-items:center;flex:none}
.rcg .h19 .dz .fc .fn{text-align:left;flex:1}.rcg .h19 .dz .fc .fn b{display:block;font-size:10px;font-weight:600}.rcg .h19 .dz .fc .fn small{display:block;font-size:8.5px;color:var(--g-mute,#6b7280);margin-top:2px}
.rcg .h19 .dz .fc .bar{width:100%;margin-top:5px}.rcg .h19 .dz .fc .bar i{transform:scaleX(0);animation:dibar var(--t) linear infinite}
@keyframes dibar{0%,15.38%,31.04%{transform:scaleX(0)}35.69%,100%{transform:scaleX(1)}}
.rcg .h19 .dz .fc .sw{display:inline-grid}.rcg .h19 .dz .fc .sw>*{grid-area:1/1;white-space:nowrap}.rcg .h19 .dz .fc .sw .a{animation:didta var(--t) step-end infinite}.rcg .h19 .dz .fc .sw .b{opacity:0;animation:didtb var(--t) step-end infinite}
@keyframes didta{0%,15.38%,35.69%{opacity:1}35.7%,100%{opacity:0}}@keyframes didtb{0%,15.38%,35.69%{opacity:0}35.7%,100%{opacity:1}}
.rcg .h19 .dz .fc .ok{margin-left:auto;color:var(--grn);font-size:9.5px;font-weight:700;opacity:0;animation:didtb var(--t) step-end infinite}
/* mapping table */
.rcg .h19 .mt{border:1px solid var(--g-line,#e6e8ed);border-radius:8px;overflow:hidden;margin-bottom:10px}
.rcg .h19 .mt .hd,.rcg .h19 .mt .row{grid-template-columns:200px 220px minmax(0,1fr)}
.rcg .h19 .mt .hd{padding:7px 10px;background:var(--g-soft,#f6f7f9);border-bottom:1px solid var(--g-line,#e6e8ed)}
.rcg .h19 .mt .row{height:30px;border-bottom:1px solid var(--g-line,#e6e8ed)}.rcg .h19 .mt .row:last-child{border-bottom:0}
.rcg .h19 .mt .row .c1{font-weight:600;display:flex;align-items:center;gap:6px}.rcg .h19 .mt .row .c1 i{width:5px;height:5px;border-radius:50%;background:var(--g-mute3,#d1d5db)}
.rcg .h19 .mt .row .c3{color:var(--g-mute,#6b7280);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:9px}
.rcg .h19 .mt .fs{display:inline-grid;align-items:center}.rcg .h19 .mt .fs>*{grid-area:1/1;white-space:nowrap}
.rcg .h19 .mt .fs .a{color:var(--g-mute2,#9aa0ab);font-size:9px;display:flex;align-items:center;gap:5px}.rcg .h19 .mt .fs .a::before{content:"";width:7px;height:7px;border:1.5px solid currentColor;border-right-color:transparent;border-radius:50%;animation:dispin .9s linear infinite}
@keyframes dispin{to{transform:rotate(360deg)}}
.rcg .h19 .mt .fs .b{opacity:0;display:flex;align-items:center;gap:6px;font-weight:600;font-size:9.5px}.rcg .h19 .mt .fs .b .tk{width:12px;height:12px;border-radius:50%;background:var(--grn);display:grid;place-items:center}.rcg .h19 .mt .fs .b .tk svg{width:7px;height:7px;fill:none;stroke:#fff;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round}
.rcg .h19 .mt .fs .b .au{font-size:8px;color:var(--g-mute,#6b7280);font-weight:500}
.rcg .h19 .mt .m1 .a{animation:dima1 var(--t) step-end infinite}.rcg .h19 .mt .m1 .b{animation:dimb1 var(--t) step-end infinite}
.rcg .h19 .mt .m2 .a{animation:dima2 var(--t) step-end infinite}.rcg .h19 .mt .m2 .b{animation:dimb2 var(--t) step-end infinite}
.rcg .h19 .mt .m3 .a{animation:dima3 var(--t) step-end infinite}.rcg .h19 .mt .m3 .b{animation:dimb3 var(--t) step-end infinite}
.rcg .h19 .mt .m4 .a{animation:dima4 var(--t) step-end infinite}.rcg .h19 .mt .m4 .b{animation:dimb4 var(--t) step-end infinite}
@keyframes dima1{0%,15.38%,37.38%{opacity:1}37.39%,100%{opacity:0}}@keyframes dimb1{0%,15.38%,37.38%{opacity:0}37.39%,100%{opacity:1}}
@keyframes dima2{0%,15.38%,39.92%{opacity:1}39.93%,100%{opacity:0}}@keyframes dimb2{0%,15.38%,39.92%{opacity:0}39.93%,100%{opacity:1}}
@keyframes dima3{0%,15.38%,42.46%{opacity:1}42.47%,100%{opacity:0}}@keyframes dimb3{0%,15.38%,42.46%{opacity:0}42.47%,100%{opacity:1}}
@keyframes dima4{0%,15.38%,45%{opacity:1}45.01%,100%{opacity:0}}@keyframes dimb4{0%,15.38%,45%{opacity:0}45.01%,100%{opacity:1}}
.rcg .h19 .mt .m5 .a{animation:dima5 var(--t) step-end infinite}.rcg .h19 .mt .m5 .a::before{display:none}
.rcg .h19 .mt .m5 .sel{opacity:0;height:22px;font-size:9px;border-color:var(--org);color:var(--org);animation:disel var(--t) step-end infinite}
.rcg .h19 .mt .m5 .b{animation:dimb5 var(--t) step-end infinite}
@keyframes dima5{0%,15.38%,47.54%{opacity:1}47.55%,100%{opacity:0}}
@keyframes disel{0%,15.38%,47.54%{opacity:0}47.55%,53.46%{opacity:1}53.47%,100%{opacity:0}}
@keyframes dimb5{0%,15.38%,53.46%{opacity:0}53.47%,100%{opacity:1}}
.rcg .h19 .pop.dd{left:302px;top:294px;width:150px;padding:5px;display:grid;gap:1px;opacity:0;transform:scale(.94);transform-origin:0 0;animation:didd var(--t) cubic-bezier(.2,.9,.3,1.1) infinite}
.rcg .h19 .pop.dd span{height:21px;display:flex;align-items:center;padding:0 7px;border-radius:4px;font-size:9px;font-weight:600;color:var(--g-ink2,#3a3f4b)}.rcg .h19 .pop.dd span.hv{animation:didhv var(--t) step-end infinite}
@keyframes didd{0%,15.38%,50.08%{opacity:0;transform:scale(.94)}50.92%,53.29%{opacity:1;transform:none}53.63%,100%{opacity:0;transform:scale(.97)}}
@keyframes didhv{0%,15.38%,52.19%{background:transparent;color:var(--g-ink2,#3a3f4b)}52.2%,100%{background:var(--g-bluetint,rgba(27,100,243,.08));color:var(--blue)}}
/* footer */
.rcg .h19 .ft{display:flex;align-items:center;gap:12px}
.rcg .h19 .ft .sm{display:inline-grid;font-size:9.5px;color:var(--g-mute,#6b7280)}.rcg .h19 .ft .sm>*{grid-area:1/1;white-space:nowrap}.rcg .h19 .ft .sm .a{animation:disma var(--t) step-end infinite}.rcg .h19 .ft .sm .b{opacity:0;animation:dismb var(--t) step-end infinite}.rcg .h19 .ft .sm b{color:var(--g-ink,#111318);font-weight:700}
@keyframes disma{0%,15.38%,53.46%{opacity:1}53.47%,100%{opacity:0}}@keyframes dismb{0%,15.38%,53.46%{opacity:0}53.47%,100%{opacity:1}}
.rcg .h19 .ft .btn.imp{margin-left:auto;animation:diimp var(--t) step-end infinite;position:relative;overflow:hidden}
@keyframes diimp{0%,15.38%,53.46%{opacity:.45}53.47%,61.08%{opacity:1}61.09%,61.58%{opacity:1;filter:brightness(.85)}61.59%,100%{opacity:1;filter:none}}
.rcg .h19 .ft .btn.imp .sw{display:inline-grid}.rcg .h19 .ft .btn.imp .sw>*{grid-area:1/1;white-space:nowrap}.rcg .h19 .ft .btn.imp .sw .a{animation:dibta var(--t) step-end infinite}.rcg .h19 .ft .btn.imp .sw .b{opacity:0;animation:dibtb var(--t) step-end infinite}
@keyframes dibta{0%,15.38%,61.58%{opacity:1}61.59%,100%{opacity:0}}@keyframes dibtb{0%,15.38%,61.58%{opacity:0}61.59%,100%{opacity:1}}
.rcg .h19 .ft .btn.imp::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;background:rgba(255,255,255,.9);transform:scaleX(0);transform-origin:0 50%;animation:dipb var(--t) linear infinite}
@keyframes dipb{0%,15.38%,61.58%{transform:scaleX(0)}74.62%,100%{transform:scaleX(1)}}
/* result */
.rcg .h19 .dim{position:absolute;inset:0;background:var(--g-softa,rgba(246,247,249,.72));opacity:0;animation:didim var(--t) ease-out infinite;z-index:6}
@keyframes didim{0%,15.38%,74.62%{opacity:0}76.31%,96.62%{opacity:1}97.46%,100%{opacity:0}}
.rcg .h19 .res{position:absolute;left:230px;top:118px;width:340px;padding:22px 24px;border:1px solid var(--g-line,#e6e8ed);border-radius:12px;background:var(--g-bg,#fff);box-shadow:0 30px 60px -30px rgba(0,0,0,.35);display:grid;gap:8px;justify-items:center;text-align:center;opacity:0;z-index:7;animation:dires var(--t) cubic-bezier(.2,1.1,.3,1) infinite}
@keyframes dires{0%,15.38%,75.04%{opacity:0;transform:translateY(12px) scale(.96)}76.73%,96.62%{opacity:1;transform:none}97.46%,100%{opacity:0}}
.rcg .h19 .res .big{width:40px;height:40px;border-radius:50%;background:var(--grn);display:grid;place-items:center;margin-bottom:4px}.rcg .h19 .res .big svg{width:20px;height:20px;fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.rcg .h19 .res b{font-size:15px;font-weight:700;letter-spacing:-.01em}.rcg .h19 .res p{font-size:9.5px;color:var(--g-mute,#6b7280);line-height:1.45;max-width:30ch}
.rcg .h19 .res .ks{display:flex;gap:8px;margin-top:4px}.rcg .h19 .res .ks span{border:1px solid var(--g-line,#e6e8ed);border-radius:6px;padding:6px 10px;font-size:8.5px;color:var(--g-mute,#6b7280)}.rcg .h19 .res .ks span b{display:block;font-size:12px;margin-bottom:1px}
.rcg .h19 .res .btn{margin-top:4px}
/* cursor */
.rcg .h19 .cur{animation:dicur var(--t) cubic-bezier(.3,.7,.3,1) infinite}
@keyframes dicur{0%,1.5%{opacity:0;left:600px;top:60px}4%{opacity:1;left:560px;top:98px}6.5%{left:562px;top:140px}9%{left:558px;top:184px}11.5%{left:560px;top:228px}14%{left:556px;top:250px}20%{left:150px;top:98px}26.9%{left:150px;top:98px;transform:scale(1)}27.3%{transform:scale(.8)}27.9%{transform:scale(1)}30%{left:150px;top:98px}47.5%{left:150px;top:98px}50.1%{left:330px;top:288px}50.5%{transform:scale(1)}50.9%{transform:scale(.8)}51.4%{transform:scale(1)}52.2%{left:330px;top:288px}52.9%{left:340px;top:352px}53.1%{transform:scale(1)}53.5%{transform:scale(.8)}54%{transform:scale(1)}55.2%{left:340px;top:352px}60.2%{left:690px;top:318px}61.1%{left:690px;top:318px;transform:scale(1)}61.5%{transform:scale(.8)}62%{transform:scale(1)}63.6%{opacity:1;left:690px;top:318px}65.3%,100%{opacity:0;left:690px;top:318px}}12.5%{opacity:1;left:150px;top:98px}13.6%{left:150px;top:98px;transform:scale(1)}14%{transform:scale(.8)}14.6%{transform:scale(1)}17%{left:150px;top:98px}38%{left:150px;top:98px}41%{left:330px;top:288px}41.5%{transform:scale(1)}41.9%{transform:scale(.8)}42.4%{transform:scale(1)}43.5%{left:330px;top:288px}44.3%{left:340px;top:352px}44.5%{transform:scale(1)}44.9%{transform:scale(.8)}45.4%{transform:scale(1)}47%{left:340px;top:352px}53%{left:690px;top:318px}54%{left:690px;top:318px;transform:scale(1)}54.4%{transform:scale(.8)}55%{transform:scale(1)}57%{opacity:1;left:690px;top:318px}59%,100%{opacity:0;left:690px;top:318px}}
.rcg .h19 .toast.tA{animation:dit1 var(--t) ease-out infinite;z-index:8}
@keyframes dit1{0%,15.38%,77.15%{opacity:0;transform:translateY(8px)}78.42%,93.23%{opacity:1;transform:none}94.5%,100%{opacity:0}}
html[data-theme="dark"] .rcg .h19 .res{box-shadow:inset 0 0 0 1px rgba(255,255,255,.12),0 20px 40px -18px rgba(0,0,0,.6)}
/* intro — tour of app sources */
.rcg .h19 .ttl.sw2{display:grid}.rcg .h19 .ttl.sw2>*{grid-area:1/1;white-space:nowrap}.rcg .h19 .ttl.sw2 .a{animation:ditta var(--t) step-end infinite}.rcg .h19 .ttl.sw2 .b{opacity:0;animation:dittb var(--t) step-end infinite}
@keyframes ditta{0%,15%{opacity:1}15.01%,100%{opacity:0}}@keyframes dittb{0%,15%{opacity:0}15.01%,100%{opacity:1}}
.rcg .h19 .srow.h1{animation:dih1 var(--t) step-end infinite}.rcg .h19 .srow.h2{animation:dih2 var(--t) step-end infinite}.rcg .h19 .srow.h3{animation:dih3 var(--t) step-end infinite}.rcg .h19 .srow.h4{animation:dih4 var(--t) step-end infinite}
@keyframes dih1{0%,3.5%{background:var(--g-bg,#fff)}3.51%,6.5%{background:var(--g-soft,#f6f7f9)}6.51%,100%{background:var(--g-bg,#fff)}}
@keyframes dih2{0%,6.5%{background:var(--g-bg,#fff)}6.51%,9%{background:var(--g-soft,#f6f7f9)}9.01%,100%{background:var(--g-bg,#fff)}}
@keyframes dih3{0%,9%{background:var(--g-bg,#fff)}9.01%,11.5%{background:var(--g-soft,#f6f7f9)}11.51%,100%{background:var(--g-bg,#fff)}}
@keyframes dih4{0%,11.5%{background:var(--g-bg,#fff)}11.51%,14.5%{background:var(--g-soft,#f6f7f9)}14.51%,100%{background:var(--g-bg,#fff)}}
