/* Blushush redesign, round 1.
   Implements the design handoff's type system, spacing scale and colour tokens.
   Loaded after blushush.webflow.css so it wins on the pages that use it.

   Two deliberate departures from the handoff, both noted in the build report:
   1. General Sans is self-hosted rather than pulled from api.fontshare.com, so the
      site keeps zero external font dependencies.
   2. The homepage hero keeps the live site's moving image rows, at the client's
      request, rebuilt in pure CSS (no JavaScript) and paused for prefers-reduced-motion.
      Everything else on the site stays static.

   Scoped under .rd so nothing here can leak into the 302 pages still on the old design. */

/* ---------- fonts, all local ---------- */
@font-face{font-family:'TT Trailers';src:url('../fonts/TT-Trailers-Bold.woff2') format('woff2'),url('../fonts/TT-Trailers-Bold.woff') format('woff');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'General Sans';src:url('../fonts/GeneralSans-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'General Sans';src:url('../fonts/GeneralSans-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'General Sans';src:url('../fonts/GeneralSans-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'General Sans';src:url('../fonts/GeneralSans-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}

.rd{
  /* colour */
  --ink:#0A0A0A; --paper:#F7F7F4; --lime:#D1FD68; --blue:#3665FB;
  --body-on-paper:#2B2B28; --muted-on-paper:#565650;
  --body-on-ink:#C9C9C1; --muted-on-ink:#8A8A80;
  --rule-on-paper:rgba(10,10,10,.14); --rule-on-ink:rgba(255,255,255,.18);
  --rule-on-ink-soft:rgba(255,255,255,.14);

  /* spacing scale */
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px; --s6:32px;
  --s7:48px; --s8:64px; --s9:96px; --s10:128px; --s11:160px;

  --shell:1280px; --narrow:1040px; --gutter:40px;

  --display:'TT Trailers',Impact,sans-serif;
  --text:'General Sans','GeneralSans Local',Helvetica,Arial,sans-serif;

  font-family:var(--text);
  color:var(--body-on-paper);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
}

.rd *,.rd *::before,.rd *::after{box-sizing:border-box}
.rd img{max-width:100%;display:block}

/* ---------- type ramp ---------- */
.rd h1,.rd h2,.rd h3,.rd .display{font-family:var(--display);font-weight:700;margin:0}
.rd h1{font-size:clamp(3.5rem,7.2vw,6.5rem);line-height:.92;letter-spacing:-.02em;max-width:24ch}
.rd h2{font-size:clamp(2.5rem,4.4vw,4.5rem);line-height:.95;letter-spacing:-.015em;max-width:22ch}
.rd h3{font-size:clamp(1.75rem,2.4vw,3rem);line-height:1;letter-spacing:-.01em;max-width:20ch}
.rd .t24{font:600 1.5rem/1.3 var(--text);letter-spacing:-.01em;max-width:34ch;margin:0}
.rd .t20{font:600 1.25rem/1.35 var(--text);max-width:44ch;margin:0}
.rd .lede{font:400 1.25rem/1.55 var(--text);max-width:52ch;margin:0}
.rd .body{font:400 1.0625rem/1.65 var(--text);max-width:68ch;margin:0}
.rd .meta{font:500 .875rem/1.5 var(--text);margin:0}
.rd .eyebrow{font:600 .75rem/1.4 var(--text);letter-spacing:.14em;text-transform:uppercase;margin:0}
.rd .num{font:600 .75rem/1.4 var(--text);letter-spacing:.14em}

/* ---------- layout ---------- */
.rd .shell{width:100%;max-width:calc(var(--shell) + (var(--gutter) * 2));margin:0 auto;
  padding-left:var(--gutter);padding-right:var(--gutter)}
/* narrow sections share the shell's left edge so every section starts on the
   same line; only their content is capped at the narrow measure */
.rd .narrow{max-width:calc(var(--shell) + (var(--gutter) * 2))}
.rd .shell.narrow > *{max-width:var(--narrow)}
.rd .sec{padding-top:var(--s10);padding-bottom:var(--s10)}
.rd .sec--tight{padding-top:var(--s9);padding-bottom:var(--s9)}
.rd .on-ink{background:var(--ink);color:var(--body-on-ink)}
.rd .on-ink h1,.rd .on-ink h2,.rd .on-ink h3,.rd .on-ink .t20,.rd .on-ink .t24{color:#fff}
.rd .on-ink .eyebrow{color:var(--muted-on-ink)}
.rd .on-paper{background:var(--paper);color:var(--body-on-paper)}
.rd .on-paper h1,.rd .on-paper h2,.rd .on-paper h3,.rd .on-paper .t20,.rd .on-paper .t24{color:var(--ink)}
.rd .on-paper .eyebrow{color:var(--muted-on-paper)}
.rd .on-lime{background:var(--lime);color:var(--ink)}
.rd .on-lime h2,.rd .on-lime .t20{color:var(--ink)}
.rd .on-lime .eyebrow{color:rgba(10,10,10,.6)}
.rd .sec-head{margin-bottom:var(--s9)}
.rd .sec-head .eyebrow{margin-bottom:var(--s5)}
.rd .sec-head .lede{margin-top:var(--s5)}

/* ---------- controls ----------
   Buttons are .rd-btn in chrome.css (one architecture for every page).
   Standalone text links share one Link style below. */
.rd .link,.rd-service__cta,.rd-uc__cta{display:inline-flex;align-items:center;min-height:44px;
  font:600 1rem var(--text);text-decoration:none;color:inherit;
  border-bottom:1px solid currentColor}
.rd .link:hover,.rd-service:hover .rd-service__cta,.rd-uc:hover .rd-uc__cta{color:var(--blue);border-bottom-color:var(--blue)}
.rd .on-ink .link:hover{color:var(--lime);border-bottom-color:var(--lime)}

/* ---------- hero ---------- */
.rd-hero{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));
  gap:var(--s8);align-items:start;padding-top:var(--s9);padding-bottom:var(--s10)}
.rd-chips{display:flex;flex-wrap:wrap;gap:var(--s3);margin-bottom:var(--s6)}
.rd-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:2px;
  border:1px solid rgba(255,255,255,.2);font:600 .75rem var(--text);
  letter-spacing:.14em;text-transform:uppercase;color:#fff}
.rd-chip img{height:14px;width:auto}
.rd-chip__dot{width:6px;height:6px;border-radius:50%;background:var(--lime)}
.rd-hero .lede{margin-top:var(--s5);color:var(--body-on-ink)}
.rd-hero__actions{display:flex;flex-wrap:wrap;gap:var(--s3);margin-top:var(--s7)}
.rd-proof{margin-top:var(--s9);padding-top:var(--s5);border-top:1px solid var(--rule-on-ink)}
.rd-proof ul{list-style:none;display:flex;flex-wrap:wrap;gap:var(--s6);margin:var(--s4) 0 0;padding:0;
  font:600 1rem var(--text);color:#fff}
/* Homepage hero image rows, matched to the live site: two rows of 390x240 cards,
   10px radius, 25px gaps, the top row drifting left and the bottom row right at
   ~41px/s (a 1,660px loop in 40s), with ink fades on both inner edges.
   Each track holds two identical sets, each with trailing padding equal to the gap,
   so translating by exactly -50% loops without a visible seam. */
.rd-hero--home{grid-template-columns:minmax(0,45fr) minmax(0,55fr);align-items:center}
.rd .rd-hero--home h1{font-size:clamp(34px,3.6vw,60px);line-height:1.08;max-width:none}
@media (max-width:991px){ .rd-hero--home{grid-template-columns:1fr} }
.rd-hero-marquee{position:relative;display:flex;flex-direction:column;gap:25px;min-width:0}
.rd-hero-marquee::before,.rd-hero-marquee::after{content:"";position:absolute;top:0;bottom:0;
  width:25%;z-index:2;pointer-events:none}
.rd-hero-marquee::before{left:0;background:linear-gradient(90deg,var(--ink),rgba(10,10,10,0))}
.rd-hero-marquee::after{right:0;background:linear-gradient(270deg,var(--ink),rgba(10,10,10,0))}
.rd-marquee{overflow:hidden}
.rd-marquee__track{display:flex;width:max-content;animation:rd-marquee-left 40s linear infinite;
  will-change:transform}
.rd-marquee--reverse .rd-marquee__track{animation-name:rd-marquee-right}
.rd-marquee__set{display:flex;flex:none;gap:25px;padding-right:25px}
.rd-marquee__item{flex:none;width:390px;height:240px;border-radius:10px;overflow:hidden}
.rd-marquee__item img{width:100%;height:100%;object-fit:cover;display:block}
@keyframes rd-marquee-left{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes rd-marquee-right{from{transform:translateX(-50%)}to{transform:translateX(0)}}
@media (prefers-reduced-motion:reduce){ .rd-marquee__track{animation:none} }
@media (max-width:767px){
  .rd-hero-marquee,.rd-marquee__set{gap:10px}
  .rd-marquee__set{padding-right:10px}
  .rd-marquee__item{width:250px;height:160px}
  .rd-hero-marquee::before,.rd-hero-marquee::after{width:18%}
}

/* ---------- two surfaces ---------- */
.rd-surfaces{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--s7)}
@media (min-width:992px){ .rd-surfaces--three{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (min-width:992px){ .rd-surfaces--four{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s5)} }
.rd-surface{border-top:1px solid var(--rule-on-paper);border-bottom:1px solid var(--rule-on-paper);
  padding:var(--s6) 0}
.rd-surface .num{color:var(--muted-on-paper);display:block;margin-bottom:var(--s3)}
.rd-surface h3{margin-bottom:var(--s5)}
.rd-surface .body{margin-bottom:var(--s5)}
.rd-twocol{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  gap:var(--s7);margin-top:var(--s9)}

/* ---------- work ---------- */
.rd-work__head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;
  gap:var(--s5);margin-bottom:var(--s9)}
.rd-work__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--s4)}
.rd-work__grid img{aspect-ratio:16/10;object-fit:cover;border-radius:4px;width:100%;height:auto}

