.adr-lean-t{--lb-bg:#0b0d14;--lb-bg2:#10131c;--lb-card:#161b2a;--lb-line:rgba(255,255,255,.18);--lb-tx:#f5f6fa;--lb-tx2:#cbd0de;--lb-acc:#ff86ae;--lb-btn:#c4155a;--lb-btn-h:#a8104c;--lb-btn-tx:#fff;--lb-link:#b9c6f5;--lb-focus:#fff}
html[data-theme="light"] .adr-lean-t{--lb-bg:#f4f6fb;--lb-bg2:#fff;--lb-card:#fff;--lb-line:rgba(18,20,28,.16);--lb-tx:#12141c;--lb-tx2:#434a5c;--lb-acc:#b3124f;--lb-btn:#c4155a;--lb-btn-h:#9f0f48;--lb-btn-tx:#fff;--lb-link:#2f4aa8;--lb-focus:#12141c}
.adr-lean{font-family:'Montserrat',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;color:var(--lb-tx)!important;background:var(--lb-bg);padding:clamp(36px,5vw,64px) 0;line-height:1.6;text-align:left}
.adr-lean *,.adr-lean *::before,.adr-lean *::after{box-sizing:border-box}
.adr-lean-bg2{background:var(--lb-bg2)}
.adr-lean-wrap{width:100%;max-width:1180px;margin:0 auto;padding:0 16px}
@media(min-width:768px){.adr-lean-wrap{padding:0 24px}}
.adr-lean .adr-lean-h2{margin:0 0 10px;padding:0;font:800 clamp(24px,3.1vw,34px)/1.2 'Montserrat',system-ui,sans-serif;letter-spacing:-.01em;text-transform:none;color:var(--lb-tx)!important;text-align:left}
.adr-lean .adr-lean-h3{margin:0 0 6px;padding:0;font:700 17px/1.35 'Montserrat',system-ui,sans-serif;letter-spacing:0;text-transform:none;color:var(--lb-tx)!important}
.adr-lean p,.adr-lean li,.adr-lean a,.adr-lean span,.adr-lean b,.adr-lean strong{letter-spacing:0}
.adr-lean p{margin:0;font:500 15px/1.65 'Montserrat',system-ui,sans-serif;color:var(--lb-tx2)!important}
.adr-lean .adr-lean-lead{margin:0 0 26px;max-width:72ch;font-size:16px}
.adr-lean .adr-lean-p{margin:0 0 14px;max-width:72ch}
.adr-lean ul,.adr-lean ol{margin:0;padding:0;list-style:none}
.adr-lean li{list-style:none}
.adr-lean a{color:var(--lb-link)!important}
.adr-lean-grid{display:grid;gap:16px;grid-template-columns:1fr}
@media(min-width:640px){.adr-lean-grid--3{grid-template-columns:repeat(2,1fr)}}
@media(min-width:992px){.adr-lean-grid--3{grid-template-columns:repeat(3,1fr)}}
.adr-lean-card{margin:0;padding:20px;border:1px solid var(--lb-line);border-radius:16px;background:var(--lb-card);display:flex;flex-direction:column;gap:2px}
.adr-lean-bg2 .adr-lean-card{background:var(--lb-bg)}
html[data-theme="light"] .adr-lean-bg2 .adr-lean-card{background:var(--lb-bg)}
.adr-lean-card p{font-size:14.5px}
.adr-lean .adr-lean-more{margin-top:auto;padding-top:12px;font:700 14px/1.4 'Montserrat',system-ui,sans-serif;color:var(--lb-link)!important;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.adr-lean .adr-lean-more:hover{text-decoration-thickness:2px}
.adr-lean-proof{padding:clamp(22px,3vw,34px) 0}
.adr-lean-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:0 0 16px!important}
@media(min-width:640px){.adr-lean-stats{grid-template-columns:repeat(5,1fr)}}
.adr-lean-stats li{padding:14px 12px;border:1px solid var(--lb-line);border-radius:14px;background:var(--lb-card);text-align:center}
.adr-lean-stats li:last-child:nth-child(odd){grid-column:1/-1}
@media(min-width:640px){.adr-lean-stats li:last-child:nth-child(odd){grid-column:auto}}
.adr-lean-stats b{display:block;font:800 clamp(24px,3vw,30px)/1.1 'Montserrat',system-ui,sans-serif;color:var(--lb-acc)!important}
.adr-lean-stats span{display:block;margin-top:4px;font:600 12.5px/1.35 'Montserrat',system-ui,sans-serif;color:var(--lb-tx2)!important}
.adr-lean-chips{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.adr-lean-chips a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 16px;border:1px solid var(--lb-line);border-radius:999px;background:var(--lb-card);text-decoration:none;color:var(--lb-tx)!important}
.adr-lean-chips a:hover{border-color:var(--lb-acc)}
.adr-lean-chips strong{font:800 14px/1 'Montserrat',system-ui,sans-serif;color:var(--lb-tx)!important}
.adr-lean-chips span{font:600 13.5px/1.2 'Montserrat',system-ui,sans-serif;color:var(--lb-tx2)!important}
.adr-lean-steps{display:grid;gap:16px;grid-template-columns:1fr}
@media(min-width:640px){.adr-lean-steps{grid-template-columns:repeat(2,1fr)}}
@media(min-width:992px){.adr-lean-steps{grid-template-columns:repeat(4,1fr)}}
.adr-lean-step{position:relative;padding:20px;border:1px solid var(--lb-line);border-radius:16px;background:var(--lb-bg)}
.adr-lean-step p{font-size:14.5px}
.adr-lean-n{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;margin-bottom:10px;border-radius:50%;background:var(--lb-btn);color:#fff!important;font:800 15px/1 'Montserrat',system-ui,sans-serif}
.adr-lean-citygrid{display:grid;gap:28px;grid-template-columns:1fr}
@media(min-width:900px){.adr-lean-citygrid{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);align-items:start}}
.adr-lean-side{padding:20px;border:1px solid var(--lb-line);border-radius:16px;background:var(--lb-card)}
.adr-lean-side li+li{margin-top:10px}
.adr-lean-side a{font:700 15px/1.4 'Montserrat',system-ui,sans-serif;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.adr-lean .adr-lean-actions{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0 0}
.adr-lean .adr-lean-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 24px;border-radius:999px;background:var(--lb-btn);color:var(--lb-btn-tx)!important;font:700 15px/1.2 'Montserrat',system-ui,sans-serif;text-decoration:none;border:2px solid var(--lb-btn);transition:background .2s,transform .2s}
.adr-lean .adr-lean-btn:hover{background:var(--lb-btn-h);border-color:var(--lb-btn-h);transform:translateY(-1px)}
.adr-lean .adr-lean-btn--w{background:#fff;border-color:#fff;color:#7a0e3a!important}
.adr-lean .adr-lean-btn--w:hover{background:#ffe9f1;border-color:#ffe9f1}
.adr-lean .adr-lean-btn--o{background:transparent;border-color:#fff;color:#fff!important}
.adr-lean .adr-lean-btn--o:hover{background:rgba(255,255,255,.14);border-color:#fff}
.adr-lean a:focus-visible,.adr-lean-sum:focus-visible{outline:3px solid var(--lb-focus);outline-offset:3px;border-radius:10px}
.adr-lean-band{background:linear-gradient(135deg,#6d0c35 0%,#c4155a 100%);color:#fff!important}
.adr-lean-band .adr-lean-h2,.adr-lean-band p{color:#fff!important}
.adr-lean-band .adr-lean-lead{margin:0}
.adr-lean-band a:focus-visible{outline-color:#fff}
.adr-lean-bandin{display:flex;flex-wrap:wrap;gap:18px 32px;align-items:center;justify-content:space-between}
.adr-lean-band .adr-lean-actions{margin:0}
.adr-lean-anchor{display:block;height:0;overflow:hidden;scroll-margin-top:96px}
@media(max-width:980px){.adr-lean-anchor{scroll-margin-top:80px}}
.adr-lean-d{display:block;margin:0}
.adr-lean-sum{display:block;list-style:none;cursor:pointer;color:var(--lb-tx)!important;font-family:'Montserrat',system-ui,sans-serif;-webkit-tap-highlight-color:transparent}
.adr-lean-sum::-webkit-details-marker{display:none}
.adr-lean-sum::marker{content:""}
.adr-lean-sumin{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;max-width:1180px;margin:0 auto;padding:16px;box-sizing:border-box}
@media(min-width:768px){.adr-lean-sumin{padding:16px 24px}}
.adr-lean-sumin::after{content:"";flex:none;width:26px;height:26px;border:2px solid var(--lb-acc);border-radius:50%;background:linear-gradient(var(--lb-acc),var(--lb-acc)) center/12px 2px no-repeat,linear-gradient(var(--lb-acc),var(--lb-acc)) center/2px 12px no-repeat;transition:background-size .25s ease,transform .25s ease}
.adr-lean-d[open]>.adr-lean-sum>.adr-lean-sumin::after{background-size:12px 2px,2px 0;transform:rotate(180deg)}
.adr-lean-guide{padding:0;margin:0;background:var(--lb-bg);color:var(--lb-tx)!important;border-top:1px solid var(--lb-line)}
.adr-lean-guide>.adr-lean-d>.adr-lean-sum{background:var(--lb-bg2)}
.adr-lean-guide .adr-lean-d--in{border-top:1px solid var(--lb-line)}
.adr-lean-guide .adr-lean-d--in>.adr-lean-sum{background:var(--lb-bg)}
.adr-lean-guide .adr-lean-d--in>.adr-lean-sum:hover,.adr-lean-guide>.adr-lean-d>.adr-lean-sum:hover{background:var(--lb-card)}
.adr-lean-sum h2,.adr-lean-sum .adr-lean-st{margin:0!important;padding:0!important;font:700 clamp(17px,2vw,20px)/1.35 'Montserrat',system-ui,sans-serif!important;letter-spacing:0!important;text-transform:none!important;text-align:left!important;color:var(--lb-tx)!important;background:none!important;border:0!important;max-width:none!important;width:auto!important;opacity:1!important;transform:none!important;display:block}
.adr-lean-sum h2::before,.adr-lean-sum h2::after{content:none!important;display:none!important}
.adr-lean-guide>.adr-lean-d>.adr-lean-sum h2{font-size:clamp(20px,2.6vw,26px)!important;font-weight:800!important}
.adr-lean-sub{display:block;margin-top:2px;font:500 13.5px/1.4 'Montserrat',system-ui,sans-serif;color:var(--lb-tx2)!important}
.adr-lean-guide-lead{max-width:1180px;margin:0 auto;padding:18px 16px;font:500 15px/1.6 'Montserrat',system-ui,sans-serif;color:var(--lb-tx2)!important;box-sizing:border-box}
@media(min-width:768px){.adr-lean-guide-lead{padding:18px 24px}}
.adr-lean-guide-lead p{margin:0;color:var(--lb-tx2)!important;font:500 15px/1.6 'Montserrat',system-ui,sans-serif}
.adr-lean-guide .adr-lean-body [data-aos],.adr-lean-guide .adr-lean-body .adr-reveal{opacity:1!important;transform:none!important;visibility:visible!important}
.adr-lean-d[open]>.adr-lean-body{animation:adr-lean-in .28s ease both}
@keyframes adr-lean-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.adr-lean-d[open]>.adr-lean-body{animation:none}.adr-lean-sumin::after,.adr-lean .adr-lean-btn{transition:none}}
.adr-lean-inline{margin:12px 0 0}
.adr-lean-inline>.adr-lean-sum{display:inline-block;padding:6px 0;font:700 14px/1.4 'Montserrat',system-ui,sans-serif;color:inherit;text-decoration:underline;text-underline-offset:3px}
.adr-lean-inline>.adr-lean-sum::after{content:" +";text-decoration:none}
.adr-lean-inline[open]>.adr-lean-sum::after{content:" \2212"}
.adr-lean-inline>.adr-lean-body{margin-top:6px}
.adr-lean-inline>.adr-lean-sum:focus-visible{outline:3px solid currentColor;outline-offset:3px;border-radius:6px}
.adr-lean-moreq{grid-column:1/-1;max-width:920px;width:100%;margin:10px auto 0}
.adr-lean-moreq>.adr-lean-sum{display:flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:12px 22px;border:1px dashed var(--af-pink,#c4155a);border-radius:18px;font:700 15px/1.3 'Montserrat',system-ui,sans-serif;color:var(--af-tx,var(--lb-tx))}
.adr-lean-moreq>.adr-lean-sum::after{content:"+";font-size:20px;line-height:1;color:var(--af-pink,#c4155a)!important}
.adr-lean-moreq[open]>.adr-lean-sum::after{content:"\2212"}
.adr-lean-moreq>.adr-lean-sum:focus-visible{outline:3px solid var(--af-focus,#fff);outline-offset:3px}
.adr-lean-qbody{display:grid;gap:10px;margin-top:10px}
.adr-lean-mini{padding:22px 0}
.adr-lean-minip{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px 20px;text-align:center}
.adr-lean .adr-lean-minip span{font:700 17px/1.4 'Montserrat',system-ui,sans-serif;color:var(--lb-tx)!important}
.adr-lean-repwrap{padding:4px 16px 18px;text-align:center}
.adr-lean-t .adr-lean-repdesc{display:inline-block;max-width:780px;margin:0 auto;padding:12px 20px;border:1px solid var(--lb-line);border-radius:14px;background:var(--lb-card);color:var(--lb-tx2)!important;font:500 15px/1.6 'Montserrat',system-ui,sans-serif;letter-spacing:0;text-transform:none;text-align:center}
.adr-lean-rev{padding-bottom:clamp(24px,4vw,44px)}
.adr-lean-rev .adr-lean-wrap{text-align:center}
.adr-lean .adr-lean-rev .adr-lean-h2,.adr-lean-rev .adr-lean-h2{text-align:center}
.adr-lean-rev .adr-lean-lead{margin:0 auto 18px}
.adr-lean-rev .adroit-testimonial-widget{display:block;overflow:visible!important;height:auto!important;min-height:400px;padding:12px 16px 16px;background:#fafafa}
.adr-lean-rev .adroit-testimonial-widget .clutch-widget{overflow:visible!important;min-height:380px}
.adr-lean-rev .adroit-testimonial-widget iframe{max-width:100%}
.rbbl{--ink:#12133a;--ink2:#1a1b54;--ink3:#060716;--mint:#c9c3f7;--mintd:#6a5ae0;--mintl:#f3f5fc;--bg:#f5f6fb;--body:#353d5d;--mut:#535c7e;--rule:#dde0f0;--del:#9f1d44;--dell:#fff0f6;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--body);background:var(--bg);box-sizing:border-box}
.rbbl *,.rbbl *::before,.rbbl *::after{box-sizing:border-box}
.rbbl h1,.rbbl h2,.rbbl h3,.rbbl h4,.rbbl p,.rbbl li,.rbbl td,.rbbl th,.rbbl summary,.rbbl figcaption{text-align:left!important}
.rbbl h1,.rbbl h2,.rbbl h3,.rbbl h4{color:var(--ink)!important;max-width:none!important;font-family:inherit!important;text-transform:none!important}
.rbbl p{max-width:none!important;color:var(--body);font-size:16px!important;line-height:1.74!important;margin:0 0 16px!important}
.rbbl a{color:var(--mintd);text-decoration-thickness:1.5px;text-underline-offset:3px}
.rbbl a:hover{color:var(--ink)}
.rbbl a:focus-visible,.rbbl summary:focus-visible{outline:3px solid var(--mint);outline-offset:3px;border-radius:4px}
.rbbl code{font:600 .88em var(--mono);background:#e9ecf8;color:var(--ink);padding:1px 6px;border-radius:5px}
.rbbl-w{max-width:1170px;margin:0 auto;padding:0 16px}
.rbbl-hgrid>*,.rbbl-2>*,.rbbl-3>*,.rbbl-4>*{min-width:0}
/* hero */
.rbbl-hero{position:relative;overflow:hidden;padding:104px 0 60px;background:radial-gradient(720px 420px at 96% -8%,rgba(201,195,247,.16),transparent 62%),radial-gradient(560px 380px at -6% 100%,rgba(119,95,241,.22),transparent 62%),var(--ink);color:#d9ddf4}
.rbbl-hero::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px);background-size:100% 28px;-webkit-mask-image:linear-gradient(180deg,#000000,transparent 75%);mask-image:linear-gradient(180deg,#000000,transparent 75%)}
.rbbl-hero .rbbl-w{position:relative;z-index:2}
.rbbl-hgrid{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);gap:46px;align-items:start}
.rbbl-hero .rbbl-bc{position:static!important;top:auto!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important;width:auto!important;max-width:none!important;padding:0!important;z-index:auto!important;display:flex!important;flex-wrap:wrap;gap:8px;align-items:center;text-align:left!important;margin:0 0 28px!important;font-size:13px;color:#b4a9ff;background:none!important}
.rbbl-hero .rbbl-bc a{color:#c8ceef!important;text-decoration:none;background:none!important;padding:0!important;margin:0!important;font-size:13px!important}
.rbbl-hero .rbbl-bc a:hover{color:var(--mint)!important}
.rbbl-hero .rbbl-bc span{color:#b4a9ff!important;padding:0!important;margin:0!important;font-size:13px!important}
.rbbl-eyebrow{display:inline-flex!important;align-items:center;gap:10px;font:700 12px/1.3 var(--mono)!important;letter-spacing:1.4px;text-transform:uppercase;color:var(--mint)!important;margin:0 0 18px!important}
.rbbl-eyebrow::before{content:"+";display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:5px;background:rgba(201,195,247,.16);color:var(--mint);font-weight:800}
.rbbl-hero h1{color:#ffffff!important;font-size:clamp(34px,4.6vw,54px)!important;line-height:1.06!important;font-weight:800!important;letter-spacing:-1.3px!important;margin:0 0 22px!important}
.rbbl-hero h1 em{font-style:normal;color:var(--mint)}
.rbbl-hero p{color:#c8ceef}
.rbbl-hero .rbbl-lede{font-size:clamp(17px,1.6vw,19.5px)!important;color:#ffffff!important;line-height:1.7!important}
.rbbl-acts{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.rbbl-b1,.rbbl-b2{display:inline-flex;align-items:center;gap:8px;border-radius:8px;font-weight:700;font-size:15px;padding:14px 26px;text-decoration:none!important;transition:transform .16s,box-shadow .2s}
.rbbl-b1{background:var(--mint);color:var(--ink)!important;box-shadow:0 12px 30px rgba(201,195,247,.25)}
.rbbl-b2{background:transparent;color:#ffffff!important;border:1.5px solid rgba(255,255,255,.4)}
.rbbl-b1:hover,.rbbl-b2:hover{transform:translateY(-2px)}
.rbbl-b2:hover{border-color:var(--mint)}
ul.rbbl-ticks{list-style:none;margin:30px 0 0;padding:22px 0 0;border-top:1px solid rgba(255,255,255,.14)}
.rbbl-ticks li{position:relative;padding:0 0 14px 38px;margin:0;font-size:15.5px;line-height:1.5;color:#d9ddf4}
.rbbl-ticks li b{color:#ffffff}
.rbbl-ticks li::before{content:"+";position:absolute;left:0;top:0;width:24px;height:24px;border-radius:5px;background:rgba(201,195,247,.16);color:var(--mint);font:800 15px/24px var(--mono);text-align:center}
.rbbl-vis{display:flex;flex-direction:column;gap:16px;margin-top:28px}
/* editor window + diff */
.rbbl-win{background:var(--ink3);border:1px solid rgba(255,255,255,.12);border-radius:12px;overflow:hidden;box-shadow:0 22px 50px rgba(3,4,15,.35)}
.rbbl-win .wh{display:flex;align-items:center;gap:7px;padding:10px 14px;background:#12133a;border-bottom:1px solid rgba(255,255,255,.1);font:600 12px/1 var(--mono);color:#b6beea}
.rbbl-win .wh i{width:9px;height:9px;border-radius:2px;background:#4f3fd1;display:inline-block}
.rbbl-win .wh i:first-child{background:var(--mint)}
.rbbl-win .wh span{margin-left:auto;color:#a69bd9;font-weight:500}
.rbbl-dif{counter-reset:ln;margin:0;padding:8px 0;font:500 12.5px/1.75 var(--mono);color:#d4d9f3;overflow-x:auto;background:var(--ink3)}
.rbbl-dif .r{display:flex;counter-increment:ln;min-width:max-content;padding-right:16px;white-space:pre}
.rbbl-dif .r::before{content:counter(ln);flex:none;width:38px;padding-right:10px;text-align:right;color:#7f71c9}
.rbbl-dif .r b{flex:none;width:22px;text-align:center;font-weight:800;color:#7f71c9}
.rbbl-dif .add{background:rgba(201,195,247,.13);box-shadow:inset 3px 0 0 var(--mint)}
.rbbl-dif .add b{color:var(--mint)}
.rbbl-dif .del{background:rgba(250,128,165,.13);box-shadow:inset 3px 0 0 #fa92b1;background-image:repeating-linear-gradient(135deg,transparent 0 6px,rgba(250,128,165,.07) 6px 8px)}
.rbbl-dif .del b{color:#ff9fc0}
.rbbl-dif .hk{background:#1a1b54;color:#a8b2e6}
.rbbl-dif .hk b{color:#a8b2e6}
.rbbl-dif .t{font-style:normal;flex:1}
.rbbl-dif .k{color:#b4bde9}.rbbl-dif .s{color:#d7dbf5}.rbbl-dif .c{color:#9a8bff}.rbbl-dif .n{color:#fdd689}
.rbbl-dif-note{margin:0;padding:10px 16px 12px;border-top:1px solid rgba(255,255,255,.1);font:500 12px/1.5 system-ui,sans-serif;color:#b4a9ff;background:#12133a}
.rbbl-dif-note b{color:var(--mint)}
.rbbl-term{margin:0;padding:14px 16px;font:500 12.5px/1.8 var(--mono);color:#d4d9f3;background:var(--ink3);white-space:pre;overflow-x:auto}
.rbbl-term .ok{color:var(--mint);font-weight:700}.rbbl-term .bad{color:#ff9fc0;font-weight:700}.rbbl-term .c{color:#9a8bff}
.rbbl-arch{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:14px 16px;background:var(--ink3);font:600 12px/1 var(--mono);color:#d4d9f3}
.rbbl-arch span{border:1px solid rgba(255,255,255,.2);border-radius:6px;padding:8px 10px}
.rbbl-arch span.m{border-color:var(--mint);color:var(--mint)}
.rbbl-arch em{font-style:normal;color:#7f71c9}
.rbbl-stats{display:grid;grid-template-columns:repeat(5,auto);justify-content:space-between;gap:20px 28px;margin:48px 0 0;padding:26px 0 0;border-top:1px solid rgba(255,255,255,.14)}
.rbbl-stats div{min-width:0}
.rbbl-stats b{display:block;font:800 clamp(28px,3vw,38px)/1 var(--mono);color:var(--mint);letter-spacing:-.8px}
.rbbl-stats span{display:block;font-size:13px;color:#b6beea;margin-top:8px}
/* in short */
.rbbl-short{padding:44px 0 56px;background:var(--bg)}
.rbbl-sbox{position:relative;background:#ffffff;border:1px solid var(--rule);border-radius:12px;padding:26px 30px 26px 34px;box-shadow:0 10px 30px rgba(18,19,58,.06);overflow:hidden}
.rbbl-sbox::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--mint)}
.rbbl-sbox h2{font:800 13px/1.3 var(--mono)!important;letter-spacing:2px;text-transform:uppercase!important;color:var(--mintd)!important;margin:0 0 10px!important}
.rbbl-sbox p{font-size:18px!important;color:var(--ink)!important;line-height:1.7!important;margin:0!important}
/* sections */
.rbbl-sec{padding:72px 0;background:var(--bg)}
.rbbl-sec.alt{background:#ffffff;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.rbbl-kick{font:700 12px/1 var(--mono)!important;letter-spacing:1px;color:var(--mintd)!important;margin:0 0 14px!important;overflow-wrap:anywhere}
.rbbl h2.rbbl-h2{font-size:clamp(26px,3.2vw,38px)!important;line-height:1.16!important;letter-spacing:-.7px!important;font-weight:800!important;margin:0 0 20px!important}
.rbbl h3{font-size:19px!important;line-height:1.3!important;font-weight:700!important;margin:0 0 10px!important}
.rbbl-2{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:36px;align-items:start}
.rbbl-2.eq{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.rbbl-panel{background:#ffffff;border:1px solid var(--rule);border-top:4px solid var(--mint);border-radius:12px;padding:24px 26px}
.rbbl-sec.alt .rbbl-panel{background:var(--bg)}
.rbbl-panel h3{margin-top:0!important}
.rbbl-list{list-style:none;margin:0;padding:0}
.rbbl-list li{position:relative;padding:0 0 12px 34px;margin:0 0 12px;border-bottom:1px dashed var(--rule);font-size:15px;line-height:1.6;color:var(--body)}
.rbbl-list li:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
.rbbl-list li::before{content:"+";position:absolute;left:0;top:1px;width:22px;height:22px;border-radius:5px;background:var(--mintl);color:var(--mintd);font:800 14px/22px var(--mono);text-align:center}
.rbbl-list b{color:var(--ink)}
.rbbl-list.no li::before{content:"\2212";background:var(--dell);color:var(--del)}
.rbbl-note{font-size:14px!important;color:var(--mut)!important;margin:18px 0 0!important}
.rbbl-rev{display:inline-block;font:700 12px/1 var(--mono);color:var(--mintd);background:var(--mintl);border:1px solid #dfe3f6;border-radius:6px;padding:8px 14px;margin:0 0 18px}
/* tables */
.rbbl-twrap{margin:26px 0 0;border:1px solid var(--rule);border-radius:12px;overflow:hidden;background:#ffffff}
.rbbl-tbl{width:100%;border-collapse:collapse;font-size:14.5px;margin:0!important}
.rbbl-tbl th{background:var(--ink);color:#ffffff!important;font-weight:700;padding:13px 16px;font-size:12px;letter-spacing:.6px;text-transform:uppercase;vertical-align:bottom;border:0!important;font-family:var(--mono)}
.rbbl-tbl td{padding:14px 16px;border-top:1px solid var(--rule)!important;border-left:0!important;border-right:0!important;border-bottom:0!important;vertical-align:top;line-height:1.55;color:var(--body);background:#ffffff}
.rbbl-tbl tr:nth-child(even) td{background:#f8f9fd}
.rbbl-tbl td:first-child{font-weight:700;color:var(--ink)}
.rbbl-tbl.sm{font-size:14px}
/* git-log ladder */
.rbbl-log{list-style:none;margin:30px 0 0;padding:0;position:relative}
.rbbl-log::before{content:"";position:absolute;left:15px;top:8px;bottom:8px;width:3px;background:linear-gradient(var(--mint),var(--ink2))}
.rbbl-log li{position:relative;padding:0 0 18px 52px;margin:0}
.rbbl-log li::before{content:"";position:absolute;left:7px;top:18px;width:19px;height:19px;border-radius:50%;background:#ffffff;border:4px solid var(--ink)}
.rbbl-log li:first-child::before{border-color:var(--mint);background:var(--ink)}
.rbbl-log .row{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:8px 24px;background:#ffffff;border:1px solid var(--rule);border-radius:12px;padding:16px 20px;align-items:center}
.rbbl-log .br{display:block;font:700 12px/1.3 var(--mono);color:var(--mintd);margin:0 0 4px}
.rbbl-log h3{margin:0 0 4px!important;font-size:17px!important}
.rbbl-log p{margin:0!important;font-size:14.5px!important;line-height:1.55!important}
.rbbl-log .sc{font:600 11.5px/1.2 var(--mono);color:var(--mut)}
.rbbl-log .bar{display:block;height:10px;border-radius:3px;background:#e7eaf6;margin:6px 0 0;overflow:hidden}
.rbbl-log .bar i{display:block;height:100%;background:repeating-linear-gradient(90deg,var(--ink) 0 8px,var(--ink2) 8px 10px)}
/* cards */
.rbbl-3,.rbbl-4{display:grid;gap:18px;margin:26px 0 0}
.rbbl-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.rbbl-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.rbbl-tile{background:#ffffff;border:1px solid var(--rule);border-radius:12px;padding:22px 22px 12px;border-top:4px solid var(--ink)}
.rbbl-tile:nth-child(even){border-top-color:var(--mint)}
.rbbl-tile p{font-size:14.5px!important;line-height:1.65!important}
.rbbl-tile .no{display:block;font:700 12px/1 var(--mono);color:var(--mintd);margin:0 0 10px}
.rbbl-sec.alt .rbbl-tile{background:var(--bg)}
/* tenancy cards */
.rbbl-tc{background:#ffffff;border:1px solid var(--rule);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}
.rbbl-tc .th{background:var(--ink);color:#ffffff;font:700 13px/1.3 var(--mono);padding:12px 16px}
.rbbl-tc .tb{padding:16px 18px 6px}
.rbbl-mini{display:grid;gap:4px;margin:0 0 14px}
.rbbl-mini.rows{grid-template-columns:1fr}
.rbbl-mini.rows span{display:flex;justify-content:space-between;font:600 11.5px/1 var(--mono);padding:6px 8px;border-radius:4px;background:#eef0fa;color:var(--ink)}
.rbbl-mini.rows span:nth-child(3n+2){background:var(--mintl);color:var(--mintd)}
.rbbl-mini.rows span:nth-child(3n){background:#e2e5f6;border-left:3px solid var(--ink)}
.rbbl-mini.cols{grid-template-columns:repeat(3,1fr);gap:6px}
.rbbl-mini.cols span{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:74px;border-radius:6px;background:var(--ink);color:#ffffff;font:700 18px/1.1 var(--mono)}
.rbbl-mini.cols span small{font:500 10.5px/1.2 var(--mono);color:#b6beea;margin-top:4px}
.rbbl-mini.cols.db span{border-radius:20px 20px 10px 10px;border-bottom:4px solid var(--mint)}
.rbbl-meter{display:flex;align-items:center;gap:10px;font:700 11.5px/1.2 var(--mono);color:var(--ink);margin:0 0 8px}
.rbbl-meter u{text-decoration:none;display:inline-flex;gap:3px}
.rbbl-meter u i{width:20px;height:9px;border-radius:2px;background:#dfe2f2}
.rbbl-meter u i.on{background:var(--ink)}
.rbbl-meter span{margin-left:auto;color:var(--mut);font-weight:600}
.rbbl-tc p{font-size:14px!important;line-height:1.6!important;margin:0 0 12px!important}
.rbbl-tc p b{color:var(--ink)}
.rbbl-tc .tf{margin-top:auto;padding:12px 18px;background:#f5f6fb;border-top:1px solid var(--rule);font-size:13.5px;line-height:1.5;color:var(--mut)}
.rbbl-tc .tf b{color:var(--ink)}
/* flows */
.rbbl-flow{list-style:none;margin:28px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:12px 26px;counter-reset:f}
.rbbl-flow li{position:relative;flex:1 1 150px;min-width:0;background:#ffffff;border:1px solid var(--rule);border-radius:10px;padding:16px 16px 12px;counter-increment:f}
.rbbl-flow li::before{content:counter(f,decimal-leading-zero);display:block;font:700 12px/1 var(--mono);color:var(--mintd);margin:0 0 8px}
.rbbl-flow li:not(:last-child)::after{content:"\2192";content:"\2192" / "";position:absolute;right:-22px;top:50%;transform:translateY(-50%);font:800 18px/1 var(--mono);color:var(--ink)}
.rbbl-flow h3{font-size:15px!important;margin:0 0 6px!important}
.rbbl-flow p{font-size:13.5px!important;line-height:1.55!important;margin:0 0 6px!important}
.rbbl-flow li.hl{border-color:var(--ink);box-shadow:inset 0 4px 0 var(--mint)}
.rbbl-sec.alt .rbbl-flow li{background:var(--bg)}
.rbbl-fig{margin:34px 0 0;background:#ffffff;border:1px solid var(--rule);border-radius:12px;padding:22px 24px 16px;box-shadow:0 10px 30px rgba(18,19,58,.05)}
.rbbl-sec.alt .rbbl-fig{background:var(--bg)}
.rbbl-fig figcaption{margin:14px 0 0;padding-top:12px;border-top:1px dashed var(--rule);font-size:14px;line-height:1.55;color:var(--mut)}
.rbbl-fig .rbbl-flow{margin-top:0}
/* stack */
.rbbl-stack{display:grid;gap:10px}
.rbbl-stack .rw{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:10px}
.rbbl-stack .bx{border:1px solid var(--rule);border-radius:8px;background:#ffffff;padding:12px 10px;text-align:center;font:600 13px/1.35 var(--mono);color:var(--ink)}
.rbbl-stack .lab{font:700 11px/1 var(--mono);letter-spacing:1px;text-transform:uppercase;color:var(--mut);margin:6px 0 -2px}
.rbbl-stack .ct{background:var(--ink);color:#ffffff;border-radius:8px;padding:14px 16px;text-align:center;font:600 13px/1.5 var(--mono)}
.rbbl-stack .ct b{color:var(--mint);display:block;font-size:15px}
.rbbl-stack .rl{background:var(--mintl);border:1px solid #dfe3f6;border-radius:8px;padding:14px 16px;text-align:center;font:600 13px/1.5 var(--mono);color:var(--ink)}
.rbbl-stack .ar{text-align:center;font:800 16px/1 var(--mono);color:var(--ink);margin:-2px 0}
/* dark section */
.rbbl-sec.dk{background:var(--ink);color:#d9ddf4;border:0}
.rbbl-sec.dk h2,.rbbl-sec.dk h3{color:#ffffff!important}
.rbbl-sec.dk p{color:#c8ceef}
.rbbl-sec.dk .rbbl-kick{color:var(--mint)!important}
.rbbl-sec.dk a{color:var(--mint)}
.rbbl-sec.dk .rbbl-flow li{background:var(--ink2);border-color:rgba(255,255,255,.14)}
.rbbl-sec.dk .rbbl-flow li::before{color:var(--mint)}
.rbbl-sec.dk .rbbl-flow li::after{color:var(--mint)}
.rbbl-sec.dk .rbbl-flow h3{color:#ffffff!important}
.rbbl-sec.dk .rbbl-flow p{color:#c8ceef}
.rbbl-sec.dk .rbbl-flow li.hl{border-color:var(--mint);box-shadow:none}
.rbbl-sec.dk .rbbl-panel{background:var(--ink2);border-color:rgba(255,255,255,.14);border-top-color:var(--mint)}
.rbbl-sec.dk .rbbl-panel h3{color:#ffffff!important}
.rbbl-sec.dk .rbbl-list li{color:#d9ddf4;border-color:rgba(255,255,255,.14)}
.rbbl-sec.dk .rbbl-list b{color:#ffffff}
.rbbl-sec.dk .rbbl-list li::before{background:rgba(201,195,247,.16);color:var(--mint)}
.rbbl-sec.dk .rbbl-list.no li::before{background:rgba(250,128,165,.16);color:#ff9fc0}
.rbbl-sec.dk .rbbl-note{color:#b4a9ff!important}
.rbbl-sec.dk code{background:rgba(255,255,255,.12);color:#ffffff}
/* sprint grid */
.rbbl-sprint{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:0}
.rbbl-sprint div{background:#ffffff;border:1px solid var(--rule);border-radius:10px;padding:14px 14px 10px;border-top:4px solid var(--ink)}
.rbbl-sprint div:nth-child(even){border-top-color:var(--mint)}
.rbbl-sprint b{display:block;font:700 12px/1.3 var(--mono);color:var(--mintd);margin:0 0 6px}
.rbbl-sprint span{display:block;font-size:13.5px;line-height:1.5;color:var(--body)}
.rbbl-sec.alt .rbbl-sprint div{background:var(--bg)}
.rbbl-links a{font-weight:600}
@media(max-width:1100px){.rbbl-stats{grid-template-columns:repeat(3,auto);justify-content:start;gap:22px 40px}.rbbl-4{grid-template-columns:repeat(2,minmax(0,1fr))}.rbbl-sprint{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:980px){.rbbl-hgrid,.rbbl-2,.rbbl-2.eq{grid-template-columns:minmax(0,1fr)}.rbbl-3{grid-template-columns:minmax(0,1fr)}.rbbl-vis{margin-top:8px}.rbbl-hero{padding:90px 0 48px}.rbbl-sec{padding:56px 0}.rbbl-log .row{grid-template-columns:minmax(0,1fr)}.rbbl-flow li:not(:last-child)::after{content:"\2193";content:"\2193" / "";right:auto;left:50%;top:auto;bottom:-24px;transform:translateX(-50%)}.rbbl-flow{gap:26px;flex-direction:column}.rbbl-flow li{flex:0 0 auto}}
@media(max-width:820px){.rbbl-tbl thead{display:none}.rbbl-tbl,.rbbl-tbl tbody,.rbbl-tbl tr,.rbbl-tbl td{display:block;width:100%}.rbbl-tbl tr{border-top:1px solid var(--rule);padding:6px 0}.rbbl-tbl tr:first-child{border-top:0}.rbbl-tbl td{border:0!important;padding:7px 16px!important;background:#ffffff!important}.rbbl-tbl td::before{content:attr(data-label);display:block;font:700 11px/1.2 var(--mono);letter-spacing:1px;text-transform:uppercase;color:var(--mintd);margin-bottom:3px}.rbbl-tbl td:first-child{font-size:16px;padding-top:12px!important}.rbbl-tbl td:first-child::before{display:none}}
@media(max-width:600px){.rbbl-stats{grid-template-columns:repeat(2,auto)}.rbbl-4,.rbbl-sprint{grid-template-columns:minmax(0,1fr)}.rbbl-sbox{padding:20px 18px 20px 24px}.rbbl-acts{flex-direction:column}.rbbl-b1,.rbbl-b2{justify-content:center}.rbbl-dif,.rbbl-term{font-size:11.5px}.rbbl-fig{padding:16px 14px 12px}.rbbl-stack .rw{grid-auto-flow:row}.rbbl-log li{padding-left:44px}.rbbl-log::before{left:11px}.rbbl-log li::before{left:3px}.rbbl-log .row{padding:14px}}

/* vis2: text-light visuals (added 3 Oct 2026) */
.rbbl-vis2{--vi:#12133a;--vb:#353d5d;--va:#6a5ae0;--vc:#f5f6fb;--vl:#dde0f0;--vh:#12133a;--vhf:#c9c3f7;margin:34px 0 0;background:#ffffff;border:1px solid var(--rule);border-radius:12px;padding:22px 24px;box-shadow:0 10px 30px rgba(18,19,58,.05)}
.rbbl-sec.alt .rbbl-vis2{background:var(--bg);--vc:#ffffff}
.rbbl-sec.dk .rbbl-vis2{--vi:#ffffff;--vb:#d9ddf4;--va:#c9c3f7;--vc:#12133a;--vl:rgba(255,255,255,.2);--vh:#c9c3f7;--vhf:#12133a;background:var(--ink2);border-color:rgba(255,255,255,.14);box-shadow:none}
.rbbl-vis2 div,.rbbl-vis2 span,.rbbl-vis2 b,.rbbl-vis2 i{color:var(--vi)!important;font-family:inherit;text-align:left}
.rbbl-vis2 .cap{display:block;font:700 12px/1.3 var(--mono)!important;letter-spacing:1px;text-transform:uppercase;color:var(--va)!important;margin:0 0 14px}
.rbbl-vis2 .two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:start}
.rbbl-vis2 .two>*{min-width:0}
.rbbl-vis2 .ic{width:24px;height:24px;flex:none;fill:none;stroke:var(--va);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.rbbl-vis2 .arw{width:26px;height:26px;flex:none;fill:none;stroke:var(--vi);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.rbbl-vis2 .nd{display:flex;align-items:center;gap:10px;background:var(--vc);border:1px solid var(--vl);border-radius:10px;padding:12px 14px;font-weight:600;font-size:14.5px;line-height:1.35}
.rbbl-vis2 .nd span{color:var(--vi)!important}
.rbbl-vis2 .nd.hot,.rbbl-vis2 .hot{background:var(--vh);border-color:var(--vh)}
.rbbl-vis2 .hot,.rbbl-vis2 .hot span,.rbbl-vis2 .hot b{color:var(--vhf)!important}
.rbbl-vis2 .hot .ic{stroke:var(--vhf)}
.rbbl-vis2 .ch{display:inline-block;background:var(--vc);border:1px solid var(--vl);border-radius:999px;padding:6px 12px;font-size:13.5px;font-weight:600;line-height:1.3}
.rbbl-vis2 .ch.dash{background:transparent;border-style:dashed}
.rbbl-vis2 .chips{display:flex;flex-wrap:wrap;gap:8px}
.rbbl-vis2 .lb{display:block;font:700 11px/1.2 var(--mono)!important;letter-spacing:1px;text-transform:uppercase;color:var(--va)!important;margin:0 0 8px}
/* defaults row */
.rbbl-vis2 .row5{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.rbbl-vis2 .row5 .nd{flex-direction:column;text-align:center;justify-content:flex-start;padding:16px 10px}
.rbbl-vis2 .row5 .nd span{text-align:center}
.rbbl-vis2 .bar{display:block;margin-top:14px;border-radius:10px;padding:12px 16px;text-align:center;font-weight:700;font-size:14.5px}
.rbbl-vis2 .bar span{text-align:center}
/* tenancy */
.rbbl-vis2 .ten{display:grid;grid-template-columns:auto auto auto auto minmax(0,1fr);gap:12px;align-items:center}
.rbbl-vis2 .ten .chips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.rbbl-vis2 .ten .ch{border-radius:8px;text-align:center}
.rbbl-vis2 .spec{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center;margin-top:18px;padding-top:16px;border-top:1px dashed var(--vl)}
.rbbl-vis2 .spec .arw{width:20px;height:20px}
.rbbl-vis2 .spec .lb{margin:0}
/* billing */
.rbbl-vis2 .own{background:#f3f5fc;border:1px solid #dfe3f6;border-radius:10px;padding:14px}
.rbbl-vis2 .own .lb,.rbbl-vis2 .own span{color:#12133a!important}
.rbbl-vis2 .own .lb{color:#6a5ae0!important}
.rbbl-vis2 .own .ch{background:#ffffff;border-color:#dfe3f6}
.rbbl-vis2 .mid{display:flex;justify-content:center;padding:6px 0}
.rbbl-vis2 .gw{display:flex;flex-wrap:wrap;gap:8px}
.rbbl-vis2 .stps{display:grid;gap:0;position:relative}
.rbbl-vis2 .st{display:flex;gap:12px;align-items:flex-start;position:relative;padding:0 0 14px}
.rbbl-vis2 .st:not(:last-child)::before{content:"";position:absolute;left:13px;top:28px;bottom:0;width:2px;background:var(--vl)}
.rbbl-vis2 .st .n{flex:none;width:28px;height:28px;border-radius:50%;background:var(--vh);display:flex;align-items:center;justify-content:center;font:700 13px/1 var(--mono);font-style:normal;color:var(--vhf)!important}
.rbbl-vis2 .st .tx{display:block;min-width:0}
.rbbl-vis2 .st .tx b{display:block;font-size:15px;line-height:1.3}
.rbbl-vis2 .st .tx span{display:block;font-size:13.5px;line-height:1.45;color:var(--vb)!important}
.rbbl-vis2 svg.dia{display:block;width:100%;height:auto;max-width:460px;margin:0 auto}
.rbbl-vis2 svg.dia text{fill:var(--vi)!important;font:600 14px system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.rbbl-vis2 svg.dia text.sm{font-size:12.5px;font-weight:500;fill:var(--vb)!important}
.rbbl-vis2 svg.dia text.on{fill:var(--vhf)!important}
.rbbl-vis2 svg.dia .lane{fill:var(--vc);stroke:var(--vl)}
.rbbl-vis2 svg.dia .d1{fill:var(--vi)}
.rbbl-vis2 svg.dia .d2{fill:var(--va)}
.rbbl-vis2 svg.dia .d3{fill:none;stroke:var(--vi);stroke-width:2}
.rbbl-vis2 svg.dia .ring1{fill:rgba(139,124,246,.10);stroke:var(--vl);stroke-width:2}
.rbbl-vis2 svg.dia .ring2{fill:rgba(201,195,247,.14);stroke:var(--va);stroke-width:2}
.rbbl-vis2 svg.dia .ring3{fill:var(--vh);stroke:var(--vh)}
.rbbl-vis2 svg.dia .ln{stroke:var(--vl);stroke-width:2;fill:none}
.rbbl-vis2 svg.dia .nb{fill:var(--vh)}
.rbbl-vis2 .foot{margin-top:14px}
/* team */
.rbbl-vis2 .team{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1.25fr) auto minmax(0,1fr);gap:12px;align-items:center}
.rbbl-vis2 .team .nd{flex-direction:column;text-align:center;padding:18px 12px}
.rbbl-vis2 .team .nd span{text-align:center}
.rbbl-vis2 .shared{background:var(--vc);border:1px dashed var(--va);border-radius:10px;padding:14px}
.rbbl-vis2 .tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;padding-top:14px;border-top:1px dashed var(--vl)}
@media(max-width:980px){
.rbbl-vis2 .row5{grid-template-columns:repeat(3,minmax(0,1fr))}
.rbbl-vis2 .ten,.rbbl-vis2 .team{grid-template-columns:minmax(0,1fr)}
.rbbl-vis2 .ten .arw,.rbbl-vis2 .team .arw{transform:rotate(90deg);justify-self:center}
.rbbl-vis2 .two{grid-template-columns:minmax(0,1fr);gap:22px}
}
@media(max-width:600px){
.rbbl-vis2{padding:18px 14px}
.rbbl-vis2 .row5{grid-template-columns:repeat(2,minmax(0,1fr))}
.rbbl-vis2 .ten .chips{grid-template-columns:repeat(2,minmax(0,1fr))}
}
