/* Redesign layer (Dave, 2026-11-05). Home + the three service pages load this on
   top of fullloop.css. Everything is scoped under main.rd so About, Book, Privacy
   and Login are untouched. Layouts come from Dave's redesign package; its navy
   fills are mapped to the light theme (no dark-blue fills on this site). */
html { scroll-padding-top: 90px; }
.rd {
  --navy: #070D1D; --navy2: #0B2C4A; --sage: #AAB9A3; --sage-deep: #4C6363; --sage-pale: #DDE7E1;
  --cream: #FFFFFF; --paper: #FFFFFF; --ink: #070D1D; --muted: #4C6363; --line: rgba(7,13,29,.16);
  --gold: #F4D25A; --gold-ink: #8C6A00; --cyan: #04D9FF; --lavender: #BF94E4; --white: #FFFFFF;
  --panel: #FFFFFF; --band: #D9E4DD; --mist: #E7EEEA;
  --shadow: 0 24px 70px rgba(7,13,29,.1); --max: 1240px; --font: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  font: 16px/1.65 var(--font); color: var(--ink); -webkit-font-smoothing: antialiased;
}
.rd a:not(.btn) { color: inherit; text-decoration: none; }
.rd button { font: inherit; }
.rd svg { max-width: 100%; }
.rd .container { max-width: none; padding-left: 0; padding-right: 0; }
body main.rd { padding-bottom: 55px; }
.rd .container{width:min(var(--max),calc(100% - 56px));margin-inline:auto}
.rd .eyebrow,.rd .kicker{display:flex;align-items:center;gap:10px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.17em;color:var(--sage-deep)}
.rd .eyebrow:before{content:"";width:26px;height:1px;background:currentColor}
.rd h1,.rd h2,.rd h3,.rd p{margin-top:0}
.rd h1,.rd h2,.rd h3{color:var(--navy);line-height:1.06;letter-spacing:-.045em}
.rd h1{font-size:clamp(48px,7vw,92px);font-weight:760;margin:17px 0 22px}
.rd h2{font-size:clamp(36px,4.8vw,62px);font-weight:740;margin:12px 0 20px}
.rd h3{font-size:23px;font-weight:720;margin-bottom:10px}
.rd .lead{font-size:clamp(18px,1.65vw,21px);line-height:1.58;color:#455963;max-width:760px}
.rd .muted{color:var(--muted)}
.rd .small-label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.15em;color:var(--sage-deep)}
.rd .section{padding:110px 0;position:relative}
.rd .section.sage{background:var(--sage-pale)}
.rd .section.dark{background:var(--panel);color:var(--navy)}
.rd .section.dark h2,.rd .section.dark h3{color:var(--navy)}
.rd .section.dark p{color:var(--muted)}
.rd .section.dark .kicker,.rd .section.dark .eyebrow{color:var(--sage-deep)}
.rd .section-head{max-width:760px;margin-bottom:52px}
.rd .section-head p{max-width:660px;color:var(--muted);font-size:18px}
.rd .section.dark .section-head p{color:var(--muted)}
.rd .button{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--navy);border-radius:999px;padding:13px 21px;background:var(--panel);color:var(--navy);font-size:13px;font-weight:760;letter-spacing:.01em;transition:transform .2s,background .2s,box-shadow .2s;cursor:pointer}
.rd .button:hover{transform:translateY(-2px);background:var(--panel);box-shadow:0 10px 24px rgba(7,13,29,.16)}
.rd .button.outline{background:transparent;border-color:rgba(7,13,29,.32);color:var(--navy)}
.rd .button.outline:hover{background:rgba(170,185,163,.18);box-shadow:none}
.rd .arrow{font-size:17px;line-height:0;transition:transform .2s}
.rd .button:hover .arrow{transform:translate(3px,-2px)}
.rd .hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:29px}
.rd .at-glance{border-left:3px solid var(--gold);padding:15px 18px;background:rgba(255,255,255,.42);max-width:700px;margin:25px 0;color:#43545c;font-size:14px}
.rd .at-glance strong{color:var(--navy)}
.rd .home-hero{background:var(--sage-pale);padding:78px 0;overflow:hidden;position:relative}
.rd .home-hero:before{content:"";position:absolute;width:650px;height:650px;border-radius:50%;border:1px solid rgba(7,13,29,.09);left:50%;top:165px;transform:translateX(-50%);box-shadow:0 0 0 42px rgba(7,13,29,.018),0 0 0 84px rgba(7,13,29,.014)}
.rd .home-hero-copy{position:relative;z-index:2;text-align:center;max-width:1050px;margin:auto}
.rd .home-hero h1{max-width:1020px;margin:22px auto 19px}
.rd .home-hero .lead{margin:0 auto;max-width:790px}
.rd .home-hero .at-glance{margin:22px auto 0;max-width:740px;text-align:left}
.rd .home-hero .hero-actions{justify-content:center}
.rd .diagnostic-layout{display:grid;grid-template-columns:.82fr 1.18fr;gap:9vw;align-items:start}
.rd .diagnostic-title{position:sticky;top:120px}
.rd .process-intro{display:grid;grid-template-columns:.8fr 1.2fr;gap:9vw;margin-bottom:55px}
.rd .process-intro .process-statement{font:clamp(28px,3.6vw,46px)/1.13 Georgia,serif;color:var(--navy);letter-spacing:-.03em}
.rd .data-hero{background:var(--panel);color:var(--navy);padding:73px 0 58px;position:relative;overflow:hidden}
.rd .data-hero:before{content:"DATA";position:absolute;left:-20px;top:12px;font-size:clamp(140px,25vw,340px);font-weight:900;letter-spacing:-.1em;color:rgba(7,13,29,.035);line-height:1}
.rd .data-hero-content{position:relative;z-index:1;text-align:center;max-width:950px;margin:auto}
.rd .data-hero h1{color:var(--navy);max-width:900px;margin:18px auto}
.rd .data-hero .lead{color:var(--muted);max-width:780px;margin:auto}
.rd .data-hero .eyebrow{color:var(--sage-deep);justify-content:center}
.rd .data-hero .at-glance{margin:19px auto 0;text-align:left;color:var(--muted);background:rgba(7,13,29,.035);max-width:830px}
.rd .data-map{position:relative;margin:48px auto 0;max-width:1130px;padding:23px 25px 27px;border:1px solid var(--line);background:rgba(7,13,29,.035)}
.rd .data-map-grid{display:grid;grid-template-columns:repeat(4,1fr) 1.2fr;gap:12px;align-items:center}
.rd .data-source{border:1px solid var(--line);padding:17px 15px;min-height:82px;display:flex;flex-direction:column;justify-content:center;gap:4px;background:rgba(7,13,29,.035)}
.rd .data-source b{font-size:14px;color:var(--navy)}
.rd .data-source span{font-size:11px;color:var(--muted)}
.rd .data-source:after{content:"";height:2px;width:100%;margin-top:6px;background:linear-gradient(90deg,var(--gold),var(--cyan),var(--lavender));transform-origin:left;animation:rd-growline 3s ease-in-out infinite alternate}
.rd .data-hub-wide{background:var(--sage);color:var(--navy);padding:18px 15px;text-align:center;font-size:13px;font-weight:850;position:relative}
.rd .data-hub-wide:before{content:"";position:absolute;left:-20px;top:50%;width:20px;height:1px;background:var(--gold)}
.rd .data-map-caption{display:flex;justify-content:space-between;gap:20px;margin-top:17px;padding-top:15px;border-top:1px solid var(--line);font-size:11px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase}
.rd .capability-intro{display:grid;grid-template-columns:.65fr 1.35fr;gap:8vw;margin-bottom:38px}
.rd .capability-intro .large-note{font:clamp(25px,3vw,37px)/1.2 Georgia,serif;color:var(--navy)}
.rd .scenario-shell{display:grid;grid-template-columns:320px 1fr;gap:7vw;align-items:stretch}
.rd .scenario-nav{border-top:1px solid var(--line)}
.rd .scenario-nav button{width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;padding:19px 12px 19px 0;color:var(--muted);font-weight:750;cursor:pointer;transition:.2s}
.rd .scenario-nav button[aria-selected=true]{padding-left:15px;color:var(--navy);background:linear-gradient(90deg,rgba(170,185,163,.23),transparent)}
.rd .scenario-display{background:var(--paper);border:1px solid var(--line);padding:38px 40px;min-height:310px;position:relative;overflow:hidden}
.rd .scenario-display:after{content:"";position:absolute;width:180px;height:180px;border:1px solid rgba(7,13,29,.13);border-radius:50%;right:-70px;bottom:-90px;box-shadow:0 0 0 20px rgba(7,13,29,.025),0 0 0 40px rgba(7,13,29,.025)}
.rd .scenario-display .tag{font-size:11px;font-weight:850;letter-spacing:.15em;color:var(--sage-deep);text-transform:uppercase}
.rd .scenario-display h3{font:clamp(25px,3vw,37px)/1.1 Georgia,serif;margin:13px 0 16px;max-width:670px}
.rd .scenario-display p{color:var(--muted);max-width:700px}
.rd .scenario-display .objective{padding-top:16px;border-top:1px solid var(--line);color:var(--navy);font-size:14px;font-weight:750;max-width:700px}
.rd .sales-hero{background:var(--sage);padding:72px 0 76px;overflow:hidden}
.rd .sales-hero-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:6vw;align-items:center}
.rd .sales-hero .eyebrow{color:var(--navy)}
.rd .sales-hero h1{font-size:clamp(45px,4.9vw,70px);max-width:700px}
.rd .sales-hero .lead{color:#344c53}
.rd .pipeline-visual{background:var(--panel);color:var(--navy);padding:31px;border-radius:3px 48px 3px 48px;min-height:340px;position:relative;overflow:hidden;box-shadow:var(--shadow)}
.rd .pipeline-visual:after{content:"";position:absolute;width:330px;height:330px;border:1px solid var(--line);border-radius:50%;right:-140px;bottom:-210px;box-shadow:0 0 0 28px rgba(170,185,163,.025),0 0 0 56px rgba(170,185,163,.025)}
.rd .pipeline-meta{display:flex;justify-content:space-between;gap:10px;font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}
.rd .pipeline-meta b{color:var(--sage-deep)}
.rd .pipeline-track{display:flex;align-items:flex-start;position:relative;margin:42px 0 34px;z-index:1}
.rd .pipeline-track:before{content:"";position:absolute;left:7%;right:7%;height:1px;background:var(--line);top:11px}
.rd .pipeline-stage{flex:1;text-align:center;border:0;background:none;color:var(--muted);padding:0 3px;cursor:pointer;position:relative;z-index:2}
.rd .pipeline-stage .dot{display:block;width:22px;height:22px;border-radius:50%;border:2px solid var(--line);background:var(--panel);margin:0 auto 12px;transition:.2s}
.rd .pipeline-stage[aria-pressed=true]{color:var(--navy)}
.rd .pipeline-stage[aria-pressed=true] .dot{background:var(--gold);border-color:var(--gold);box-shadow:0 0 0 7px rgba(235,203,97,.16)}
.rd .pipeline-stage span:last-child{font-size:10px;font-weight:750;display:block}
.rd .pipeline-description{border-top:1px solid var(--line);padding-top:17px;position:relative;z-index:1;color:var(--muted);font-size:13px;min-height:80px}
.rd .pipeline-description b{display:block;color:var(--gold-ink);font-size:14px;margin-bottom:5px}
.rd .sales-diagnosis{display:grid;grid-template-columns:.72fr 1.28fr;gap:8vw}
.rd .sales-diagnosis .aside-statement{font:clamp(30px,3.6vw,47px)/1.12 Georgia,serif;color:var(--navy);position:sticky;top:120px;align-self:start}
.rd .ai-hero{background:var(--cream);padding:67px 0 65px;position:relative;overflow:hidden}
.rd .ai-hero:before{content:"AI";position:absolute;right:-25px;top:-115px;font-size:clamp(260px,45vw,650px);line-height:1;font-weight:900;letter-spacing:-.11em;color:rgba(170,185,163,.18);pointer-events:none}
.rd .ai-hero-top{position:relative;z-index:1;max-width:1000px}
.rd .ai-hero h1{max-width:1000px;font-size:clamp(48px,6.7vw,88px)}
.rd .ai-hero .lead{max-width:760px}
.rd .ai-hero-bottom{position:relative;z-index:1;margin-top:48px;background:var(--panel);padding:26px 30px;color:var(--navy);overflow:hidden}
.rd .ai-flow-label{font-size:10px;text-transform:uppercase;letter-spacing:.17em;color:var(--sage-deep);font-weight:850;margin-bottom:21px}
.rd .ai-flow{display:grid;grid-template-columns:repeat(4,1fr);align-items:center;gap:24px;position:relative}
.rd .ai-flow:before{content:"";height:1px;position:absolute;left:5%;right:5%;top:21px;background:var(--line)}
.rd .ai-flow-item{position:relative;z-index:1}
.rd .ai-flow-item .n{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--panel);display:grid;place-items:center;color:var(--gold-ink);font-size:12px;font-weight:850;margin-bottom:14px}
.rd .ai-flow-item b{display:block;font-size:14px;color:var(--navy)}
.rd .ai-flow-item span{font-size:12px;color:var(--muted)}
.rd .ai-flow-item:nth-child(2) .n{background:rgba(80,191,196,.13);border-color:var(--cyan)}
.rd .ai-flow-item:nth-child(3) .n{background:rgba(183,155,221,.12);border-color:var(--lavender)}
.rd .ai-flow-item:nth-child(4) .n{background:rgba(170,185,163,.13);border-color:var(--sage)}
.rd .day-fragment{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}
.rd .day-statement{font:clamp(32px,4vw,52px)/1.12 Georgia,serif;color:var(--navy)}
.rd .fragment-track{border-left:1px solid var(--line);padding-left:28px}
.rd .fragment{display:grid;grid-template-columns:38px 1fr;gap:14px;padding:15px 0;border-bottom:1px solid var(--line)}
.rd .fragment:last-child{border:0}
.rd .fragment .symbol{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:var(--sage-pale);color:var(--navy);font-size:14px;font-weight:850}
.rd .fragment b{display:block;color:var(--navy);font-size:15px}
.rd .fragment span{font-size:13px;color:var(--muted)}
.rd .ai-capabilities{border-top:1px solid var(--line)}
.rd .ai-capability{border-bottom:1px solid var(--line)}
.rd .ai-capability summary{display:grid;grid-template-columns:60px .8fr 1.2fr 32px;gap:20px;align-items:center;padding:22px 0;list-style:none;cursor:pointer}
.rd .ai-capability summary::-webkit-details-marker{display:none}
.rd .ai-capability .n{font-size:11px;font-weight:850;color:var(--sage-deep);letter-spacing:.12em}
.rd .ai-capability h3{font-size:21px;margin:0}
.rd .ai-capability summary p{font-size:14px;color:var(--muted);margin:0}
.rd .ai-capability .plus{width:30px;height:30px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:var(--navy);font-size:18px;transition:.2s}
.rd .ai-capability[open] .plus{transform:rotate(45deg);background:var(--panel);color:var(--navy)}
.rd .ai-capability .detail{padding:0 62px 25px 80px;color:var(--muted);max-width:930px}
.rd .ai-capability .detail ul{display:flex;flex-wrap:wrap;gap:8px 22px;padding:0;list-style:none;margin:14px 0}
.rd .ai-capability .detail li{font-size:13px;color:#4e6067}
.rd .ai-capability .detail li:before{content:"\2022";color:var(--gold-ink);margin-right:8px}
.rd .usecase-layout{display:grid;grid-template-columns:300px 1fr;gap:7vw;align-items:stretch}
.rd .usecase-tabs{display:flex;flex-direction:column;border-left:1px solid var(--line)}
.rd .usecase-tabs button{text-align:left;border:0;border-bottom:1px solid var(--line);border-left:3px solid transparent;background:none;padding:19px 18px;color:var(--muted);font-weight:750;cursor:pointer}
.rd .usecase-tabs button[aria-selected=true]{color:var(--navy);border-left-color:var(--gold);background:rgba(170,185,163,.16)}
.rd .usecase-panel{background:var(--panel);padding:38px 42px;color:var(--navy);min-height:300px;position:relative;overflow:hidden}
.rd .usecase-panel:after{content:"";position:absolute;width:260px;height:260px;border:1px solid rgba(170,185,163,.17);border-radius:50%;right:-120px;bottom:-145px;box-shadow:0 0 0 25px rgba(170,185,163,.025),0 0 0 50px rgba(170,185,163,.025)}
.rd .usecase-panel .small-label{color:var(--sage-deep)}
.rd .usecase-panel h3{color:var(--navy);font-size:clamp(26px,3vw,38px);margin:14px 0}
.rd .usecase-panel p{color:var(--muted);max-width:680px}
.rd .usecase-panel .guardrail{border-top:1px solid var(--line);padding-top:15px;color:var(--gold-ink);font-size:13px;font-weight:750;max-width:680px}
.rd .guardrail-section{display:grid;grid-template-columns:.72fr 1.28fr;gap:9vw}
.rd .guardrail-list{display:grid;grid-template-columns:1fr 1fr;gap:0 28px}
.rd .guardrail-list div{padding:15px 0;border-top:1px solid var(--line);color:var(--muted);font-size:14px}
.rd .guardrail-list div:before{content:"+";font-size:18px;color:var(--gold-ink);margin-right:12px}
.rd .faq-layout{display:grid;grid-template-columns:.72fr 1.28fr;gap:8vw}
.rd .faq-heading{align-self:start;position:sticky;top:120px}
.rd .faq-list{border-top:1px solid var(--line)}
.rd .faq-list details{border-bottom:1px solid var(--line)}
.rd .faq-list summary{list-style:none;cursor:pointer;padding:20px 42px 20px 0;font-size:16px;font-weight:730;color:var(--navy);position:relative}
.rd .faq-list summary::-webkit-details-marker{display:none}
.rd .faq-list summary:after{content:"+";position:absolute;right:4px;top:14px;font-size:24px;color:var(--sage-deep);font-weight:400;transition:transform .2s}
.rd .faq-list details[open] summary:after{transform:rotate(45deg)}
.rd .faq-list details p{color:var(--muted);padding:0 38px 19px 0;margin:0;max-width:830px}
.rd .quote-cta{background:var(--gold);padding:73px 0;position:relative;overflow:hidden}
.rd .quote-cta:after{content:"";position:absolute;right:-130px;top:-230px;width:500px;height:500px;border:40px solid rgba(7,13,29,.06);border-radius:50%}
.rd .quote-cta-inner{display:flex;justify-content:space-between;align-items:center;gap:35px;position:relative;z-index:1}
.rd .quote-cta h2{max-width:760px;margin:0;font-size:clamp(34px,4.2vw,55px)}
.rd [data-reveal].just-entered{animation:rd-rise-in .65s cubic-bezier(.2,.7,.2,1) both}
@keyframes rd-growline{0%{transform:scaleX(.5);opacity:.5}100%{transform:scaleX(1);opacity:1}}
@media(max-width:980px){
.rd .sales-hero-grid{grid-template-columns:1fr 1fr;gap:3vw}
.rd .diagnostic-layout,.rd .sales-diagnosis,.rd .faq-layout,.rd .guardrail-section{gap:5vw}
.rd .data-map-grid{grid-template-columns:repeat(2,1fr)}
.rd .data-hub-wide{grid-column:1/-1}
.rd .data-hub-wide:before{display:none}
}
@media(max-width:760px){
.rd .container{width:calc(100% - 36px)}
.rd .section{padding:78px 0}
.rd .home-hero{padding:62px 0}
.rd .home-hero:before{width:390px;height:390px;top:310px}
.rd .home-hero h1{font-size:clamp(43px,11.5vw,62px)}
.rd .diagnostic-layout,.rd .process-intro,.rd .day-fragment,.rd .sales-diagnosis,.rd .faq-layout,.rd .guardrail-section,.rd .capability-intro{grid-template-columns:1fr;gap:28px}
.rd .diagnostic-title,.rd .sales-diagnosis .aside-statement,.rd .faq-heading{position:static}
.rd .quote-cta{padding:54px 0}
.rd .quote-cta-inner{align-items:flex-start;flex-direction:column}
.rd .data-hero{padding:55px 0 42px}
.rd .data-hero h1{font-size:clamp(42px,11vw,62px)}
.rd .data-map{padding:15px}
.rd .data-map-grid{grid-template-columns:1fr 1fr;gap:8px}
.rd .data-source{min-height:70px;padding:12px}
.rd .data-hub-wide{grid-column:1/-1}
.rd .data-map-caption{font-size:9px;flex-direction:column;gap:5px}
.rd .capability-intro .large-note{font-size:27px}
.rd .scenario-shell{grid-template-columns:1fr;gap:24px}
.rd .scenario-nav{display:grid;grid-template-columns:1fr 1fr}
.rd .scenario-display{padding:27px 24px;min-height:unset}
.rd .sales-hero{padding:55px 0}
.rd .sales-hero-grid{grid-template-columns:1fr;gap:30px}
.rd .pipeline-visual{order:2;padding:24px 17px;min-height:320px}
.rd .sales-hero-copy{order:1}
.rd .sales-hero h1{font-size:clamp(43px,11vw,62px)}
.rd .ai-hero{padding:55px 0}
.rd .ai-hero h1{font-size:clamp(43px,11vw,64px)}
.rd .ai-hero:before{font-size:320px;top:0;right:-28px}
.rd .ai-hero-bottom{padding:22px 18px;margin-top:32px}
.rd .ai-flow{grid-template-columns:1fr 1fr;gap:20px}
.rd .ai-flow:before{display:none}
.rd .ai-capability summary{grid-template-columns:32px 1fr 28px;gap:12px;padding:18px 0}
.rd .ai-capability summary p{grid-column:2/3;font-size:13px}
.rd .ai-capability .detail{padding:0 0 22px 44px}
.rd .usecase-layout{grid-template-columns:1fr;gap:20px}
.rd .usecase-tabs{display:grid;grid-template-columns:1fr 1fr;border-left:0;border-top:1px solid var(--line)}
.rd .usecase-tabs button{border-left:0;border-bottom:1px solid var(--line);border-top:0;padding:14px 9px;border-left:3px solid transparent}
.rd .usecase-panel{padding:28px 24px;min-height:unset}
.rd .guardrail-list{grid-template-columns:1fr}
.rd .quote-cta h2{font-size:36px}
}
@media(max-width:420px){
.rd .hero-actions .button{width:100%}
.rd .data-map-grid{grid-template-columns:1fr 1fr}
}
.rd .why-layout{display:grid;grid-template-columns:.78fr 1.22fr;gap:8vw;align-items:start}
.rd .why-layout .section-head{margin:0}
@media(max-width:760px){
.rd .why-layout{grid-template-columns:1fr;gap:30px}
}

/* ------------------------------------------------------------------ light theme */
.rd .section { background: transparent; }
.rd .section.sage { background: var(--panel); }
.rd .section.dark { background: var(--band); }
.rd .home-hero { background: var(--sage-pale); }
.rd .at-glance { background: rgba(255,255,255,.7); color: var(--muted); }
.rd .at-glance strong { color: var(--navy); }
.rd .lead { color: var(--muted); }
.rd .data-hero { background: var(--band); }
.rd .data-hero:before { color: rgba(7,13,29,.035); }
.rd .data-hero .at-glance { background: rgba(255,255,255,.7); color: var(--muted); }
.rd .data-map { background: none; border: 0; padding: 0; }
.rd .data-source { background: var(--panel); border: 0; border-top: 4px solid var(--gold); }
.rd .data-map-caption { color: var(--muted); }
.rd .data-source span { color: var(--muted); }
.rd .ai-hero { background: transparent; }
.rd .ai-hero-bottom { background: var(--panel); border-top: 4px solid var(--gold); }
.rd .ai-flow-item span { color: var(--muted); }
.rd .pipeline-meta, .rd .pipeline-description, .rd .pipeline-stage { color: var(--muted); }
.rd .pipeline-stage[aria-pressed=true] { color: var(--navy); }
.rd .pipeline-stage .dot { background: var(--panel); border-color: rgba(7,13,29,.4); }
.rd .pipeline-stage[aria-pressed=true] .dot { background: var(--gold); border-color: var(--gold); box-shadow: 0 0 0 7px rgba(244,210,90,.25); }
.rd .pipeline-track:before { background: var(--line); }
.rd .process-statement { color: var(--navy); }
.rd .usecase-panel { background: var(--panel); border-top: 4px solid var(--gold); }
.rd .usecase-panel p { color: var(--muted); }
.rd .usecase-panel .guardrail { border-top-color: var(--line); }
.rd .section.dark .kicker, .rd .section.dark .eyebrow, .rd .small-label, .rd .kicker, .rd .eyebrow { color: var(--sage-deep); }
.rd .section.dark p, .rd .section.dark .section-head p { color: var(--muted); }
.rd .guardrail-list div { color: var(--navy); border-top-color: var(--line); }
.rd .guardrail-list div:before { color: var(--gold-ink); }
.rd .quote-cta { background: var(--panel); border-top: 4px solid var(--gold); }
.rd .sales-hero .eyebrow { color: var(--navy); }
.rd .sales-hero .lead { color: #24393C; }
.rd .sales-hero .at-glance { color: #24393C; }

/* Buttons: the existing gold Book Call, plus one quiet outline. */
.rd .btn.rd-book { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 1.6rem; font-size: 1rem; font-weight: 700; white-space: nowrap; }
.rd .button.outline { display: inline-flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 1.4rem; border: 1px solid rgba(7,13,29,.32); border-radius: 0; background: transparent; color: var(--navy); font-size: 1rem; font-weight: 700; box-shadow: none; }
.rd .button.outline:hover { background: rgba(7,13,29,.05); transform: none; }
.rd .arrow { font-size: 17px; line-height: 0; }

/* ---------------------------------------------------------- spotlight carousel
   One card opens out and carries its copy; the rest shingle behind it. The open
   copy keeps a fixed width while the frame widens, so nothing reflows mid-move. */
.rd .rd-spot { container-type: inline-size; width: 100%; }
.rd .rd-spot-track { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; }
.rd .rd-spot-closed { display: none; }
.rd .rd-spot-card { background: var(--panel); border-top: 4px solid var(--tone); }
.rd .rd-spot-open { padding: 26px 30px 28px; }
.rd .rd-tone-gold { --tone: var(--gold); }
.rd .rd-tone-cyan { --tone: var(--cyan); }
.rd .rd-tone-purple { --tone: var(--lavender); }

.rd .rd-spot.is-live .rd-spot-stage {
  position: relative; overflow: hidden; padding: 14px 0 22px;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.rd .rd-spot.is-live .rd-spot-track {
  --W: min(600px, 74cqw); --w: min(176px, 25cqw); --o: min(34px, 6cqw);
  display: flex; align-items: stretch; gap: 0; width: max-content; margin-left: 50%;
  transform: translateX(calc(-1 * (var(--i, 0) * (var(--w) - var(--o)) + var(--W) / 2)));
  transition: transform .55s cubic-bezier(.2,.7,.2,1);
}
.rd .rd-spot.is-live .rd-spot-card {
  position: relative; flex: 0 0 auto; width: var(--w); margin-left: calc(-1 * var(--o));
  background: #F3F7F4; border: 1px solid var(--line); border-top: 4px solid var(--tone);
  box-shadow: 0 12px 30px rgba(7,13,29,.1); overflow: hidden; cursor: pointer;
  transform: scale(.94); opacity: calc(1 - var(--d, 0) * .2);
  transition: width .55s cubic-bezier(.2,.7,.2,1), transform .55s cubic-bezier(.2,.7,.2,1), opacity .35s;
}
.rd .rd-spot.is-live .rd-spot-card:first-child { margin-left: 0; }
.rd .rd-spot.is-live .rd-spot-card.is-active { width: var(--W); background: var(--panel); transform: none; opacity: 1; cursor: default; }
.rd .rd-spot.is-live .rd-spot-open { width: var(--W); opacity: 0; transition: opacity .2s; }
.rd .rd-spot.is-live .is-active .rd-spot-open { opacity: 1; transition: opacity .35s .18s; }
.rd .rd-spot.is-live .rd-spot-closed {
  display: flex; flex-direction: column; justify-content: flex-end; gap: 8px; position: absolute; inset: 0;
  width: var(--w); padding: 20px 16px; transition: opacity .2s .15s;
}
.rd .rd-spot.is-live .is-after .rd-spot-closed { padding-left: calc(var(--o) + 16px); }
.rd .rd-spot.is-live .is-active .rd-spot-closed { opacity: 0; pointer-events: none; transition: opacity .12s; }
.rd .rd-spot-closed .n, .rd .rd-spot-open .n, .rd .rd-card .n { font-size: 11px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; color: var(--sage-deep); }
.rd .rd-spot-closed b { font-size: 14px; line-height: 1.25; font-weight: 700; color: var(--navy); }
.rd .rd-spot-open h3, .rd .rd-card h3 { font-size: clamp(21px, 2.1vw, 27px); margin: 10px 0 10px; }
.rd .rd-spot-open p, .rd .rd-card p { color: var(--muted); margin: 0 0 12px; }
.rd .rd-spot-open p:last-child { margin-bottom: 0; }
.rd .rd-spot-open ul { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 18px; padding: 0; margin: 0 0 12px; }
.rd .rd-spot-open li { position: relative; padding-left: 12px; font-size: 13px; color: var(--muted); }
.rd .rd-spot-open li:before { content: ""; position: absolute; left: 0; top: 9px; width: 5px; height: 5px; border-radius: 50%; background: var(--gold); }
.rd .rd-spot-open .focus, .rd .rd-spot-open .result { display: block; margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line); font-size: 13px; font-weight: 700; color: var(--navy); }
.rd .rd-spot-open .focus b { color: var(--sage-deep); }
.rd .rd-spot-open .rd-after { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.rd .rd-spot-open .rd-after h3 { font-size: 18px; margin: 0 0 6px; }
.rd .rd-link { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; color: var(--navy); border-bottom: 2px solid var(--gold); padding-bottom: 2px; }
.rd .rd-spot-nav { display: flex; align-items: center; justify-content: center; gap: 14px; }
.rd .rd-spot-nav > button { width: 38px; height: 38px; display: grid; place-items: center; padding: 0; border: 1px solid rgba(7,13,29,.28); border-radius: 50%; background: transparent; color: var(--navy); font-size: 16px; line-height: 1; cursor: pointer; }
.rd .rd-spot-nav > button:hover { background: var(--gold); border-color: var(--gold); }
.rd .rd-spot-dots { display: flex; align-items: center; gap: 7px; }
.rd .rd-spot-dots button { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 8px; background: rgba(7,13,29,.25); cursor: pointer; transition: width .3s, background .3s; }
.rd .rd-spot-dots button[aria-current="true"] { width: 26px; background: var(--navy); }
.rd .rd-spot button:focus-visible { outline: 2px solid var(--navy); outline-offset: 2px; }
@container (max-width: 560px) { .rd .rd-spot-closed b { display: none; } .rd .rd-spot-open { padding: 22px 20px 24px; } }
.rd .diagnostic-layout, .rd .why-layout { align-items: center; }
.rd .diagnostic-title { position: static; }
.rd .why-layout .rd-spot, .rd .diagnostic-layout .rd-spot { min-width: 0; }

/* ------------------------------------------------------------- hands of cards
   Fan Deck and Fan Carousel (Dave, 2026-11-06). Every card sits in one grid cell,
   so the longest copy sets the height and nothing jumps when the focus moves.
   redesign.js gives each card --d, its signed place from the focused card, and
   only then adds .is-fanned: without the script these are plain card grids. */
.rd .rd-spot.is-fanned > * { --cw: min(340px, 48cqw); }
.rd .rd-spot.is-fanned .rd-spot-stage {
  overflow: hidden; padding: 26px 0 calc(var(--cw) * .3); cursor: grab; touch-action: pan-y;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
}
.rd .rd-spot.is-fanned.is-dragging .rd-spot-stage { cursor: grabbing; }
.rd .rd-spot.is-fanned .rd-spot-track { display: grid; grid-template-columns: var(--cw); justify-content: center; gap: 0; }
.rd .rd-spot.is-fanned .rd-spot-card {
  grid-area: 1 / 1; position: relative; display: flex; min-width: 0; overflow: hidden;
  border: 0; border-radius: 20px; color: #fff; cursor: pointer; -webkit-user-select: none; user-select: none;
  box-shadow: 0 16px 34px rgba(40,18,22,.24);
  transition: transform .6s cubic-bezier(.2,.75,.2,1), opacity .3s, filter .25s;
}
.rd .rd-spot.is-fanned .rd-spot-card.is-active { cursor: inherit; }
.rd .rd-spot.is-fanned .rd-spot-card:not(.is-active):hover { filter: brightness(1.12); }
.rd .rd-spot.is-fanned .rd-spot-card.is-shuffling { opacity: 0; transition: transform .6s cubic-bezier(.2,.75,.2,1), opacity .1s; }
/* Crimson, aubergine, amber, forest, rust: no blue, whatever the gallery showed. */
.rd .rd-spot.is-fanned .rd-spot-card:nth-child(5n+1) { --top: #84202E; --mid: #9B3A35; --low: #571219; --glow: #E7A98B; }
.rd .rd-spot.is-fanned .rd-spot-card:nth-child(5n+2) { --top: #5C3D66; --mid: #4E3159; --low: #29192F; --glow: #DDB9E2; }
.rd .rd-spot.is-fanned .rd-spot-card:nth-child(5n+3) { --top: #96531F; --mid: #A25C25; --low: #43210E; --glow: #EFB56E; }
.rd .rd-spot.is-fanned .rd-spot-card:nth-child(5n+4) { --top: #4A6350; --mid: #48654F; --low: #1E3026; --glow: #CBE0B0; }
.rd .rd-spot.is-fanned .rd-spot-card:nth-child(5n+5) { --top: #A0452B; --mid: #A8492C; --low: #4E1C10; --glow: #F2B089; }
.rd .rd-spot.is-fanned .rd-spot-open {
  position: relative; z-index: 1; display: flex; flex-direction: column; flex: 1; min-width: 0; padding: 22px 24px;
  opacity: 0; transition: opacity .2s;
}
.rd .rd-spot.is-fanned .is-active .rd-spot-open { opacity: 1; transition: opacity .35s .15s; }
.rd .rd-spot.is-fanned .rd-spot-closed {
  display: flex; flex-direction: column; gap: 6px; position: absolute; inset: 0; padding: 18px 20px;
  transition: opacity .25s .1s;
}
.rd .rd-spot.is-fanned .is-active .rd-spot-closed { opacity: 0; pointer-events: none; transition: opacity .12s; }
.rd .rd-spot.is-fanned .is-after .rd-spot-closed { align-items: flex-end; text-align: right; }
.rd .rd-spot.is-fanned .rd-spot-closed .n { color: rgba(255,255,255,.82); }
.rd .rd-spot.is-fanned .rd-spot-closed b { max-width: 46%; font-size: 14px; line-height: 1.25; color: #fff; }
.rd .rd-spot.is-fanned .rd-spot-open h3 { color: #fff; }
.rd .rd-spot.is-fanned .rd-spot-open p { font-size: 15px; line-height: 1.5; color: rgba(255,255,255,.94); }
.rd .rd-spot.is-fanned .rd-spot-open p:last-child { margin-bottom: 0; }
.rd .rd-spot.is-fanned .rd-spot-nav { position: relative; z-index: 2; margin-top: calc(var(--cw) * -.2); }
.rd .rd-spot.is-fanned .rd-spot-dots button { position: relative; }
.rd .rd-spot.is-fanned .rd-spot-dots button:after { content: ""; position: absolute; inset: -9px -3px; }

/* Fan Deck: one rotation about a pivot off the bottom edge, so the bottoms gather
   and the tops swing. The focused card stands upright with its acid-yellow plate. */
.rd .rd-spot[data-spot="deck"].is-fanned .rd-spot-card {
  min-height: calc(var(--cw) * 1.36);
  background: radial-gradient(44% 27% at 66% 36%, var(--glow), transparent), linear-gradient(160deg, var(--top), var(--low));
  transform-origin: 50% calc(100% + var(--cw) * .8);
  transform: rotate(calc(var(--d, 0) * var(--step, 13deg)));
}
.rd .rd-spot[data-spot="deck"].is-fanned .rd-spot-card.is-d2,
.rd .rd-spot[data-spot="deck"].is-fanned .rd-spot-card.is-far { opacity: 0; pointer-events: none; }
@container (min-width: 900px) {
  .rd .rd-spot[data-spot="deck"].is-fanned .rd-spot-card.is-d2:not(.is-far) { opacity: 1; pointer-events: auto; }
  .rd .rd-spot[data-spot="deck"].is-fanned .rd-spot-stage { padding-bottom: calc(var(--cw) * .46); }
}
.rd .rd-spot[data-spot="deck"].is-fanned .rd-spot-open h3 { order: 1; margin: 0 0 20px; font-size: clamp(20px, 3.8cqw, 25px); }
.rd .rd-spot[data-spot="deck"].is-fanned .rd-spot-open p { order: 2; margin: auto 0 0; }
.rd .rd-spot[data-spot="deck"].is-fanned .rd-spot-open .n {
  order: 3; align-self: flex-start; margin-top: 16px; padding: 7px 12px; border-radius: 8px;
  background: #E8FF6B; color: var(--ink); letter-spacing: .1em;
}
.rd .rd-spot[data-spot="deck"].is-fanned .rd-spot-nav { display: grid; grid-template-columns: repeat(3, auto); justify-content: center; justify-items: center; gap: 6px 10px; }
.rd .rd-spot-count { grid-column: 1 / -1; padding: 2px 10px; border-radius: 999px; background: rgba(7,13,29,.1); color: var(--ink); font-size: 11px; font-weight: 800; letter-spacing: .06em; font-variant-numeric: tabular-nums; }
.rd .rd-spot[data-spot="deck"].is-fanned .rd-spot-nav > button { border: 0; background: rgba(7,13,29,.1); }
.rd .rd-spot[data-spot="deck"].is-fanned .rd-spot-nav > .rd-spot-play { margin-top: 8px; background: var(--panel); box-shadow: 0 6px 16px rgba(7,13,29,.16); }
.rd .rd-spot[data-spot="deck"].is-fanned .rd-spot-nav > button:hover { background: var(--gold); }
.rd .rd-spot-play:before { content: ""; width: 12px; height: 14px; margin-left: 2px; background: currentColor; clip-path: polygon(0 0, 100% 50%, 0 100%); }
.rd .rd-spot-play[aria-pressed="true"]:before { margin-left: 0; clip-path: none; background: linear-gradient(90deg, currentColor 36%, transparent 36% 64%, currentColor 64%); }

/* Fan Carousel: dealt along an arc. Every neighbour shares one scale and the focused
   card jumps clear of it, which is what makes it read as picked up, not just nearest. */
.rd .rd-spot[data-spot="fan"].is-fanned > * { --cw: min(350px, 40cqw); --reach: calc(var(--cw) * 3.1); }
.rd .rd-spot[data-spot="fan"].is-fanned .rd-spot-stage { padding: 36px 0 calc(var(--cw) * .44); }
.rd .rd-spot[data-spot="fan"].is-fanned .rd-spot-nav { margin-top: calc(var(--cw) * -.3); }
.rd .rd-spot[data-spot="fan"].is-fanned .rd-spot-card {
  --a: calc(var(--d, 0) * 11.5deg);
  min-height: calc(var(--cw) * 1.14);
  background: linear-gradient(180deg, rgba(62,54,54,.42), transparent 70%), linear-gradient(180deg, var(--top), var(--mid) 52%, var(--low));
  transform: translate(calc(sin(var(--a)) * var(--reach)), calc((1 - cos(var(--a))) * var(--reach) + 8px)) rotate(var(--a)) scale(.76);
}
.rd .rd-spot[data-spot="fan"].is-fanned .rd-spot-card.is-active { transform: translateY(-14px); box-shadow: 0 26px 50px rgba(40,18,22,.34); }
.rd .rd-spot[data-spot="fan"].is-fanned .rd-spot-closed { padding: 20px 22px; }
.rd .rd-spot[data-spot="fan"].is-fanned .rd-spot-closed b { max-width: 52%; font-size: 16px; }
.rd .rd-spot[data-spot="fan"].is-fanned .rd-spot-open { padding: 24px 24px 28px; text-align: center; }
.rd .rd-spot[data-spot="fan"].is-fanned .rd-spot-open h3 { margin: 0 30px 10px; font-size: clamp(20px, 2.4cqw, 25px); }
.rd .rd-spot[data-spot="fan"].is-fanned .rd-spot-open .n {
  position: absolute; top: 14px; right: 14px; padding: 3px 9px; border-radius: 999px;
  background: rgba(255,255,255,.2); color: #fff; font-size: 10px; letter-spacing: .08em;
}
@container (max-width: 560px) {
  .rd .rd-spot.is-fanned > *, .rd .rd-spot[data-spot="fan"].is-fanned > * { --cw: min(330px, 74cqw); --reach: calc(var(--cw) * 2); }
  .rd .rd-spot[data-spot="deck"].is-fanned .rd-spot-track { --step: 8deg; }
  .rd .rd-spot.is-fanned .rd-spot-closed b { display: none; }
  .rd .rd-spot.is-fanned .rd-spot-closed .n { display: none; }
  .rd .rd-spot.is-fanned .rd-spot-open { padding: 20px; }
  .rd .rd-spot.is-fanned .rd-spot-open p { font-size: 14.5px; }
}

/* Card Bookmark (Dave, 2026-11-06): a raised tab top right, a bite out of the lower
   edge, and artwork that blooms into colour and dissolves into the glow behind it.
   Browsers without clip-path shape() show the same card with plain rounded corners.
   Touch screens have no hover, so they show the bloomed state. */
.rd .rd-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.rd .rd-bloom-amber { --a1: #E08A12; --a2: #F7C948; --a3: #B4570C; --bloom: rgba(244,178,40,.72); --cast: rgba(200,130,20,.34); }
.rd .rd-bloom-coral { --a1: #E23F2B; --a2: #F78B3D; --a3: #A21C2A; --bloom: rgba(232,84,45,.6); --cast: rgba(200,60,40,.3); }
.rd .rd-bloom-violet { --a1: #8A3BD1; --a2: #D56BE6; --a3: #5C1EA6; --bloom: rgba(150,72,222,.48); --cast: rgba(120,50,190,.28); }
.rd .rd-card {
  --t: 28px; --f: 14px; --b: 24px; --g: 12px; --r: 20px; --tab: 30%; --bite: 64%;
  display: flex; min-width: 0; filter: drop-shadow(0 20px 28px var(--cast)); transition: filter .5s;
}
.rd .rd-card-shape {
  position: relative; flex: 1; display: flex; flex-direction: column; min-width: 0;
  padding: calc(var(--t) + 10px) 14px 16px; border-radius: var(--r); background: var(--mist);
}
@supports (clip-path: shape(from 0 0, line to 1px 1px)) {
  .rd .rd-card-shape {
    border-radius: 0;
    clip-path: shape(from 0 calc(var(--t) + var(--r)),
      arc to var(--r) var(--t) of var(--r) cw,
      hline to calc(var(--tab) - var(--f)),
      arc to var(--tab) calc(var(--t) - var(--f)) of var(--f) ccw,
      arc to calc(var(--tab) + var(--f)) 0 of var(--f) cw,
      hline to calc(100% - var(--r)),
      arc to 100% var(--r) of var(--r) cw,
      vline to calc(100% - var(--b) - var(--r)),
      arc to calc(100% - var(--r)) calc(100% - var(--b)) of var(--r) cw,
      hline to calc(var(--bite) + var(--g)),
      arc to var(--bite) calc(100% - var(--g)) of var(--g) ccw,
      arc to calc(var(--bite) - var(--g)) 100% of var(--g) cw,
      hline to var(--r),
      arc to 0 calc(100% - var(--r)) of var(--r) cw,
      close);
  }
}
.rd .rd-card-shape:before {
  content: ""; position: absolute; inset: 0; transition: opacity .55s;
  background: radial-gradient(90% 58% at 50% 26%, var(--bloom), transparent 78%), linear-gradient(0deg, var(--bloom), transparent 34%);
}
.rd .rd-card-shape > * { position: relative; }
.rd .rd-card .n { position: absolute; top: 9px; right: 20px; color: var(--ink); }
.rd .rd-card .n:before { content: "\2014\00a0"; }
.rd .rd-card-art { height: clamp(140px, 13vw, 176px); margin-bottom: 18px; border-radius: 13px; overflow: hidden; transition: background-color .5s; }
.rd .rd-card-art span {
  position: absolute; inset: -6%; background: linear-gradient(105deg, var(--a1), var(--a2) 50%, var(--a3));
  -webkit-mask: url("../assets/fullloop-ribbon.svg") center / cover no-repeat; mask: url("../assets/fullloop-ribbon.svg") center / cover no-repeat;
  transform: scale(1.05); transition: filter .6s, transform .9s cubic-bezier(.2,.7,.2,1);
}
.rd .rd-card:nth-child(2) .rd-card-art span { scale: -1 1; }
.rd .rd-card:nth-child(3) .rd-card-art span { rotate: 180deg; }
.rd .rd-card h3 { margin: 0 8px 10px; font-size: clamp(22px, 2.2vw, 28px); }
.rd .rd-card p { margin: 0 8px 12px; color: rgba(7,13,29,.82); }
.rd .rd-card p:last-of-type { margin-top: auto; margin-bottom: 0; }
.rd .rd-card-meter { display: flex; gap: 5px; margin: 16px 8px 0; }
.rd .rd-card-meter i { width: 7px; height: 7px; border-radius: 50%; background: rgba(7,13,29,.18); }
.rd .rd-card:nth-child(1) .rd-card-meter i:nth-child(-n+1),
.rd .rd-card:nth-child(2) .rd-card-meter i:nth-child(-n+2),
.rd .rd-card:nth-child(3) .rd-card-meter i:nth-child(-n+3) { background: var(--a1); }
@media (hover: hover) {
  .rd .rd-card:not(:hover, :focus-within) { filter: drop-shadow(0 10px 18px rgba(7,13,29,.07)); }
  .rd .rd-card:not(:hover, :focus-within) .rd-card-shape:before { opacity: 0; }
  .rd .rd-card:not(:hover, :focus-within) .rd-card-art { background-color: rgba(255,255,255,.72); }
  .rd .rd-card:not(:hover, :focus-within) .rd-card-art span { filter: grayscale(.8) opacity(.6); transform: none; }
}
@media (max-width: 980px) { .rd .rd-cards { grid-template-columns: 1fr; } .rd .rd-card-art { height: 200px; } }

/* ------------------------------------------------------------------- step path
   One dashed line hopping dot to dot. It draws in on scroll, each step fading up
   as it arrives, then a darker stretch keeps travelling along it. */
.rd .rd-path {
  --drop: clamp(26px, 3.6vw, 54px); --dur: 2.8s;
  position: relative; display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); gap: clamp(12px, 2vw, 28px);
  list-style: none; margin: 0; padding: 74px 0 0;
}
.rd .rd-step { position: relative; z-index: 1; margin-top: calc(var(--i) * var(--drop)); padding-top: 40px; text-align: center; }
.rd .rd-dot { position: absolute; top: 0; left: 30%; width: 11px; height: 11px; margin-left: -5px; border-radius: 50%; background: var(--navy); }
.rd .rd-step h3 { font-size: 18px; letter-spacing: -.02em; line-height: 1.25; margin: 0 0 8px; }
.rd .rd-step h3 .n { color: var(--sage-deep); font-weight: 500; }
.rd .rd-step p { max-width: 30ch; margin: 0 auto; font-size: 14px; line-height: 1.55; color: var(--muted); }
.rd .rd-path-line { position: absolute; left: 0; top: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.rd .rd-path-line path { fill: none; }
.rd .rd-line-base { stroke: rgba(7,13,29,.3); stroke-width: 1.6; stroke-dasharray: 4 6; stroke-linecap: round; }
.rd .rd-line-run { stroke: var(--navy); stroke-width: 1.8; stroke-dasharray: 4 6; stroke-linecap: round; }
.rd .rd-mask-draw { stroke: #fff; stroke-width: 10; stroke-dasharray: 1 1; stroke-dashoffset: 1; transition: stroke-dashoffset var(--dur) linear; }
.rd .rd-mask-run { stroke: #fff; stroke-width: 10; stroke-dasharray: .16 1; stroke-dashoffset: .16; }
.rd .rd-path.is-in .rd-mask-draw { stroke-dashoffset: 0; }
.rd .rd-path.is-in .rd-mask-run { animation: rd-run 6s linear var(--dur) infinite; }
.rd .rd-path.is-live .rd-step { opacity: 0; transform: translateY(12px); }
.rd .rd-path.is-live.is-in .rd-step { opacity: 1; transform: none; transition: opacity .5s, transform .5s; transition-delay: calc(var(--i) / max(var(--n) - 1, 1) * var(--dur)); }
.rd .rd-path.is-still .rd-mask-draw { stroke-dashoffset: 0; transition: none; }
.rd .rd-path.is-still .rd-line-run { display: none; }
@keyframes rd-run { from { stroke-dashoffset: .16; } to { stroke-dashoffset: -1; } }
@media (max-width: 980px) {
  .rd .rd-path { grid-template-columns: minmax(0, 1fr); padding: 6px 0 0 26px; gap: 0; --drop: 0px; }
  .rd .rd-step { padding: 0 0 26px 26px; text-align: left; }
  .rd .rd-dot { left: 0; top: 7px; margin-left: 0; }
  .rd .rd-step p { max-width: 62ch; margin: 0; }
}

/* The package's motion rule, with a ?flmotion=1 preview override. */
@media (prefers-reduced-motion: reduce) {
  html:not(.rd-motion) { scroll-behavior: auto; }
  html:not(.rd-motion) .rd *, html:not(.rd-motion) .rd *:before, html:not(.rd-motion) .rd *:after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; transition-delay: 0s !important; }
}

/* The package sets headings in the body sans; fullloop.css sets its own heading face. */
.rd h1, .rd h2, .rd h3 { font-family: var(--font); }
/* Cards left of the open one are overlapped on their right edge: keep their label clear. */
.rd .rd-spot.is-live .rd-spot-card:not(.is-after) .rd-spot-closed { padding-right: calc(var(--o) + 10px); }

/* CRM cost calculator on the sales page, flat: no cards, spacing and hairlines only
   (Dave, 2026-11-07). The React source is tools/crm-calculator/. */
.rd .crmc-mount{min-height:640px}
.rd .crmf{display:grid;grid-template-columns:minmax(240px,320px) minmax(0,1fr);gap:0 64px;font-variant-numeric:tabular-nums;color:var(--navy)}
.rd .crmf-base{grid-column:1/-1;margin:0 0 32px;padding:4px 0 4px 18px;border-left:3px solid var(--gold);font-size:clamp(18px,1.8vw,24px);line-height:1.45;font-weight:560;color:var(--navy);max-width:none}
.rd .crmf-base b{font-weight:800;color:var(--gold-ink)}
.rd .crmf-base-label{display:block;margin-bottom:2px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.16em;color:var(--sage-deep)}
.rd .crmf-controls{align-self:start}
.rd .crmf-slider{padding:16px 0 10px;border-top:1px solid var(--line)}
.rd .crmf-slider:first-child{border-top:0;padding-top:0}
.rd .crmf-slider-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.rd .crmf-slider-head label{font-size:13px;font-weight:650;color:var(--muted)}
.rd .crmf-slider-head output{font-size:28px;font-weight:760;letter-spacing:-.03em;color:var(--navy)}
.rd .crmf-slider input{-webkit-appearance:none;appearance:none;display:block;width:100%;height:26px;margin:2px 0 0;background:transparent;cursor:pointer}
.rd .crmf-slider input::-webkit-slider-runnable-track{height:6px;border-radius:999px;background:linear-gradient(90deg,var(--gold) var(--pct),rgba(76,99,99,.18) var(--pct))}
.rd .crmf-slider input::-moz-range-track{height:6px;border-radius:999px;background:linear-gradient(90deg,var(--gold) var(--pct),rgba(76,99,99,.18) var(--pct))}
.rd .crmf-slider input::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;margin-top:-7px;border-radius:50%;background:#fff;border:3px solid var(--gold-ink);box-shadow:0 2px 6px rgba(7,13,29,.18)}
.rd .crmf-slider input::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--gold-ink)}
.rd .crmf-slider input:focus-visible{outline:2px solid var(--navy);outline-offset:4px;border-radius:6px}
.rd .crmf-result{min-width:0}
.rd .crmf-legend{display:flex;flex-wrap:wrap;gap:4px 20px;margin:0 0 14px;padding:0;list-style:none;font-size:12px;color:var(--muted)}
.rd .crmf-legend li{display:flex;align-items:center;gap:7px}
.rd .crmf-legend i{width:10px;height:10px;border-radius:3px}
.rd .crmf-sw-back,.rd .crmf-on-back{background:var(--gold)}
.rd .crmf-sw-crm,.rd .crmf-on-crm{background:var(--sage-deep)}
.rd .crmf-sw-sell{background:rgba(76,99,99,.16)}
.rd .crmf-result-grid{display:grid;grid-template-columns:clamp(180px,22vw,250px) minmax(0,1fr);gap:40px;align-items:center}
.rd .crmf-ring{display:block;width:100%;height:auto}
.rd .crmf-ring-track{fill:none;stroke:var(--sage-deep);stroke-width:16}
.rd .crmf-ring-arc{fill:none;stroke:var(--gold);stroke-width:16;stroke-linecap:round}
.rd .crmf-ring-big{font-size:42px;font-weight:780;letter-spacing:-.04em;fill:var(--navy)}
.rd .crmf-ring-small{font-size:14px;fill:var(--muted)}
.rd .crmf-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 36px;margin:0}
.rd .crmf-stat{padding:14px 0;border-top:1px solid var(--line)}
.rd .crmf-stat:nth-child(-n+2){border-top:0;padding-top:0}
.rd .crmf-stat dt{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--sage-deep)}
.rd .crmf-stat dd{margin:2px 0 0;display:flex;flex-direction:column}
.rd .crmf-stat-value{font-size:clamp(30px,3.2vw,44px);font-weight:780;letter-spacing:-.04em;line-height:1.1;color:var(--navy)}
.rd .crmf-stat-sub{font-size:13px;color:var(--muted)}
.rd .crmf-year{grid-column:1/-1;margin-top:36px;padding-top:28px;border-top:1px solid var(--line)}
.rd .crmf-year-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 24px;margin-bottom:14px}
.rd .crmf-year-big{margin:0;font-size:clamp(34px,3.6vw,48px);font-weight:780;letter-spacing:-.04em;line-height:1.1;color:var(--navy)}
.rd .crmf-year-big span{font-size:16px;font-weight:600;letter-spacing:0;color:var(--muted)}
.rd .crmf-year-side{margin:0;font-size:14px;color:var(--muted)}
.rd .crmf-weeks{display:flex;gap:4px;height:56px}
.rd .crmf-week{position:relative;flex:1;min-width:0;border-radius:3px;background:rgba(76,99,99,.16);overflow:hidden}
.rd .crmf-week i{position:absolute;top:0;bottom:0}
.rd .crmf-axis{display:flex;justify-content:space-between;margin-top:8px;font-size:12px;color:var(--muted)}
.rd .crmf-basis{grid-column:1/-1;margin:22px 0 0;font-size:12px;color:var(--muted);max-width:none}
@media (max-width:900px){
  .rd .crmc-mount{min-height:950px}
  .rd .crmf{grid-template-columns:1fr}
  .rd .crmf-controls{margin-bottom:28px}
}
@media (max-width:560px){
  .rd .crmf-result-grid{grid-template-columns:1fr;gap:24px}
  .rd .crmf-ring{max-width:220px;margin:0 auto}
  .rd .crmf-stats{gap:0 20px}
  .rd .crmf-weeks{gap:2px;height:44px}
  .rd .crmf-week{border-radius:2px}
}