/* ---------- why believe ---------- */
.rd-benefits{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 var(--s7)}
@media (max-width:1199px){ .rd-benefits{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:639px){ .rd-benefits{grid-template-columns:1fr} }
.rd-benefit{border-top:1px solid var(--rule-on-ink-soft);padding:var(--s6) 0}
.rd-benefit .num{color:var(--lime);display:block;margin-bottom:var(--s3)}
.rd-benefit .t20{margin-bottom:var(--s5)}
.rd-benefit .body{color:var(--body-on-ink)}

/* ---------- services ---------- */
.rd-service{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:var(--s5) var(--s7);
  border-top:1px solid var(--rule-on-paper);padding:var(--s6) 0;text-decoration:none;color:inherit}
.rd-service:last-of-type{border-bottom:1px solid var(--rule-on-paper)}
.rd-service .num{color:var(--muted-on-paper);align-self:start;padding-top:10px}
.rd-service__main{display:block;min-width:0}
.rd-service__name{font-family:var(--display);font-weight:700;font-size:2rem;line-height:1;
  letter-spacing:-.01em;color:var(--ink);margin:0 0 var(--s3);display:block}
.rd-service .body{display:block;margin:0}
.rd-service__cta{justify-self:end;white-space:nowrap}
.rd-service:hover .rd-service__name{color:var(--blue)}
@media (max-width:639px){
  .rd-service{grid-template-columns:32px minmax(0,1fr)}
  .rd-service__cta{grid-column:2;justify-self:start}
}

/* ---------- insights ---------- */
.rd-insights{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:0}
.rd-insight{border-top:1px solid var(--rule-on-paper);padding:var(--s6) var(--s7) var(--s6) 0;
  text-decoration:none;color:inherit;display:block}
.rd-insight img{aspect-ratio:16/10;object-fit:cover;border-radius:4px;width:100%;height:auto;margin-bottom:var(--s5)}
.rd-insight .eyebrow{color:var(--muted-on-paper);margin-bottom:var(--s3)}
.rd-insight__meta{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4)}
.rd-insight .t20{margin-bottom:var(--s5)}
.rd-insight:hover .t20{color:var(--blue)}

/* ---------- AI page: hero side list ---------- */
.rd-hero__list{border-left:1px solid var(--rule-on-ink);padding-left:var(--s7)}
.rd-hero__list ul{list-style:none;margin:var(--s5) 0 0;padding:0}
.rd-hero__list li{border-top:1px solid var(--rule-on-ink-soft);padding:var(--s4) 0;
  font:600 1.25rem var(--text);color:#fff}
.rd-hero__list li:last-child{border-bottom:1px solid var(--rule-on-ink-soft)}

/* ---------- numbered rows (the system) ---------- */
.rd-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));
  gap:var(--s7);border-top:1px solid var(--rule-on-paper);padding:var(--s6) 0}
.rd-row:last-of-type{border-bottom:1px solid var(--rule-on-paper)}
.rd-row .num{color:var(--muted-on-paper);display:block;margin-bottom:var(--s3)}
.rd-row__name{font-family:var(--display);font-weight:700;font-size:2rem;line-height:1;
  letter-spacing:-.01em;color:var(--ink);margin:0;max-width:14ch}
.rd-row__body{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s5)}
.rd-row--feature{background:var(--ink);border:0;border-radius:2px;padding:var(--s7);margin-bottom:var(--s6)}
.rd-row--feature .num{color:var(--lime)}
.rd-row--feature .rd-row__name{color:#fff}
.rd-row--feature .body{color:var(--body-on-ink)}
.rd-row--feature .link{color:var(--lime);border-bottom-color:var(--lime)}

/* ---------- use-case rows ---------- */
.rd-uc{display:grid;row-gap:var(--s3);border-top:1px solid var(--rule-on-paper);
  padding:var(--s6) 0;text-decoration:none;color:inherit}
.rd-uc:last-of-type{border-bottom:1px solid var(--rule-on-paper)}
.rd-uc__name{font-family:var(--display);font-weight:700;font-size:1.75rem;line-height:1;
  letter-spacing:-.01em;color:var(--ink);margin:0;max-width:none}
.rd-uc:hover .rd-uc__name{color:var(--blue)}

/* ---------- workflow rows ---------- */
.rd-wf{display:grid;grid-template-columns:24px minmax(0,1fr);gap:var(--s5);
  border-top:1px solid var(--rule-on-ink-soft);padding:var(--s5) 0}
.rd-wf:last-of-type{border-bottom:1px solid var(--rule-on-ink-soft)}
.rd-wf .num{color:var(--lime)}
.rd-wf__name{font:600 1.25rem var(--text);color:#fff;margin:0 0 var(--s2)}
.rd-wf__desc{font:400 1.0625rem/1.65 var(--text);color:var(--body-on-ink);margin:0}

/* ---------- breadcrumbs ---------- */
.rd-crumbs ol{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2);margin:0 0 var(--s6);padding:0;
  font:600 .75rem var(--text);letter-spacing:.14em;text-transform:uppercase;color:var(--muted-on-ink)}
.rd-crumbs li+li::before{content:"/";margin-right:var(--s2);color:var(--muted-on-ink)}
.rd-crumbs a{display:inline-flex;align-items:center;min-height:44px;color:var(--muted-on-ink);text-decoration:none}
.rd-crumbs a:hover{color:var(--lime)}

/* ---------- portfolio ---------- */
.rd-projects{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));
  gap:var(--s8) var(--s7)}
