/* rd3: senior, technical, approachable. Deep navy bands, warm paper sections, one teal accent taken from the portrait.
   Typeface: Geist (chosen at Checkpoint 3). */

:root{
  --navy:#0a1322; --navy-2:#0f1b2e; --navy-3:#070e1a;
  --on-navy:#f4f6f9; --on-navy-2:#aab5c5; --line-d:rgba(255,255,255,.12);
  --teal:#5fd3c0; --teal-ink:#06231f; --teal-text:#157a6b; --tag-bg:#e4f5f1;
  --bg-a:#ffffff; --bg-b:#f6f5f1; --card:#ffffff;
  --ink:#0a1322; --ink-2:#3c4656; --muted:#5f6878; --line:#e3e1db;
  --font:"Geist", "Geist Fallback", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  --wide:76rem; --measure:38rem;
  --gutter:max(20px, env(safe-area-inset-left, 0px));
  --section:clamp(4.5rem, 3rem + 6vw, 8rem);
  /* Motion: one entrance curve, one for movement that goes both ways, and three durations. Every transition and animation reads these. */
  --ease-out:cubic-bezier(.2,.7,.2,1); --ease-in-out:cubic-bezier(.45,0,.4,1);
  --dur-1:.2s; --dur-2:.5s; --dur-3:.9s;
  color-scheme:light;
}
/* Geist, self-hosted (SIL Open Font License). One variable file per subset covers 400 to 600. */
@font-face{font-family:"Geist";font-style:normal;font-weight:400 600;font-display:swap;src:url(geist-latin.woff2?v=2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2190-2199,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Geist";font-style:normal;font-weight:400 600;font-display:swap;src:url(geist-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* RD-CLS-1: until Geist arrives the page is set in a local face given Geist's width and line box: Arial at 102.6% for 400 and 500, Arial Bold at 101% for 600 and up
   (the ratio of Geist to Arial over the text of 11 pages, with the bold nudged up until no page of the 28 shifted by 0.1 or more at 360, 390, 600, 768, 1024 and 1440
   with Geist held back 1.2 s, worst 0.04), and Geist's own ascent, descent and gap. So the swap does not re-wrap text or move what is below it. The range leaves out
   the arrows, which Geist's file does not draw, so they come from the system face as before. Max-widths in these files use em, not ch, because a ch is the width of a
   "0" and the fallback's zero is 17% narrower than Geist's. */
@font-face{font-family:"Geist Fallback";font-style:normal;font-weight:400 500;src:local("Arial"),local("ArialMT"),local("Helvetica"),local("Liberation Sans");size-adjust:102.6%;ascent-override:98%;descent-override:28.8%;line-gap-override:0%;unicode-range:U+0020-007E,U+00A0-00FF,U+2013-2014,U+2018-201E,U+2022,U+2026,U+2032-2033,U+2039-203A,U+20AC,U+2122,U+2212}
@font-face{font-family:"Geist Fallback";font-style:normal;font-weight:600 900;src:local("Arial Bold"),local("Arial-BoldMT"),local("Helvetica Bold"),local("Liberation Sans Bold");size-adjust:101%;ascent-override:99.5%;descent-override:29.2%;line-gap-override:0%;unicode-range:U+0020-007E,U+00A0-00FF,U+2013-2014,U+2018-201E,U+2022,U+2026,U+2032-2033,U+2039-203A,U+20AC,U+2122,U+2212}

/* Base */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:5rem}
body.rd3{margin:0;background:var(--bg-a);color:var(--ink);font:400 1.0625rem/1.6 var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}
.rd3 [hidden]{display:none!important}
.rd3 h1,.rd3 h2,.rd3 h3{margin:0;color:inherit;font-family:var(--font);font-weight:600;text-wrap:balance}
.rd3 p{margin:0}
.rd3 p+p{margin-top:1em}
.rd3 ul,.rd3 ol,.rd3 dl,.rd3 dd{margin:0;padding:0;list-style:none}
.rd3 figure{margin:0}
.rd3 a{color:inherit;text-decoration:none}
.rd3 :focus-visible{outline:2px solid var(--teal-text);outline-offset:4px;border-radius:6px}
/* U3: the light teal ring only on the dark bands, the header and the footer; #157a6b everywhere else (5.4:1 on white). */
.rd3 .band :focus-visible,.rd3 .top :focus-visible,.rd3 .foot :focus-visible,.rd3 .viz-card :focus-visible,.rd3 .to-top :focus-visible,.rd3 .line4 li.person :focus-visible{outline-color:var(--teal)}
.rd3 .skip{position:absolute;left:-999px;top:10px;background:var(--bg-a);color:var(--ink);padding:.6rem 1rem;z-index:50;border-radius:8px}
.rd3 .skip:focus{left:var(--gutter)}
.rd3 .fig{font-variant-numeric:tabular-nums lining-nums}

/* Frame */
.rd3 .wide{max-width:calc(var(--wide) + 2*var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}
.rd3 .sec{padding-block:var(--section)}
.rd3 .sec.b{background:var(--bg-b)}
.rd3 .band{background:radial-gradient(1100px 560px at 80% 30%, rgba(30,64,120,.45) 0%, rgba(30,64,120,0) 62%), var(--navy);color:var(--on-navy)}
.rd3 .eyebrow{font-size:.8rem;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:var(--teal-text);margin-bottom:1rem}
.rd3 .band .eyebrow{color:var(--teal)}
.rd3 .h2{font-size:clamp(2rem, 1.35rem + 2.3vw, 3.25rem);line-height:1.06;letter-spacing:-.032em;max-width:13.66em}
.rd3 .sub{margin-top:1.1rem;font-size:clamp(1.05rem, .98rem + .3vw, 1.2rem);line-height:1.55;color:var(--ink-2);max-width:var(--measure)}
.rd3 .band .sub{color:var(--on-navy-2)}
.rd3 .head{display:grid;gap:1.25rem 3rem;align-items:end;margin-bottom:clamp(2.25rem, 1.5rem + 2vw, 3.25rem)}
@media (min-width:56rem){ .rd3 .head{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)} .rd3 .head .sub{margin-top:0} }
.rd3 .more{display:inline-block;margin-top:2.25rem;font-weight:600;padding-bottom:2px;border-bottom:1.5px solid currentColor;color:var(--teal-text)}
.rd3 .band .more,.rd3 .viz-card .more,.rd3 .chain-p .more{color:var(--on-navy);border-bottom-color:var(--teal)}
.rd3 .more:hover{border-bottom-width:2.5px}
.rd3 .more span{display:inline-block;margin-left:.1em;transition:transform var(--dur-1) var(--ease-out)}
.rd3 .more:hover span{transform:translateX(3px)}

/* The one call to action */
.rd3 .btn{display:inline-flex;align-items:center;justify-content:center;min-height:3.25rem;padding:.85rem 1.55rem;border-radius:999px;background:var(--teal);color:var(--teal-ink);font:600 1rem/1.2 var(--font);border:0;cursor:pointer;transition:filter var(--dur-1) var(--ease-out),transform var(--dur-1) var(--ease-out)}
.rd3 .btn:hover{filter:brightness(1.08)}
.rd3 .top .btn.sm{min-height:2.5rem;padding:.5rem 1.05rem;font-size:.9rem;font-weight:500;background:transparent;color:var(--on-navy);box-shadow:inset 0 0 0 1px rgba(255,255,255,.3)}
.rd3 .top .btn.sm:hover{box-shadow:inset 0 0 0 1px var(--teal);filter:none}

/* Header: always navy */
.rd3 .top{position:sticky;top:0;z-index:30;background:var(--navy);color:var(--on-navy);border-bottom:1px solid var(--line-d)}
.rd3 .top-in{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:4.25rem}
.rd3 .mark{white-space:nowrap;display:inline-flex;align-items:center;gap:.65rem;font-weight:600;font-size:1.05rem;letter-spacing:-.015em}
.rd3 .mark img{flex:none;width:2rem;height:2rem;border-radius:.45rem;box-shadow:0 0 0 1px rgba(255,255,255,.2)}
.rd3 .nav{display:flex;align-items:center;gap:1.6rem}
.rd3 .nav a{font-size:.92rem;color:var(--on-navy-2)}
.rd3 .nav a:hover,.rd3 .nav a[aria-current]{color:var(--on-navy)}
.rd3 .nav a.btn.sm{color:var(--on-navy)}
.rd3 .menu{display:none}
.rd3 .top .talk{display:none}
/* L1: the header switches to the Menu button when the links no longer fit, measured in rem so enlarged text switches it too.
 * Web review (24 Oct 2026): the narrow header keeps a "Talk to me" button beside Menu. */
.rd3 .top-in{container-type:inline-size}
@container (max-width:61rem){
  .rd3 .nav{display:none}
  .rd3 .top .talk{display:inline-flex;margin-left:auto;margin-right:-.4rem;padding:.5rem .85rem;white-space:nowrap}
  .rd3 .menu{display:block;position:relative}
  .rd3 .menu summary{list-style:none;cursor:pointer;font-size:.92rem;font-weight:500;padding:.5rem .95rem;border-radius:999px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.3)}
  .rd3 .menu summary::-webkit-details-marker{display:none}
  .rd3 .menu-panel{position:absolute;right:0;top:calc(100% + .6rem);width:min(17rem,calc(100vw - 2*var(--gutter)));background:var(--navy-2);border-radius:18px;padding:.6rem;z-index:20;box-shadow:0 24px 60px -20px rgba(0,0,0,.6),0 0 0 1px var(--line-d)}
  .rd3 .menu-panel a{display:block;padding:.85rem .9rem;border-radius:12px;font-size:1.05rem}
  .rd3 .menu-panel a:hover{background:rgba(255,255,255,.06)}
  .rd3 .menu-panel a.btn{margin-top:.4rem;display:flex}
}
@container (max-width:26rem){ .rd3 .mark img{display:none} .rd3 .menu summary{padding:.5rem .8rem} }

