:root {
  --navy: #06172b;
  --navy-2: #0b2441;
  --navy-3: #12365d;
  --blue: #137dff;
  --cyan: #14c9f2;
  --coral: #ff7655;
  --gold: #ffd65a;
  --paper: #f3f7fb;
  --white: #f8fbff;
  --muted: #afc0d2;
  --ink: #10243a;
  --line: rgba(16, 36, 58, .16);
  --serif: "Barlow Condensed", Impact, sans-serif;
  --sans: "Inter", Arial, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); -webkit-font-smoothing: antialiased; }
a { color: inherit; }
.site-header { height: 78px; padding: 0 6.5vw; display:flex; align-items:center; justify-content:space-between; position:relative; z-index:5; color:var(--white); background:var(--navy); border-bottom:1px solid rgba(255,255,255,.12); }
.brand { display:inline-flex; align-items:center; gap:10px; color:inherit; text-decoration:none; font-size:11px; font-weight:700; letter-spacing:.13em; }
.brand-mark { width:30px; height:30px; display:grid; place-items:center; border:1px solid var(--cyan); color:var(--cyan); font-family:var(--serif); font-size:21px; font-weight:700; }
.desktop-nav { display:flex; align-items:center; gap:29px; font-size:11px; font-weight:600; }
.desktop-nav a,.mobile-nav a { text-decoration:none; }
.desktop-nav a:not(.nav-cta):hover,.mobile-nav a:hover { color:var(--cyan); }
.nav-cta { padding:10px 14px; border:1px solid rgba(20,201,242,.65); color:var(--cyan); transition:.2s ease; }
.nav-cta:hover { color:var(--navy); background:var(--cyan); }
.mobile-nav { display:none; }
.hero { min-height:690px; position:relative; display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:7vw; padding:68px 9vw 104px; overflow:hidden; color:var(--white); background:radial-gradient(ellipse at 76% 50%,rgba(19,125,255,.16),transparent 38%),linear-gradient(135deg,#06172b,#081d36 70%,#0c2850); }
.hero:before { content:""; position:absolute; width:560px; height:560px; right:-220px; top:40px; border:1px solid rgba(20,201,242,.13); border-radius:50%; box-shadow:0 0 0 50px rgba(20,201,242,.025),0 0 0 100px rgba(20,201,242,.02); }
.hero-copy { max-width:650px; position:relative; z-index:1; }
.eyebrow { margin:0 0 17px; color:var(--cyan); font-size:9px; font-weight:700; letter-spacing:.19em; text-transform:uppercase; }
.eyebrow-dot { width:7px; height:7px; display:inline-block; margin:0 9px 1px 0; border-radius:50%; background:var(--coral); box-shadow:0 0 13px rgba(255,118,85,.6); }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family:var(--serif); font-weight:700; letter-spacing:-.02em; text-transform:uppercase; }
h1 { max-width:690px; margin-bottom:20px; font-size:clamp(50px,6vw,82px); line-height:.98; }
h1 em,h2 em { color:var(--cyan); font-style:normal; }
.hero-intro { max-width:500px; color:#c3d1e0; font-size:14px; line-height:1.85; }
.hero-actions { display:flex; align-items:center; gap:25px; margin-top:28px; }
.button { min-height:48px; display:inline-flex; align-items:center; justify-content:center; gap:15px; padding:0 19px; text-decoration:none; font-size:11px; font-weight:700; transition:.2s ease; }
.button-cyan { color:var(--navy); background:var(--cyan); }
.button-cyan:hover { background:var(--gold); transform:translateY(-2px); }
.button-dark { color:var(--white); background:var(--navy); }
.button-dark:hover { background:var(--blue); }
.text-link { display:inline-flex; align-items:center; gap:9px; padding-bottom:6px; border-bottom:1px solid var(--coral); color:inherit; text-decoration:none; font-size:11px; font-weight:700; }
.text-link:hover { color:var(--cyan); }
.hero-note { margin:22px 0 0; color:#8499b0; font-size:9px; letter-spacing:.04em; }
.hero-cover-wrap { width:min(100%,360px); justify-self:center; position:relative; z-index:1; padding-top:27px; }
.cover-label { position:absolute; top:0; left:0; display:flex; align-items:center; gap:9px; color:#a8bdd3; font-size:8px; font-weight:700; letter-spacing:.2em; }
.cover-label span { width:18px; height:1px; background:var(--coral); }
.hero-cover { width:100%; display:block; position:relative; z-index:1; border:1px solid rgba(255,255,255,.16); box-shadow:0 24px 60px rgba(0,0,0,.46); }
.cover-glow { position:absolute; width:70%; height:18px; bottom:-24px; left:15%; border-radius:50%; background:rgba(20,201,242,.5); filter:blur(26px); }
.hero-foot { position:absolute; right:9vw; bottom:29px; left:9vw; display:flex; justify-content:space-between; gap:15px; color:#8299b2; font-size:8px; letter-spacing:.17em; }
.section-pad { padding:95px 10vw; }
.section-kicker { display:flex; align-items:center; gap:12px; color:#58728d; font-size:8px; font-weight:700; letter-spacing:.18em; }
.section-kicker>span:first-child { color:var(--blue); font-family:var(--serif); font-size:15px; }
.kicker-rule { width:36px; height:1px; background:var(--coral); }
.intro { background:var(--paper); }
.intro-content { display:grid; grid-template-columns:1.1fr .9fr; gap:8vw; margin-top:34px; align-items:start; }
.intro h2,.method h2,.book h2,.author h2,.speaking h2,.closing h2 { margin:0; font-size:clamp(38px,4.5vw,62px); line-height:1.04; }
.intro h2 em,.book h2 em,.speaking h2 em { color:var(--blue); }
.intro-text { max-width:480px; padding-top:6px; }
.intro-text p,.book-copy>p:not(.eyebrow),.author-copy>p:not(.eyebrow),.speaking-copy>p { color:#526982; font-size:13px; line-height:1.9; }
.text-link-dark { margin-top:6px; color:var(--navy); }
.method { color:var(--white); background:var(--navy); }
.section-kicker.light { color:#9eb3c9; }
.section-kicker.light>span:first-child { color:var(--cyan); }
.method-heading { display:flex; justify-content:space-between; align-items:end; gap:45px; margin:34px 0 42px; }
.method-heading h2 { color:var(--white); }
.method-heading p { max-width:360px; margin:0 0 4px; color:#b3c3d4; font-size:12px; line-height:1.8; }
.method-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:11px; }
.method-card { min-height:264px; grid-column:span 2; display:flex; flex-direction:column; padding:20px 18px 18px; border:1px solid rgba(191,214,238,.2); background:rgba(255,255,255,.025); }
.method-card:nth-child(4) { grid-column:2 / span 2; }
.method-card-featured { border-color:rgba(20,201,242,.55); background:linear-gradient(145deg,rgba(19,125,255,.18),rgba(20,201,242,.08)); }
.card-top { display:flex; align-items:start; justify-content:space-between; }
.card-letter { color:var(--cyan); font-family:var(--serif); font-size:43px; font-weight:700; line-height:.9; }
.card-index { color:#7791aa; font-size:8px; letter-spacing:.15em; }
.method-card h3 { margin:20px 0 9px; color:var(--white); font-family:var(--serif); font-size:24px; font-weight:600; text-transform:uppercase; }
.method-card p { margin-bottom:16px; color:#b8c7d6; font-size:10px; line-height:1.8; }
.card-prompt { margin-top:auto; color:var(--gold); font-size:9px; font-style:italic; }
.method-footnote { margin:25px 0 0; color:#8198b0; font-size:9px; line-height:1.7; }
.effect { background:#e8eff6; }
.effect-heading { display:flex; justify-content:space-between; align-items:end; gap:35px; margin:34px 0 37px; }
.effect-heading h2 { color:var(--navy); font-size:clamp(38px,4.6vw,62px); }
.effect-heading h2 em { color:var(--blue); }
.effect-heading p { max-width:380px; margin:0 0 5px; color:#536b84; font-size:11px; line-height:1.85; }
.chart-grid { display:grid; grid-template-columns:1fr; gap:20px; }
.chart-card { min-width:0; margin:0; padding:24px 26px 17px; border:1px solid rgba(6,23,43,.12); background:#f8fbff; box-shadow:0 12px 35px rgba(10,40,72,.06); }
.chart-card figcaption { display:grid; grid-template-columns:94px 1fr; gap:4px 12px; margin-bottom:10px; align-items:baseline; }
.chart-number { grid-row:span 2; color:var(--blue); font-size:8px; font-weight:700; letter-spacing:.17em; }
.chart-card figcaption strong { color:var(--navy); font-family:var(--serif); font-size:25px; text-transform:uppercase; }
.chart-caption { color:#70869b; font-size:9px; }
.chart { width:100%; height:auto; overflow:visible; }
.chart .axis { stroke:#7c91a6; stroke-width:1.2; }
.chart .expected-line,.chart .baseline { stroke:#8ea5bb; stroke-width:1.5; stroke-dasharray:5 7; }
.chart .journey-line,.chart .response-line { fill:none; stroke:url(#curve-gradient); stroke-width:7; stroke-linecap:round; }
.chart .response-line { stroke:url(#response-gradient); }
.chart .expectation-line { fill:none; stroke:#748ca5; stroke-width:4; stroke-dasharray:10 9; stroke-linecap:round; }
.chart .svg-label { fill:#193752; font:700 12px Inter,Arial,sans-serif; letter-spacing:1.4px; }
.chart .svg-small { fill:#607992; font:700 9px Inter,Arial,sans-serif; letter-spacing:.7px; }
.chart .annotation { fill:#294766; font:600 10px Inter,Arial,sans-serif; }
.chart .stage circle { fill:var(--navy); stroke:var(--cyan); stroke-width:2; }
.chart .stage>text:first-of-type { fill:#fff; font:700 12px Inter,Arial,sans-serif; text-anchor:middle; }
.chart .stage-name { fill:#5c748c; font:700 7px Inter,Arial,sans-serif; letter-spacing:.5px; text-anchor:middle; }
.chart-point circle { fill:var(--navy); stroke:var(--cyan); stroke-width:3; }
.chart-point text { fill:#fff; font:700 10px Inter,Arial,sans-serif; text-anchor:middle; }
.chart-point.problem circle { fill:var(--coral); stroke:#fff; }
.chart-point.loyalty circle { fill:var(--gold); stroke:var(--navy); }
.chart-point.loyalty text { fill:var(--navy); font-size:12px; }
.chart .legend text { fill:#506a83; font:700 9px Inter,Arial,sans-serif; letter-spacing:.8px; }
.chart .legend-expected { stroke:#748ca5; stroke-width:4; stroke-dasharray:8 6; }
.chart .legend-response { stroke:url(#response-gradient); stroke-width:5; stroke-linecap:round; }
.chart-note { margin:0; color:#74899e; font-size:8px; }
.book { background:#f7f9fc; }
.book-layout { display:grid; grid-template-columns:.62fr 1.38fr; align-items:center; gap:9vw; max-width:1000px; margin:43px auto 0; }
.book-art { width:min(100%,290px); justify-self:center; position:relative; }
.book-art img { width:100%; display:block; position:relative; z-index:1; box-shadow:12px 15px 0 #dce7f2,0 20px 45px rgba(6,23,43,.18); }
.book-art-glow { position:absolute; inset:14% -12% -12%; z-index:0; background:rgba(19,125,255,.12); filter:blur(32px); }
.book-copy { max-width:590px; }
.book-copy .eyebrow { margin-bottom:14px; }
.book-copy h2 { margin-bottom:20px; }
.book-status { display:flex; align-items:center; gap:9px; margin-top:22px; padding:12px 14px; border:1px solid var(--line); color:#3e5b77; font-size:9px; line-height:1.6; }
.status-dot { width:7px; height:7px; flex:0 0 auto; border-radius:50%; background:var(--coral); }
.author { color:var(--white); background:linear-gradient(120deg,#071a30,#0a2543 72%,#103e6c); }
.author-layout { display:grid; grid-template-columns:.72fr 1.28fr; gap:8vw; align-items:center; margin-top:40px; }
.author-photo { width:min(100%,360px); margin:0 auto; position:relative; }
.author-photo img { width:100%; aspect-ratio:4/4.3; display:block; object-fit:cover; object-position:center 26%; border:1px solid rgba(20,201,242,.55); filter:saturate(.92); }
.author-photo:after { content:""; position:absolute; inset:12px -12px -12px 12px; border:1px solid rgba(20,201,242,.3); pointer-events:none; }
.author-photo figcaption { position:relative; z-index:1; margin-top:17px; color:var(--cyan); font-size:8px; font-weight:700; letter-spacing:.18em; }
.author-copy { max-width:680px; }
.author-copy .eyebrow { color:var(--gold); }
.author-copy h2 { margin-bottom:20px; }
.author-copy>p:not(.eyebrow) { color:#c1cfdd; }
.speaking { background:var(--paper); }
.speaking-layout { display:grid; grid-template-columns:1fr .8fr; gap:10vw; align-items:center; margin-top:34px; }
.speaking-copy { max-width:430px; }
.speaking-copy .button { margin-top:7px; }
.small-note { margin:13px 0 0; color:#76899b; font-size:8px !important; }
.closing { padding:78px 10vw; color:var(--white); background:linear-gradient(110deg,#0b4d86,#087cae 60%,#0a4c7c); text-align:center; }
.closing-inner { max-width:800px; margin:0 auto; }
.closing .eyebrow { color:#a9efff; }
.closing h2 { font-size:clamp(42px,5.1vw,67px); }
.closing h2 em { color:var(--gold); }
.closing-link { display:inline-flex; gap:10px; margin-top:22px; padding-bottom:6px; border-bottom:1px solid rgba(255,255,255,.65); color:var(--white); text-decoration:none; font-size:10px; font-weight:700; }
.site-footer { min-height:78px; padding:18px 6.5vw; display:flex; align-items:center; justify-content:space-between; gap:16px; color:#aebfd0; background:#041222; }
.footer-brand { color:var(--white); font-size:9px; }
.footer-brand .brand-mark { border-color:var(--cyan); color:var(--cyan); }
.site-footer p,.site-footer>a:last-child { margin:0; font-size:8px; }
.site-footer>a:last-child { text-decoration:none; }
.site-footer>a:last-child:hover { color:var(--cyan); }

@media (max-width:900px) {
  .site-header { padding:0 5vw; }
  .desktop-nav { gap:16px; }
  .hero { gap:5vw; padding-right:7vw; padding-left:7vw; }
  .hero-cover-wrap { width:min(100%,320px); }
  .section-pad { padding:80px 7vw; }
  .method-card { padding:18px 14px; }
  .method-card h3 { font-size:21px; }
  .chart-card { padding:20px 18px 14px; }
}
@media (max-width:680px) {
  .site-header { height:68px; padding:0 6vw; }
  .desktop-nav { display:none; }
  .mobile-nav { display:block; position:relative; }
  .mobile-nav summary { width:40px; height:40px; display:flex; flex-direction:column; justify-content:center; gap:6px; list-style:none; cursor:pointer; }
  .mobile-nav summary::-webkit-details-marker { display:none; }
  .mobile-nav summary span { width:22px; height:1px; display:block; background:var(--cyan); }
  .mobile-nav nav { position:absolute; top:44px; right:0; display:grid; width:220px; padding:8px 16px; color:var(--navy); background:var(--white); box-shadow:0 10px 35px rgba(4,18,34,.22); }
  .mobile-nav nav a { padding:12px 0; border-bottom:1px solid var(--line); font-size:11px; }
  .mobile-nav nav a:last-child { border:0; }
  .hero { min-height:0; grid-template-columns:1fr; gap:40px; padding:58px 7vw 77px; }
  h1 { font-size:clamp(48px,13vw,68px); }
  .hero-intro { font-size:13px; }
  .hero-actions { flex-wrap:wrap; gap:18px; }
  .hero-cover-wrap { width:min(74vw,310px); }
  .hero-foot { left:7vw; right:7vw; bottom:19px; font-size:6px; letter-spacing:.1em; }
  .section-pad { padding:66px 7vw; }
  .intro-content { grid-template-columns:1fr; gap:20px; margin-top:29px; }
  .intro h2,.method h2,.book h2,.author h2,.speaking h2 { font-size:42px; }
  .method-heading { display:block; margin:30px 0; }
  .method-heading p { margin-top:14px; }
  .method-grid { grid-template-columns:1fr; gap:9px; }
  .method-card,.method-card:nth-child(4) { grid-column:auto; min-height:220px; padding:21px; }
  .method-card h3 { font-size:24px; }
  .effect-heading { display:block; margin:29px 0; }
  .effect-heading p { margin-top:16px; }
  .chart-grid { gap:14px; }
  .chart-card { padding:15px 10px 12px; }
  .chart-card figcaption { grid-template-columns:67px 1fr; gap:4px 8px; margin-bottom:4px; }
  .chart-card figcaption strong { font-size:20px; }
  .chart-caption { font-size:8px; }
  .chart .stage-name { font-size:6px; letter-spacing:0; }
  .chart .annotation { font-size:9px; }
  .book-layout { grid-template-columns:1fr; gap:38px; margin-top:35px; }
  .book-art { width:min(67vw,265px); }
  .book-copy { max-width:100%; }
  .author-layout { grid-template-columns:1fr; gap:35px; margin-top:34px; }
  .author-photo { width:min(78vw,330px); }
  .speaking-layout { grid-template-columns:1fr; gap:17px; margin-top:29px; }
  .closing { padding:62px 7vw; }
  .site-footer { justify-content:center; text-align:center; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition-duration:.01ms!important; animation-duration:.01ms!important; animation-iteration-count:1!important; }
}
/* Faithful, readable color redraws of the charts in the book */
.chart-scroll { overflow-x:auto; overflow-y:hidden; scrollbar-color:#137dff #e5edf5; }
.faithful-chart { display:block; width:100%; min-width:920px; height:auto; }
.faithful-chart .chart-levels text { fill:#58718a; font:700 14px Inter,Arial,sans-serif; letter-spacing:.35px; }
.faithful-chart .axis { stroke:#8298ad; stroke-width:1.6; }
.faithful-chart .expected-line { stroke:#9aafc1; stroke-width:2; stroke-dasharray:7 8; }
.faithful-chart .journey-line,.faithful-chart .response-line { fill:none; stroke:url(#curve-gradient); stroke-width:8; stroke-linecap:round; }
.faithful-chart .response-line { stroke:url(#response-gradient); }
.faithful-chart .expectation-line { fill:none; stroke:#71869a; stroke-width:5; stroke-dasharray:12 10; stroke-linecap:round; }
.faithful-chart .svg-label { fill:#193752; font:800 17px Inter,Arial,sans-serif; letter-spacing:1.5px; }
.faithful-chart .annotation { fill:#294766; font:600 15px Inter,Arial,sans-serif; }
.faithful-chart .stage circle { fill:#06172b; stroke:#14c9f2; stroke-width:3; }
.faithful-chart .stage>text:first-of-type { fill:#fff; font:800 17px Inter,Arial,sans-serif; text-anchor:middle; }
.faithful-chart .stage-name { fill:#506a83; font:800 12px Inter,Arial,sans-serif; letter-spacing:.65px; text-anchor:middle; }
.faithful-chart .chart-mark circle { fill:#fff; stroke:#137dff; stroke-width:4; }
.faithful-chart .chart-mark circle:nth-of-type(3) { fill:#ff7655; stroke:#fff; }
.faithful-chart .chart-mark circle:last-of-type { fill:#ffd65a; stroke:#06172b; }
.faithful-chart .legend text { fill:#506a83; font:700 13px Inter,Arial,sans-serif; letter-spacing:.7px; }
.faithful-chart .legend-expected { stroke:#71869a; stroke-width:5; stroke-dasharray:10 8; }
.faithful-chart .legend-response { stroke:url(#response-gradient); stroke-width:6; stroke-linecap:round; }
.book-quotes { color:var(--white); background:var(--navy); }
.quotes-heading { display:flex; align-items:end; justify-content:space-between; gap:32px; margin:30px 0 34px; }
.quotes-heading h2 { max-width:680px; margin:0; color:var(--white); font:700 clamp(38px,5vw,65px)/.97 var(--serif); text-transform:uppercase; }
.quotes-heading>p { max-width:300px; margin:0 0 5px; color:#b8c9dc; font-size:13px; line-height:1.7; }
.quotes-heading em { color:var(--cyan); }
.quote-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.quote-grid blockquote { margin:0; padding:25px 24px 23px; border:1px solid rgba(20,201,242,.25); background:linear-gradient(145deg,rgba(19,125,255,.14),rgba(255,255,255,.025)); }
.quote-grid blockquote p { margin:0 0 25px; color:#f5f8fc; font:600 19px/1.5 var(--sans); }
.quote-grid cite { color:#aebfd2; font-size:11px; font-style:normal; line-height:1.5; }
.quote-grid cite span { color:var(--gold); padding:0 3px; }
.quote-grid cite em { color:#d8e8f8; }
@media (max-width:760px) {
  .quotes-heading { display:block; }
  .quotes-heading>p { margin-top:15px; }
  .quote-grid { grid-template-columns:1fr; }
  .faithful-chart { min-width:960px; }
}

/* Original book diagrams, colorized without changing layout or wording */
.book-chart { display:block; width:100%; min-width:800px; height:auto; }
.chart-scroll { overflow-x:auto; overflow-y:hidden; scrollbar-color:#137dff #e5edf5; }
@media (max-width:760px) {
  .book-chart { min-width:880px; }
}

/* Arrange the five SAPAC steps like the book's page 7 infographic */
.method-list { display:grid; grid-template-columns:1fr; gap:10px; }
.method-row { display:grid; grid-template-columns:86px minmax(190px,245px) minmax(0,1fr) 64px; align-items:center; gap:22px; min-height:112px; padding:14px 24px; border:1px solid rgba(191,214,238,.2); background:rgba(255,255,255,.035); }
.method-row h3 { margin:0; color:var(--white); font:700 25px/1.15 var(--serif); text-transform:uppercase; }
.method-row p { margin:0; padding:5px 24px; border-left:1px solid rgba(20,201,242,.45); color:#d0dbe6; font-size:14px; line-height:1.65; }
.method-letter { display:grid; width:70px; height:70px; place-items:center; border-radius:50%; color:var(--navy); background:var(--cyan); font:800 42px/1 var(--serif); }
.method-row:nth-child(2) .method-letter { background:#47a6ff; }
.method-row:nth-child(3) .method-letter { background:var(--coral); }
.method-row:nth-child(4) .method-letter { background:#86dff0; }
.method-row:nth-child(5) .method-letter { background:var(--gold); }
.method-icon { width:55px; height:55px; justify-self:end; fill:none; stroke:var(--cyan); stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }
.method-icon .icon-accent { stroke:var(--gold); }
.method-row:nth-child(3) .method-icon { stroke:var(--gold); }
.method-row:nth-child(4) .method-icon { stroke:#86dff0; }
@media (max-width:760px) {
  .method-row { grid-template-columns:58px minmax(0,1fr) 40px; gap:12px; min-height:0; padding:17px 15px; }
  .method-letter { width:52px; height:52px; font-size:32px; }
  .method-row h3 { font-size:22px; }
  .method-row p { grid-column:2 / 4; padding:4px 0 0; border-left:0; font-size:13px; }
  .method-icon { width:36px; height:36px; }
}

/* Industry endorsements */
.endorsements { color:var(--ink); background:#e8eff6; }
.endorsements-heading { display:flex; align-items:end; justify-content:space-between; gap:35px; margin:30px 0 32px; }
.endorsements-heading h2 { max-width:720px; margin:0; color:var(--navy); font:700 clamp(36px,4.5vw,58px)/1.02 var(--serif); text-transform:uppercase; }
.endorsements-heading>p { margin:0 0 4px; color:#5b7187; font-size:12px; }
.endorsements-heading em { color:var(--blue); }
.endorsement-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.endorsement-card { position:relative; display:flex; flex-direction:column; min-height:270px; margin:0; padding:29px 30px 24px; border:1px solid rgba(6,23,43,.13); background:#f8fbff; box-shadow:0 12px 35px rgba(10,40,72,.055); }
.endorsement-mark { position:absolute; top:13px; right:22px; color:rgba(19,125,255,.19); font:700 84px/.8 Georgia,serif; }
.endorsement-card>p { position:relative; flex:1; max-width:670px; margin:14px 0 30px; color:var(--navy); font:600 19px/1.55 var(--sans); }
.endorsement-card footer { display:grid; gap:4px; border-top:1px solid rgba(6,23,43,.12); padding-top:15px; }
.endorsement-card footer strong { color:var(--navy); font-size:14px; }
.endorsement-card footer span { color:#61758a; font-size:11px; line-height:1.55; }
@media (max-width:760px) {
  .endorsements-heading { display:block; }
  .endorsements-heading>p { margin-top:13px; }
  .endorsement-grid { grid-template-columns:1fr; }
  .endorsement-card { min-height:0; padding:24px 22px 20px; }
  .endorsement-card>p { font-size:17px; }
}


/* Make the book endorsements a visible first-page feature, with Vince Leisey featured. */
.endorsements { color:var(--ink); background:#e8eff6; }
.endorsements-heading { align-items:end; margin:25px 0 30px; }
.endorsements-heading h2 { max-width:820px; font-size:clamp(42px,5.1vw,68px); }
.endorsements-heading>p { font-size:14px; }
.endorsement-grid { grid-template-columns:1fr; gap:18px; }
.endorsement-card { min-height:0; padding:32px 36px 29px; }
.endorsement-card>p { max-width:850px; margin:10px 0 25px; font-size:22px; line-height:1.55; }
.endorsement-card footer strong { font-size:18px; }
.endorsement-card footer span { font-size:14px; line-height:1.6; }
.endorsement-card-featured { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.42fr); align-items:center; gap:42px; min-height:260px; padding:38px 42px; border:1px solid rgba(20,201,242,.5); color:var(--white); background:linear-gradient(125deg,#0b2441,#06172b 72%); box-shadow:0 18px 45px rgba(6,23,43,.16); }
.endorsement-card-featured>p { max-width:800px; margin:0; color:var(--white); font-size:clamp(23px,2.5vw,31px); line-height:1.48; }
.endorsement-card-featured footer { gap:8px; border:0; border-left:2px solid var(--cyan); padding:6px 0 6px 24px; }
.endorsement-card-featured footer strong { color:var(--white); font-size:22px; }
.endorsement-card-featured footer span { color:#cfdae6; font-size:15px; }
.endorsement-card-featured .endorsement-mark { top:18px; right:26px; color:rgba(20,201,242,.23); font-size:100px; }
@media (max-width:760px) {
  .endorsements-heading { display:block; }
  .endorsements-heading>p { margin-top:13px; }
  .endorsement-card { padding:26px 22px 23px; }
  .endorsement-card>p { font-size:19px; }
  .endorsement-card-featured { grid-template-columns:1fr; gap:22px; padding:30px 24px 25px; }
  .endorsement-card-featured>p { font-size:22px; }
  .endorsement-card-featured footer { border-left:0; border-top:1px solid rgba(20,201,242,.5); padding:16px 0 0; }
  .endorsement-card-featured footer strong { font-size:20px; }
  .endorsement-card-featured footer span { font-size:14px; }
}
.hero-actions { flex-wrap:wrap; row-gap:16px; }


/* Clear, balanced endorsement layout with working home-page jump links. */
section#endorsements.endorsements.section-pad {
  display:block;
  scroll-margin-top:24px;
  padding:58px clamp(24px,7vw,120px) 64px;
  color:#10243a;
  background:#e8eff6;
}
#endorsements .section-kicker { color:#54708b; font-size:11px; letter-spacing:.18em; }
#endorsements .endorsements-heading { display:block; max-width:1040px; margin:17px 0 28px; }
#endorsements .endorsements-heading h2 {
  max-width:950px;
  margin:0;
  color:#06172b;
  font:700 clamp(40px,4.7vw,62px)/1 var(--serif);
  text-transform:uppercase;
}
#endorsements .endorsements-heading>p { margin:13px 0 0; color:#50677e; font-size:14px; line-height:1.6; }
#endorsements .endorsements-heading em { color:#137dff; }
#endorsements .endorsement-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
  align-items:stretch;
  width:100%;
  max-width:1240px;
}
#endorsements .endorsement-card {
  position:relative;
  display:flex;
  flex-direction:column;
  min-height:330px;
  margin:0;
  padding:32px 34px 28px;
  border:1px solid #d2dde7;
  border-top:4px solid #1486b5;
  background:#fff;
  box-shadow:0 14px 32px rgba(6,23,43,.08);
}
#endorsements .endorsement-mark { top:13px; right:22px; color:rgba(19,125,255,.16); font-size:78px; }
#endorsements .endorsement-card>p {
  position:relative;
  flex:1;
  max-width:none;
  margin:5px 0 30px;
  color:#10243a;
  font:600 clamp(18px,1.55vw,22px)/1.6 var(--sans);
}
#endorsements .endorsement-card footer {
  display:grid;
  gap:6px;
  border-top:1px solid #d7e0e8;
  padding-top:17px;
}
#endorsements .endorsement-card footer strong { color:#06172b; font-size:20px; }
#endorsements .endorsement-card footer span { color:#4e647b; font-size:14px; line-height:1.55; }
@media (max-width:760px) {
  section#endorsements.endorsements.section-pad { padding:48px 7vw 52px; }
  #endorsements .endorsements-heading h2 { font-size:42px; }
  #endorsements .endorsement-grid { grid-template-columns:1fr; gap:16px; }
  #endorsements .endorsement-card { min-height:0; padding:27px 23px 24px; }
  #endorsements .endorsement-card>p { font-size:19px; }
}


/* Final endorsement presentation: high contrast, matched cards, supplied portraits. */
section#endorsements.endorsements.section-pad {
  display:block;
  scroll-margin-top:28px;
  padding:clamp(62px,7vw,92px) clamp(24px,7vw,120px);
  color:#f8fbff;
  background:
    radial-gradient(ellipse at 88% 5%,rgba(20,201,242,.11),transparent 38%),
    linear-gradient(125deg,#071a30 0%,#0b2441 65%,#0d3155 100%);
}
#endorsements .section-kicker { color:#b8eefa; font-size:11px; font-weight:700; letter-spacing:.18em; }
#endorsements .endorsements-heading {
  display:block;
  max-width:1160px;
  margin:20px auto 34px;
}
#endorsements .endorsements-heading h2 {
  max-width:1050px;
  margin:0;
  color:#fff;
  font:700 clamp(42px,5.5vw,72px)/.98 var(--serif);
  letter-spacing:-.015em;
  text-transform:uppercase;
}
#endorsements .endorsements-heading>p {
  max-width:660px;
  margin:15px 0 0;
  color:#c4d5e5;
  font-size:15px;
  line-height:1.65;
}
#endorsements .endorsement-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:stretch;
  gap:22px;
  width:100%;
  max-width:1280px;
  margin:0 auto;
}
#endorsements .endorsement-card {
  position:relative;
  display:flex;
  flex-direction:column;
  min-width:0;
  min-height:350px;
  margin:0;
  padding:34px 34px 28px;
  overflow:hidden;
  border:1px solid #dce7ef;
  border-top:4px solid #14c9f2;
  border-radius:3px;
  color:#10243a;
  background:#f8fbff;
  box-shadow:0 18px 42px rgba(0,0,0,.18);
}
#endorsements .endorsement-mark {
  position:absolute;
  top:16px;
  right:26px;
  color:rgba(19,125,255,.18);
  font:700 92px/.8 Georgia,serif;
}
#endorsements .endorsement-card>p {
  position:relative;
  flex:1;
  max-width:none;
  margin:5px 0 30px;
  color:#10243a;
  font:600 clamp(18px,1.55vw,22px)/1.55 var(--sans);
}
#endorsements .endorsement-person {
  display:flex;
  align-items:center;
  gap:17px;
  margin-top:auto;
  border-top:1px solid #d7e1eb;
  padding-top:19px;
}
#endorsements .endorsement-person>img {
  width:82px;
  height:82px;
  flex:0 0 82px;
  border:3px solid #d6f4fa;
  border-radius:50%;
  object-fit:cover;
  object-position:center 35%;
  background:#dfe8f1;
}
#endorsements .endorsement-person-copy {
  display:grid;
  gap:4px;
  min-width:0;
  color:#445b72;
  font-size:14px;
  line-height:1.45;
}
#endorsements .endorsement-person-copy strong {
  color:#06172b;
  font-size:21px;
  line-height:1.15;
}
#endorsements .endorsement-person-copy .endorsement-org {
  color:#61758a;
  font-size:12px;
}
@media (max-width:820px) {
  #endorsements .endorsement-grid { grid-template-columns:1fr; max-width:680px; }
  #endorsements .endorsement-card { min-height:0; }
}
@media (max-width:680px) {
  section#endorsements.endorsements.section-pad { padding:55px 7vw 60px; }
  #endorsements .endorsements-heading { margin:17px 0 25px; }
  #endorsements .endorsements-heading h2 { font-size:clamp(40px,11vw,54px); }
  #endorsements .endorsements-heading>p { font-size:14px; }
  #endorsements .endorsement-grid { gap:16px; }
  #endorsements .endorsement-card { padding:27px 22px 23px; }
  #endorsements .endorsement-card>p { font-size:18px; line-height:1.55; }
  #endorsements .endorsement-person { gap:13px; }
  #endorsements .endorsement-person>img { width:68px; height:68px; flex-basis:68px; }
  #endorsements .endorsement-person-copy strong { font-size:19px; }
}


/* Give the endorsers' positions the same prominence as their names. */
#endorsements .endorsement-person-copy > span:not(.endorsement-org) {
  color:#164f7a;
  font-size:16px;
  font-weight:700;
  line-height:1.35;
}
#endorsements .endorsement-person-copy .endorsement-org {
  color:#536b82;
  font-size:13px;
  line-height:1.45;
}
@media (max-width:680px) {
  #endorsements .endorsement-person-copy > span:not(.endorsement-org) { font-size:15px; }
}

/* Readable labels and supporting titles across the book website. */
.brand { font-size:13px; letter-spacing:.09em; }
.desktop-nav { font-size:14px; gap:22px; }
.eyebrow { font-size:14px; letter-spacing:.12em; line-height:1.5; }
.section-kicker, #endorsements .section-kicker { font-size:15px; letter-spacing:.13em; line-height:1.5; }
.section-kicker > span:first-child { font-size:19px; }
.section-kicker > span:only-child { font-family:var(--sans); font-size:15px; }
.cover-label { font-size:13px; letter-spacing:.13em; }
.hero-foot { font-size:14px; letter-spacing:.04em; color:#b9cde0; line-height:1.5; }
.hero-note { font-size:14px; color:#b9cde0; line-height:1.6; }
.hero-intro { font-size:16px; line-height:1.8; }
.button, .text-link, .closing-link { font-size:14px; line-height:1.5; }
.intro-text p, .book-copy > p:not(.eyebrow), .author-copy > p:not(.eyebrow), .speaking-copy > p { font-size:16px; line-height:1.8; }
.method-heading p, .effect-heading p { font-size:16px; }
.method-row h3 { font-size:30px; }
.method-row p { font-size:16px; }
.method-footnote { font-size:14px; color:#b3c3d4; }
.chart-number { font-size:13px; letter-spacing:.1em; }
.chart-card figcaption strong { font-size:30px; line-height:1.15; }
.chart-caption { font-size:14px; line-height:1.5; }
.chart-note { font-size:13px; line-height:1.5; }
.author-photo figcaption { font-size:14px; letter-spacing:.1em; }
.book-status { font-size:14px; }
.small-note { font-size:13px !important; }
.quote-grid cite { font-size:14px; }
.site-footer p, .site-footer > a:last-child { font-size:13px; }
.author-layout { align-items:start; }
.author-copy { max-width:720px; }
@media (min-width:681px) and (max-width:1100px) {
  .site-header { height:auto; min-height:78px; flex-wrap:wrap; padding-top:18px; padding-bottom:18px; gap:16px; }
  .desktop-nav { flex-wrap:wrap; gap:16px; }
}
@media (max-width:680px) {
  .brand { font-size:11px; }
  .mobile-nav nav a { font-size:16px; }
  .eyebrow { font-size:13px; }
  .hero-foot { position:static; grid-column:1 / -1; margin-top:0; font-size:14px; }
  .hero { padding-bottom:35px; }
  .section-kicker, #endorsements .section-kicker { font-size:14px; }
  .method-row h3 { font-size:27px; }
  .method-row p { font-size:15px; }
  .chart-card figcaption { grid-template-columns:1fr; gap:7px; }
  .chart-number { grid-row:auto; }
  .chart-card figcaption strong { font-size:27px; }
  .chart-caption { font-size:14px; }
  .site-footer { flex-wrap:wrap; }
}

/* Keep each endorser's credentials beside the portrait. */
#endorsements .endorsement-card footer.endorsement-person {
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:17px;
}
#endorsements .endorsement-card footer.endorsement-person .endorsement-person-copy {
  flex:1;
  min-width:0;
}
@media (max-width:680px) {
  #endorsements .endorsement-card footer.endorsement-person { gap:13px; }
}

/* Fixed navigation, clear anchors, and launch invitation. */
.site-header { position:sticky; top:0; z-index:100; }
html { scroll-padding-top:var(--header-height, 78px); }
section[id],section#endorsements.endorsements.section-pad { scroll-margin-top:0; }
.desktop-nav { gap:16px; font-size:12px; }
.desktop-nav a,.mobile-nav a { text-transform:uppercase; }
.chart-links { display:flex; flex-wrap:wrap; gap:18px; }
.launch { background:linear-gradient(125deg,#071a30,#0d3155); color:#f8fbff; }
.launch-layout { display:grid; grid-template-columns:1fr 1fr; gap:8vw; align-items:start; }
.launch h2 { font-size:clamp(42px,5vw,66px); line-height:1.05; }
.launch p { line-height:1.8; }
.launch-date { font-size:22px; color:#b8eefa; }
.rsvp-card { padding:32px; background:#f8fbff; color:#10243a; border-top:4px solid #14c9f2; }
.rsvp-card h3 { font:700 30px/1.1 var(--serif); text-transform:uppercase; }
.rsvp-card label { display:block; margin:20px 0 8px; font-weight:600; }
.rsvp-card input { width:100%; padding:13px; border:1px solid #8298ad; border-radius:3px; font:inherit; background:white; color:#10243a; }
.rsvp-card button { border:0; cursor:pointer; }
.rsvp-card button:disabled { opacity:.6; cursor:wait; }
.form-help { font-size:13px; color:#526982; }
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible { outline:3px solid #137dff; outline-offset:4px; }
.charts-page { max-width:1600px; margin:auto; padding:50px 4vw; }
.vector-chart { display:block; width:100%; height:auto; min-width:850px; }
@media(max-width:1100px) { .desktop-nav { display:none; } .mobile-nav { display:block; position:relative; } .mobile-nav nav { position:absolute; right:0; width:min(86vw,340px); max-height:75vh; overflow:auto; padding:24px; background:#06172b; box-shadow:0 10px 30px #0005; } .mobile-nav nav a { display:block; padding:12px 0; } .mobile-nav summary { cursor:pointer; padding:12px; color:#14c9f2; } .mobile-nav summary:after { content:'MENU'; font-size:13px; } .site-header { flex-wrap:nowrap; } }
@media(max-width:760px) { .launch-layout { grid-template-columns:1fr; gap:28px; } .rsvp-card { padding:24px; } }

#rsvp-dialog { width:min(560px, calc(100% - 32px)); max-height:calc(100dvh - 40px); overflow:auto; padding:0; border:0; color:var(--ink); background:var(--white); box-shadow:0 24px 100px #0008; }
#rsvp-dialog::backdrop { background:rgba(2,12,25,.78); backdrop-filter:blur(4px); }
#rsvp-dialog .rsvp-card { padding:42px 32px 28px; }
.dialog-close { position:absolute; right:12px; top:9px; width:34px; height:34px; border:0; background:transparent; color:var(--navy); font-size:28px; cursor:pointer; }
.launch-rsvp { align-self:center; max-width:420px; }
.launch-rsvp>p { color:#c4d5e5; }
@media(max-width:600px) { #rsvp-dialog .rsvp-card { padding:44px 22px 24px; } }

.dialog-event { border-bottom:1px solid #d7e1eb; margin-bottom:24px; padding-bottom:12px; }
.dialog-event h2 { font-size:38px; line-height:1.05; color:var(--navy); margin-bottom:20px; }
.dialog-event .eyebrow { color:#137dff; }
.dialog-event p { line-height:1.6; }