.rd-proj{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s5)}
.rd-proj__media{display:block;width:100%;border-radius:4px;overflow:hidden}
.rd-proj__media img{aspect-ratio:16/10;object-fit:cover;width:100%;height:auto;border-radius:4px}
.rd-proj__row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;
  gap:var(--s4);width:100%;padding-bottom:var(--s3);border-bottom:1px solid var(--rule-on-paper)}
.rd-proj__name{font-family:var(--display);font-weight:700;font-size:2rem;line-height:1;
  letter-spacing:-.01em;color:var(--ink);margin:0;max-width:none}
.rd-proj__sector{color:var(--muted-on-paper)}
.rd-proj__summary{max-width:52ch}
.rd-pills{list-style:none;display:flex;flex-wrap:wrap;gap:var(--s2);margin:0;padding:0}
.rd-pills li{background:rgba(10,10,10,.06);border-radius:2px;padding:6px 10px;
  font:600 .75rem var(--text);letter-spacing:.14em;text-transform:uppercase;color:var(--body-on-paper)}
.rd-proj__media:hover img{opacity:.92}

/* ---------- what next ---------- */
.rd-next{text-align:left;max-width:44ch}
.rd-next .body{margin:var(--s5) 0 var(--s7);color:var(--ink)}
.rd-next .meta{margin-top:var(--s3);color:rgba(10,10,10,.65)}

/* ---------- focus, visible everywhere ---------- */
.rd a:focus-visible,.rd button:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.rd .on-ink a:focus-visible,.rd-nav button:focus-visible,.rd-foot a:focus-visible{outline-color:var(--lime)}

@media (max-width:767px){
  .rd{--gutter:24px}
  .rd .sec{padding-top:var(--s9);padding-bottom:var(--s9)}
  .rd-hero{grid-template-columns:1fr;padding-top:var(--s8)}
  .rd-benefit,.rd-insight{padding-right:0}
}

/* ================= BLOG TEMPLATE ================= */

/* header */
.rd-post__head{padding:56px 0 72px}
.rd-post__pill{display:inline-block;background:var(--lime);color:var(--ink);border-radius:2px;
  padding:6px 12px;font:600 .75rem var(--text);letter-spacing:.14em;text-transform:uppercase;
  margin-bottom:var(--s5)}
.rd-post h1{font-size:clamp(2.75rem,5.4vw,5rem);max-width:34ch}
.rd-post__meta{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s3);align-items:center;
  margin-top:var(--s6);font:500 .9375rem var(--text)}
