/* ── Hardcover book reader ─────────────────────────────────────────── */
    .hc-stage {
      position: relative;
      border-radius: 20px;
      border: 1px solid rgba(21, 69, 111, 0.14);
      background:
        radial-gradient(1100px 540px at 50% -12%, rgba(255, 255, 255, 0.66), rgba(255, 255, 255, 0) 58%),
        radial-gradient(920px 480px at 50% 120%, rgba(21, 69, 111, 0.14), rgba(21, 69, 111, 0) 55%),
        linear-gradient(180deg, #F0E8D6 0%, #E7DDC6 55%, #DED2B8 100%);
      box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.7),
        inset 0 -1px 0 rgba(21, 69, 111, 0.08),
        0 28px 64px -28px rgba(21, 69, 111, 0.4);
      padding: 30px 18px 40px;
      overflow: hidden;
    }
    @media (min-width: 640px) {
      .hc-stage { padding: 46px 48px 54px; }
    }
    .hc-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3rem 3.2rem; align-items: center; }
    @media (min-width: 900px) {
      .hc-grid { grid-template-columns: minmax(0, 5fr) minmax(0, 4fr); }
    }

    /* Closed hardcover */
    .hc-book3d { perspective: 1500px; }
    .hc-book-holder { position: relative; max-width: 360px; margin: 0 auto; }
    .hc-book {
      position: relative;
      width: min(300px, 72vw);
      aspect-ratio: 300 / 440;
      margin: 0 auto;
      transform: rotateX(3deg) rotateY(-9deg);
      transform-style: preserve-3d;
      transition: transform 600ms ease;
    }
    @media (hover: hover) {
      .hc-book:hover { transform: rotateX(1.5deg) rotateY(-5deg); }
    }
    .hc-book-shadow {
      position: absolute; left: -10px; right: -28px; bottom: -38px; height: 64px;
      background: radial-gradient(50% 50% at 50% 50%, rgba(15, 38, 62, 0.5), rgba(15, 38, 62, 0.18) 55%, rgba(15, 38, 62, 0) 78%);
      filter: blur(1px);
      pointer-events: none;
    }
    .hc-book-shadow::after {
      content: ''; position: absolute; left: 12%; right: 2%; bottom: 4px; height: 12px;
      background: rgba(15, 38, 62, 0.34); border-radius: 50%; filter: blur(3px);
    }
    .hc-page-edge-right, .hc-page-edge-bottom {
      position: absolute; background: #F1E9D6; pointer-events: none; z-index: 0;
    }
    .hc-page-edge-right {
      top: 6px; right: -20px; bottom: -16px; width: 22px;
      border-radius: 2px 10px 10px 2px;
      background: repeating-linear-gradient(90deg, #F4ECD9 0 2px, #E5D9BE 2px 4px);
      box-shadow: inset -6px 0 10px -6px rgba(94, 74, 40, 0.4);
    }
    .hc-page-edge-bottom {
      left: 4px; right: -20px; bottom: -16px; height: 20px;
      border-radius: 2px 10px 10px 10px;
      background: repeating-linear-gradient(180deg, #F4ECD9 0 2px, #E5D9BE 2px 4px);
      box-shadow: inset 0 -6px 10px -6px rgba(94, 74, 40, 0.45);
    }
    .hc-pages-front {
      position: absolute; inset: 0; z-index: 1;
      background: linear-gradient(180deg, #F6EFDD 0%, #EFE6CF 100%);
      border-radius: 10px 8px 8px 10px;
      box-shadow: inset 0 0 0 1px rgba(21, 69, 111, 0.08);
    }
    .hc-front-cover {
      position: absolute; inset: 0; z-index: 2;
      border-radius: 10px 7px 7px 10px;
      background: linear-gradient(118deg, #103A5E 0%, #15456F 46%, #1B5180 100%);
      box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.12),
        inset 0 0 44px rgba(6, 22, 40, 0.55),
        0 20px 42px -16px rgba(10, 30, 50, 0.65);
      transform-origin: left center;
      transition: transform 900ms cubic-bezier(0.5, 0, 0.2, 1);
    }
    .hc-front-cover::after {
      content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 52px;
      background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(2, 12, 22, 0.34) 100%);
      border-radius: inherit; pointer-events: none;
    }
    .hc-cover-swing { transform: rotateY(-158deg); }
    .hc-spine-band {
      position: absolute; top: 0; bottom: 0; left: 0; width: 34px; overflow: hidden;
      border-radius: 10px 2px 2px 10px;
      background: linear-gradient(90deg, #0C2E4E 0%, #103A5E 40%, #15456F 100%);
      box-shadow: inset -8px 0 10px -6px rgba(0, 0, 0, 0.6), inset 2px 0 1px rgba(255, 255, 255, 0.08);
    }
    .hc-spine-text {
      position: absolute; top: 50%; left: 50%;
      transform: translate(-50%, -50%) rotate(-90deg);
      font-family: 'Inter', system-ui, sans-serif;
      font-size: 10px; font-weight: 700; letter-spacing: 0.24em; text-transform: uppercase;
      color: #C9A455; white-space: nowrap;
    }
    .hc-cover-face {
      position: absolute; top: 0; right: 0; bottom: 0; left: 34px;
      display: flex; flex-direction: column; align-items: center;
      justify-content: space-between; text-align: center;
      padding: clamp(14px, 2.4vw, 20px) clamp(12px, 2vw, 18px) clamp(12px, 2vw, 18px);
      box-shadow: inset 7px 0 10px -8px rgba(0, 0, 0, 0.45);
    }
    .hc-cover-face::before {
      content: ''; position: absolute; inset: 9px;
      border: 1px solid rgba(201, 164, 85, 0.6);
      box-shadow: inset 0 0 0 3px rgba(201, 164, 85, 0.12);
      pointer-events: none;
    }
    .hc-cover-eyebrow {
      font-family: 'Inter', system-ui, sans-serif;
      font-size: 10px; font-weight: 700; letter-spacing: 0.26em; text-transform: uppercase;
      color: #D9BC7E; max-width: 16ch; line-height: 1.5;
    }
    .hc-cover-art {
      width: 100%; max-width: 190px; margin: 0.35rem 0;
      aspect-ratio: 16 / 10;
      border: 2px solid rgba(201, 164, 85, 0.9);
      box-shadow: 0 12px 24px -10px rgba(0, 0, 0, 0.6);
      overflow: hidden; background: #0C2E4E;
    }
    .hc-cover-art img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .hc-cover-title {
      font-family: 'Playfair Display', Georgia, serif;
      font-size: clamp(17px, 2.6vw, 21px); font-weight: 700; line-height: 1.22;
      color: #E8CF8F; letter-spacing: 0.035em; text-shadow: 0 2px 6px rgba(0, 0, 0, 0.45);
    }
    .hc-cover-sub {
      font-family: 'Playfair Display', Georgia, serif;
      font-size: clamp(13px, 2vw, 15px); font-weight: 600; line-height: 1.2;
      color: #D9BC7E; letter-spacing: 0.05em; margin-top: 0.3rem;
    }
    .hc-cover-byline {
      font-family: 'Inter', system-ui, sans-serif;
      font-size: 9px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase;
      color: rgba(255, 255, 255, 0.78); line-height: 1.6; max-width: 24ch;
    }
    .hc-open-cta { margin-top: 1.6rem; text-align: center; }
    .hc-open-btn {
      display: inline-flex; align-items: center; justify-content: center; gap: 0.55rem;
      min-height: 52px; padding: 0.8rem 1.6rem;
      background: #15456F; color: #fff; border: 1px solid #15456F; border-radius: 999px;
      font-family: 'Inter', system-ui, sans-serif; font-size: 17px; font-weight: 700;
      cursor: pointer; transition: background 180ms ease, transform 180ms ease, box-shadow 180ms ease;
      box-shadow: 0 16px 30px -14px rgba(21, 69, 111, 0.5);
    }
    .hc-open-btn:hover, .hc-open-btn:focus-visible {
      background: #1B5180; transform: translateY(-1px);
      box-shadow: 0 0 0 3px rgba(197, 160, 77, 0.5), 0 18px 30px -14px rgba(21, 69, 111, 0.5);
      outline: none;
    }
    .hc-open-hint { display: block; margin-top: 0.7rem; font-size: 14px; color: #6E6753; }

    /* Unlock card */
    .hc-unlock-card {
      position: relative;
      background: linear-gradient(180deg, #FDFBF5 0%, #F6EFDF 100%);
      border: 1px solid rgba(21, 69, 111, 0.18);
      border-radius: 16px;
      box-shadow: 0 26px 54px -24px rgba(15, 38, 62, 0.45);
      padding: clamp(22px, 3vw, 32px);
    }
    .hc-unlock-card::before {
      content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px;
      border-radius: 16px 16px 0 0;
      background: linear-gradient(90deg, #15456F 0%, #C5A04D 100%);
    }
    .hc-unlock-eyebrow {
      font-family: 'Inter', system-ui, sans-serif; font-size: 12px; font-weight: 700;
      letter-spacing: 0.22em; text-transform: uppercase; color: #A97B2F; margin-bottom: 0.45rem;
    }
    .hc-unlock-title {
      font-family: 'Playfair Display', Georgia, serif; font-size: clamp(22px, 2.6vw, 27px);
      font-weight: 700; color: #1B365D; letter-spacing: 0.01em; line-height: 1.2; margin: 0 0 0.6rem;
    }
    .hc-unlock-note { color: #5A5748; font-size: 15.5px; line-height: 1.7; margin: 0 0 1.1rem; }
    .hc-unlock-alt { color: #5A5748; font-size: 14.5px; line-height: 1.6; margin: 0.9rem 0 0; }
    .hc-unlock-alt button {
      background: none; border: none; padding: 0; cursor: pointer;
      color: #15456F; font-weight: 700; font-size: inherit;
      text-decoration: underline; text-underline-offset: 3px;
      min-height: 44px; display: inline-flex; align-items: center;
    }
    .hc-noscript { margin: 1rem 0 0; text-align: center; color: #7A7464; font-size: 15px; }

    /* Open book reader */
    .hc-reader { animation: hc-rise 600ms cubic-bezier(0.2, 0.7, 0.3, 1) both; }
    @keyframes hc-rise {
      from { opacity: 0; transform: translateY(18px); }
      to { opacity: 1; transform: translateY(0); }
    }
    .hc-reader-inner { max-width: 880px; margin: 0 auto; }
    .hc-leaves {
      position: relative;
      border-radius: 12px;
      border: 1px solid rgba(21, 69, 111, 0.14);
      background: linear-gradient(180deg, #FCF7EB 0%, #F7F0DF 100%);
      box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.8),
        0 34px 70px -26px rgba(15, 38, 62, 0.5),
        0 8px 24px -12px rgba(15, 38, 62, 0.25);
      overflow: hidden;
      perspective: 2400px;
    }
    .hc-spread { display: flex; position: relative; min-width: 0; }
    .hc-page {
      flex: 1 1 50%; min-width: 0;
      box-sizing: border-box; display: flex; flex-direction: column;
      background: #FAF6EE;
      padding: clamp(26px, 3.2vw, 40px) clamp(20px, 2.8vw, 34px) 22px;
      min-height: 540px;
    }
    .hc-page--left { box-shadow: inset -30px 0 34px -30px rgba(21, 69, 111, 0.22); }
    .hc-page--right { box-shadow: inset 30px 0 34px -30px rgba(21, 69, 111, 0.22); }
    @media (max-width: 767px) {
      .hc-page { flex-basis: 100%; min-height: 480px; }
      .hc-page--right { display: none; box-shadow: none; }
      .hc-page--left { box-shadow: none; }
      .hc-leaves { max-width: 580px; margin: 0 auto; border-radius: 10px; }
    }
    .hc-fold {
      position: absolute; top: 0; bottom: 0; left: calc(50% - 40px); width: 80px;
      z-index: 3; pointer-events: none;
      background: linear-gradient(90deg, rgba(21, 69, 111, 0) 0%, rgba(21, 69, 111, 0.22) 50%, rgba(21, 69, 111, 0) 100%);
    }
    @media (max-width: 767px) { .hc-fold { display: none; } }

    /* Page typography: cream paper, navy ink, gold headings */
    .hc-page-head { border-bottom: 1px solid rgba(169, 123, 47, 0.5); padding-bottom: 0.95rem; margin-bottom: 1.3rem; }
    .hc-kicker {
      display: block; font-family: 'Inter', system-ui, sans-serif;
      font-size: 12px; font-weight: 700; letter-spacing: 0.24em; text-transform: uppercase;
      color: #A97B2F; margin-bottom: 0.55rem;
    }
    .hc-page-title {
      font-family: 'Playfair Display', Georgia, serif;
      font-size: clamp(23px, 3vw, 31px); line-height: 1.18; font-weight: 700;
      color: #1B365D; letter-spacing: 0.012em;
    }
    .hc-page-body { flex: 1 1 auto; }
    .hc-prose p { color: #1E2F4C; font-size: 17px; line-height: 1.85; margin: 0 0 1rem; }
    .hc-prose h4 {
      font-family: 'Playfair Display', Georgia, serif;
      font-size: clamp(19px, 2.2vw, 23px); font-weight: 700; letter-spacing: 0.02em;
      color: #A97B2F; margin: 1.7rem 0 0.5rem;
    }
    .hc-prose ul { margin: 0.5rem 0 1.1rem; padding-left: 1.3rem; list-style: disc; }
    .hc-prose li { color: #1E2F4C; line-height: 1.8; margin-bottom: 0.4rem; }
    .hc-prose blockquote {
      border-left: 3px solid #C5A04D; background: rgba(197, 160, 77, 0.1);
      padding: 1rem 1.2rem; margin: 1.4rem 0; border-radius: 0 8px 8px 0;
    }
    .hc-prose blockquote p { color: #1B365D; font-style: italic; margin: 0; }
    .hc-link { color: #2D6A4F; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
    .hc-link:hover { color: #3D8B6A; }
    .hc-cite { color: #7A7464; font-size: 15px; font-style: italic; }
    .hc-page-foot {
      margin-top: auto; padding-top: 0.85rem;
      border-top: 1px solid rgba(169, 123, 47, 0.42);
      display: flex; align-items: center; justify-content: space-between; gap: 0.75rem;
      font-family: 'Inter', system-ui, sans-serif;
      font-size: 11px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase;
      color: #8A7A50;
    }
    .hc-page-num { color: #A97B2F; font-weight: 700; letter-spacing: 0.08em; }

    /* TOC */
    .hc-toc { list-style: none; margin: 0; padding: 0; }
    .hc-toc li { margin-bottom: 0.5rem; }
    .hc-toc-link {
      display: flex; align-items: center; gap: 0.8rem; width: 100%; text-align: left;
      background: rgba(255, 255, 255, 0.66); border: 1px solid rgba(21, 69, 111, 0.16);
      border-radius: 10px; padding: 0.5rem 0.7rem; min-height: 46px; cursor: pointer;
      font-family: 'Inter', system-ui, sans-serif; font-size: 15.5px; font-weight: 600;
      color: #1E2F4C; transition: border-color 180ms ease, background 180ms ease, color 180ms ease;
    }
    .hc-toc-link:hover, .hc-toc-link:focus-visible { border-color: #A97B2F; background: #FDF6E6; color: #13325A; outline: none; }
    .hc-toc-num {
      flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center;
      width: 34px; height: 34px; border-radius: 8px;
      background: #15456F; color: #C9A455;
      font-size: 12px; font-weight: 700; letter-spacing: 0.06em;
    }
    .hc-toc-arrow { color: #A97B2F; flex-shrink: 0; }

    /* About / CTA / end pages */
    .hc-about { display: flex; flex-direction: column; gap: 1.2rem; align-items: flex-start; }
    @media (min-width: 560px) { .hc-about { flex-direction: row; align-items: flex-start; } }
    .hc-about-img { width: 132px; height: 168px; object-fit: cover; object-position: center top; border-radius: 9px; flex-shrink: 0; border: 2px solid #C5A04D; }
    .hc-about .hc-prose p { margin-bottom: 0.9rem; }
    .hc-about-art { margin-top: 1.4rem; display: flex; justify-content: center; }
    .hc-about-art img { width: 100%; max-width: 300px; border-radius: 10px; border: 2px solid rgba(197, 160, 77, 0.5); box-shadow: 0 14px 28px -16px rgba(21, 69, 111, 0.45); }
    .hc-cta-card {
      display: flex; flex-direction: column; gap: 0.7rem;
      background: rgba(197, 160, 77, 0.11); border: 1px solid rgba(197, 160, 77, 0.45);
      border-radius: 12px; padding: 1.2rem; margin: 1.2rem 0;
    }
    @media (min-width: 560px) { .hc-cta-card { flex-direction: row; flex-wrap: wrap; } }
    .hc-fair { margin-top: 1.1rem; padding-top: 0.9rem; border-top: 1px dashed rgba(21, 69, 111, 0.22); }
    .hc-fair p { color: #7A7464; font-size: 14px; line-height: 1.6; margin: 0; }
    .hc-ornament { margin: 1.6rem 0 0.4rem; text-align: center; color: #C5A04D; font-size: 22px; line-height: 1; }

    /* Controls */
    .hc-controls { display: flex; align-items: center; justify-content: center; gap: 0.55rem; flex-wrap: wrap; margin-top: 1.3rem; }
    .hc-nav {
      display: inline-flex; align-items: center; justify-content: center; gap: 0.45rem;
      min-height: 44px; min-width: 44px; padding: 0.5rem 0.95rem;
      background: #15456F; color: #fff; border: 1px solid #15456F; border-radius: 999px;
      font-family: 'Inter', system-ui, sans-serif; font-size: 15px; font-weight: 700;
      cursor: pointer; transition: background 180ms ease, box-shadow 180ms ease, opacity 180ms ease;
    }
    .hc-nav:hover:not(:disabled), .hc-nav:focus-visible { background: #1B5180; box-shadow: 0 0 0 3px rgba(197, 160, 77, 0.45); outline: none; }
    .hc-nav:disabled { opacity: 0.38; cursor: default; }
    .hc-nav--toc { background: rgba(255, 255, 255, 0.88); color: #15456F; border-color: rgba(21, 69, 111, 0.35); }
    .hc-nav--toc:hover:not(:disabled) { background: #fff; }
    .hc-nav-label { display: none; }
    @media (min-width: 480px) { .hc-nav-label { display: inline; } }
    .hc-indicator {
      display: inline-flex; align-items: center; white-space: nowrap;
      min-height: 44px; padding: 0.5rem 1.05rem;
      font-family: 'Inter', system-ui, sans-serif; font-size: 14px; font-weight: 700; letter-spacing: 0.06em;
      color: #15456F; background: rgba(255, 255, 255, 0.88);
      border: 1px solid rgba(21, 69, 111, 0.2); border-radius: 999px;
    }
    .hc-progress { height: 5px; max-width: 420px; margin: 1rem auto 0; background: rgba(21, 69, 111, 0.12); border-radius: 999px; overflow: hidden; }
    .hc-progress span { display: block; height: 100%; width: 0%; border-radius: inherit; background: linear-gradient(90deg, #C5A04D, #E3C87A); transition: width 420ms ease; }
    .hc-hint { margin: 0.8rem 0 0; text-align: center; font-family: 'Inter', system-ui, sans-serif; font-size: 14px; color: #6E6753; }

    /* Page turn */
    .hc-flip {
      position: absolute; top: 0; bottom: 0; left: 50%; width: 50%;
      z-index: 6; pointer-events: none;
      transform-origin: left center; transform-style: preserve-3d;
      will-change: transform;
    }
    .hc-flip--turn-fwd { animation: hc-turn-fwd 880ms cubic-bezier(0.45, 0.02, 0.2, 1) forwards; }
    .hc-flip--turn-back { left: 0; width: 50%; transform-origin: right center; animation: hc-turn-back 880ms cubic-bezier(0.45, 0.02, 0.2, 1) forwards; }
    @media (max-width: 767px) {
      .hc-flip, .hc-flip--turn-back { left: 0; width: 100%; }
    }
    @keyframes hc-turn-fwd { from { transform: rotateY(0deg); } to { transform: rotateY(-180deg); } }
    @keyframes hc-turn-back { from { transform: rotateY(0deg); } to { transform: rotateY(180deg); } }
    .hc-flip-face {
      position: absolute; inset: 0; overflow: hidden;
      backface-visibility: hidden; border-radius: 6px;
    }
    .hc-flip-face--front { background: #FAF6EE; box-shadow: -10px 0 22px -8px rgba(21, 69, 111, 0.4); }
    .hc-flip-face--back { transform: rotateY(180deg); background: #EFE7DB; box-shadow: 10px 0 22px -8px rgba(21, 69, 111, 0.25); }
    .hc-flip-pad { padding: clamp(26px, 3.2vw, 40px) clamp(20px, 2.8vw, 34px) 22px; }
    .hc-flip-face--back .hc-flip-pad { opacity: 0.4; filter: blur(0.4px); }
    .hc-flip-shade {
      position: absolute; inset: 0; pointer-events: none;
      background: linear-gradient(100deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.55) 24%, rgba(20, 50, 80, 0.16) 52%, rgba(255, 255, 255, 0) 76%);
      mix-blend-mode: screen; opacity: 0;
    }
    .hc-flip--turn-fwd .hc-flip-shade, .hc-flip--turn-back .hc-flip-shade { animation: hc-curl 880ms ease forwards; }
    @keyframes hc-curl {
      0% { opacity: 0; }
      25% { opacity: 0.95; }
      60% { opacity: 0.3; }
      100% { opacity: 0; }
    }
    .hc-settle { animation: hc-settle 460ms ease both; }
    @keyframes hc-settle {
      from { opacity: 0; transform: translateY(8px); }
      to { opacity: 1; transform: translateY(0); }
    }

    /* Lead form (unchanged behavior, restyled to the book) */
    .ebook-lead-form { display: flex; flex-direction: column; gap: 0.7rem; margin: 1rem 0 0.9rem; }
    .ebook-field input {
      width: 100%; box-sizing: border-box; padding: 0.72rem 0.95rem;
      font-family: 'Inter', system-ui, sans-serif; font-size: 16.5px; color: #1B1B1E;
      background: #fff; border: 1px solid rgba(21, 69, 111, 0.28); border-radius: 10px;
      min-height: 48px; transition: border-color 180ms ease, box-shadow 180ms ease;
    }
    .ebook-field input:focus { border-color: #2D6A4F; outline: none; box-shadow: 0 0 0 3px rgba(45, 106, 79, 0.2); }
    .ebook-field input::placeholder { color: #9A9588; }
    .ebook-cta {
      display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
      border-radius: 10px; font-family: 'Inter', system-ui, sans-serif; font-size: 16.5px; font-weight: 700;
      padding: 0.8rem 1.4rem; min-height: 48px; cursor: pointer; text-decoration: none; text-align: center;
      border: 1px solid transparent; transition: background 180ms ease, border-color 180ms ease, color 180ms ease;
    }
    .ebook-cta--gold { background: #C5A04D; color: #12324F; }
    .ebook-cta--gold:hover { background: #D3AF58; }
    .ebook-cta--green { background: #2D6A4F; color: #fff; }
    .ebook-cta--green:hover { background: #3D8B6A; }
    .ebook-cta--outline { background: #fff; color: #15456F; border-color: rgba(21, 69, 111, 0.35); }
    .ebook-cta--outline:hover { background: #F6EFDF; border-color: #15456F; }
    .ebook-cta--ghost { background: transparent; color: #15456F; border-color: rgba(21, 69, 111, 0.28); }
    .ebook-cta--ghost:hover { background: #F6EFDF; }
    .ebook-form-msg {
      font-family: 'Inter', system-ui, sans-serif; font-size: 15px; line-height: 1.45;
      text-align: center; padding: 0.55rem 0.8rem; border-radius: 8px; margin: 0;
    }
    .ebook-form-msg.ebook-msg--success { color: #2D6A4F; background: #E8F5E9; }
    .ebook-form-msg.ebook-msg--error { color: #B71C1C; background: #FFEBEE; }
    .ebook-cover-note { font-size: 14.5px; color: #7A7464; font-style: italic; margin: 0.7rem 0 0 !important; }

    /* Mid-read capture gate (soft gate, dismissible) */
    .hc-gate[hidden] { display: none; }
    .hc-gate {
      position: absolute; inset: 0; z-index: 40;
      display: flex; align-items: center; justify-content: center;
      padding: clamp(16px, 4vw, 40px);
    }
    .hc-gate-backdrop {
      position: absolute; inset: 0;
      background: rgba(16, 46, 74, 0.46);
      backdrop-filter: blur(2px);
      animation: hc-gate-fade 240ms ease both;
    }
    .hc-gate-card {
      position: relative; width: 100%; max-width: 440px;
      background: linear-gradient(180deg, #FDFBF5 0%, #F6EFDF 100%);
      border: 1px solid rgba(197, 160, 77, 0.6);
      border-radius: 18px;
      box-shadow: 0 30px 60px -22px rgba(10, 30, 50, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.8);
      padding: clamp(24px, 5vw, 34px);
      max-height: calc(100vh - 90px);
      overflow-y: auto;
      animation: hc-gate-rise 320ms cubic-bezier(0.2, 0.7, 0.3, 1) both;
      text-align: left;
    }
    .hc-gate-card::before {
      content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px;
      border-radius: 18px 18px 0 0;
      background: linear-gradient(90deg, #15456F 0%, #C5A04D 100%);
    }
    .hc-gate-x {
      position: absolute; top: 12px; right: 12px;
      display: inline-flex; align-items: center; justify-content: center;
      width: 44px; height: 44px; border-radius: 999px;
      background: transparent; border: none; color: #15456F; cursor: pointer;
      transition: background 180ms ease, color 180ms ease;
    }
    .hc-gate-x:hover, .hc-gate-x:focus-visible { background: rgba(21, 69, 111, 0.08); outline: none; }
    .hc-gate-eyebrow {
      font-family: 'Inter', system-ui, sans-serif; font-size: 12px; font-weight: 700;
      letter-spacing: 0.22em; text-transform: uppercase; color: #A97B2F; margin-bottom: 0.45rem;
    }
    .hc-gate-title {
      font-family: 'Playfair Display', Georgia, serif; font-size: clamp(23px, 2.8vw, 28px);
      font-weight: 700; color: #1B365D; letter-spacing: 0.01em; line-height: 1.2; margin: 0 0 0.6rem;
    }
    .hc-gate-note { color: #5A5748; font-size: 15.5px; line-height: 1.7; margin: 0 0 1rem; }
    .hc-gate-reassure, .hc-gate-privacy {
      font-size: 14px; line-height: 1.6; color: #5A5748; margin: 0.9rem 0 0;
    }
    .hc-gate-privacy { color: #8A7A50; font-size: 13px; margin-top: 0.35rem; text-align: center; }
    .hc-gate-skip {
      display: inline-flex; align-items: center; justify-content: center;
      width: 100%; min-height: 44px; margin-top: 0.6rem;
      background: none; border: none; cursor: pointer;
      font-family: 'Inter', system-ui, sans-serif; font-size: 15px; font-weight: 700;
      color: #15456F; text-decoration: underline; text-underline-offset: 3px;
      border-radius: 8px;
    }
    .hc-gate-skip:hover, .hc-gate-skip:focus-visible { background: rgba(21, 69, 111, 0.07); outline: none; }
    @keyframes hc-gate-fade { from { opacity: 0; } to { opacity: 1; } }
    @keyframes hc-gate-rise {
      from { opacity: 0; transform: translateY(16px) scale(0.985); }
      to { opacity: 1; transform: translateY(0) scale(1); }
    }

    /* End-of-book PDF capture card */
    .hc-end-card {
      margin: 1.4rem 0 0.4rem;
      background: linear-gradient(180deg, #FDFBF5 0%, #F6EFDF 100%);
      border: 1px solid rgba(197, 160, 77, 0.55);
      border-radius: 14px;
      padding: clamp(18px, 2.4vw, 26px);
      box-shadow: 0 18px 38px -20px rgba(15, 38, 62, 0.45);
      position: relative;
    }
    .hc-end-card::before {
      content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px;
      border-radius: 14px 14px 0 0;
      background: linear-gradient(90deg, #15456F 0%, #C5A04D 100%);
    }
    .hc-end-kicker {
      font-family: 'Inter', system-ui, sans-serif; font-size: 11.5px; font-weight: 700;
      letter-spacing: 0.22em; text-transform: uppercase; color: #A97B2F; margin-bottom: 0.4rem;
    }
    .hc-end-title {
      font-family: 'Playfair Display', Georgia, serif; font-size: clamp(20px, 2.4vw, 24px);
      font-weight: 700; color: #1B365D; letter-spacing: 0.01em; line-height: 1.22; margin: 0 0 0.55rem;
    }
    .hc-end-note { color: #5A5748; font-size: 15.5px; line-height: 1.7; margin: 0 0 1rem; }
    .hc-end-card .ebook-lead-form { margin: 0 0 0.7rem; }
    .hc-end-reassure, .hc-end-privacy { font-size: 14px; line-height: 1.6; color: #5A5748; margin: 0; }
    .hc-end-privacy { color: #8A7A50; font-size: 13px; margin-top: 0.3rem; }
    .hc-end-download { margin-top: 0.85rem; }
    .hc-end-card .ebook-field[hidden], .hc-end-card button[hidden] { display: none; }

    @media (prefers-reduced-motion: reduce) {
      .hc-book, .hc-book:hover, .hc-front-cover, .hc-cover-swing { transition: none !important; }
      .hc-cover-swing { transform: none; }
      .hc-flip--turn-fwd, .hc-flip--turn-back, .hc-settle, .hc-reader { animation: none !important; }
      .hc-gate-backdrop, .hc-gate-card { animation: none !important; }
    }