/* Portrait (one copy, used twice) */
.rd3 .ph{display:block;aspect-ratio:1;border-radius:50%;overflow:hidden;background:var(--navy-2)}
/* The portrait is an <img> inside .ph (srcset, found by the preload scanner), so it is no longer a CSS background. */
.rd3 .ph img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}

/* Hero */
.rd3 .hero{padding-top:clamp(2.5rem, 1rem + 6vw, 6rem)}
.rd3 .hero-grid{display:grid;gap:2.5rem;align-items:center;padding-bottom:clamp(3rem, 2rem + 4vw, 5rem)}
@media (min-width:56rem){ .rd3 .hero-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(2rem, 4vw, 5rem)} }
.rd3 .kicker{text-wrap:balance;font-size:.8rem;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:var(--teal);margin-bottom:1.4rem}
.rd3 .hero h1{font-size:clamp(2.5rem, 1.35rem + 3.7vw, 4.4rem);line-height:1.04;letter-spacing:-.035em;max-width:10.245em}
.rd3 .support{margin-top:1.5rem;font-size:clamp(1.15rem, 1rem + .5vw, 1.45rem);line-height:1.4;font-weight:500;letter-spacing:-.01em}
.rd3 .statement{margin-top:1rem;color:var(--on-navy-2);max-width:36rem}
.rd3 .act{margin-top:2.2rem;display:flex;flex-wrap:wrap;gap:1.25rem 1.75rem;align-items:center}
.rd3 .link{font-weight:500;border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:2px}
.rd3 .link:hover{border-color:var(--teal)}
.rd3 .reply{margin-top:1.1rem;font-size:.88rem;color:var(--on-navy-2)}
.rd3 .reply::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--teal);margin-right:.6rem;vertical-align:1px;box-shadow:0 0 0 4px rgba(95,211,192,.18)}
.rd3 .photo{position:relative;justify-self:end;width:min(100%,460px)}
.rd3 .photo .ph{box-shadow:0 40px 90px -30px rgba(0,0,0,.7)}
.rd3 .photo::after{content:"";position:absolute;inset:-14px;border-radius:50%;border:1px solid rgba(95,211,192,.35);pointer-events:none}
.rd3 .photo figcaption{position:absolute;left:-1.25rem;bottom:1.5rem;background:#fff;color:#0a1322;border-radius:14px;padding:.8rem 1rem;font-size:.85rem;line-height:1.35;box-shadow:0 20px 40px -20px rgba(0,0,0,.6)}
.rd3 .photo figcaption b{display:block;font-weight:600}
.rd3 .photo figcaption span{color:#5f6878}
@media (max-width:55.99rem){
  .rd3 .photo{order:-1;justify-self:start;width:132px}
  .rd3 .photo::after{inset:-8px}
  .rd3 .photo figcaption{display:none}
}
.rd3 .creds{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line-d)}
.rd3 .creds li{padding:1.5rem 1.25rem 1.75rem 0;font-size:.92rem;color:var(--on-navy-2)}
.rd3 .creds li b{display:block;color:var(--on-navy);font-weight:600;font-size:1.02rem;margin-bottom:.15rem}
.rd3 .creds li+li{padding-left:1.25rem;border-left:1px solid var(--line-d)}
@media (max-width:55.99rem){
  .rd3 .creds{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rd3 .creds li:nth-child(3){padding-left:0;border-left:0}
  .rd3 .creds li:nth-child(n+3){border-top:1px solid var(--line-d)}
}

/* Turning points */
.rd3 .points{display:grid;gap:1.25rem}
@media (min-width:48rem){ .rd3 .points{grid-template-columns:repeat(2,minmax(0,1fr))} }
.rd3 .points li{border-top:2px solid var(--ink);padding-top:1.4rem}
.rd3 .points .n{display:block;font-size:.85rem;font-weight:600;color:var(--teal-text);margin-bottom:.6rem}
.rd3 .points h3{font-size:clamp(1.25rem, 1.1rem + .5vw, 1.5rem);line-height:1.2;letter-spacing:-.02em}
.rd3 .points p{margin-top:.6rem;color:var(--ink-2);max-width:32rem}
@media (min-width:48rem){ .rd3 .points{gap:3rem 4rem} }
.rd3 .whofor{margin-top:clamp(2.5rem, 2rem + 2vw, 3.5rem);padding:1.4rem 1.6rem;border-radius:18px;background:var(--bg-b);color:var(--ink-2);max-width:52rem}

/* Selected work */
.rd3 .cards{display:grid;gap:1.25rem}
@media (min-width:60rem){ .rd3 .cards{grid-template-columns:repeat(3,minmax(0,1fr))} }
.rd3 .card{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:1.9rem 1.75rem 1.75rem;display:flex;flex-direction:column}
.rd3 .tag{align-self:flex-start;font-size:.78rem;font-weight:600;letter-spacing:.03em;color:var(--teal-text);background:var(--tag-bg);border-radius:999px;padding:.3rem .7rem}
.rd3 .card .fig{margin-top:1.4rem;font-size:clamp(2.1rem, 1.6rem + 1.4vw, 2.9rem);line-height:1;font-weight:600;letter-spacing:-.04em;white-space:nowrap}
.rd3 .card .fig small{font-size:.42em;font-weight:500;letter-spacing:0;color:var(--muted);margin-left:.4rem}
.rd3 .card h3{margin-top:.8rem;font-size:1.05rem;letter-spacing:-.01em}
.rd3 .card dl{margin-top:1.4rem;padding-top:1.2rem;border-top:1px solid var(--line);display:grid;gap:.85rem;font-size:.95rem}
.rd3 .card dt{font-size:.74rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.rd3 .card dd{color:var(--ink-2);line-height:1.5}
.rd3 .also{display:grid;gap:1.25rem;margin-top:1.25rem}
@media (min-width:48rem){ .rd3 .also{grid-template-columns:repeat(3,minmax(0,1fr))} }
.rd3 .also li{border:1px solid var(--line);border-radius:18px;padding:1.25rem 1.4rem;display:flex;gap:1rem;align-items:baseline}
.rd3 .also .fig{font-size:1.6rem;font-weight:600;letter-spacing:-.035em;white-space:nowrap}
.rd3 .also span:last-child{font-size:.92rem;line-height:1.45;color:var(--ink-2)}

/* Better systems: the connected chain */
.rd3 .chain{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem;margin-top:clamp(2.5rem, 2rem + 2vw, 3.5rem)}
.rd3 .chain::before{content:"";position:absolute;left:4%;right:4%;top:50%;height:1px;background:linear-gradient(90deg, rgba(95,211,192,0), rgba(95,211,192,.7) 12%, rgba(95,211,192,.7) 88%, rgba(95,211,192,0))}
.rd3 .chain li{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;min-height:9.5rem;padding:1.25rem .75rem;border-radius:18px;background:linear-gradient(180deg, #16263f, #0f1b2e);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14), 0 0 40px -18px rgba(95,211,192,.5);text-align:center;font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.rd3 .chain li+li::before{content:"";position:absolute;left:calc(-.5rem - 5px);top:50%;width:10px;height:10px;margin-top:-5px;border-radius:50%;background:var(--navy);box-shadow:0 0 0 1.5px var(--teal), 0 0 12px rgba(95,211,192,.8)}
.rd3 .chain svg{width:44px;height:44px;color:var(--teal)}
.rd3 .tagline{margin-top:2rem;text-align:center;font-size:clamp(1.05rem, .95rem + .4vw, 1.3rem);color:var(--on-navy);font-weight:500;letter-spacing:-.01em}
@media (max-width:52rem){
  .rd3 .chain{grid-template-columns:minmax(0,1fr);gap:.75rem}
  .rd3 .chain::before{left:2.4rem;right:auto;top:0;bottom:0;width:1px;height:auto;background:linear-gradient(180deg, rgba(95,211,192,0), rgba(95,211,192,.7) 10%, rgba(95,211,192,.7) 90%, rgba(95,211,192,0))}
  .rd3 .chain li{flex-direction:row;justify-content:flex-start;min-height:0;padding:1rem 1.1rem;text-align:left}
  .rd3 .chain li+li::before{display:none}
  .rd3 .chain svg{width:36px;height:36px;flex:none}
  .rd3 .tagline{text-align:left}
}
.rd3 .roles{display:grid;gap:2rem;margin-top:clamp(3rem, 2rem + 3vw, 4.5rem);padding-top:clamp(2.5rem, 2rem + 2vw, 3.5rem);border-top:1px solid var(--line-d)}
@media (min-width:52rem){ .rd3 .roles{grid-template-columns:repeat(3,minmax(0,1fr));gap:3rem} }
.rd3 .roles h3{font-size:clamp(1.35rem, 1.15rem + .7vw, 1.7rem);letter-spacing:-.025em}
.rd3 .roles p{margin-top:.6rem;color:var(--on-navy-2)}
.rd3 .contrast{margin-top:clamp(2.5rem, 2rem + 2vw, 3.5rem);font-size:clamp(1.35rem, 1.05rem + 1.3vw, 2.1rem);line-height:1.2;font-weight:600;letter-spacing:-.03em;color:var(--on-navy-2);max-width:20.48em}
.rd3 .contrast b{color:var(--on-navy);font-weight:600}

/* Builder stats */
.rd3 .stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;margin-top:clamp(2rem, 1.5rem + 2vw, 3rem)}
.rd3 .stats li{border-top:2px solid var(--ink);padding-top:1.25rem}
.rd3 .stats .fig{display:block;font-size:clamp(2.75rem, 1.6rem + 4.2vw, 5rem);line-height:1;font-weight:600;letter-spacing:-.05em}
.rd3 .stats span:last-child{display:block;margin-top:.75rem;font-size:.95rem;line-height:1.45;color:var(--ink-2);max-width:16rem}
@media (max-width:30rem){ .rd3 .stats{grid-template-columns:minmax(0,1fr);gap:1.75rem} }
.rd3 .stats.four .fig{font-size:clamp(2.25rem, 1.6rem + 2.2vw, 3.5rem)}
@media (min-width:30.01rem){ .rd3 .stats.four{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (min-width:64rem){ .rd3 .stats.four{grid-template-columns:repeat(4,minmax(0,1fr))} }
.rd3 .read .ticks{margin-top:1rem}

/* Engagements */
.rd3 .engage{display:grid;gap:1.25rem}
@media (min-width:48rem){ .rd3 .engage{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (min-width:68rem){ .rd3 .engage{grid-template-columns:repeat(4,minmax(0,1fr))} }
.rd3 .engage li{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:1.6rem 1.5rem}
.rd3 .engage .n{display:block;font-size:.85rem;font-weight:600;color:var(--teal-text);margin-bottom:1.75rem}
.rd3 .engage h3{font-size:1.2rem;letter-spacing:-.02em}
.rd3 .engage p{margin-top:.5rem;color:var(--ink-2);font-size:.97rem}

/* Insights */
.rd3 .posts{display:grid;gap:1.25rem}
@media (min-width:56rem){ .rd3 .posts{grid-template-columns:repeat(3,minmax(0,1fr))} }
.rd3 .posts a{display:flex;flex-direction:column;height:100%;padding:1.6rem 1.5rem;border-radius:20px;border:1px solid var(--line);background:var(--card);transition:border-color var(--dur-1) var(--ease-out),transform var(--dur-1) var(--ease-out)}
.rd3 .posts a:hover{border-color:var(--teal-text)}
.rd3 .posts h3{font-size:1.25rem;line-height:1.25;letter-spacing:-.02em}
.rd3 .posts p{margin-top:.7rem;color:var(--ink-2);font-size:.97rem}
.rd3 .posts .go{margin-top:auto;padding-top:1.4rem;font-weight:600;font-size:.92rem;color:var(--teal-text)}


/* Inner pages: head band */
.rd3 .page-head{padding-block:clamp(3rem, 2rem + 5vw, 6rem) clamp(2.75rem, 2rem + 3vw, 4.5rem)}
.rd3 .page-head h1{font-size:clamp(2.4rem, 1.4rem + 3.4vw, 4.2rem);line-height:1.05;letter-spacing:-.035em;max-width:12.29em}
.rd3 .page-head .standfirst{margin-top:1.4rem;font-size:clamp(1.1rem, 1rem + .45vw, 1.35rem);line-height:1.5;color:var(--on-navy-2);max-width:44rem}
.rd3 .page-head .byline{margin-top:1.5rem;font-size:.9rem;color:var(--on-navy-2)}
.rd3 .page-head .crumb{font-size:.85rem;color:var(--on-navy-2);margin-bottom:1.25rem}
.rd3 .page-head .crumb a{color:var(--on-navy);border-bottom:1px solid rgba(255,255,255,.3)}
.rd3 .page-head.with-photo .wide{display:grid;gap:2rem;align-items:center}
@media (min-width:56rem){ .rd3 .page-head.with-photo .wide{grid-template-columns:minmax(0,1.4fr) minmax(0,.6fr);gap:4rem} }
.rd3 .page-head .ph{width:min(100%,300px);justify-self:end;box-shadow:0 30px 70px -30px rgba(0,0,0,.7)}
@media (max-width:55.99rem){ .rd3 .page-head .ph{width:120px;justify-self:start;order:-1} }

/* Section code: 01 . Title */
.rd3 .code{display:flex;gap:.6rem;align-items:baseline;font-size:.8rem;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:var(--teal-text);margin-bottom:1rem}
.rd3 .code b{font-weight:600;font-variant-numeric:tabular-nums}
.rd3 .band .code{color:var(--teal)}

/* Reading column */
.rd3 .read{max-width:44rem}
.rd3 .prose{max-width:44rem;color:var(--ink-2);font-size:1.0625rem;line-height:1.7}
.rd3 .prose>*+*{margin-top:1.1em}
.rd3 .prose h2{font-size:clamp(1.45rem, 1.2rem + .9vw, 1.9rem);line-height:1.2;letter-spacing:-.025em;color:var(--ink);margin-top:2.4em}
.rd3 .prose h3{font-size:1.2rem;line-height:1.3;letter-spacing:-.015em;color:var(--ink);margin-top:1.8em}
.rd3 .prose h2:first-child,.rd3 .prose h3:first-child{margin-top:0}
.rd3 .prose ul,.rd3 .prose ol{padding-left:1.25rem}
.rd3 .prose ul{list-style:disc}
.rd3 .prose ol{list-style:decimal}
.rd3 .prose li+li{margin-top:.45em}
.rd3 .prose li::marker{color:var(--teal-text)}
.rd3 .prose a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--teal-text);text-underline-offset:.2em}
.rd3 .prose strong{color:var(--ink);font-weight:600}
.rd3 .tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:14px}
.rd3 .tbl-wrap table{width:100%;border-collapse:collapse;font-size:.95rem}
.rd3 .tbl-wrap th,.rd3 .tbl-wrap td{text-align:left;vertical-align:top;padding:.75rem 1rem;border-bottom:1px solid var(--line)}
.rd3 .tbl-wrap thead th{font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:var(--bg-b)}
.rd3 .tbl-wrap tbody tr:last-child td{border-bottom:0}
/* A table that becomes one card per row on a phone (Canberra scope table, 31 Oct 2026); each cell carries its heading in data-label */
@media (max-width:40rem){.rd3 .tbl-stack thead{display:none}.rd3 .tbl-stack tr{display:block;padding:.6rem 0;border-bottom:1px solid var(--line)}.rd3 .tbl-stack tbody tr:last-child{border-bottom:0}.rd3 .tbl-stack td{display:block;border:0;padding:.35rem 1rem}.rd3 .tbl-stack td::before{content:attr(data-label);display:block;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}}

/* Lists with a teal tick */
.rd3 .ticks li{position:relative;padding-left:1.6rem;color:var(--ink-2)}
.rd3 .ticks li+li{margin-top:.7rem}
.rd3 .ticks li::before{content:"";position:absolute;left:0;top:.62em;width:.65rem;height:.65rem;border-radius:50%;background:var(--teal);box-shadow:0 0 0 4px rgba(95,211,192,.2)}
.rd3 .ticks li b{color:var(--ink)}
.rd3 .band .ticks li{color:var(--on-navy-2)}
.rd3 .band .ticks li b{color:var(--on-navy)}

/* Timeline */
.rd3 .tl{position:relative;display:grid;gap:0;max-width:52rem}
.rd3 .tl::before{content:"";position:absolute;left:.4rem;top:.6rem;bottom:.6rem;width:1px;background:var(--line)}
.rd3 .tl>li{position:relative;padding:0 0 2rem 2.25rem}
.rd3 .tl>li:last-child{padding-bottom:0}
.rd3 .tl>li::before{content:"";position:absolute;left:0;top:.45rem;width:.85rem;height:.85rem;border-radius:50%;background:var(--bg-a);box-shadow:inset 0 0 0 2px var(--teal-text)}
.rd3 .sec.b .tl>li::before{background:var(--bg-b)}
.rd3 .tl>li.now::before{background:var(--teal);box-shadow:0 0 0 4px rgba(95,211,192,.25)}
.rd3 .tl .when{display:block;font-size:.82rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--teal-text)}
.rd3 .tl h3{margin-top:.3rem;font-size:1.2rem;letter-spacing:-.015em}
.rd3 .tl p,.rd3 .tl ul{margin-top:.5rem;color:var(--ink-2)}
.rd3 .tl ul{list-style:disc;padding-left:1.15rem}
.rd3 .tl ul li+li{margin-top:.3rem}
.rd3 .tl .aside{font-style:italic;color:var(--muted)}

/* Two-column section: heading left, body right */
.rd3 .split{display:grid;gap:1.75rem 4rem}
@media (min-width:56rem){ .rd3 .split{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)} }

/* Credentials */
.rd3 .creds-list{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:18px;overflow:hidden}
@media (min-width:48rem){ .rd3 .creds-list{grid-template-columns:repeat(2,minmax(0,1fr))} }
.rd3 .creds-list li{background:var(--card);padding:1.25rem 1.4rem}
.rd3 .creds-list b{display:block;font-size:1.05rem;letter-spacing:-.01em}
.rd3 .creds-list span{display:block;margin-top:.2rem;font-size:.92rem;color:var(--muted)}
.rd3 .creds-list li:last-child:nth-child(odd){grid-column:1/-1}

/* Engagement detail */
.rd3 .eng-block{display:grid;gap:1.5rem 4rem;padding-block:clamp(2.5rem, 2rem + 2vw, 3.5rem);border-top:1px solid var(--line)}
.rd3 .eng-block:first-of-type{border-top:0;padding-top:0}
@media (min-width:56rem){ .rd3 .eng-block{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)} }
.rd3 .eng-block h2{font-size:clamp(1.6rem, 1.3rem + 1.1vw, 2.3rem);letter-spacing:-.03em;line-height:1.1}
.rd3 .eng-block dl{display:grid;gap:1.25rem}
.rd3 .eng-block dt{font-size:.78rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.rd3 .eng-block dd{margin-top:.35rem;color:var(--ink-2)}
.rd3 .eng-block dd ul{list-style:disc;padding-left:1.15rem}
.rd3 .eng-block dd li+li{margin-top:.3rem}
.rd3 .eng-block .more{margin-top:1.25rem}
.rd3 .more:has(+.more){margin-right:1.5rem}
.rd3 .next-links .more:has(+.more){margin-right:0}
.rd3 .ilink{text-decoration:underline;text-decoration-color:var(--teal-text);text-decoration-thickness:1.5px;text-underline-offset:.2em}
.rd3 .ilink:hover{text-decoration-thickness:2.5px}

/* Where I draw the line: four steps, the last owned by a person */
.rd3 .line4{display:grid;gap:1rem;counter-reset:l}
/* RD-DIA-4, RD-DIA-14: two across from 40rem, four across from 72rem, so the illustrations never shrink below their drawn size. */
@media (min-width:40rem){ .rd3 .line4{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (min-width:72rem){ .rd3 .line4{grid-template-columns:repeat(4,minmax(0,1fr))} }
.rd3 .line4 li{position:relative;border-radius:18px;padding:1.4rem 1.3rem 1.5rem;background:var(--card);border:1px solid var(--line)}
.rd3 .line4 li .who{display:inline-block;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:.25rem .6rem;background:var(--tag-bg);color:var(--teal-text)}
.rd3 .line4 li b{display:block;margin-top:1rem;font-size:1.2rem;letter-spacing:-.02em;color:var(--ink)}
.rd3 .line4 li p{margin-top:.4rem;font-size:.95rem;color:var(--ink-2)}
.rd3 .line4 li.person{background:var(--navy);border-color:var(--navy);color:var(--on-navy)}
.rd3 .line4 li.person b{color:var(--on-navy)}
.rd3 .line4 li.person p{color:var(--on-navy-2)}
.rd3 .line4 li.person .who{background:var(--teal);color:var(--teal-ink)}
.rd3 .line-note{margin-top:1.5rem;font-weight:600;color:var(--ink)}

/* Key and value rows (tools) */
.rd3 .kv{display:grid;border-top:1px solid var(--line)}
.rd3 .kv li{display:grid;gap:.25rem 2rem;padding:1rem 0;border-bottom:1px solid var(--line)}
@media (min-width:40rem){ .rd3 .kv li{grid-template-columns:12rem minmax(0,1fr)} }
.rd3 .kv b{font-weight:600}
.rd3 .kv span{color:var(--ink-2)}

/* A quiet aside line (the WorksBetter link) */
.rd3 .aside-line{margin-top:2.5rem;padding:1.2rem 1.4rem;border-radius:16px;background:var(--bg-b);color:var(--ink-2)}
.rd3 .aside-line a{color:var(--ink);font-weight:600;border-bottom:1.5px solid var(--teal-text)}

/* Fleet: stats grid */
.rd3 .fstats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line-d);border:1px solid var(--line-d);border-radius:20px;overflow:hidden}
@media (min-width:48rem){ .rd3 .fstats{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (min-width:68rem){ .rd3 .fstats{grid-template-columns:repeat(4,minmax(0,1fr))} }
.rd3 .fstats li{background:var(--navy-2);padding:1.3rem 1.25rem 1.4rem}
.rd3 .fstats .fig{display:block;font-size:clamp(2rem, 1.5rem + 1.6vw, 2.75rem);line-height:1;font-weight:600;letter-spacing:-.04em;color:var(--on-navy)}
.rd3 .fstats span:last-child{display:block;margin-top:.6rem;font-size:.9rem;line-height:1.4;color:var(--on-navy-2)}
.rd3 .fstats li:last-child{grid-column:span 2}
@media (min-width:48rem) and (max-width:67.99rem){ .rd3 .fstats li:last-child{grid-column:span 1} }

/* Fleet: units, layers and rules */
.rd3 .units{display:grid;gap:1.25rem}
@media (min-width:52rem){ .rd3 .units{grid-template-columns:repeat(3,minmax(0,1fr))} }
.rd3 .units li{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:1.4rem 1.35rem}
.rd3 .units h3{font-size:1.1rem;letter-spacing:-.015em}
.rd3 .units p{margin-top:.45rem;font-size:.95rem;color:var(--ink-2)}
.rd3 .layers{display:grid;gap:1rem;counter-reset:layer}
.rd3 .layers>li{display:grid;gap:.5rem 2rem;padding:1.4rem 1.5rem;border-radius:18px;background:var(--card);border:1px solid var(--line)}
@media (min-width:52rem){ .rd3 .layers>li{grid-template-columns:16rem minmax(0,1fr)} }
.rd3 .layers h3{font-size:1.1rem;letter-spacing:-.015em}
.rd3 .layers h3 span{display:block;font-size:.78rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--teal-text);margin-bottom:.3rem}
.rd3 .layers ul{list-style:disc;padding-left:1.15rem;color:var(--ink-2)}
.rd3 .layers li li+li{margin-top:.35rem}
.rd3 .rules{display:grid;gap:.75rem;counter-reset:rule}
.rd3 .rules li{counter-increment:rule;display:grid;grid-template-columns:2.25rem minmax(0,1fr);gap:.75rem;align-items:baseline;color:var(--on-navy-2)}
.rd3 .rules li::before{content:counter(rule,decimal-leading-zero);font-weight:600;color:var(--teal);font-variant-numeric:tabular-nums}
.rd3 .rules b{color:var(--on-navy)}
.rd3 .plain-ol{list-style:decimal;padding-left:1.25rem;margin-top:.9rem}
.rd3 .plain-ol li+li{margin-top:.35rem}
.rd3 .note-box{margin-top:2rem;padding:1.4rem 1.5rem;border-radius:18px;background:var(--bg-b);color:var(--ink-2)}
.rd3 .note-box b{color:var(--ink)}
/* Source box under guidance articles (owner, 31 Oct 2026) */
.rd3 .src-check{margin-top:3rem;font-size:.92rem}
.rd3 .src-check ul{margin:.7rem 0 0;padding-left:1.1rem;list-style:disc}
.rd3 .src-check li+li{margin-top:.4rem}
.rd3 .src-check a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--teal-text);text-underline-offset:.2em}
.rd3 .band .note-box{background:var(--navy-2);color:var(--on-navy-2)}
.rd3 .band .note-box b{color:var(--on-navy)}

/* Fleet: the flow diagram */
.rd3 .flowd{display:grid;gap:.75rem;margin-top:2rem}
@media (min-width:60rem){ .rd3 .flowd{grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch} }
.rd3 .flowd li{position:relative;border-radius:16px;padding:1.1rem 1.1rem 1.2rem;background:linear-gradient(180deg,#16263f,#0f1b2e);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
.rd3 .flowd li b{display:block;font-size:.78rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--teal)}
.rd3 .flowd li p{margin-top:.5rem;font-size:.92rem;line-height:1.45;color:var(--on-navy-2)}
.rd3 .flowd li.ai{box-shadow:inset 0 0 0 1px rgba(95,211,192,.55),0 0 36px -16px rgba(95,211,192,.6)}
@media (min-width:60rem){ .rd3 .flowd li+li::before{content:"";position:absolute;left:calc(-.75rem + 1px);top:50%;width:.75rem;height:1px;background:var(--teal)} }
.rd3 .flowd-write{margin-top:1rem;font-size:.92rem;color:var(--on-navy-2)}
.rd3 .flowd-write b{color:var(--teal)}

/* Fleet: run log */
.rd3 .runlog{margin-top:1.75rem;border-radius:16px;background:#060c17;color:#d6dde8;padding:1.2rem 1.3rem;font:500 .86rem/1.75 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-x:auto;white-space:pre}
.rd3 .runlog .p{color:#5fd3c0}
.rd3 .runlog .x{color:#ffb4a8}
.rd3 .runlog-cap{margin-top:.6rem;font-size:.85rem;color:var(--muted)}

/* Fleet: data-class stamps */
.rd3 .stamps{display:flex;flex-wrap:wrap;gap:.6rem;margin:1.25rem 0 1.5rem}
.rd3 .stamps span{font-size:.75rem;font-weight:600;letter-spacing:.1em;padding:.4rem .75rem;border-radius:8px;border:1.5px solid currentColor}
.rd3 .stamps .s1{color:var(--teal-text)}
.rd3 .stamps .s2{color:#8a5100}
.rd3 .stamps .s3{color:#b42318}

/* Contact form */
.rd3 .contact-grid{display:grid;gap:2.5rem}
@media (min-width:56rem){ .rd3 .contact-grid{grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:4rem} }
.rd3 .form-card{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:clamp(1.25rem, 1rem + 1.5vw, 2.25rem)}
.rd3 .contact-aside p+p{margin-top:1rem}
.rd3 .contact-aside{color:var(--ink-2)}
.rd3 .contact-aside b{color:var(--ink)}
.rd3 .contact-aside a{display:inline-block;line-height:1.6;color:var(--ink);border-bottom:1.5px solid var(--teal-text)}
.rd3 .contact-aside .ph{width:120px;margin-bottom:1.5rem}

/* Insights hub and articles */
.rd3 .posts .kick{display:block;font-size:.75rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--teal-text);margin-bottom:.75rem}
.rd3 .posts .mins{font-weight:500;color:var(--muted)}
.rd3 .posts .when{margin:.7rem 0 0;font-size:.82rem;color:var(--muted)}
.rd3 .posts.all{margin-top:1.25rem}
.rd3 .art-grid{display:grid;gap:2.5rem}
@media (min-width:64rem){ .rd3 .art-grid{grid-template-columns:minmax(0,1fr) 17rem;gap:4.5rem} }
.rd3 .toc{position:sticky;top:5.5rem;align-self:start;font-size:.92rem}
.rd3 .toc p{font-size:.75rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:.75rem}
.rd3 .toc li+li{margin-top:.55rem}
.rd3 .toc a{color:var(--ink-2)}
.rd3 .toc a:hover{color:var(--ink)}
@media (max-width:63.99rem){ .rd3 .toc{display:none} }
.rd3 .tldr{margin-bottom:2.5rem;padding:1.4rem 1.5rem;border-radius:18px;background:var(--bg-b)}
.rd3 .tldr h2{font-size:.78rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:.8rem}
.rd3 .art-steps{display:grid;gap:.6rem;counter-reset:st}
.rd3 .art-steps li{counter-increment:st;display:grid;grid-template-columns:2rem minmax(0,1fr) auto;gap:.9rem;align-items:center;padding:.9rem 1rem;border-radius:14px;background:var(--card);border:1px solid var(--line)}
.rd3 .art-steps li::before{content:counter(st);display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--bg-b);font-weight:600;font-size:.85rem;color:var(--ink)}
.rd3 .art-steps li b{display:block;font-size:1rem;color:var(--ink)}
.rd3 .art-steps li span{display:block;font-size:.88rem;color:var(--muted)}
.rd3 .art-steps .role{font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:.25rem .6rem;white-space:nowrap}
.rd3 .art-steps .role.auto{background:#eef1f5;color:#3c4656}
.rd3 .art-steps .role.rule{background:#eef1f5;color:#3c4656}
.rd3 .art-steps .role.ai{background:var(--tag-bg);color:var(--teal-text)}
.rd3 .art-steps .role.person{background:var(--navy);color:var(--on-navy)}
.rd3 .art-steps li.caught{border-color:#e9b3ab;background:#fff7f5}
.rd3 .catch{margin-top:.9rem;padding:1rem 1.15rem;border-radius:14px;background:#fff7f5;border:1px solid #e9b3ab;color:var(--ink-2);font-size:.95rem}
.rd3 .catch b{color:#b42318}
.rd3 .art-yn{display:grid;gap:1rem;margin-top:1.5rem}
@media (min-width:48rem){ .rd3 .art-yn{grid-template-columns:repeat(2,minmax(0,1fr))} }
.rd3 .art-yn>div{padding:1.2rem 1.3rem;border-radius:16px;border:1px solid var(--line);background:var(--card)}
.rd3 .art-yn h3{font-size:.95rem;letter-spacing:-.01em;margin-bottom:.6rem}
.rd3 .art-yn ul{list-style:disc;padding-left:1.1rem;font-size:.93rem;color:var(--ink-2)}
.rd3 .art-yn li+li{margin-top:.35rem}
.rd3 .faq details{border-top:1px solid var(--line);padding:1.1rem 0}
.rd3 .faq details:last-child{border-bottom:1px solid var(--line)}
.rd3 .faq summary{cursor:pointer;font-weight:600;color:var(--ink);list-style:none;display:flex;justify-content:space-between;gap:1rem}
.rd3 .faq summary::-webkit-details-marker{display:none}
.rd3 .faq summary::after{content:"+";color:var(--teal-text);font-weight:500}
.rd3 .faq details[open] summary::after{content:"\2212"}
.rd3 .faq details p{margin-top:.7rem;color:var(--ink-2)}

/* Contact form (posts to the HubSpot form through its API) */
.rd3 .rd3-form{display:grid;gap:1.1rem}
.rd3 .rd3-form .f2{display:grid;gap:1.1rem}
@media (min-width:40rem){ .rd3 .rd3-form .f2{grid-template-columns:repeat(2,minmax(0,1fr))} }
.rd3 .rd3-form label{display:grid;gap:.4rem;font-size:.92rem;font-weight:600;color:var(--ink)}
.rd3 .rd3-form .req{color:var(--teal-text);margin-left:.15rem}
.rd3 .rd3-form input,.rd3 .rd3-form textarea,.rd3 .rd3-form select{width:100%;font:400 1rem/1.5 var(--font);color:var(--ink);background:var(--bg-b);border:1px solid #8a857b;border-radius:12px;padding:.8rem .95rem;transition:border-color var(--dur-1) var(--ease-out),box-shadow var(--dur-1) var(--ease-out)}
.rd3 .rd3-form textarea{min-height:9rem;resize:vertical}
.rd3 .rd3-form input:focus,.rd3 .rd3-form textarea:focus,.rd3 .rd3-form select:focus{outline:none;border-color:var(--teal-text);box-shadow:0 0 0 4px rgba(95,211,192,.25);background:#fff}
.rd3 .rd3-form [aria-invalid="true"]{border-color:#b42318}
.rd3 .rd3-form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.rd3 .form-foot{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;margin-top:.4rem}
.rd3 .form-note{font-size:.92rem;color:var(--ink-2)}
.rd3 .form-note.err{color:#b42318}
.rd3 .btn[disabled]{opacity:.6;cursor:default;transform:none}
.rd3 .form-done h2{font-size:clamp(1.6rem, 1.3rem + 1vw, 2.2rem);letter-spacing:-.03em}
.rd3 .form-done p{margin-top:.6rem;color:var(--ink-2)}

/* The moved workflow demo: keep its look, use the site's type and accent */
.rd3 .demo-wrap .rdh{--serif:var(--font);--sans:var(--font);--accent:#157a6b;--accent-dk:#0f5e52;--accent-lt:#e4f5f1;background:transparent;color:var(--ink-2);font-size:15px}
.rd3 .demo-wrap .rdh .studio{margin-top:0}
.rd3 .demo-wrap .rdh .wide{max-width:none;margin-inline:0;padding-inline:0}
.rd3 .demo-wrap .rdh .lbl,.rd3 .demo-wrap .rdh th{color:#5f6878}

/* About */
.rd3 .about-grid{display:grid;gap:2.5rem;align-items:center}
@media (min-width:52rem){ .rd3 .about-grid{grid-template-columns:minmax(0,.55fr) minmax(0,1.45fr);gap:5rem} }
.rd3 .about-grid .ph{width:min(100%,300px)}
@media (max-width:51.99rem){ .rd3 .about-grid .ph{width:160px} }
.rd3 .about-grid .body{margin-top:1.25rem;max-width:var(--measure);color:var(--ink-2)}

/* Contact */
.rd3 .contact{text-align:center}
.rd3 .contact .h2{margin-inline:auto;max-width:12.29em;font-size:clamp(2.2rem, 1.4rem + 3vw, 3.75rem)}
.rd3 .contact .sub{margin-inline:auto}
.rd3 .contact .act{flex-direction:column;align-items:center;gap:1.1rem;margin-top:2.5rem}
.rd3 .contact .mail{color:var(--on-navy-2);font-size:.95rem}
.rd3 .contact .mail a{display:inline-block;line-height:1.6;color:var(--on-navy);border-bottom:1px solid rgba(255,255,255,.3)}

/* Footer */
.rd3 .foot{background:var(--navy-3);color:var(--on-navy-2);padding-block:3.5rem 2.5rem;font-size:.88rem}
.rd3 .foot-grid{display:grid;gap:2.25rem 1.5rem;grid-template-columns:1fr 1fr}
.rd3 .foot-grid .brand{grid-column:1/-1}
@media (min-width:40rem){ .rd3 .foot-grid{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (min-width:64rem){ .rd3 .foot-grid{grid-template-columns:1.4fr 1fr 1.1fr 1.2fr}.rd3 .foot-grid .brand{grid-column:auto} }
.rd3 .foot h2{font-size:.85rem;line-height:1.3;color:var(--on-navy);margin-bottom:.9rem}
.rd3 .foot ul{display:grid;gap:.2rem}
/* Web review (24 Oct 2026): footer links at least 24px tall to tap (WCAG 2.2 target size). */
.rd3 .foot ul a,.rd3 .foot .brand a{display:inline-block;padding-block:3px}
.rd3 .foot a:hover{color:var(--on-navy)}
.rd3 .foot .brand b{display:block;font-size:1.1rem;font-weight:600;letter-spacing:-.015em;color:var(--on-navy)}
.rd3 .foot .brand p{margin-top:.5rem}
.rd3 .foot-base{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:3rem;padding-top:1.25rem;border-top:1px solid var(--line-d)}
/* L3: Privacy and Terms are 24px targets. */
.rd3 .foot-base a{display:inline-flex;align-items:center;min-height:24px;padding-inline:.15rem}
.rd3 .foot-note a{padding-inline:0}

/* Motion: a calm rise, off for reduced motion */
@media (prefers-reduced-motion:no-preference){
  .rd3 .js-reveal{opacity:0;transform:translateY(16px);transition:opacity var(--dur-3) var(--ease-out),transform var(--dur-3) var(--ease-out)}
  .rd3 .js-reveal.in{opacity:1;transform:none}
  /* Hover lifts: a small move, only for people who have not asked for less motion. */
  .rd3 .btn:hover{transform:translateY(-1px)}
  .rd3 .posts a:hover{transform:translateY(-2px)}
}
/* Reduced motion: no transitions anywhere (colour and state changes land at once); the edge fade on sideways scrollers is scroll-driven and stays. */
@media (prefers-reduced-motion:reduce){
  .rd3 *,.rd3 *::before,.rd3 *::after{transition:none!important}
}
/* R2: printing or saving as PDF shows every section in its final state. Revealed content and charts are drawn, the dark bands keep
   their colours, and the phone carousels lay out as grids so nothing is cut off at the page edge. */
@media print{
  .rd3 .top,.rd3 .foot,.rd3 .review,.rd3 .to-top,.rd3 .skip,.rd3 .swipe-hint,.rdi .flow-bar .btn{display:none!important}
  .rd3 *,.rd3 *::before,.rd3 *::after{-webkit-print-color-adjust:exact;print-color-adjust:exact;animation:none!important;transition:none!important}
  .rd3 .js-reveal,.rd3 .js-ex .rise,.rd3 .js-ex .pop,.rd3 .js-ex .gx,.rd3 .js-ex .fade,.rd3 .js-ex .lg tbody tr,.rd3 .js-ex .lv-b,.rd3 .closebars .bar::before{opacity:1!important;transform:none!important}
  .rd3 .closebars .bar{color:var(--t)!important}
  .rd3 .js-ex .draw,.rd3 .mini .draw{stroke-dashoffset:0!important}
  .rd3 .swipe,.rd3 .chain,.rd3 .rdi .yn{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;overflow:visible!important;margin-inline:0!important;padding-inline:0!important;-webkit-mask-image:none!important;mask-image:none!important}
  .rd3 .swipe>*,.rd3 .chain li,.rd3 .rdi .yn>div{flex:none!important;min-width:0}
  .rd3 .ex-tabs,.rd3 .xv-wrap,.rd3 .tbl-wrap,.rdi .tbl-wrap{overflow:visible!important;-webkit-mask-image:none!important;mask-image:none!important}
  .rd3 .ex,.rd3 .card,.rd3 .trk>li,.rd3 .turns>li,.rd3 figure,.rd3 .author-box,.rd3 .next-step{break-inside:avoid}
  .rd3 .sec{padding-block:2rem}
}

/* Launch audit, 16 Oct 2026 (docs/rebuild/03-FIX-PROMPT.md). Overrides sit here, after the rules they replace. */
/* 14: track record, a three-column table on desktop and stacked cards on a phone; figures in tabular Geist */
.rd3 .track{width:100%;border-collapse:separate;border-spacing:0;background:var(--card);border:1px solid var(--line);border-radius:22px;overflow:hidden;font-size:.97rem;line-height:1.5}
.rd3 .track th{text-align:left;font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:var(--bg-b);padding:.9rem 1.25rem;border-bottom:1px solid var(--line)}
.rd3 .track td{vertical-align:top;padding:1.15rem 1.25rem;border-bottom:1px solid var(--line);color:var(--ink-2)}
.rd3 .track tbody tr:last-child td{border-bottom:0}
.rd3 .track td:first-child{width:32%}
.rd3 .track td:last-child{color:var(--ink)}
.rd3 .track .who{display:block;color:var(--ink);font-weight:600;margin-bottom:.2rem}
.rd3 .track .num{font-variant-numeric:tabular-nums lining-nums;font-weight:600;color:var(--ink);white-space:nowrap}
.rd3 .track+.more{margin-top:1.75rem}
@media (max-width:47.99rem){
  .rd3 .track,.rd3 .track tbody,.rd3 .track tr,.rd3 .track td{display:block;width:auto}
  .rd3 .track{background:none;border:0;border-radius:0;overflow:visible}
  .rd3 .track thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .rd3 .track tr{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:.5rem 0}
  .rd3 .track tr+tr{margin-top:1rem}
  .rd3 .track td,.rd3 .track tbody tr:last-child td{border-bottom:0;padding:.5rem 1.15rem}
  .rd3 .track td:first-child{width:auto}
  .rd3 .track td:not(:first-child)::before{content:attr(data-label);display:block;font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:.15rem}
}
/* 2: the undated note under each builder thread */
.rd3 .tlx-note{margin-top:1.75rem;max-width:44rem;color:var(--on-navy-2)}
/* 26: a comfortable measure for running text */
.rd3 .prose p,.rd3 .prose li{max-width:45.08em}
/* 29: on a phone the portrait follows the call to action, so the CTA sits in the first screen */
@media (max-width:40rem){ .rd3 .hero .photo{order:1} }
/* 30: required-field asterisks stay on the label's line */
.rd3 .rd3-form label{display:block}
.rd3 .rd3-form label input,.rd3 .rd3-form label textarea,.rd3 .rd3-form label select{display:block;margin-top:.4rem}
/* 32: footer headings are labels, not H2s */
.rd3 .foot .foot-h{font-size:.85rem;line-height:1.3;font-weight:600;color:var(--on-navy);margin-bottom:.9rem}
/* 14: the homepage runs shorter: tighter section spacing, and the systems figures as one row of three */
.rd3 .sec.tight{padding-block:clamp(3.5rem, 2.5rem + 3vw, 5.5rem)}
.rd3 .fstats.fstats-3 li:last-child{grid-column:auto}
@media (min-width:48rem){ .rd3 .fstats.fstats-3{grid-template-columns:repeat(3,minmax(0,1fr)) !important} }
@media (max-width:47.99rem){ .rd3 .fstats.fstats-3 li:last-child{grid-column:span 2} }
.rd3 .fstats-3+.contrast{margin-top:clamp(2rem, 1.5rem + 2vw, 3rem)}
.rd3 .hero+.sec{padding-block:clamp(3.5rem, 2.5rem + 3vw, 5.5rem)}
@media (min-width:48rem){ .rd3 .track td{padding:.95rem 1.25rem} }
/* 27: no text under 12px */
.rd3 .line4 li .who{font-size:.75rem}
.rd3 .art-steps .role{font-size:.75rem}

/* Audit fixes, 18 October 2026 */
/* L4: on the home turning-point cards the captions take the same height, so the numbers and titles line up across the row. */
@media (min-width:72rem){.rd3 .turns figcaption{min-height:2.7em;line-height:1.35}}
/* U7: a small "Back to top" link before the footer on long pages (added by rd3.js). */
.rd3 .to-top{background:var(--navy-3);padding-top:1.5rem}
.rd3 .to-top .wide{display:flex;justify-content:flex-end}
.rd3 .to-top a{display:inline-flex;align-items:center;gap:.35em;min-height:24px;font-size:.88rem;font-weight:500;color:var(--on-navy);border-bottom:1px solid rgba(255,255,255,.3)}
.rd3 .to-top a:hover{border-bottom-color:var(--teal)}
/* Article byline (rd3-article.php): the author links to About; the updated date never splits. */
.rd3 .page-head .byline a{color:var(--on-navy);border-bottom:1px solid rgba(255,255,255,.3)}
.rd3 .page-head .byline a:hover{border-bottom-color:var(--teal)}
/* AI note under an article byline, as a caption (owner, 31 Oct 2026: "Smaller font ... a caption style") */
.rd3 .page-head .byline .ai-note{display:inline-block;margin-top:.3rem;font-size:9px;opacity:.8}
.rd3 .byline time{white-space:nowrap;font-variant-numeric:tabular-nums}
/* Article author box and next step: quiet cards on the article's background. */
.rd3 .author-box{display:flex;gap:1rem 1.25rem;align-items:flex-start;margin-top:2.5rem;padding:1.25rem 1.4rem;border:1px solid var(--line);border-radius:18px;background:var(--card);color:var(--ink-2);max-width:44rem}
.rd3 .author-box p{font-size:.95rem;line-height:1.55}
.rd3 .author-box p+p{margin-top:.3rem}
.rd3 .author-img{flex:none;display:block;width:80px;height:80px;border-radius:50%;object-fit:cover;background:var(--navy-2)}
.rd3 .author-name{font-weight:600;color:var(--ink)}
.rd3 .author-name a{color:var(--ink);border-bottom:1.5px solid var(--teal-text)}
@media (max-width:29.99rem){.rd3 .author-box{padding:1rem 1.1rem;gap:.9rem}.rd3 .author-img{width:56px;height:56px}}
.rd3 .next-step{margin-top:1.5rem;padding:1.25rem 1.4rem;border-radius:18px;background:var(--bg-b);border:1px solid var(--line);color:var(--ink-2);max-width:44rem}
.rd3 .sec.b .next-step{background:var(--card)}
.rd3 .next-step>p:first-child{color:var(--ink);font-weight:500}
.rd3 .next-links{display:flex;flex-wrap:wrap;gap:.6rem 1.75rem;margin-top:.4rem}
.rd3 .next-links .more{margin-top:.5rem}
/* U2: the contact form's required-field note and per-field errors. */
.rd3 .rd3-form .fld{display:grid;gap:.35rem;min-width:0}
.rd3 .form-req{font-size:.88rem;color:var(--ink-2)}
.rd3 .f-err{font-size:.88rem;font-weight:500;color:#b42318}
.rd3 .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.rd3 .next-what{padding:1rem 1.1rem;border-radius:14px;background:var(--bg-b);border:1px solid var(--line)}
/* Finance health check (web review, owner 24 Oct 2026). */
.rd3 .hc-area{border:0;padding:0;margin:0 0 2.5rem}
.rd3 .hc-area legend{font-size:1.25rem;font-weight:600;margin-bottom:1rem}
.rd3 .hc-q{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem 1.5rem;padding:1rem 0;border-top:1px solid var(--line)}
.rd3 .hc-q p{margin:0;flex:1 1 22rem}
.rd3 .hc-opts{display:flex;gap:.5rem}
.rd3 .hc-opts label{display:inline-flex;align-items:center;gap:.35rem;min-height:2.75rem;padding:.35rem .85rem;border:1px solid #8a857b;border-radius:999px;cursor:pointer}
.rd3 .hc-opts label:has(input:checked){border-color:var(--teal-text);background:rgba(95,211,192,.18)}
.rd3 .hc-result{margin-top:2.5rem;padding:clamp(1.25rem,3vw,2rem);border-radius:18px;background:var(--bg-b)}
.rd3 .hc-score{font-size:1.4rem;margin:.5rem 0}
.rd3 .hc-small{font-size:.9rem;color:var(--muted);margin-top:1.25rem}
.rd3 .hc-note{margin-left:1rem;color:var(--muted)}


/* Free-resource sign-up (web review, owner 24 Oct 2026). */
.rd3 .rd3-signup{max-width:44rem}
.rd3 .rd3-signup .sub{margin:.5rem 0 1.25rem}
.rd3 .su-consent{font-size:.9rem;color:var(--muted);margin:1rem 0}
.rd3 .su-done{max-width:44rem}