.rd-post__meta .name{color:#E8E8E2}
.rd-post__meta .role,.rd-post__meta .sep{color:var(--muted-on-ink)}

/* two-up body */
.rd-post__body{display:flex;gap:var(--s8);align-items:flex-start}
.rd-rail{flex:1 1 240px;max-width:300px;position:sticky;top:32px}
.rd-post__article{flex:5 1 480px;min-width:0}
@media (max-width:991px){
  .rd-post__body{flex-direction:column}
  .rd-rail{position:static;max-width:none;width:100%}
}

/* rail blocks */
.rd-rail__author{display:flex;align-items:center;gap:var(--s3);padding-bottom:var(--s5);
  border-bottom:1px solid var(--rule-on-paper)}
.rd-rail__author img{width:48px;height:48px;border-radius:50%;object-fit:cover;flex:0 0 48px}
.rd-rail__author .name{font:600 1rem var(--text);color:var(--ink);margin:0}
.rd-rail__author .role{font:400 .875rem var(--text);color:var(--muted-on-paper);margin:0}
.rd-rail__title{font:600 .75rem var(--text);letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted-on-paper);margin:var(--s7) 0 var(--s4)}
.rd-rail__share{display:flex;gap:var(--s2)}
.rd-rail__cta{background:var(--ink);border-radius:2px;padding:var(--s5);margin-top:var(--s7)}
.rd-rail__cta p{font:600 1.125rem var(--text);color:#fff;margin:0 0 var(--s4)}

/* table of contents, Finsweet markup preserved verbatim */
.fs-toc_link{display:flex;align-items:center;min-height:44px;text-decoration:none;
  border-left:1px solid var(--rule-on-paper);padding-left:12px;
  font:500 .9375rem var(--text);color:var(--body-on-paper)}
.fs-toc_link:hover{border-left-color:var(--ink);color:var(--ink)}
.fs-toc_link.is-h3{padding-left:24px;font-size:.875rem}
.fs-toc_link.is-h4,.fs-toc_link.is-h5,.fs-toc_link.is-h6{padding-left:32px;font-size:.8125rem}
.fs-toc_link img{display:none}

/* article rich text: bare tags straight from the CMS */
.bs-article p{font:400 1.0625rem/1.7 var(--text);color:var(--body-on-paper);
  max-width:68ch;margin:0 0 var(--s5)}
.bs-article > p:first-of-type{font-size:1.25rem;line-height:1.6;color:var(--ink)}
.bs-article h2{font-family:var(--display);font-weight:700;
  font-size:clamp(1.75rem,2.6vw,2.5rem);line-height:1.02;letter-spacing:-.01em;
  color:var(--ink);margin:var(--s8) 0 var(--s5);max-width:34ch}
.bs-article h3{font:600 1.25rem var(--text);color:var(--ink);margin:var(--s7) 0 var(--s4);max-width:44ch}
.bs-article h4,.bs-article h5,.bs-article h6{font:600 1.0625rem var(--text);color:var(--ink);
  margin:var(--s6) 0 var(--s3)}
/* brand blue is 4.4:1 on paper at body size; this one clears 4.5 */
.bs-article a{color:#2F5BE8;text-decoration:none;border-bottom:1px solid rgba(47,91,232,.4)}
.bs-article a:hover{border-bottom-color:var(--blue)}
.bs-article ul,.bs-article ol{padding-left:22px;margin:0 0 var(--s5);max-width:68ch}
.bs-article li{font:400 1.0625rem/1.7 var(--text);color:var(--body-on-paper);margin-bottom:var(--s2)}
.bs-article img{max-width:100%;height:auto;border-radius:4px;margin:var(--s6) 0}
.bs-article figure{margin:var(--s6) 0}
.bs-article blockquote{border-left:2px solid var(--lime);padding-left:var(--s5);
  margin:var(--s6) 0;font:400 1.25rem/1.6 var(--text);color:var(--ink)}
.bs-article table{width:100%;border-collapse:collapse;margin:var(--s6) 0;font:400 1rem var(--text)}
.bs-article th,.bs-article td{border:1px solid var(--rule-on-paper);padding:var(--s3);text-align:left}
.bs-article strong{font-weight:600}

/* keep reading */
.rd-keep{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:0}
.rd-keep a{border-top:1px solid var(--rule-on-ink-soft);padding:var(--s6) var(--s7) var(--s6) 0;
  text-decoration:none;display:block}
.rd-keep .eyebrow{color:var(--muted-on-ink);margin-bottom:var(--s3)}
.rd-keep .t20{color:#fff;margin-bottom:var(--s5)}
.rd-keep__cta{font:600 1rem var(--text);color:var(--lime);display:inline-flex;align-items:center;min-height:44px}
.rd-keep a:hover .t20{color:var(--lime)}

/* ---------- marketing page ---------- */
.rd-mgroup + .rd-mgroup{margin-top:var(--s8)}
.rd-mgroup__label{margin-bottom:var(--s4)}

/* ---------- AI detail pages: use cases, process, pricing ---------- */
.rd-hero__list--links li{padding:0}
.rd-hero__list--links a{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);
  min-height:56px;color:#fff;text-decoration:none}
.rd-hero__list--links a::after{content:"\2193";color:var(--lime)}
.rd-hero__list--links a:hover{color:var(--lime)}

.rd-split{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:var(--s8);align-items:start}

.rd-tags{list-style:none;display:flex;flex-wrap:wrap;gap:var(--s2);margin:var(--s4) 0 0;padding:0}
.rd-tags li{font:500 .9375rem/1.3 var(--text);padding:8px 12px;border:1px solid var(--rule-on-paper);
  border-radius:2px;color:var(--ink);background:#fff}
.rd-tags--ink li{background:transparent;border-color:var(--rule-on-ink);color:#fff}

.rd-case{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:var(--s8);
  border-top:1px solid var(--rule-on-paper);padding:var(--s8) 0;scroll-margin-top:var(--s5)}
.rd-case:last-of-type{border-bottom:1px solid var(--rule-on-paper)}
.rd-case .num{color:var(--muted-on-paper);display:block;margin-bottom:var(--s3)}
.rd-case h3{color:var(--ink)}
.rd-case__intro{align-self:start}
@media (min-width:992px){ .rd-case__intro{position:sticky;top:var(--s5)} }
.rd .rd-case__label{margin:var(--s6) 0 var(--s3)}
.rd-case__detail > .rd-case__label:first-child{margin-top:0}
.rd-io{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:var(--s5)}

.rd-steps{list-style:none;counter-reset:step;margin:0;padding:0}
.rd-steps li{counter-increment:step;display:grid;grid-template-columns:40px minmax(0,1fr);gap:var(--s3);
  border-top:1px solid var(--rule-on-paper);padding:var(--s3) 0;font:400 1.0625rem/1.55 var(--text);color:var(--body-on-paper)}
.rd-steps li:last-child{border-bottom:1px solid var(--rule-on-paper)}
.rd-steps li::before{content:counter(step,decimal-leading-zero);font:600 .75rem/1.9 var(--text);letter-spacing:.14em;color:var(--blue)}

.rd-ticks{list-style:none;margin:0;padding:0}
.rd-ticks li{position:relative;padding:6px 0 6px 22px;font:400 1rem/1.5 var(--text)}
.rd-ticks li::before{content:"";position:absolute;left:0;top:14px;width:10px;height:6px;
  border-left:2px solid var(--blue);border-bottom:2px solid var(--blue);transform:rotate(-45deg)}

.rd-step{display:grid;grid-template-columns:minmax(0,160px) minmax(0,1fr);gap:var(--s7);
  border-top:1px solid var(--rule-on-paper);padding:var(--s8) 0;scroll-margin-top:var(--s5)}
.rd-step:last-of-type{border-bottom:1px solid var(--rule-on-paper)}
.rd-step__num{font-family:var(--display);font-weight:700;font-size:clamp(3rem,6vw,5.5rem);line-height:.9;color:var(--blue)}
.rd h3 + .rd-step__summary{margin-top:var(--s4);color:var(--body-on-paper)}
.rd-step__cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:var(--s6);margin-top:var(--s6)}
.rd-step__cols .rd-case__label{margin-top:0}
@media (max-width:767px){ .rd-step{grid-template-columns:1fr;gap:var(--s4)} }

.rd-pkgs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));gap:var(--s5)}
.rd-pkg{display:flex;flex-direction:column;align-items:flex-start;border:1px solid var(--rule-on-paper);
  border-radius:2px;background:#fff;padding:var(--s7);scroll-margin-top:var(--s5)}
.rd-pkg h3{color:var(--ink);margin-top:var(--s3)}
.rd-pkg .rd-case__label{margin-top:var(--s5)}
.rd-pkg__cta{margin-top:auto}
.rd-pkg .rd-ticks{margin-bottom:0}
.rd-pkg > .body:last-of-type{margin-bottom:var(--s6)}
.rd-pkg--feature{background:var(--ink);border-color:var(--ink);color:var(--body-on-ink)}
.rd .rd-pkg--feature h3{color:#fff}
.rd .rd-pkg--feature .eyebrow{color:var(--lime)}
.rd .rd-pkg--feature .rd-case__label{color:var(--muted-on-ink)}
.rd-pkg--feature .rd-ticks li::before{border-color:var(--lime)}

.rd-table-wrap{position:relative;overflow-x:auto;border:1px solid var(--rule-on-paper);border-radius:2px;background:#fff}
.rd-table{width:100%;min-width:760px;border-collapse:collapse;font:400 .9375rem/1.4 var(--text);color:var(--body-on-paper)}
.rd-table th,.rd-table td{text-align:left;vertical-align:top;padding:var(--s4);border-bottom:1px solid var(--rule-on-paper)}
.rd-table thead th{font:600 .75rem/1.4 var(--text);letter-spacing:.1em;text-transform:uppercase;color:var(--ink);background:var(--paper)}
.rd-table tbody th{font-weight:600;color:var(--ink);width:26%}
.rd-table tbody tr:last-child th,.rd-table tbody tr:last-child td{border-bottom:0}
.rd-yes{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--ink)}
.rd-yes::before{content:"";width:10px;height:6px;border-left:2px solid var(--blue);border-bottom:2px solid var(--blue);transform:rotate(-45deg) translateY(-2px)}
.rd-no{color:var(--muted-on-paper)}
.rd-sr{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.rd-table-wrap:focus-visible{outline:2px solid var(--blue);outline-offset:3px}

/* marketing: one row for SEO, AEO and GEO */
.rd-trio{list-style:none;margin:0;padding:0;display:grid;gap:var(--s4)}
.rd-trio li{font:400 1.0625rem/1.6 var(--text);border-left:2px solid var(--blue);padding-left:var(--s4)}
.rd-trio strong{display:block;font-weight:600;color:var(--ink)}

/* ---------- homepage portfolio, matched to the live site ----------
   Lime section, "Portfolio" pill, sticker + mixed-type heading, a row of
   500x310 video cards with a "see all" pill at the end. The pinned sideways
   scroll is added by the script in index.html (.is-pinned). */
.rd-pf{background:var(--lime);color:#000;position:relative;--pf-pin-top:90px}
.rd-pf.is-pinned{background:transparent;transition:background-color .3s ease-in}
.rd-pf.is-pinned.is-lime{background:var(--lime)}
.rd-pf__pin{padding:var(--s9) 0}
.rd-pf.is-pinned .rd-pf__pin{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;
  justify-content:flex-start;padding:var(--pf-pin-top) 0 var(--s8);overflow:hidden}
/* the work row takes whatever height the heading does not, so the panel stays
   full at any screen height without a dead band under the nav */
.rd-pf.is-pinned .rd-pf__viewport{flex:1;display:flex;align-items:center}
.rd-pf__pill{display:inline-flex;align-items:center;gap:6px;background:#f6ffe1;border-radius:8px;
  padding:10px 20px;margin:0;font:500 1rem/1 var(--text);letter-spacing:-.02em;color:#000}
.rd-pf__pill img{width:12px;height:16px}
.rd .rd-pf__title{position:relative;margin:var(--s5) 0 var(--s5);max-width:none;
  font:500 clamp(40px,3.6vw,54px)/1.15 var(--text);letter-spacing:-.01em;color:#000}
.rd-pf__title strong{font-weight:700}
.rd-pf__accent{display:inline-block;font:700 clamp(54px,4.8vw,72px)/.9 var(--display);color:#000}
.rd .rd-pf__sticker{position:absolute;top:-30px;left:-45px;width:72px;height:72px}
.rd-pf__viewport{overflow:hidden}
.rd-pf:not(.is-pinned) .rd-pf__viewport{overflow-x:auto;scroll-snap-type:x proximity}
.rd-pf__track{list-style:none;display:flex;gap:31px;margin:0 auto;padding-top:0;padding-bottom:0;will-change:transform}
.rd-pf__item{flex:none;width:50%;max-width:500px;scroll-snap-align:start}
.rd-pf__media{display:block;position:relative;height:310px;border-radius:10px;overflow:hidden;background:rgba(221,221,221,.5)}
.rd-pf__media video,.rd-pf__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.rd-pf .link{color:#000}
.rd-pf__meta{display:flex;align-items:center;justify-content:space-between;margin-top:10px}
.rd-pf__name{margin:0;font:700 25px/1.2 var(--text);color:#000}
.rd-pf__item--all{width:auto;display:flex;align-items:center;height:310px}
.rd-pf a:focus-visible{outline:2px solid #000;outline-offset:3px}
@media (max-width:991px){
  .rd .rd-pf__title{font-size:48px;line-height:1.2}
  .rd-pf__accent{font-size:68px}
  .rd-pf__item{width:75%}
  .rd-pf__media,.rd-pf__item--all{height:315px}
  .rd-pf{--pf-pin-top:82px}
  .rd-pf.is-pinned .rd-pf__pin{justify-content:flex-start;padding:var(--pf-pin-top) 0 var(--s5)}
}
@media (max-width:767px){
  .rd .rd-pf__title{font-size:40px}
  .rd-pf__item{width:80%}
  .rd-pf__media,.rd-pf__item--all{height:235px}
}
@media (max-width:479px){
  .rd .rd-pf__title{font-size:33px;margin-top:var(--s5)}
  .rd-pf__accent{font-size:46px}
  .rd .rd-pf__sticker{display:none}
  .rd-pf__item{width:88%}
  .rd-pf__media,.rd-pf__item--all{height:200px}
  .rd-pf__name{font-size:20px}
}

/* ---------- marketing: client proof cards ---------- */
.rd-cases{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:var(--s5)}
.rd-case-card{display:flex;flex-direction:column;border:1px solid var(--rule-on-ink);border-radius:2px;overflow:hidden}
.rd-case-card__media{display:block;aspect-ratio:16/10;overflow:hidden;background:#1a1a1a}
.rd-case-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.rd-case-card:hover .rd-case-card__media img{transform:scale(1.03)}
.rd-case-card__body{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s4);padding:var(--s6);flex:1}
.rd .rd-case-card__tag{display:inline-flex;align-items:center;gap:8px;margin:0;font:600 .75rem/1 var(--text);
  letter-spacing:.14em;text-transform:uppercase;color:var(--lime)}
.rd-case-card__live{width:8px;height:8px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 4px rgba(209,253,104,.2)}
.rd .rd-case-card__name{margin:0;color:#fff;font-size:2rem;max-width:none}
.rd-case-card .rd-tags{margin:0}
.rd-case-card__quote{margin:var(--s2) 0 0;padding-left:var(--s4);border-left:2px solid var(--lime)}
.rd-case-card__quote p{margin:0;font:500 1.25rem/1.45 var(--text);color:#fff}
.rd-case-card__quote footer{margin-top:var(--s3);font:500 .875rem/1.4 var(--text);color:var(--muted-on-ink)}
.rd-case-card .body{color:var(--body-on-ink)}
.rd-case-card .link{margin-top:auto;color:#fff}

/* ---------- starting price line (AI pricing hero) ----------
   Named rd-fromprice, not rd-price: this page also has a rd-price
   pricing-card component and the two were overwriting each other. */
.rd-fromprice{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin:var(--s6) 0 0;
  padding-top:var(--s5);border-top:1px solid var(--rule-on-ink);max-width:52ch}
.rd-fromprice__label{font:600 .75rem/1 var(--text);letter-spacing:.14em;text-transform:uppercase;color:var(--muted-on-ink)}
.rd-fromprice__amount{font:700 clamp(2.5rem,4vw,3.5rem)/1 var(--display);color:var(--lime)}
.rd-fromprice__note{font:500 1rem/1 var(--text);color:var(--body-on-ink)}

/* portfolio plates: typographic cards for sites we link out to (no client imagery) */
.rd-plate{display:flex;flex-direction:column;justify-content:space-between;gap:var(--s4);padding:clamp(20px,3vw,32px);
  background:var(--plate-bg,#111);color:var(--plate-fg,#fff);text-decoration:none;border-radius:4px;
  border-bottom:4px solid var(--plate-accent,var(--lime));aspect-ratio:16/10}
.rd-pf .rd-plate{aspect-ratio:auto;border-radius:10px}
.rd-plate__name{font:700 clamp(2rem,3.6vw,3.25rem)/.95 var(--display);letter-spacing:-.01em}
.rd-plate__tag{font:500 clamp(.875rem,1.1vw,1rem)/1.4 var(--text);color:var(--plate-fg);opacity:.78;max-width:30ch}
.rd-plate:hover .rd-plate__name{color:var(--plate-accent)}
.rd-plate:focus-visible{outline:2px solid var(--plate-accent);outline-offset:3px}

/* hand-drawn process diagrams: sketchbook cards, pencilled doodles, marker highlights */
.rd-doodle{display:block;width:100%;height:auto;max-height:150px;color:var(--ink)}
.rd-doodle .hl{fill:var(--lime);stroke:none}
.rd-doodle .hs{fill:none;stroke:var(--lime)}
.rd-doodle .hw{font-family:'Segoe Print','Bradley Hand','Chalkboard SE','Comic Sans MS',cursive;fill:currentColor;stroke:none}
.rd-doodle--wide{max-height:none;max-width:760px;margin:0 auto}
.on-ink .rd-doodle{color:#fff}
.rd-svc{border-top:1px solid var(--rule-on-paper)}
.rd-svc__head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:var(--s6) var(--s8);align-items:start;margin-bottom:var(--s8)}
.rd-svc__head .num{display:block;color:var(--muted-on-paper);margin-bottom:var(--s3)}
.rd-svc__head h2{margin:0}
.rd-svc__head .lede{max-width:60ch}
@media (max-width:991px){ .rd-svc__head{grid-template-columns:1fr} }
.rd-proc{list-style:none;margin:0;padding:0;display:grid;gap:var(--s6) var(--s6);grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
@media (min-width:992px){
  .rd-proc--c3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .rd-proc--c4{grid-template-columns:repeat(4,minmax(0,1fr))}
}
.rd-step{position:relative;display:flex;flex-direction:column;gap:var(--s3);background:#fff;color:var(--body-on-paper);
  border:2px solid var(--ink);border-radius:6px 16px 8px 14px/14px 8px 16px 6px;padding:var(--s5);box-shadow:4px 4px 0 var(--ink)}
.rd-step:nth-child(odd){transform:rotate(-.5deg)}
.rd-step:nth-child(even){transform:rotate(.6deg)}
.rd-step .rd-doodle{margin-bottom:var(--s2)}
.rd-step__n{font:600 .75rem/1.4 var(--text);letter-spacing:.14em;text-transform:uppercase;color:var(--muted-on-paper)}
.rd .rd-step h3{font:700 1.625rem/1 var(--display);letter-spacing:-.01em;color:var(--ink);margin:0}
.rd-step p{font:400 .9375rem/1.55 var(--text);margin:0}
.rd-step::after{content:"";position:absolute;top:50%;right:-31px;width:30px;height:20px;transform:translateY(-50%);display:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 24'%3E%3Cpath d='M2 14 C12 5 22 21 35 11 M27 3 L36 11 L26 19' fill='none' stroke='%230a0a0a' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
@media (min-width:992px){
  .rd-proc--c3 .rd-step:not(:nth-child(3n))::after,
  .rd-proc--c4 .rd-step:not(:nth-child(4n))::after{display:block}
  .rd-proc .rd-step:last-child::after{display:none}
}
.rd-svc__note{margin-top:var(--s7);display:flex;gap:var(--s5);align-items:center;max-width:78ch}
.rd-svc__note .rd-doodle{flex:none;width:96px}
.rd-svc__note p{font:400 1rem/1.6 var(--text);margin:0}
.rd-svc__note strong{color:var(--ink)}
.rd-sketch{display:grid;gap:var(--s5);grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));list-style:none;margin:var(--s7) 0 0;padding:0}
.rd-sketch li{background:#fff;border:2px dashed var(--ink);border-radius:10px;padding:var(--s5);display:flex;flex-direction:column;gap:var(--s3)}
.rd-sketch strong{font:700 1.375rem/1 var(--display);color:var(--ink)}
.rd-sketch p{font:400 .9375rem/1.55 var(--text);margin:0;color:var(--body-on-paper)}
.rd-privacy{border:2px dashed var(--ink);border-radius:12px;padding:var(--s6);max-width:78ch}
.rd-privacy p{margin:0}
.on-lime .rd-doodle--wide{margin-top:var(--s7)}
@media (prefers-reduced-motion:no-preference){ .rd-step{transition:transform .2s ease} .rd-step:hover{transform:rotate(0) translateY(-3px)} }

/* pricing page */
.rd-pnav{position:sticky;top:0;z-index:40;background:var(--paper);border-bottom:1px solid var(--rule-on-paper)}
.rd-pnav ul{list-style:none;display:flex;gap:var(--s2);overflow-x:auto;margin:0 auto;padding:var(--s3) var(--gutter);max-width:calc(var(--shell) + (var(--gutter) * 2));-webkit-overflow-scrolling:touch}
.rd-pnav a{display:inline-flex;align-items:center;min-height:40px;padding:0 18px;border:2px solid var(--ink);border-radius:999px;font:600 .9rem var(--text);color:var(--ink);text-decoration:none;white-space:nowrap;background:#fff}
.rd-pnav a:hover{background:var(--lime)}
.rd-hero__list li .rd-from{float:right;color:var(--lime);font-weight:600;font-size:1rem}
.rd-how{display:grid;gap:var(--s6);grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));list-style:none;margin:0;padding:0}
.rd-how li{border-top:2px solid var(--ink);padding-top:var(--s5);display:flex;flex-direction:column;gap:var(--s3)}
.rd .rd-how h3{font:700 1.5rem/1 var(--display);margin:0}
.rd-how p{margin:0;font:400 1rem/1.6 var(--text)}
.rd-start{display:grid;gap:var(--s6) var(--s8);grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);align-items:center;background:#fff;border:2px dashed var(--ink);border-radius:14px;padding:clamp(24px,4vw,48px)}
.rd-start .rd-doodle{max-height:170px}
.rd-start__amount{font:700 3rem/1 var(--display);color:var(--ink);margin:var(--s3) 0}
.rd-start p{margin:0 0 var(--s4)}
@media (max-width:767px){ .rd-start{grid-template-columns:1fr} }
.rd-flag{position:relative;background:var(--ink);color:var(--body-on-ink);border-radius:14px;padding:clamp(28px,5vw,60px);display:grid;gap:var(--s7) var(--s8);grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}
.rd-flag__tag{position:absolute;top:-18px;left:clamp(20px,4vw,48px);transform:rotate(-3deg);background:var(--lime);color:var(--ink);font:700 .8rem var(--text);letter-spacing:.14em;text-transform:uppercase;padding:9px 16px;border:2px solid var(--ink);border-radius:4px}
.rd .rd-flag h2{color:#fff;margin:0}
.rd-flag__amount{font:700 clamp(3.5rem,7vw,5.5rem)/1 var(--display);color:var(--lime);margin:var(--s5) 0 var(--s2)}
.rd-flag__sub{font:500 1rem/1.5 var(--text);color:#fff;margin:0 0 var(--s5)}
.rd-flag .rd-incl{margin:0 0 var(--s6)}
.rd-flag .rd-incl li::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 14'%3E%3Cpath d='M2 7 L7 12 L16 2' fill='none' stroke='%23d1fd68' stroke-width='2.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.rd-flag__right{display:flex;flex-direction:column;gap:var(--s5)}
.rd-flow{list-style:none;margin:0;padding:0;display:grid;gap:var(--s3);counter-reset:fl}
.rd-flow li{counter-increment:fl;display:grid;grid-template-columns:44px 1fr;gap:var(--s4);align-items:start;padding:var(--s4);border:1px solid var(--rule-on-ink);border-radius:8px}
.rd-flow li::before{content:counter(fl,decimal-leading-zero);font:700 1.5rem/1 var(--display);color:var(--lime)}
.rd-flow strong{display:block;color:#fff;font:600 1.0625rem var(--text)}
.rd-flow span{font:400 .9375rem/1.5 var(--text)}
@media (max-width:991px){ .rd-flag{grid-template-columns:1fr} }
.rd-prices{display:grid;gap:var(--s6);grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));list-style:none;margin:0;padding:0;align-items:stretch}
.rd-price{position:relative;display:flex;flex-direction:column;gap:var(--s4);background:#fff;color:var(--body-on-paper);border:2px solid var(--ink);border-radius:6px 16px 8px 14px/14px 8px 16px 6px;padding:var(--s6);box-shadow:4px 4px 0 var(--ink)}
.rd-price--hot{background:var(--lime)}
.rd .rd-price__name{font:700 1.75rem/1 var(--display);letter-spacing:-.01em;color:var(--ink);margin:0}
.rd-price__best{font:400 .9375rem/1.5 var(--text);margin:0;color:var(--muted-on-paper)}
.rd-price--hot .rd-price__best{color:rgba(10,10,10,.75)}
.rd-price__amount{display:flex;align-items:baseline;gap:var(--s2);margin:0;font:700 clamp(2.5rem,4vw,3.25rem)/1 var(--display);color:var(--ink)}
.rd-price__amount small{font:600 .75rem var(--text);letter-spacing:.14em;text-transform:uppercase;color:var(--muted-on-paper)}
.rd-price__amount em{font:600 .875rem var(--text);font-style:normal;color:var(--muted-on-paper)}
.rd-price--hot .rd-price__amount small,.rd-price--hot .rd-price__amount em{color:rgba(10,10,10,.7)}
.rd-incl{list-style:none;padding:0;margin:0;display:grid;gap:10px;font:400 .9375rem/1.45 var(--text)}
.rd-incl li{position:relative;padding-left:28px}
.rd-incl li::before{content:"";position:absolute;left:0;top:.3em;width:17px;height:13px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 14'%3E%3Cpath d='M2 7 L7 12 L16 2' fill='none' stroke='%230a0a0a' stroke-width='2.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center/contain}
.rd-price__out{border-top:2px dashed var(--ink);padding-top:var(--s4);font:500 .9375rem/1.5 var(--text);color:var(--ink);margin:0}
.rd-price .rd-btn{margin-top:auto;align-self:flex-start}
.rd-price__tag{position:absolute;top:-14px;right:20px;transform:rotate(3deg);background:#fff;color:var(--ink);font:700 .7rem var(--text);letter-spacing:.14em;text-transform:uppercase;padding:7px 12px;border:2px solid var(--ink);border-radius:4px}
.rd-also{margin-top:var(--s7);border:2px dashed var(--ink);border-radius:12px;padding:var(--s5) var(--s6)}
.rd-also h3{font:700 1.375rem/1 var(--display);margin:0 0 var(--s4);color:var(--ink)}
.rd-also ul{list-style:none;margin:0;padding:0;display:grid;gap:0}
.rd-also li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s3);padding:var(--s3) 0;border-top:1px solid var(--rule-on-paper);font:500 1rem/1.4 var(--text)}
.rd-also li:first-child{border-top:0}
.rd-also li b{font-weight:700;color:var(--ink);white-space:nowrap}
.rd-prows{border-bottom:1px solid var(--rule-on-paper)}
.rd-prow{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.7fr) auto;gap:var(--s5) var(--s6);align-items:center;padding:var(--s5) 0;border-top:1px solid var(--rule-on-paper)}
.rd .rd-prow__name{font:700 1.75rem/1 var(--display);margin:0;color:var(--ink)}
.rd-prow p{margin:0;font:400 1rem/1.55 var(--text)}
.rd-prow__price{font:700 2.25rem/1 var(--display);color:var(--ink);text-align:right;white-space:nowrap}
.rd-prow__price small{display:block;font:600 .75rem var(--text);letter-spacing:.12em;text-transform:uppercase;color:var(--muted-on-paper);margin-top:6px}
@media (max-width:767px){ .rd-prow{grid-template-columns:1fr} .rd-prow__price{text-align:left} }
.rd-pnote{margin-top:var(--s6);display:flex;gap:var(--s5);align-items:center;max-width:80ch}
.rd-pnote .rd-doodle{flex:none;width:96px}
.rd-pnote p{margin:0;font:400 1rem/1.6 var(--text)}
.rd-faq details{border-top:1px solid var(--rule-on-paper);padding:var(--s2) 0}
.rd-faq details:last-child{border-bottom:1px solid var(--rule-on-paper)}
.rd-faq summary{display:flex;justify-content:space-between;align-items:center;gap:var(--s5);min-height:56px;cursor:pointer;list-style:none;font:600 1.1875rem/1.3 var(--text);color:var(--ink)}
.rd-faq summary::-webkit-details-marker{display:none}
.rd-faq summary::after{content:"+";font:700 1.75rem/1 var(--display);flex:none}
.rd-faq details[open] summary::after{content:"\2013"}
.rd-faq details p{margin:0 0 var(--s5);max-width:68ch;font:400 1.0625rem/1.65 var(--text)}
.rd-faq summary:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.rd-includes{display:grid;gap:var(--s6);grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));list-style:none;margin:0;padding:0}
.rd-includes li{display:flex;flex-direction:column;gap:var(--s2);border-top:1px solid var(--rule-on-ink);padding-top:var(--s5)}
.rd-includes strong{color:#fff;font:600 1.1875rem/1.3 var(--text)}
.rd-includes span{font:400 1rem/1.6 var(--text)}

.rd-pnav ul{scrollbar-width:none}
.rd-pnav ul::-webkit-scrollbar{display:none}
.rd section[id]{scroll-margin-top:72px}

.rd-price__amount small{font:600 1.125rem/1 var(--text);letter-spacing:0;text-transform:none;color:var(--ink)}
.rd-flag__from{font:600 1.25rem/1 var(--text);color:#fff;margin-right:8px}

/* site v2: home, about, contact, blog, projects, legal */
.rd-reveal{transition:opacity .6s ease,transform .6s ease}
.rd-js .rd-reveal:not(.is-in){opacity:0;transform:translateY(18px)}
@media (prefers-reduced-motion:reduce){ .rd-js .rd-reveal:not(.is-in){opacity:1;transform:none} .rd-reveal{transition:none} }

/* service tiles (home) */
.rd-tiles{display:grid;gap:var(--s5);grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));list-style:none;margin:0;padding:0}
@media (min-width:1100px){ .rd-tiles{grid-template-columns:repeat(4,minmax(0,1fr))} }
.rd-tile{display:flex;flex-direction:column;gap:var(--s3);background:#fff;border:2px solid var(--ink);border-radius:14px;padding:var(--s5);box-shadow:4px 4px 0 var(--ink);transition:transform .2s ease,box-shadow .2s ease}
.rd-tile:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink)}
.rd-tile .rd-doodle{max-height:112px;margin-bottom:var(--s2)}
.rd-tile .num{color:var(--muted-on-paper)}
.rd .rd-tile h3{font:700 1.75rem/1 var(--display);letter-spacing:-.01em;margin:0;color:var(--ink)}
.rd-tile p{margin:0;font:400 .9375rem/1.6 var(--text);color:var(--body-on-paper)}
.rd-tile .link{margin-top:auto;padding-top:var(--s3)}

/* why list */
.rd-why{display:grid;gap:var(--s7) var(--s8);grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));list-style:none;margin:0;padding:0}
.rd-why li{border-top:2px solid var(--ink);padding-top:var(--s5);display:flex;flex-direction:column;gap:var(--s3)}
.rd .rd-why h3{font:700 1.75rem/1 var(--display);margin:0}
.rd-why p{margin:0;font:400 1.0625rem/1.6 var(--text);max-width:44ch}
.rd-why .num{color:var(--muted-on-paper)}

/* three steps on ink */
.rd-three{display:grid;gap:var(--s5);grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));list-style:none;margin:0;padding:0}
.rd-three li{border:1px solid var(--rule-on-ink);border-radius:14px;padding:var(--s6);display:flex;flex-direction:column;gap:var(--s3)}
.rd-three .num{color:var(--lime)}
.rd .rd-three h3{font:700 2.25rem/1 var(--display);margin:0;color:#fff}
.rd-three p{margin:0;font:400 1.0625rem/1.6 var(--text);color:var(--body-on-ink)}
.rd-three__price{margin-top:auto;padding-top:var(--s4);font:600 1rem var(--text);color:var(--lime)}
.rd-cta-row{display:flex;flex-wrap:wrap;gap:var(--s3);margin-top:var(--s7)}

/* blog cards. Scoped to .rd-posts: article pages use <main class="rd-post">,
   so bare .rd-post selectors would also hit every link inside an article. */
.rd-posts{display:grid;gap:var(--s6) var(--s5);grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));list-style:none;margin:0;padding:0}
.rd-posts .rd-post{display:flex;flex-direction:column;gap:var(--s3)}
.rd-posts .rd-post a{display:flex;flex-direction:column;gap:var(--s3);text-decoration:none;color:inherit}
.rd-post__img{aspect-ratio:16/10;border-radius:10px;overflow:hidden;background:rgba(10,10,10,.06)}
.rd-post__img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}
.rd-posts .rd-post a:hover .rd-post__img img{transform:scale(1.03)}
.rd-posts .rd-post time{font:600 .75rem var(--text);letter-spacing:.14em;text-transform:uppercase;color:var(--muted-on-paper)}
.rd .rd-posts .rd-post h3,.rd .rd-posts .rd-post h2{font:600 1.1875rem/1.3 var(--text);margin:0;max-width:none;color:var(--ink)}
.rd-posts .rd-post a:hover h3,.rd-posts .rd-post a:hover h2{color:var(--blue)}
.rd-blogbar{display:flex;flex-wrap:wrap;gap:var(--s4);align-items:center;margin-bottom:var(--s7)}
.rd-blogbar input{flex:1 1 280px;min-height:48px;padding:0 18px;border:2px solid var(--ink);border-radius:999px;font:500 1rem var(--text);background:#fff;color:var(--ink)}
.rd-blogbar input:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.rd-blogbar span{font:500 .9375rem var(--text);color:var(--muted-on-paper)}
.rd-more{display:flex;justify-content:center;margin-top:var(--s8)}
.rd-featured{display:grid;gap:var(--s6);grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));list-style:none;margin:0 0 var(--s9);padding:0}

/* about */
.rd-person{display:grid;gap:var(--s7) var(--s8);grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:center}
.rd-person__img{border-radius:14px;overflow:hidden;background:#e7e7df;border:2px solid var(--ink);box-shadow:6px 6px 0 var(--ink)}
.rd-person__img img{display:block;width:100%;height:auto}
.rd-person h2{margin:0 0 var(--s2)}
.rd-person__role{font:600 .8125rem var(--text);letter-spacing:.14em;text-transform:uppercase;color:var(--muted-on-paper);margin:0 0 var(--s5)}
@media (max-width:767px){ .rd-person{grid-template-columns:1fr} }
.rd-banner{border-radius:14px;overflow:hidden;border:2px solid var(--ink)}
.rd-banner img{display:block;width:100%;height:auto}

/* contact */
.rd-contact{display:grid;gap:var(--s5);grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));list-style:none;margin:0;padding:0}
.rd-contact li{background:#fff;border:2px solid var(--ink);border-radius:14px;padding:var(--s6);box-shadow:4px 4px 0 var(--ink);display:flex;flex-direction:column;gap:var(--s3)}
.rd-contact .eyebrow{color:var(--muted-on-paper)}
.rd .rd-contact h3{font:700 1.5rem/1.1 var(--display);margin:0;word-break:break-word}
.rd-contact a.rd-big{font:700 1.5rem/1.2 var(--display);color:var(--ink);text-decoration:none;word-break:break-word}
.rd-contact a.rd-big:hover{color:var(--blue)}
.rd-contact p{margin:0;font:400 1rem/1.55 var(--text)}

/* project pages */
.rd-pmedia{border-radius:14px;overflow:hidden;border:2px solid var(--ink);background:#111}
.rd-pmedia img,.rd-pmedia video{display:block;width:100%;height:auto;max-height:560px;object-fit:cover}
.rd-facts{display:grid;gap:var(--s6);grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));margin:var(--s8) 0 0;padding:0;list-style:none}
.rd-facts li{border-top:2px solid var(--ink);padding-top:var(--s4);display:flex;flex-direction:column;gap:6px}
.rd-facts span{font:600 .75rem var(--text);letter-spacing:.14em;text-transform:uppercase;color:var(--muted-on-paper)}
.rd-facts strong{font:600 1.125rem/1.4 var(--text);color:var(--ink)}
.rd-next-proj{display:grid;gap:var(--s5);grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));list-style:none;margin:0;padding:0}
.rd-next-proj a{display:flex;flex-direction:column;gap:var(--s3);text-decoration:none;color:inherit}
.rd-next-proj img{aspect-ratio:16/10;object-fit:cover;width:100%;border-radius:10px}
.rd .rd-next-proj h3{font:700 1.5rem/1 var(--display);margin:0;color:var(--ink)}

/* legal */
.rd-legal{max-width:760px}
.rd-legal h2{font:700 1.75rem/1.1 var(--display);margin:var(--s8) 0 var(--s3)}
.rd-legal p,.rd-legal li{font:400 1.0625rem/1.7 var(--text);margin:0 0 var(--s4)}
.rd-legal ul{padding-left:1.25em;margin:0 0 var(--s4)}
.rd-legal a{color:var(--blue)}
.rd-legal .rd-meta{font:600 .8125rem var(--text);letter-spacing:.14em;text-transform:uppercase;color:var(--muted-on-paper)}

/* 404 */
.rd-404{min-height:60vh;display:flex;align-items:center}
.rd-404 h1{font-size:clamp(4rem,14vw,10rem);line-height:.9;margin:0 0 var(--s5)}

/* sticky header polish */
.rd-nav{position:sticky;top:0}
.rd-nav__panel{box-shadow:0 18px 40px rgba(0,0,0,.12)}
.rd-pnav{top:var(--navh,64px)}

/* services index */
.rd-svcrow{display:grid;gap:var(--s6) var(--s8);grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);align-items:center;padding:var(--s8) 0;border-top:1px solid var(--rule-on-paper)}
.rd-svcrow:first-child{border-top:0;padding-top:0}
.rd-svcrow__art{background:#fff;border:2px solid var(--ink);border-radius:14px;padding:var(--s6);box-shadow:4px 4px 0 var(--ink)}
.rd-svcrow__art .rd-doodle{max-height:200px}
.rd-svcrow__body{display:flex;flex-direction:column;gap:var(--s4);align-items:flex-start}
.rd-svcrow__body .num{color:var(--muted-on-paper)}
.rd-svcrow__body h2{margin:0}
.rd-linklist{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s2)}
.rd-linklist a{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border:1.5px solid var(--ink);border-radius:999px;font:500 .9375rem var(--text);color:var(--ink);text-decoration:none;background:#fff}
.rd-linklist a:hover{background:var(--lime)}
@media (max-width:767px){ .rd-svcrow{grid-template-columns:1fr} }

@media (min-width:1100px){ .rd-why{grid-template-columns:repeat(4,minmax(0,1fr))} }

/* ---------- portfolio: compact "more work" grid ---------- */
.rd-grid{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:var(--s5);margin:0;padding:0}
.rd-gcard > a,.rd-gcard > div{display:block;text-decoration:none;color:inherit}
.rd-gcard img{aspect-ratio:16/10;object-fit:cover;width:100%;height:auto;border-radius:4px;display:block;background:rgba(10,10,10,.06)}
.rd-gcard__name{font:600 1.0625rem/1.3 var(--text);color:var(--ink);margin:var(--s3) 0 0}
.rd-gcard > a:hover img{opacity:.92}
.rd-gcard > a:hover .rd-gcard__name{color:var(--blue)}

/* ---------- portfolio: NDA island after the project grid ---------- */
.rd-island{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;
  gap:var(--s6) var(--s7);background:var(--ink);border-radius:14px;
  padding:var(--s8) var(--s7);margin-top:var(--s8)}
.rd-island__text{flex:1 1 420px;min-width:0}
.rd .rd-island .eyebrow{color:var(--lime);margin-bottom:var(--s4)}
.rd-island__line{font:500 clamp(1.25rem,2.4vw,1.875rem)/1.35 var(--text);letter-spacing:-.01em;
  color:#fff;margin:0;max-width:34ch}
.rd-island__cta{flex:none;align-self:flex-end}
@media (max-width:767px){
  .rd-island{padding:var(--s7) var(--s5);gap:var(--s5)}
  .rd-island__cta{width:100%}
}

/* doodle inside the dark feature row on /ai/ */
.rd-row--feature .rd-doodle{color:#fff}
.rd-row__icon{max-width:200px;margin-top:var(--s5)}
