  :root{
    --ground:#FFFFFF;
    --ground-2:#FAF8F8;
    --ground-3:#F3EEED;
    --ink:#1C1416;
    --ink-dim:#726264;
    --ink-faint:#A79798;
    --accent:#9D6263;
    --accent-deep:#853B3C;
    --on-accent:#FFFFFF;
    --line: rgba(28,20,22,0.07);
    --line-strong: rgba(28,20,22,0.14);

    --font-display:'Fraunces', Georgia, 'Times New Roman', serif;
    --font-body:'Poppins', 'Helvetica Neue', Arial, sans-serif;
    color-scheme: light;
  }

  *{ box-sizing:border-box; }
  html{ scroll-behavior:auto; }
  body{
    margin:0; background:var(--ground); color:var(--ink);
    font-family:var(--font-body); -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  ::selection{ background:var(--accent); color:#fff; }
  h1,h2,h3,blockquote{ margin:0; font-family:var(--font-display); text-wrap:balance; }
  p{ margin:0; }
  a{ color:inherit; }
  button{ font-family:var(--font-body); cursor:pointer; }
  img{ max-width:100%; display:block; }
  svg{ display:block; flex-shrink:0; }
  svg[hidden]{ display:none; }

  .visually-hidden{
    position:absolute; width:1px; height:1px; overflow:hidden;
    clip:rect(0 0 0 0); white-space:nowrap; border:0; padding:0; margin:-1px;
  }
  .skip-link{
    position:fixed; top:-100px; left:16px; z-index:999;
    background:var(--ink); color:#fff; padding:.8em 1.2em;
    font-family:var(--font-body); font-size:.85rem; text-decoration:none;
    border-radius:3px; transition:top .2s ease;
  }
  .skip-link:focus{ top:16px; }
  a:focus-visible, button:focus-visible, [tabindex]:focus-visible{
    outline:2px solid var(--accent-deep); outline-offset:3px;
  }

  .wrap{ max-width:1180px; margin:0 auto; padding-inline:clamp(20px,5vw,56px); }
  .eyebrow{
    font-family:var(--font-body); font-size:.72rem; letter-spacing:.16em;
    text-transform:uppercase; color:var(--accent-deep); font-weight:600;
  }
  .icon{ width:20px; height:20px; stroke:currentColor; stroke-width:1.6; fill:none; stroke-linecap:round; stroke-linejoin:round; }

  /* ================= NAV ================= */
  .nav{
    position:sticky; top:0; z-index:60;
    display:flex; align-items:center; justify-content:space-between;
    padding:22px clamp(20px,5vw,56px);
    font-family:var(--font-body);
    background:rgba(255,255,255,.92); backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .nav-mark{ display:flex; align-items:center; gap:9px; text-decoration:none; font-family:var(--font-display); font-size:1.15rem; font-weight:500; color:var(--ink); }
  .nav-mark img{ display:block; width:auto; }
  .nav-links{ display:flex; gap:clamp(20px,2.6vw,36px); list-style:none; margin:0; padding:0; }
  .nav-links a{
    font-size:.84rem; text-decoration:none; color:var(--ink-dim); font-weight:500;
    padding-bottom:4px; border-bottom:1px solid transparent; transition:color .2s ease, border-color .2s ease;
  }
  .nav-links a:hover{ color:var(--ink); }
  .nav-links a.is-active{ color:var(--accent-deep); border-color:var(--accent-deep); }
  .nav-has-sub{ position:relative; }
  .nav-has-sub > a::after{
    content:''; display:inline-block; width:5px; height:5px; margin-left:5px; margin-bottom:1px;
    border-right:1px solid currentColor; border-bottom:1px solid currentColor; transform:rotate(45deg);
    opacity:.55; vertical-align:middle;
  }
  .nav-submenu{
    list-style:none; margin:0; padding:8px 0; position:absolute; top:calc(100% + 14px); left:50%;
    transform:translateX(-50%); background:#fff; border:1px solid var(--line); border-radius:8px;
    box-shadow:0 12px 28px rgba(0,0,0,.09); min-width:150px; z-index:60;
    opacity:0; visibility:hidden; transform:translateX(-50%) translateY(4px);
    transition:opacity .16s ease, transform .16s ease, visibility .16s ease;
  }
  .nav-has-sub:hover .nav-submenu,
  .nav-has-sub:focus-within .nav-submenu{
    opacity:1; visibility:visible; transform:translateX(-50%) translateY(0);
  }
  .nav-submenu li a{
    display:block; padding:9px 18px; font-size:.82rem; font-weight:500; color:var(--ink-dim);
    text-decoration:none; border-bottom:none; white-space:nowrap;
  }
  .nav-submenu li a:hover, .nav-submenu li a.is-active{ color:var(--accent-deep); background:var(--ground); }
  .nav-actions{ display:flex; gap:22px; align-items:center; }
  .icon-btn{
    background:none; border:none; color:var(--ink-dim); font-size:.78rem;
    letter-spacing:.04em; font-weight:500; display:flex; align-items:center; gap:7px;
    padding:6px 2px; transition:color .2s ease;
  }
  .icon-btn:hover{ color:var(--ink); }
  .btn-member{
    background:var(--ink); color:#fff; border:1px solid var(--ink);
    font-family:var(--font-body); font-size:.8rem; font-weight:600;
    padding:11px 22px; border-radius:6px; transition:background .2s ease, border-color .2s ease;
  }
  .btn-member:hover{ background:var(--accent-deep); border-color:var(--accent-deep); }
  .nav-menu-btn{ display:none; }
  @media (max-width:900px){
    .nav-links{ display:none; }
    .nav-menu-btn{ display:inline-flex; }
  }

  /* ================= MOBILE NAV PANEL ================= */
  .mobile-nav-panel{
    position:fixed; inset:0; z-index:250; background:var(--ground); color:var(--ink);
    transform:translateY(-100%); transition:transform .35s cubic-bezier(.22,.7,.25,1); overflow-y:auto;
    pointer-events:none; display:flex; flex-direction:column;
  }
  .mobile-nav-panel.open{ transform:translateY(0); pointer-events:auto; }
  .mobile-nav-bar{
    position:sticky; top:0; z-index:2; display:flex; align-items:center; gap:20px;
    padding:18px clamp(18px,4vw,40px); background:var(--ground); border-bottom:1px solid var(--line);
  }
  .mobile-nav-bar button{ background:none; border:none; color:var(--ink); font-size:.78rem; letter-spacing:.04em; font-weight:600; padding:6px; }
  .mobile-nav-links{ display:flex; flex-direction:column; padding:4px clamp(18px,4vw,40px) 0; }
  .mobile-nav-links a{
    padding:18px 0; border-bottom:1px solid var(--line); text-decoration:none; color:var(--ink);
    font-family:var(--font-display); font-size:1.25rem;
  }
  .mobile-nav-links a.is-active{ color:var(--accent-deep); }
  .mobile-nav-links a.mobile-nav-sub-link{
    font-size:1.02rem; padding-left:18px; padding-top:14px; padding-bottom:14px; color:var(--ink-dim);
    position:relative;
  }
  .mobile-nav-links a.mobile-nav-sub-link::before{
    content:'—'; position:absolute; left:0; color:var(--ink-faint);
  }
  .mobile-nav-actions{ margin-top:auto; padding:26px clamp(18px,4vw,40px) clamp(34px,7vw,54px); }
  .mobile-nav-actions .btn-member{ width:100%; text-align:center; display:block; }
  @media (max-width:560px){ .btn-member{ display:none; } }

  /* ================= BUTTONS ================= */
  .btn{
    font-family:var(--font-body); font-size:.82rem; font-weight:600; letter-spacing:.01em;
    color:var(--ink); text-decoration:none; border-bottom:1px solid var(--line-strong);
    padding-bottom:3px; display:inline-flex; align-items:center; gap:9px;
    background:none; border-top:none; border-left:none; border-right:none;
    transition:border-color .2s ease, color .2s ease; white-space:nowrap;
  }
  .btn:hover{ color:var(--accent-deep); border-color:var(--accent-deep); }
  .btn-solid{
    border:1px solid var(--ink); background:var(--ink); color:#fff; border-radius:6px;
    padding:13px 26px;
  }
  .btn-solid:hover{ background:var(--accent-deep); border-color:var(--accent-deep); color:#fff; }
  .btn[aria-pressed="true"]{ color:var(--accent-deep); border-color:var(--accent-deep); }

  /* ================= HERO ================= */
  .hero{ padding:clamp(56px,9vw,110px) 0 clamp(46px,7vw,80px); }
  .hero-grid{ display:grid; grid-template-columns:1.3fr .9fr; gap:clamp(30px,5vw,70px); align-items:end; }
  .hero-eyebrow{
    display:flex; align-items:center; gap:12px; font-size:.76rem; letter-spacing:.16em;
    text-transform:uppercase; color:var(--accent-deep); font-weight:600; margin-bottom:24px;
  }
  .hero-eyebrow::before{ content:''; width:26px; height:1px; background:var(--accent-deep); }
  .hero h1{
    font-size:clamp(2.5rem,5.6vw,4.8rem); font-weight:400; line-height:1.02; letter-spacing:-.01em;
  }
  .hero h1 em{ font-style:italic; font-weight:400; color:var(--accent-deep); }
  .hero-side p{ font-size:1.02rem; line-height:1.72; color:var(--ink-dim); max-width:38ch; }
  .hero-actions{ margin-top:28px; display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
  @media (max-width:860px){ .hero-grid{ grid-template-columns:1fr; } .hero-actions{ justify-content:flex-start; } }

  /* ================= SHELF (real covers, no frames) ================= */
  .shelf{ margin-top:clamp(46px,7vw,80px); }
  .shelf-books{
    display:flex; align-items:flex-start; gap:clamp(20px,3vw,36px); overflow-x:auto; padding-bottom:6px;
  }
  .shelf-book{ flex:0 0 auto; text-decoration:none; color:var(--ink); width:clamp(112px,11vw,150px); }
  .shelf-book img{
    width:100%; aspect-ratio:2/3; object-fit:cover; border-radius:2px;
    transition:transform .25s ease;
  }
  .shelf-book:hover img{ transform:translateY(-6px); }
  .shelf-book .s-label{ display:block; margin-top:12px; font-size:.78rem; font-weight:500; }
  .shelf-book .s-eyebrow{ display:block; font-size:.64rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); margin-top:3px; }
  @media (max-width:860px){
    .shelf-books{ display:grid; grid-template-columns:repeat(3,1fr); overflow-x:visible; gap:20px 14px; padding-bottom:0; }
    .shelf-book{ width:auto; }
  }
  @media (max-width:480px){
    .shelf-books{ grid-template-columns:repeat(2,1fr); }
    .shelf-book:nth-child(n+3){ display:none; }
  }

  /* ================= STATEMENT (pull quote) ================= */
  .statement{ padding-block:clamp(64px,10vw,120px); text-align:center; }
  .statement blockquote{
    font-size:clamp(1.6rem,4.2vw,2.9rem); font-style:italic; font-weight:400; line-height:1.24;
    max-width:24ch; margin-inline:auto; color:var(--ink);
  }
  .statement cite{
    display:block; margin-top:26px; font-style:normal; font-size:.76rem; letter-spacing:.14em;
    text-transform:uppercase; color:var(--ink-faint);
  }

  /* ================= EDITORIAL INDEX (book lists) ================= */
  .index-list{ display:flex; flex-direction:column; }
  .index-row{
    display:grid; grid-template-columns:2.2rem 1fr auto; gap:20px; align-items:center;
    padding:22px 0; text-decoration:none; color:var(--ink);
    transition:padding-left .25s ease, color .25s ease;
  }
  .index-row + .index-row{ border-top:1px solid var(--line); }
  .index-row:hover{ padding-left:8px; color:var(--accent-deep); }
  .index-num{ font-size:.78rem; color:var(--ink-faint); font-variant-numeric:tabular-nums; }
  .index-main{ display:flex; align-items:center; gap:18px; min-width:0; }
  .index-cover{ width:40px; aspect-ratio:2/3; object-fit:cover; border-radius:1px; flex-shrink:0; }
  .index-text{ min-width:0; }
  .index-title{ font-family:var(--font-display); font-size:1.28rem; font-weight:400; display:block; }
  .index-desc{ font-size:.86rem; line-height:1.5; color:var(--ink-dim); margin-top:4px; max-width:56ch; }
  .index-meta{ display:flex; align-items:center; gap:22px; }
  .index-price{ font-size:.82rem; color:var(--ink-dim); font-variant-numeric:tabular-nums; white-space:nowrap; }
  .index-arrow{ color:var(--ink-faint); transition:transform .25s ease, color .25s ease; }
  .index-row:hover .index-arrow{ transform:translateX(4px); color:var(--accent-deep); }
  @media (max-width:700px){
    .index-row{ grid-template-columns:1fr; gap:10px; }
    .index-num, .index-arrow{ display:none; }
    .index-meta{ margin-top:2px; }
  }

  /* ================= PLATFORM STRIP (icons, no borders) ================= */
  .platform{ padding-block:clamp(50px,8vw,90px); }
  .platform-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(24px,3vw,40px); }
  .platform-cell{ text-decoration:none; color:var(--ink); }
  .platform-cell .p-icon{
    width:44px; height:44px; display:flex; align-items:center; justify-content:center;
    color:var(--accent-deep); transition:color .2s ease;
  }
  .platform-cell:hover .p-icon{ color:var(--ink); }
  .platform-cell h3{ font-size:1.08rem; font-weight:500; margin-top:18px; }
  .platform-cell p{ font-size:.84rem; color:var(--ink-dim); margin-top:6px; line-height:1.5; }
  @media (max-width:760px){ .platform-grid{ grid-template-columns:repeat(2,1fr); } }
  @media (max-width:460px){ .platform-grid{ grid-template-columns:1fr; } }

  /* ================= MEMBERS CORNER ================= */
  .members{ background:var(--ground-2); padding-block:clamp(56px,9vw,100px); }
  .members-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(30px,5vw,60px); align-items:center; }
  .members-copy h2{ margin-top:14px; font-size:clamp(1.9rem,3.6vw,2.7rem); font-weight:400; line-height:1.12; }
  .members-copy p{ margin-top:16px; font-size:.98rem; line-height:1.72; color:var(--ink-dim); max-width:44ch; }
  .members-copy .btn-solid{ margin-top:28px; }
  .members-visual{ display:flex; align-items:flex-start; justify-content:center; gap:16px; }
  .members-visual img{
    width:clamp(120px,16vw,190px); aspect-ratio:2/3; object-fit:cover; border-radius:2px;
  }
  @media (max-width:860px){ .members-grid{ grid-template-columns:1fr; text-align:center; } .members-copy p{ margin-inline:auto; } .members-visual{ margin-top:10px; } }

  /* ================= AUTHOR ================= */
  .author-section{ padding-block:clamp(56px,9vw,100px); }
  .author-grid{ display:grid; grid-template-columns:.7fr 1.3fr; gap:clamp(30px,5vw,64px); align-items:center; }
  .author-photo{ width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:2px; filter:grayscale(1) contrast(1.04); }
  .author-copy h2{ margin-top:14px; font-size:clamp(1.7rem,3.2vw,2.3rem); font-weight:400; }
  .author-copy p{ margin-top:16px; font-size:.96rem; line-height:1.72; color:var(--ink-dim); max-width:54ch; }
  @media (max-width:860px){ .author-grid{ grid-template-columns:1fr; text-align:center; } .author-copy p{ margin-inline:auto; } .author-photo{ max-width:280px; margin-inline:auto; } }

  /* ================= ABOUT HERO / PILLARS ================= */
  .about-hero{ padding:clamp(56px,9vw,100px) 0 clamp(40px,6vw,70px); }
  .about-hero-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(30px,5vw,60px); align-items:start; }
  .about-hero h1{ font-size:clamp(2.1rem,4.4vw,3.3rem); font-weight:400; line-height:1.08; }
  .about-hero-side p{ font-size:.98rem; line-height:1.72; color:var(--ink-dim); }
  .about-hero-side p + p{ margin-top:16px; }
  .pillars{ margin-top:30px; display:flex; gap:clamp(24px,4vw,44px); }
  .pillars span{ font-family:var(--font-display); font-style:italic; font-size:1.05rem; color:var(--ink-faint); }
  .pillars span.is-key{ color:var(--accent-deep); }
  @media (max-width:860px){ .about-hero-grid{ grid-template-columns:1fr; } }

  /* ================= PREORDER ================= */
  .preorder{ padding-block:clamp(56px,9vw,100px); text-align:center; background:var(--ground-2); }
  .preorder .figure{ font-family:var(--font-display); font-size:clamp(2.6rem,7vw,5rem); font-weight:400; color:var(--accent-deep); line-height:1; }
  .preorder h2{ margin-top:10px; font-size:clamp(1.5rem,3vw,2.1rem); font-weight:400; }
  .preorder p{ margin-top:14px; color:var(--ink-dim); font-size:.94rem; line-height:1.7; max-width:48ch; margin-inline:auto; }
  .preorder .btn-solid{ margin-top:26px; }

  /* ================= STORE HERO ================= */
  .store-hero{ padding:clamp(50px,8vw,90px) 0 clamp(30px,5vw,50px); }
  .store-hero h1{ font-size:clamp(2rem,4.2vw,3.1rem); font-weight:400; }
  .store-hero h1 em{ font-style:italic; color:var(--accent-deep); }
  .store-hero p{ margin-top:16px; color:var(--ink-dim); font-size:.98rem; line-height:1.7; max-width:58ch; }
  .library{ padding-bottom:clamp(56px,9vw,100px); }

  /* ================= BOOK DETAIL (product page) ================= */
  .product{ padding-block:clamp(50px,8vw,96px); }
  .product-grid{ display:grid; grid-template-columns:.75fr 1.15fr .75fr; gap:clamp(30px,4vw,50px); align-items:start; }
  .product-visual{ position:relative; display:flex; align-items:center; justify-content:center; padding:10px; }
  .product-visual img{ position:relative; z-index:1; width:68%; border-radius:2px; }
  .product-copy h1{ margin-top:12px; font-size:clamp(1.9rem,3.4vw,2.6rem); font-weight:400; line-height:1.08; }
  .product-copy .p-quote{
    margin-top:20px; font-family:var(--font-display); font-style:italic; font-size:1.12rem;
    line-height:1.5; color:var(--ink-dim);
  }
  .product-copy .desc{ margin-top:18px; font-size:.94rem; line-height:1.72; color:var(--ink-dim); max-width:56ch; }
  .product-tags{ margin-top:22px; display:flex; gap:18px; flex-wrap:wrap; }
  .product-tags .topic-chip{ padding:0; border:none; color:var(--ink-dim); font-size:.78rem; }
  .product-tags .topic-chip::before{ content:'·'; margin-right:8px; color:var(--ink-faint); }
  .product-tags .topic-chip:first-child::before{ display:none; }
  .spec-table{ margin-top:28px; display:flex; flex-direction:column; gap:12px; }
  .spec-row{ display:flex; justify-content:space-between; gap:16px; font-size:.84rem; }
  .spec-row .k{ color:var(--ink-faint); }
  .spec-row .v{ font-weight:500; text-align:right; }
  .product-copy .actions{ margin-top:30px; display:flex; gap:20px; flex-wrap:wrap; align-items:center; }
  .rel-heading{
    font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-faint);
    font-weight:600; display:block; margin-bottom:20px;
  }
  .rel-list{ display:flex; flex-direction:column; gap:18px; }
  .rel-item{ display:flex; align-items:center; gap:14px; text-decoration:none; color:var(--ink); }
  .rel-cover{ width:38px; aspect-ratio:2/3; object-fit:cover; border-radius:1px; flex-shrink:0; }
  .rel-text{ flex:1; min-width:0; }
  .rel-title{ display:block; font-family:var(--font-display); font-size:.92rem; }
  .rel-sub{ display:block; font-size:.72rem; color:var(--ink-faint); margin-top:2px; }
  @media (max-width:900px){ .product-grid{ grid-template-columns:1fr; } .product-visual{ max-width:260px; margin-inline:auto; } }

  .detail{ padding:clamp(50px,8vw,96px) 0 0; }
  .detail-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(28px,4vw,48px); }
  .detail-item .eyebrow{ display:block; margin-bottom:12px; }
  .detail-item p{ font-size:.96rem; line-height:1.68; color:var(--ink-dim); }
  @media (max-width:860px){ .detail-grid{ grid-template-columns:1fr; } }

  .inside-book{ margin-top:clamp(50px,8vw,90px); text-align:center; }
  .inside-book h3{ margin-top:12px; font-size:clamp(1.4rem,2.8vw,1.9rem); font-weight:400; }
  .concept-chips{ margin-top:26px; display:flex; gap:10px; flex-wrap:wrap; justify-content:center; }
  .topic-chip{
    font-size:.72rem; letter-spacing:.04em; color:var(--ink-dim);
    border:1px solid var(--line-strong); padding:7px 14px; border-radius:20px; background:none;
  }
  .concept-chips .topic-chip:hover{ border-color:var(--accent-deep); color:var(--accent-deep); }

  .passages-grid{ margin-top:clamp(40px,6vw,70px); display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,4vw,60px); }
  .passage{ text-align:center; }
  .passage blockquote{ font-size:clamp(1.1rem,2.4vw,1.4rem); font-weight:400; font-style:italic; line-height:1.5; color:var(--ink); }
  .passage-meta{ margin-top:16px; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-faint); }
  .passage-actions{ margin-top:20px; display:flex; gap:18px; justify-content:center; flex-wrap:wrap; }
  @media (max-width:760px){ .passages-grid{ grid-template-columns:1fr; gap:40px; } }

  .buy-picker{ margin-top:24px; }
  .buy-picker-label{
    font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-faint);
    font-weight:600; display:block; margin-bottom:10px;
  }
  .buy-picker-options{ display:flex; flex-wrap:wrap; gap:10px; }
  .buy-chip[hidden]{ display:none; }
  .buy-chip{
    display:flex; flex-direction:column; align-items:flex-start; gap:2px;
    padding:9px 16px; border-radius:6px; border:1px solid var(--line-strong); background:var(--ground);
    cursor:pointer; transition:border-color .15s ease, background .15s ease; font-family:inherit;
  }
  .buy-chip:hover:not(:disabled){ border-color:var(--accent-deep); background:var(--ground-2); }
  .buy-chip:disabled{ opacity:.5; cursor:not-allowed; }
  .buy-chip-name{ font-size:.74rem; color:var(--ink-dim); }
  .buy-chip-price{ font-family:var(--font-body); font-size:.92rem; font-weight:600; color:var(--accent-deep); }
  .buy-chip-featured{ background:var(--accent-deep); border-color:var(--accent-deep); }
  .buy-chip-featured:hover:not(:disabled){ background:var(--accent); border-color:var(--accent); }
  .buy-chip-featured .buy-chip-name{ color:rgba(255,255,255,.8); }
  .buy-chip-featured .buy-chip-price{ color:#fff; }

  /* ================= AUDIOBOOK SECTION ================= */
  .audio-section{ margin-top:clamp(50px,8vw,90px); }
  .audio-section-head{ display:flex; align-items:baseline; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:18px; }
  .audio-section-head h2{ font-family:var(--font-display); font-size:1.4rem; font-weight:400; }
  .audio-section-note{ font-size:.8rem; color:var(--ink-faint); }
  .audio-chapter-list{ list-style:none; margin:0; padding:0; border-top:1px solid var(--line); }
  .audio-chapter{ display:flex; align-items:center; gap:16px; padding:15px 0; border-bottom:1px solid var(--line); }
  .audio-chapter-play{
    flex-shrink:0; width:38px; height:38px; border-radius:50%; border:1px solid var(--line-strong);
    background:var(--ground); display:flex; align-items:center; justify-content:center; cursor:pointer;
    transition:border-color .15s ease, background .15s ease;
  }
  .audio-chapter-play:hover{ border-color:var(--accent-deep); }
  .audio-chapter-play svg{ width:14px; height:14px; fill:var(--ink); }
  .audio-chapter.is-playing .audio-chapter-play{ background:var(--accent-deep); border-color:var(--accent-deep); }
  .audio-chapter.is-playing .audio-chapter-play svg{ fill:#fff; }
  .audio-chapter.is-locked .audio-chapter-play{ cursor:pointer; }
  .audio-chapter.is-locked .audio-chapter-play svg{ fill:var(--ink-faint); }
  .audio-chapter-info{ flex:1; min-width:0; }
  .audio-chapter-title{ font-family:var(--font-display); font-size:1rem; }
  .audio-chapter-meta{ margin-top:2px; font-size:.74rem; color:var(--ink-faint); }
  .audio-chapter-lock{ flex-shrink:0; font-size:.7rem; letter-spacing:.04em; text-transform:uppercase; color:var(--accent-deep); font-weight:600; }

  .audio-mini-player{
    position:fixed; left:0; right:0; bottom:0; z-index:190; background:var(--ink); color:#fff;
    transform:translateY(100%); transition:transform .35s cubic-bezier(.22,.7,.25,1);
    padding:10px clamp(16px,4vw,32px); display:flex; align-items:center; gap:14px; cursor:pointer;
  }
  .audio-mini-player.open{ transform:translateY(0); }
  .audio-mini-cover{ flex-shrink:0; width:44px; height:44px; border-radius:6px; object-fit:cover; }
  .audio-mini-info{ min-width:0; width:clamp(90px,16vw,180px); flex-shrink:1; }
  .audio-mini-title{ font-family:var(--font-display); font-size:.94rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .audio-mini-book{ font-size:.7rem; color:rgba(255,255,255,.55); text-transform:uppercase; letter-spacing:.04em; margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .audio-mini-body{ display:flex; align-items:center; gap:14px; flex:1; min-width:0; cursor:default; }
  .audio-mini-player.is-preview-complete .audio-mini-body{ display:none; }
  .audio-mini-player.is-preview-complete .audio-mini-book{ color:var(--accent); text-transform:none; letter-spacing:0; font-size:.76rem; }
  .audio-mini-side-btn:disabled, .audio-mini-scrub:disabled{ opacity:.3; cursor:not-allowed; }
  .audio-mini-save{
    flex-shrink:0; background:none; border:none; color:rgba(255,255,255,.5); width:30px; height:30px;
    display:flex; align-items:center; justify-content:center; cursor:pointer; padding:0;
  }
  .audio-mini-save svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.6; }
  .audio-mini-save:hover{ color:#fff; }
  .audio-mini-save.is-saved{ color:var(--accent); }
  .audio-mini-save.is-saved svg{ fill:var(--accent); stroke:var(--accent); }
  .audio-mini-controls{ display:flex; align-items:center; gap:4px; flex-shrink:0; margin-inline:auto; }
  .audio-mini-side-btn{
    position:relative; flex-shrink:0; background:none; border:none; color:rgba(255,255,255,.6); width:32px; height:32px;
    border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer; padding:0;
  }
  .audio-mini-side-btn:hover{ color:#fff; }
  .audio-mini-side-btn svg{ width:17px; height:17px; fill:currentColor; }
  .audio-mini-side-btn.is-active{ color:var(--accent); }
  .audio-mini-side-btn.is-repeat-one::after{
    content:'1'; position:absolute; bottom:1px; right:1px; font-size:.5rem; font-weight:700; line-height:1;
    background:var(--accent); color:var(--ink); border-radius:50%; width:11px; height:11px;
    display:flex; align-items:center; justify-content:center;
  }
  .audio-mini-toggle{
    flex-shrink:0; width:38px; height:38px; border-radius:50%; border:none; background:rgba(255,255,255,.14);
    display:flex; align-items:center; justify-content:center; cursor:pointer;
  }
  .audio-mini-toggle:hover{ background:rgba(255,255,255,.22); }
  .audio-mini-toggle svg{ width:15px; height:15px; fill:#fff; }
  .audio-mini-time{ flex-shrink:0; font-size:.68rem; color:rgba(255,255,255,.5); width:30px; text-align:center; font-variant-numeric:tabular-nums; }
  .audio-mini-scrub{ flex-shrink:1; width:clamp(70px,16vw,200px); accent-color:var(--accent); }
  .audio-mini-volume{ flex-shrink:0; width:74px; accent-color:var(--accent); }
  .audio-mini-close{ flex-shrink:0; background:none; border:none; color:rgba(255,255,255,.55); font-size:1.2rem; cursor:pointer; padding:4px; }
  @media (max-width:900px){ .audio-mini-volume{ display:none; } }
  @media (max-width:700px){ .audio-mini-time{ display:none; } }
  @media (max-width:600px){ .audio-mini-scrub{ display:none; } }
  @media (max-width:460px){ .audio-mini-save{ display:none; } .audio-mini-info{ width:auto; max-width:96px; } }

  /* ================= NOW PLAYING (expanded, Spotify-style) ================= */
  .audio-now-playing{
    position:fixed; inset:0; z-index:220; background:var(--ink); color:#fff;
    display:flex; flex-direction:column; padding:0 clamp(20px,6vw,60px);
    transform:translateY(100%); opacity:0; transition:transform .38s cubic-bezier(.22,.7,.25,1), opacity .3s ease;
    pointer-events:none; overflow-y:auto;
  }
  .audio-now-playing.open{ transform:translateY(0); opacity:1; pointer-events:auto; }
  .anp-topbar{ display:flex; align-items:center; justify-content:space-between; padding:18px 0 6px; flex-shrink:0; }
  .anp-icon-btn{
    background:none; border:none; color:#fff; width:36px; height:36px; border-radius:50%;
    display:flex; align-items:center; justify-content:center; cursor:pointer; opacity:.85;
  }
  .anp-icon-btn:hover{ opacity:1; background:rgba(255,255,255,.08); }
  .anp-icon-btn svg{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
  .anp-context{ display:flex; flex-direction:column; align-items:center; text-align:center; }
  .anp-context-label{ font-size:.62rem; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.55); }
  .anp-context-value{ font-size:.8rem; font-weight:600; margin-top:2px; max-width:50vw; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

  .anp-art-wrap{ flex:1; display:flex; align-items:center; justify-content:center; min-height:0; padding:10px 0 20px; }
  .anp-art{ width:min(78vw,340px); aspect-ratio:1/1; object-fit:cover; border-radius:8px; box-shadow:0 30px 60px rgba(0,0,0,.5); background:rgba(255,255,255,.06); }

  .anp-info-row{ display:flex; align-items:flex-start; justify-content:space-between; gap:16px; flex-shrink:0; }
  .anp-title{ font-family:var(--font-display); font-size:1.5rem; font-weight:400; line-height:1.15; }
  .anp-book{ margin-top:6px; font-size:.82rem; color:rgba(255,255,255,.6); }
  .anp-save{ flex-shrink:0; margin-top:4px; background:none; border:none; color:rgba(255,255,255,.55); width:30px; height:30px; display:flex; align-items:center; justify-content:center; cursor:pointer; }
  .anp-save svg{ width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.6; }
  .anp-save:hover{ color:#fff; }
  .anp-save.is-saved{ color:var(--accent); }
  .anp-save.is-saved svg{ fill:var(--accent); stroke:var(--accent); }

  .anp-progress{ margin-top:22px; flex-shrink:0; }
  .anp-scrub{ width:100%; accent-color:#fff; }
  .anp-scrub:disabled{ opacity:.4; }
  .anp-times{ display:flex; justify-content:space-between; font-size:.68rem; color:rgba(255,255,255,.55); margin-top:4px; font-variant-numeric:tabular-nums; }

  .anp-controls{ display:flex; align-items:center; justify-content:space-between; margin-top:18px; flex-shrink:0; }
  .anp-side-btn{
    background:none; border:none; color:rgba(255,255,255,.75); width:34px; height:34px; border-radius:50%;
    display:flex; align-items:center; justify-content:center; cursor:pointer; position:relative;
  }
  .anp-side-btn:hover{ color:#fff; }
  .anp-side-btn svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
  .anp-side-btn-lg svg{ width:26px; height:26px; fill:currentColor; stroke:none; }
  .anp-side-btn.is-active{ color:var(--accent); }
  .anp-side-btn.is-repeat-one::after{
    content:'1'; position:absolute; bottom:2px; right:2px; font-size:.5rem; font-weight:700; line-height:1;
    background:var(--accent); color:var(--ink); border-radius:50%; width:11px; height:11px;
    display:flex; align-items:center; justify-content:center;
  }
  .anp-side-btn:disabled{ opacity:.25; cursor:not-allowed; }
  .anp-toggle{
    width:64px; height:64px; border-radius:50%; border:none; background:#fff;
    display:flex; align-items:center; justify-content:center; cursor:pointer; flex-shrink:0; transition:transform .15s ease;
  }
  .anp-toggle:hover{ transform:scale(1.04); }
  .anp-toggle svg{ width:24px; height:24px; fill:var(--ink); }

  .anp-secondary-row{ display:flex; align-items:center; justify-content:center; gap:32px; margin-top:20px; padding-bottom:14px; flex-shrink:0; }

  .anp-about{ border-top:1px solid rgba(255,255,255,.12); padding:20px 0 30px; flex-shrink:0; }
  .anp-about-label{ font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.5); font-weight:600; }
  .anp-about p{ margin-top:10px; font-size:.9rem; line-height:1.6; color:rgba(255,255,255,.85); font-style:italic; }
  .anp-about-link{ display:inline-block; margin-top:12px; font-size:.8rem; color:var(--accent); text-decoration:none; font-weight:600; }
  .anp-about-link:hover{ text-decoration:underline; }

  .anp-complete{ border-top:1px solid rgba(255,255,255,.12); padding:26px 0 30px; text-align:center; flex-shrink:0; }
  .anp-complete h2{ font-family:var(--font-display); font-size:1.5rem; font-weight:400; margin:10px 0 12px; }
  .anp-complete p{ font-size:.88rem; line-height:1.6; color:rgba(255,255,255,.75); max-width:44ch; margin-inline:auto; }
  .anp-complete-actions{ display:flex; align-items:center; justify-content:center; gap:16px; margin-top:22px; flex-wrap:wrap; }
  .anp-complete-actions .btn-solid{ background:#fff; color:var(--ink); border-color:#fff; }
  .anp-complete-actions .btn-solid:hover{ background:var(--accent); border-color:var(--accent); color:#fff; }
  .anp-complete-actions .btn:not(.btn-solid){ color:#fff; border-color:rgba(255,255,255,.4); }
  .anp-complete-actions .btn:not(.btn-solid):hover{ color:var(--accent); border-color:var(--accent); }

  .anp-queue-panel{
    position:fixed; left:0; right:0; bottom:0; max-height:60vh; background:var(--ground-2); color:var(--ink);
    border-radius:16px 16px 0 0; transform:translateY(100%); transition:transform .3s ease; z-index:230;
    padding:16px clamp(20px,6vw,60px) 24px; overflow-y:auto; box-shadow:0 -12px 30px rgba(0,0,0,.25);
  }
  .anp-queue-panel.open{ transform:translateY(0); }
  .anp-queue-head{ font-family:var(--font-display); font-size:1.1rem; margin-bottom:10px; }
  .anp-queue-list{ list-style:none; margin:0; padding:0; }
  .anp-queue-item{
    display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 0;
    border-bottom:1px solid var(--line); cursor:pointer; font-size:.88rem;
  }
  .anp-queue-item.is-playing .anp-queue-title{ color:var(--accent-deep); font-weight:600; }
  .anp-queue-item.is-locked{ color:var(--ink-faint); }
  .anp-queue-lock{ font-size:.66rem; letter-spacing:.06em; text-transform:uppercase; color:var(--accent-deep); font-weight:600; }
  .anp-queue-dur{ font-size:.76rem; color:var(--ink-faint); }

  @media (min-width:760px){
    .audio-now-playing{ padding-left:clamp(40px,10vw,140px); padding-right:clamp(40px,10vw,140px); }
    .anp-art{ width:min(50vw,380px); }
  }

  /* ================= LISTEN HOME (Spotify-style banner + shelves) ================= */
  .listen-banner{
    position:relative; padding:clamp(70px,12vw,120px) 0 clamp(50px,8vw,80px);
    background:linear-gradient(180deg, rgba(28,20,22,.74), rgba(28,20,22,.58) 55%, var(--ground) 100%), var(--banner-art, none) center/cover no-repeat, var(--ink);
    color:#fff;
  }
  .listen-banner-inner{ max-width:640px; }
  .listen-banner .eyebrow{ color:rgba(255,255,255,.8); }
  .listen-banner h1{ font-family:var(--font-display); font-size:clamp(2.1rem,5vw,3.4rem); font-weight:400; margin:14px 0 16px; line-height:1.06; }
  .listen-banner p{ font-size:1rem; line-height:1.6; color:rgba(255,255,255,.85); max-width:54ch; }
  .listen-banner-actions{ display:flex; align-items:center; gap:20px; margin-top:26px; flex-wrap:wrap; }
  .listen-banner-play svg{ margin-right:2px; }
  .listen-banner-meta{ font-size:.82rem; color:rgba(255,255,255,.7); }

  .audio-shelf{ margin-top:clamp(40px,6vw,64px); }
  .audio-shelf[hidden]{ display:none; }
  .audio-shelf-head{ display:flex; align-items:baseline; gap:14px; margin-bottom:16px; }
  .audio-shelf-head h2{ font-family:var(--font-display); font-size:1.3rem; font-weight:400; }
  .audio-shelf-sub{ font-size:.78rem; color:var(--ink-faint); }
  .audio-shelf-row{
    display:flex; gap:clamp(16px,2.4vw,24px); overflow-x:auto; padding-bottom:8px; scroll-snap-type:x proximity;
  }

  .audio-card{ flex:0 0 auto; width:clamp(130px,15vw,168px); scroll-snap-align:start; }
  .audio-card-art{ position:relative; border-radius:8px; overflow:hidden; aspect-ratio:1/1; background:var(--ground-3); }
  .audio-card-art img{ width:100%; height:100%; object-fit:cover; display:block; }
  .audio-card-play{
    position:absolute; right:8px; bottom:8px; width:38px; height:38px; border-radius:50%;
    background:var(--accent-deep); border:none; display:flex; align-items:center; justify-content:center;
    cursor:pointer; opacity:0; transform:translateY(6px); transition:opacity .18s ease, transform .18s ease;
    box-shadow:0 6px 16px rgba(0,0,0,.25);
  }
  .audio-card:hover .audio-card-play, .audio-card:focus-within .audio-card-play, .audio-card.is-playing .audio-card-play{
    opacity:1; transform:translateY(0);
  }
  .audio-card-play svg{ width:15px; height:15px; fill:#fff; }
  .audio-card-lock{
    position:absolute; left:8px; top:8px; background:rgba(28,20,22,.75); color:#fff; font-size:.62rem;
    letter-spacing:.06em; text-transform:uppercase; font-weight:600; padding:3px 8px; border-radius:20px;
  }
  .audio-card-title{
    display:block; margin-top:10px; font-family:var(--font-display); font-size:.92rem; color:var(--ink);
    text-decoration:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  }
  .audio-card-title:hover{ color:var(--accent-deep); }
  .audio-card-sub{ display:block; margin-top:2px; font-size:.72rem; color:var(--ink-faint); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  @media (hover:none){ .audio-card-play{ opacity:1; transform:none; background:rgba(28,20,22,.72); } }

  .audio-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(150px,1fr)); gap:clamp(24px,3vw,32px) clamp(18px,2vw,24px); }
  @media (max-width:520px){ .audio-grid{ grid-template-columns:repeat(2,1fr); } }

  /* ================= CHAT WIDGET ================= */
  .chat-widget{ position:fixed; right:clamp(16px,4vw,28px); bottom:clamp(16px,4vw,28px); z-index:240; }
  .chat-widget-toggle{
    width:56px; height:56px; border-radius:50%; background:var(--ink); border:none; color:#fff;
    display:flex; align-items:center; justify-content:center; cursor:pointer; box-shadow:0 10px 30px rgba(0,0,0,.22);
    transition:background .2s ease, transform .2s ease;
  }
  .chat-widget-toggle:hover{ background:var(--accent-deep); transform:translateY(-2px); }
  .chat-widget-toggle svg{ width:24px; height:24px; }
  .chat-widget-toggle .chat-icon-open{ fill:#fff; }
  .chat-widget-toggle .chat-icon-close{ display:none; }
  .chat-widget.open .chat-widget-toggle .chat-icon-open{ display:none; }
  .chat-widget.open .chat-widget-toggle .chat-icon-close{ display:block; }

  .chat-widget-panel{
    position:absolute; right:0; bottom:calc(100% + 16px); width:min(340px, calc(100vw - 40px));
    background:var(--ground); border-radius:16px; box-shadow:0 24px 60px rgba(0,0,0,.2); border:1px solid var(--line);
    padding:22px; opacity:0; visibility:hidden; pointer-events:none; transform:translateY(12px) scale(.98);
    transition:opacity .2s ease, transform .2s ease, visibility .2s ease; transform-origin:bottom right;
  }
  .chat-widget.open .chat-widget-panel{ opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0) scale(1); }

  .chat-widget-title{ display:block; font-family:var(--font-display); font-size:1.15rem; color:var(--ink); }
  .chat-widget-sub{ margin-top:6px; font-size:.8rem; color:var(--ink-dim); line-height:1.5; }

  .chat-widget-whatsapp{
    display:flex; align-items:center; justify-content:center; gap:10px; margin-top:18px;
    background:#25D366; color:#fff; text-decoration:none; padding:12px 16px; border-radius:8px;
    font-weight:600; font-size:.86rem; transition:background .2s ease;
  }
  .chat-widget-whatsapp:hover{ background:#1ebc59; }
  .chat-widget-whatsapp svg{ width:19px; height:19px; fill:#fff; flex-shrink:0; }

  .chat-widget-divider{ display:flex; align-items:center; gap:10px; margin:18px 0 14px; font-size:.68rem; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.06em; }
  .chat-widget-divider::before, .chat-widget-divider::after{ content:''; flex:1; height:1px; background:var(--line); }

  .chat-widget-form{ display:flex; flex-direction:column; gap:10px; }
  .chat-widget-form input, .chat-widget-form textarea{
    font-family:var(--font-body); font-size:.86rem; padding:10px 12px; border:1px solid var(--line-strong);
    border-radius:6px; background:var(--ground); color:var(--ink); width:100%;
  }
  .chat-widget-form textarea{ min-height:70px; resize:vertical; }
  .chat-widget-form .btn-solid{ width:100%; text-align:center; justify-content:center; margin-top:2px; }
  .chat-widget-status{ font-size:.76rem; color:var(--ink-dim); margin:0; min-height:1.1em; }
  .chat-widget-status.ok{ color:#2a8a4a; }
  .chat-widget-status.bad{ color:var(--accent-deep); }

  @media (max-width:480px){ .chat-widget-panel{ right:-10px; width:min(320px, calc(100vw - 24px)); } }
  .audio-mini-player.open ~ .chat-widget{ bottom:calc(clamp(16px,4vw,28px) + 76px); }

  /* ================= READ SECTION / READING MODE ================= */
  .read-cta{ padding-block:clamp(56px,9vw,110px); text-align:center; background:var(--ground-2); }
  .read-cta .eyebrow{ display:block; }
  .read-cta h2{ margin-top:14px; font-size:clamp(1.9rem,3.8vw,2.7rem); font-weight:400; }
  .read-cta p{ margin-top:14px; color:var(--ink-dim); max-width:52ch; margin-inline:auto; }
  .read-cta .meta{ margin-top:22px; font-size:.76rem; letter-spacing:.06em; text-transform:uppercase; color:var(--accent-deep); }
  .read-cta .btn-solid{ margin-top:30px; }

  .reader{
    position:fixed; inset:0; z-index:200; background:#FCFAF9; color:var(--ink);
    transform:translateY(100%); transition:transform .5s cubic-bezier(.22,.7,.25,1);
    overflow:hidden; pointer-events:none; display:flex; flex-direction:column;
  }
  .reader.open{ transform:translateY(0); pointer-events:auto; }
  .reader[data-theme="ink"]{ background:#1C1416; color:#F5EFEC; }
  .reader[data-theme="sepia"]{ background:#F0E4CA; color:#3A2C14; }
  .reader-bar{
    position:sticky; top:0; z-index:2; display:flex; align-items:center;
    justify-content:space-between; padding:18px clamp(18px,4vw,40px);
    background:inherit; border-bottom:1px solid var(--line); font-family:var(--font-body);
    max-height:120px;
  }
  .reader-bar .r-left,.reader-bar .r-right{ display:flex; align-items:center; gap:16px; }
  .reader-bar button{
    background:none; border:none; color:inherit; font-size:.72rem;
    letter-spacing:.06em; text-transform:uppercase; font-weight:600; opacity:.7; padding:6px;
  }
  @media (max-width:640px){
    .reader-bar{ flex-wrap:wrap; gap:8px 0; padding:14px clamp(16px,4vw,40px); }
    .reader-bar .r-left,.reader-bar .r-right{ width:100%; flex-wrap:wrap; gap:6px 10px; }
    .reader-bar .r-right{ justify-content:flex-start; }
    .reader-bar button{ font-size:.62rem; padding:4px 2px; }
  }
  .reader-bar button:hover{ opacity:1; }
  #readerTocBtn{ display:flex; align-items:center; justify-content:center; padding:6px; }
  #readerTocBtn .icon{ width:18px; height:18px; stroke:currentColor; stroke-width:1.8; }
  #readerTocBtn[hidden]{ display:none; }
  .reader-bar button:disabled{ opacity:.3; cursor:not-allowed; }
  #bookmarkBtn[aria-pressed="true"]{ color:var(--accent-deep); opacity:1; }
  .reader-progress{ height:2px; background:var(--line); z-index:2; flex-shrink:0; }
  .reader-progress-bar{ height:100%; width:0%; background:var(--accent-deep); transition:width .25s ease; }

  /* ---- Continuous-scroll reader (YouVersion-style) ---- */
  .reader-page-stage{ position:relative; flex:1; min-height:0; overflow-y:auto; -webkit-overflow-scrolling:touch; }
  .reader-body{
    max-width:660px; margin:0 auto; padding:clamp(20px,5vw,44px) 22px clamp(80px,12vw,140px);
    font-family:var(--font-body); line-height:1.8; cursor:auto;
  }
  .reader-body h3{ font-family:var(--font-display); font-size:1.5em; font-weight:400; margin:1.4em 0 .7em; }
  .reader-body h3:first-child{ margin-top:0; }
  .reader-body p{ margin-bottom:1.3em; }
  .reader-body > p:first-of-type::first-letter{
    font-family:var(--font-display); font-size:2.6em; float:left; line-height:.82;
    padding-right:.08em; padding-top:.02em; color:var(--accent-deep);
  }
  .reader-chapter-heading{
    font-family:var(--font-display); font-size:1.9em; font-weight:400; margin:0 0 1em; color:var(--ink);
  }
  .reader-prev-chapter{
    display:inline-flex; align-items:center; gap:6px; margin-bottom:1.6em; padding:0;
    background:none; border:none; color:var(--ink-faint); font-family:var(--font-body);
    font-size:.82rem; font-weight:500; letter-spacing:.01em; cursor:pointer;
  }
  .reader-prev-chapter:hover{ color:var(--accent-deep); }

  .reader-paywall, .reader-next-chapter, .reader-end-of-book{
    margin-top:clamp(30px,5vw,50px); padding:clamp(30px,5vw,44px); text-align:center;
    border-radius:10px; background:var(--ground-2);
  }
  .reader-paywall-label{ display:block; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--accent-deep); font-weight:600; }
  .reader-paywall p, .reader-end-of-book p{ margin-top:12px; color:var(--ink-dim); font-size:.94rem; line-height:1.6; }
  .reader-paywall .btn, .reader-next-chapter .btn, .reader-end-of-book .btn{ margin-top:18px; }
  .reader[data-theme="ink"] .reader-paywall, .reader[data-theme="sepia"] .reader-paywall,
  .reader[data-theme="ink"] .reader-next-chapter, .reader[data-theme="sepia"] .reader-next-chapter,
  .reader[data-theme="ink"] .reader-end-of-book, .reader[data-theme="sepia"] .reader-end-of-book{
    background:rgba(128,128,128,.12);
  }
  .reader-next-chapter-label{ display:block; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); font-weight:600; }
  .reader-next-chapter h4{
    font-family:var(--font-display); font-weight:400; font-size:1.3em; margin:10px 0 0; color:var(--ink);
  }

  .reader-page-nav{ display:none; }

  /* Tap-to-hide / scroll-to-hide chrome — collapse the bars so the page fills the screen. */
  .reader-bar, .reader-progress{
    transition:max-height .3s ease, opacity .2s ease, padding .3s ease;
    overflow:hidden;
  }
  .reader.chrome-hidden .reader-bar{ max-height:0; padding-top:0; padding-bottom:0; opacity:0; border-bottom-color:transparent; }
  .reader.chrome-hidden .reader-progress{ max-height:0; opacity:0; }

  .thought-actions{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }

  /* ================= TABLE OF CONTENTS ================= */
  .toc-panel{
    position:fixed; inset:0; z-index:420; background:rgba(28,20,22,.5);
    display:flex; align-items:flex-end; justify-content:center;
    opacity:0; pointer-events:none; transition:opacity .25s ease;
  }
  .toc-panel.open{ opacity:1; pointer-events:auto; }
  .toc-sheet{
    width:100%; max-width:480px; max-height:75vh; background:var(--ground);
    border-radius:16px 16px 0 0; display:flex; flex-direction:column;
    transform:translateY(16px); transition:transform .3s cubic-bezier(.2,.8,.3,1);
    box-shadow:0 -20px 50px rgba(28,20,22,.25);
  }
  .toc-panel.open .toc-sheet{ transform:translateY(0); }
  .toc-header{
    display:flex; align-items:center; justify-content:space-between; padding:18px 22px;
    border-bottom:1px solid var(--line); font-family:var(--font-display); font-size:1.05rem;
    flex-shrink:0;
  }
  .toc-close{ background:none; border:none; font-size:1.4rem; line-height:1; color:var(--ink-dim); cursor:pointer; padding:0; }
  .toc-list{ list-style:none; margin:0; padding:8px 0; overflow-y:auto; }
  .toc-item{
    display:block; width:100%; text-align:left; background:none; border:none;
    padding:14px 22px; font-family:var(--font-body); font-size:.92rem; color:var(--ink);
    cursor:pointer; border-bottom:1px solid var(--line);
  }
  .toc-item:hover{ background:var(--ground-2); }
  .toc-item.is-active{ color:var(--accent-deep); font-weight:600; }

  /* ================= SEARCH PANEL ================= */
  .search-panel{
    position:fixed; inset:0; z-index:220; background:var(--ground); color:var(--ink);
    transform:translateY(100%); transition:transform .5s cubic-bezier(.22,.7,.25,1); overflow-y:auto;
    pointer-events:none;
  }
  .search-panel.open{ transform:translateY(0); pointer-events:auto; }
  .search-bar{
    position:sticky; top:0; z-index:2; display:flex; align-items:center; gap:16px;
    padding:18px clamp(18px,4vw,40px); background:var(--ground); border-bottom:1px solid var(--line);
  }
  .search-bar button{ background:none; border:none; color:var(--ink); font-size:.78rem; letter-spacing:.04em; font-weight:600; padding:6px; flex-shrink:0; cursor:pointer; }
  .search-input-wrap{ flex:1; display:flex; align-items:center; gap:10px; background:var(--ground-2); border-radius:24px; padding:10px 18px; }
  .search-input-wrap .icon{ width:18px; height:18px; flex-shrink:0; stroke:var(--ink-dim); fill:none; stroke-width:2; }
  .search-input-wrap input{
    flex:1; border:none; background:none; outline:none; font-family:var(--font-body); font-size:.98rem;
    color:var(--ink);
  }
  .search-content{ max-width:680px; margin:0 auto; padding:clamp(30px,6vw,56px) 22px 120px; }
  .search-results{ display:flex; flex-direction:column; gap:4px; }
  .search-result{
    display:flex; align-items:center; gap:16px; padding:16px 4px; border-bottom:1px solid var(--line);
    text-decoration:none; color:inherit; cursor:pointer;
  }
  .search-result img{ width:46px; height:64px; object-fit:cover; border-radius:2px; flex-shrink:0; }
  .search-result-info{ display:flex; flex-direction:column; gap:4px; min-width:0; }
  .search-result-title{ font-family:var(--font-display); font-size:1.05rem; }
  .search-result-eyebrow{ font-size:.74rem; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.04em; }
  .search-result-snippet{ font-size:.86rem; color:var(--ink-dim); line-height:1.5; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .search-result mark{ background:none; color:var(--accent-deep); font-weight:600; }

  /* ================= LIBRARY PANEL ================= */
  .library-panel{
    position:fixed; inset:0; z-index:210; background:var(--ground); color:var(--ink);
    transform:translateY(100%); transition:transform .5s cubic-bezier(.22,.7,.25,1); overflow-y:auto;
    pointer-events:none;
  }
  .library-panel.open{ transform:translateY(0); pointer-events:auto; }
  .library-bar{
    position:sticky; top:0; z-index:2; display:flex; align-items:center; gap:20px;
    padding:18px clamp(18px,4vw,40px); background:var(--ground); border-bottom:1px solid var(--line);
  }
  .library-bar button{ background:none; border:none; color:var(--ink); font-size:.78rem; letter-spacing:.04em; font-weight:600; padding:6px; }
  .lp-title{ font-family:var(--font-display); font-size:1.05rem; }
  .library-content{ max-width:680px; margin:0 auto; padding:clamp(40px,7vw,80px) 22px 120px; }
  .lp-section{ margin-bottom:clamp(48px,8vw,80px); }
  .lp-section h3{ font-family:var(--font-display); font-size:1.3rem; font-weight:400; margin-bottom:18px; }
  .lp-empty{ color:var(--ink-dim); font-size:.94rem; line-height:1.6; }
  .lp-continue{ display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; padding:22px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
  .lp-continue-book{ display:block; font-family:var(--font-display); font-size:1.1rem; }
  .lp-continue-meta{ display:block; margin-top:6px; font-size:.74rem; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.04em; }
  .lp-free-books{ display:flex; gap:16px; flex-wrap:wrap; }
  .lp-free-book{
    display:flex; align-items:center; gap:14px; padding:14px; border-radius:8px; border:1px solid var(--line);
    background:var(--ground); cursor:pointer; text-align:left; flex:1; min-width:220px; font-family:inherit;
    transition:border-color .15s ease, background .15s ease;
  }
  .lp-free-book:hover{ border-color:var(--accent-deep); background:var(--ground-2); }
  .lp-free-book img{ width:44px; height:60px; object-fit:cover; border-radius:2px; flex-shrink:0; }
  .lp-free-book-info{ display:flex; flex-direction:column; gap:4px; }
  .lp-free-book-title{ font-family:var(--font-display); font-size:.98rem; }
  .lp-free-book-tag{ font-size:.7rem; letter-spacing:.04em; text-transform:uppercase; color:var(--accent-deep); }
  @media (max-width:600px){ .lp-free-books{ flex-direction:column; } }
  .lp-quotes{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
  .lp-quotes li{ padding:20px 0; border-top:1px solid var(--line); display:flex; justify-content:space-between; align-items:flex-start; gap:18px; }
  .lp-quotes blockquote{ margin:0; font-family:var(--font-display); font-style:italic; font-size:1rem; color:var(--ink); line-height:1.55; }
  .lp-quotes cite{ display:block; margin-top:10px; font-style:normal; font-size:.7rem; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-faint); }
  .lp-remove{ background:none; border:none; color:var(--ink-faint); font-size:.68rem; flex-shrink:0; padding:4px; }
  .lp-remove:hover{ color:var(--accent-deep); }
  .lp-orders{ list-style:none; margin:0; padding:0; }
  .lp-order{ padding:16px 0; border-top:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; gap:14px; }
  .lp-order-book{ display:block; font-family:var(--font-display); font-size:.98rem; }
  .lp-order-meta{ display:block; margin-top:4px; font-size:.72rem; color:var(--ink-faint); letter-spacing:.02em; line-height:1.5; }
  .lp-order-action{ flex-shrink:0; }
  .lp-order-action a{ font-size:.78rem; font-weight:600; color:var(--accent-deep); text-decoration:none; border-bottom:1px solid var(--accent-deep); }
  @media (max-width:600px){ .lp-continue{ flex-direction:column; align-items:flex-start; } .lp-quotes li{ flex-direction:column; } .lp-order{ flex-direction:column; align-items:flex-start; } }

  .lp-tabs{ display:flex; gap:8px; margin-bottom:22px; }
  .lp-tab{
    padding:7px 16px; border-radius:20px; border:1px solid var(--line-strong); background:none;
    color:var(--ink-dim); font-size:.78rem; font-weight:600; cursor:pointer; font-family:var(--font-body);
  }
  .lp-tab.is-active{ background:var(--ink); border-color:var(--ink); color:#fff; }
  .lp-notes{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
  .lp-notes li{ padding:20px 0; border-top:1px solid var(--line); position:relative; }
  .lp-note-text{ margin:0; font-family:var(--font-display); font-style:italic; font-size:.96rem; color:var(--ink); line-height:1.5; }
  .lp-note-body{ margin:10px 0 0; font-size:.86rem; color:var(--ink-dim); line-height:1.6; background:var(--ground-2); padding:12px 14px; border-radius:6px; }
  .lp-note-meta{ display:block; margin-top:10px; font-style:normal; font-size:.68rem; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-faint); }
  .lp-notes .lp-remove{ position:absolute; top:20px; right:0; }
  .lp-photos{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
  .lp-photo{ position:relative; border-radius:6px; overflow:hidden; aspect-ratio:1080/1350; background:var(--ground-2); cursor:pointer; }
  .lp-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
  .lp-photo-remove{
    position:absolute; top:5px; right:5px; width:22px; height:22px; border-radius:50%;
    background:rgba(28,20,22,.65); color:#fff; border:none; font-size:1rem; line-height:1; cursor:pointer;
  }
  @media (max-width:600px){ .lp-photos{ grid-template-columns:repeat(2,1fr); } }

  /* ================= TOAST ================= */
  .toast{
    position:fixed; left:50%; bottom:34px; transform:translateX(-50%) translateY(20px);
    background:var(--ink); color:#fff; font-weight:600; font-size:.78rem;
    padding:12px 22px; border-radius:6px; opacity:0; pointer-events:none;
    transition:opacity .3s ease, transform .3s ease; z-index:300;
  }
  .toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }

  /* ================= FOOTER ================= */
  .site-footer{
    border-top:1px solid var(--line); padding:clamp(28px,5vw,40px) clamp(20px,5vw,56px);
    display:flex; flex-direction:column; gap:18px;
  }
  .footer-newsletter{
    display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
    padding-bottom:28px; border-bottom:1px solid var(--line);
  }
  .footer-newsletter-copy h3{ margin-top:6px; font-size:1.2rem; font-weight:400; max-width:32ch; }
  .footer-newsletter-form{ display:flex; gap:10px; flex-wrap:wrap; }
  .footer-newsletter-form input[type="email"]{
    padding:11px 14px; border-radius:6px; border:1px solid var(--line-strong);
    background:var(--ground); color:var(--ink); font-family:var(--font-body); font-size:.88rem;
    min-width:220px;
  }
  .footer-newsletter-form input[type="email"]:focus{
    outline:none; border-color:var(--accent-deep); box-shadow:0 0 0 3px rgba(133,59,60,.12);
  }
  .footer-newsletter-status{ font-size:.78rem; color:var(--ink-dim); min-height:1.1em; margin:-8px 0 0; }
  .footer-newsletter-status.ok{ color:#2f6d4a; }
  .footer-newsletter-status.bad{ color:#B5433A; }
  @media (max-width:600px){
    .footer-newsletter{ flex-direction:column; align-items:stretch; text-align:center; }
    .footer-newsletter-form{ justify-content:center; }
    .footer-newsletter-form input[type="email"]{ flex:1; min-width:0; }
  }
  .footer-top{ display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
  .footer-mark{ display:flex; align-items:center; gap:8px; text-decoration:none; font-family:var(--font-display); font-size:1rem; color:var(--ink); }
  .footer-mark img{ display:block; width:auto; }
  .footer-nav{ display:flex; gap:22px; flex-wrap:wrap; }
  .footer-nav a{ font-size:.8rem; font-weight:500; color:var(--ink-dim); text-decoration:none; transition:color .2s ease; }
  .footer-nav a:hover{ color:var(--accent-deep); }
  .footer-copy{ font-size:.74rem; color:var(--ink-faint); }
  @media (max-width:760px){
    .site-footer{ text-align:center; }
    .footer-top{ flex-direction:column; justify-content:center; }
    .footer-nav{ justify-content:center; gap:14px 18px; }
    .footer-nav a{ font-size:.76rem; }
  }

  /* ================= EMAIL CAPTURE MODAL ================= */
  .dj-modal-overlay{
    position:fixed; inset:0; z-index:300; background:rgba(28,20,22,.55);
    display:flex; align-items:center; justify-content:center; padding:20px;
    opacity:0; pointer-events:none; transition:opacity .25s ease;
  }
  .dj-modal-overlay.open{ opacity:1; pointer-events:auto; }
  .dj-modal{
    position:relative; width:100%; max-width:400px; background:var(--ground); border-radius:14px;
    padding:38px 30px 30px; transform:translateY(14px) scale(.98);
    transition:transform .3s cubic-bezier(.2,.8,.3,1); box-shadow:0 40px 80px rgba(28,20,22,.28);
    text-align:center;
  }
  .dj-modal-overlay.open .dj-modal{ transform:translateY(0) scale(1); }
  .dj-modal-x{
    position:absolute; top:14px; right:14px; width:30px; height:30px; border-radius:50%;
    background:var(--ground-2); border:none; color:var(--ink-dim); font-size:1.3rem; line-height:1;
    cursor:pointer; display:flex; align-items:center; justify-content:center; padding:0;
  }
  .dj-modal-x:hover{ background:var(--line-strong); color:var(--ink); }
  .dj-modal-icon{
    width:52px; height:52px; margin:0 auto 16px; border-radius:50%; background:var(--ground-2);
    display:flex; align-items:center; justify-content:center; color:var(--accent-deep);
  }
  .dj-modal-icon .icon{ width:24px; height:24px; stroke:currentColor; }
  .dj-modal h3{ font-size:1.25rem; font-weight:400; font-family:var(--font-display); }
  .dj-modal p{ margin-top:8px; font-size:.88rem; color:var(--ink-dim); line-height:1.55; }
  .dj-modal-price{
    margin-top:14px; display:inline-block; padding:8px 20px; border-radius:20px;
    background:var(--ground-2); color:var(--accent-deep); font-weight:700; font-size:1.05rem;
    font-family:var(--font-body);
  }
  .dj-modal-price[hidden]{ display:none; }
  .dj-modal-field{ margin-top:18px; text-align:left; }
  .dj-modal-field[hidden]{ display:none; }
  .dj-modal-field label{
    display:block; font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-faint);
    font-weight:600; margin-bottom:6px;
  }
  .dj-modal input[type="email"], .dj-modal input[type="password"], .dj-modal input[type="tel"],
  .dj-modal input[type="text"], .dj-modal textarea{
    width:100%; padding:13px 14px; border-radius:8px; border:1px solid var(--line-strong);
    background:var(--ground); color:var(--ink); font-family:var(--font-body); font-size:.92rem;
    transition:border-color .15s ease, box-shadow .15s ease; resize:vertical;
  }
  .dj-modal input[type="email"]:focus, .dj-modal input[type="password"]:focus, .dj-modal input[type="tel"]:focus,
  .dj-modal input[type="text"]:focus, .dj-modal textarea:focus{
    outline:none; border-color:var(--accent-deep); box-shadow:0 0 0 3px rgba(133,59,60,.12);
  }
  .dj-modal-field-row{ display:flex; gap:12px; }
  .dj-modal-field-row .dj-modal-field{ flex:1; min-width:0; }
  #djModalShippingFields[hidden]{ display:none; }
  .dj-modal-checkbox{
    margin-top:14px; display:flex; align-items:flex-start; gap:9px; text-align:left; cursor:pointer;
  }
  .dj-modal-checkbox input{ margin-top:3px; flex-shrink:0; }
  .dj-modal-checkbox span{ font-size:.8rem; color:var(--ink-dim); line-height:1.5; }
  .dj-modal-submit{ width:100%; margin-top:22px; justify-content:center; padding:14px; font-size:.88rem; }
  .dj-modal-error{ margin-top:12px; font-size:.78rem; color:#B5433A; min-height:1.1em; text-align:left; }
  .dj-modal-toggle{
    display:block; width:100%; margin-top:16px; background:none; border:none; text-align:center;
    font-size:.8rem; color:var(--ink-dim); text-decoration:underline; cursor:pointer; padding:4px;
  }
  .dj-modal-toggle:hover{ color:var(--accent-deep); }
  .dj-modal-toggle[hidden]{ display:none; }

  /* ================= TEXT-SELECTION TOOLBAR (bottom sheet) ================= */
  .sel-toolbar{
    position:fixed; left:0; right:0; bottom:0; z-index:400; background:var(--ink); color:#fff;
    border-radius:16px 16px 0 0; padding:10px 20px calc(16px + env(safe-area-inset-bottom,0px));
    box-shadow:0 -12px 30px rgba(28,20,22,.3); font-family:var(--font-body);
    display:flex; flex-direction:column; align-items:center; gap:14px;
  }
  .sel-toolbar[hidden]{ display:none; }
  .sel-handle{ width:36px; height:4px; border-radius:2px; background:rgba(255,255,255,.3); }
  .sel-colors{ display:flex; gap:16px; }
  .sel-color{
    width:30px; height:30px; border-radius:50%; border:1px solid rgba(255,255,255,.4);
    cursor:pointer; padding:0;
  }
  .sel-color:hover{ transform:scale(1.12); }
  .sel-actions{ display:flex; align-items:center; justify-content:center; gap:22px; width:100%; }
  .sel-act{
    background:none; border:none; color:#fff; opacity:.85; cursor:pointer;
    padding:6px; border-radius:6px; font-size:.76rem; font-weight:600; font-family:var(--font-body);
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px;
  }
  .sel-act .icon{ width:19px; height:19px; stroke:#fff; }
  .sel-act:hover{ opacity:1; }
  mark.sel-mark{ color:inherit; border-radius:2px; padding:0 1px; }
  @media (max-width:420px){
    .sel-colors{ gap:12px; }
    .sel-actions{ gap:14px; }
  }

  /* ================= QUOTE IMAGE MODAL ================= */
  .qi-modal{
    position:fixed; inset:0; z-index:410; background:rgba(28,20,22,.6);
    display:flex; align-items:center; justify-content:center; padding:20px;
    opacity:0; pointer-events:none; transition:opacity .25s ease; overflow-y:auto;
  }
  .qi-modal.open{ opacity:1; pointer-events:auto; }
  .qi-card{
    position:relative; width:100%; max-width:360px; background:var(--ground); border-radius:10px;
    padding:20px; text-align:center; box-shadow:0 30px 60px rgba(28,20,22,.25);
  }
  .qi-close{
    position:absolute; top:10px; right:14px; background:none; border:none; font-size:1.5rem;
    line-height:1; color:var(--ink-dim); cursor:pointer;
  }
  .qi-canvas{ width:100%; height:auto; border-radius:6px; border:1px solid var(--line); aspect-ratio:1080/1350; }
  .qi-status{ margin-top:12px; font-size:.78rem; color:var(--ink-dim); }
  .qi-actions{ margin-top:16px; display:flex; gap:10px; }
  .qi-actions .btn{ flex:1; justify-content:center; text-align:center; }
  .qi-actions button:disabled{ opacity:.5; cursor:not-allowed; }

  /* ================= BOOK STORE CARDS ================= */
  .library-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(30px,4vw,48px) clamp(20px,3vw,32px); }
  .lib-card{ text-decoration:none; color:var(--ink); max-width:220px; }
  .lib-card img{
    width:100%; aspect-ratio:2/3; object-fit:cover; border-radius:2px;
    transition:transform .25s ease; box-shadow:0 1px 3px rgba(28,20,22,.08);
  }
  .lib-card:hover img{ transform:translateY(-6px); }
  .lib-eyebrow{ display:block; margin-top:14px; font-size:.64rem; letter-spacing:.13em; text-transform:uppercase; color:var(--accent-deep); font-weight:600; }
  .lib-title{ display:block; margin-top:5px; font-family:var(--font-display); font-size:1rem; }
  .lib-desc{ display:block; margin-top:6px; font-size:.78rem; line-height:1.5; color:var(--ink-dim); overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
  .lib-explore{ display:inline-flex; align-items:center; gap:6px; margin-top:10px; font-size:.72rem; font-weight:600; color:var(--ink-dim); }
  .lib-card:hover .lib-explore{ color:var(--accent-deep); }
  @media (max-width:860px){ .library-grid{ grid-template-columns:repeat(3,1fr); } }
  @media (max-width:520px){ .library-grid{ grid-template-columns:repeat(2,1fr); gap:26px 16px; } .lib-card{ max-width:none; } }

  /* ================= HOW THIS WORKS ================= */
  .works-section{ padding-block:clamp(40px,7vw,70px); border-top:1px solid var(--line); }
  .works-section:first-of-type{ border-top:none; }
  .works-grid{ display:grid; grid-template-columns:280px 1fr; gap:clamp(20px,4vw,60px); align-items:start; }
  .works-grid h2{ font-family:var(--font-display); font-size:1.5rem; font-weight:400; }
  .works-grid .works-copy p{ font-size:1rem; line-height:1.75; color:var(--ink-dim); max-width:62ch; }
  .works-grid .works-copy p + p{ margin-top:14px; }
  @media (max-width:760px){ .works-grid{ grid-template-columns:1fr; } }

  .pricing-table-wrap{ overflow-x:auto; margin-top:clamp(40px,6vw,64px); }
  .pricing-table{ width:100%; border-collapse:collapse; min-width:560px; }
  .pricing-table th, .pricing-table td{ text-align:left; padding:16px 18px; border-bottom:1px solid var(--line); vertical-align:top; }
  .pricing-table th{ font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-faint); font-weight:600; }
  .pricing-table td:first-child{ font-family:var(--font-display); font-size:1.02rem; white-space:nowrap; }
  .pricing-table td{ font-size:.92rem; color:var(--ink-dim); line-height:1.55; }
  .pricing-table .price-cell{ font-family:var(--font-body); font-weight:600; color:var(--ink); white-space:nowrap; }
  .pricing-soon{ display:inline-block; margin-top:4px; font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; color:var(--accent-deep); font-weight:600; }

  /* ================= COUNSELLING ================= */
  .counsel-hero{ padding:clamp(64px,10vw,110px) 0 clamp(30px,5vw,50px); text-align:center; }
  .counsel-hero h1{ margin-top:14px; font-size:clamp(2rem,4.4vw,3.1rem); font-weight:400; }
  .counsel-hero h1 em{ font-style:italic; color:var(--accent-deep); }
  .counsel-hero p{ margin-top:16px; color:var(--ink-dim); font-size:.98rem; line-height:1.72; max-width:56ch; margin-inline:auto; }
  .counsel-hero .btn{ margin-top:28px; }

  .counsel-themes{ padding:clamp(50px,8vw,90px) 0; }
  .counsel-themes-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,3vw,30px); margin-top:clamp(30px,5vw,50px); }
  @media (max-width:760px){ .counsel-themes-grid{ grid-template-columns:repeat(2,1fr); } }
  @media (max-width:480px){ .counsel-themes-grid{ grid-template-columns:1fr; } }
  .counsel-theme{ padding:22px; border:1px solid var(--line); border-radius:10px; }
  .counsel-theme h3{ font-family:var(--font-display); font-size:1.02rem; font-weight:400; }
  .counsel-theme p{ margin-top:8px; font-size:.84rem; line-height:1.55; color:var(--ink-dim); }

  .counsel-quote{ padding:clamp(50px,8vw,90px) 0; text-align:center; background:var(--ground-2); }
  .counsel-quote blockquote{ font-size:clamp(1.3rem,3vw,1.9rem); font-style:italic; font-weight:400; line-height:1.45; max-width:38ch; margin:0 auto; color:var(--ink); }
  .counsel-quote cite{ display:block; margin-top:20px; font-size:.76rem; letter-spacing:.08em; text-transform:uppercase; color:var(--accent-deep); font-style:normal; }

  .counsel-steps{ padding:clamp(50px,8vw,90px) 0; }
  .counsel-steps-list{ max-width:640px; margin:clamp(30px,5vw,50px) auto 0; display:flex; flex-direction:column; }
  .counsel-step{ display:flex; gap:22px; padding:24px 0; border-bottom:1px solid var(--line); }
  .counsel-step:last-child{ border-bottom:none; }
  .counsel-step-num{ flex-shrink:0; font-family:var(--font-display); font-size:1.6rem; color:var(--accent-deep); width:40px; }
  .counsel-step h3{ font-family:var(--font-display); font-size:1.1rem; font-weight:400; }
  .counsel-step p{ margin-top:6px; font-size:.9rem; line-height:1.6; color:var(--ink-dim); }

  .counsel-faq{ padding:clamp(50px,8vw,90px) 0 clamp(70px,10vw,110px); }
  .counsel-faq-list{ max-width:680px; margin:clamp(30px,5vw,50px) auto 0; }
  .counsel-faq-item{ padding:20px 0; border-bottom:1px solid var(--line); }
  .counsel-faq-item h3{ font-family:var(--font-display); font-size:1.02rem; font-weight:400; }
  .counsel-faq-item p{ margin-top:8px; font-size:.9rem; line-height:1.6; color:var(--ink-dim); }

  /* ================= READING PATHS ================= */
  .paths-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(20px,3vw,28px); margin-top:clamp(30px,5vw,50px); }
  @media (max-width:700px){ .paths-grid{ grid-template-columns:1fr; } }
  .path-card{
    display:block; text-decoration:none; color:var(--ink); padding:clamp(24px,4vw,32px);
    border:1px solid var(--line); border-radius:10px; transition:border-color .15s ease, background .15s ease;
  }
  .path-card:hover{ border-color:var(--accent-deep); background:var(--ground-2); }
  .path-card-title{ font-family:var(--font-display); font-size:1.25rem; }
  .path-card-tagline{ display:block; margin-top:8px; font-size:.88rem; line-height:1.55; color:var(--ink-dim); }
  .path-card-meta{ display:block; margin-top:16px; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color:var(--accent-deep); font-weight:600; }

  .path-detail-head{ text-align:center; padding:clamp(50px,8vw,90px) 0 clamp(10px,3vw,20px); }
  .path-detail-head .eyebrow{ display:block; }
  .path-detail-head h1{ margin-top:14px; font-size:clamp(1.9rem,4vw,2.7rem); font-weight:400; }
  .path-detail-head p{ margin-top:14px; color:var(--ink-dim); font-size:.98rem; max-width:52ch; margin-inline:auto; }

  .path-steps{ max-width:600px; margin:clamp(30px,5vw,50px) auto 0; }
  .path-step{ display:flex; gap:20px; padding:24px 0; border-bottom:1px solid var(--line); }
  .path-step:last-child{ border-bottom:none; }
  .path-step-num{ flex-shrink:0; width:34px; height:34px; border-radius:50%; background:var(--ground-2); color:var(--ink-dim); display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-size:.92rem; }
  .path-step.is-done .path-step-num{ background:var(--accent-deep); color:#fff; }
  .path-step-body blockquote{ font-size:1.05rem; font-style:italic; line-height:1.5; color:var(--ink); margin:0; }
  .path-step-meta{ display:block; margin-top:10px; font-size:.76rem; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-faint); }
  .path-step-meta a{ color:var(--accent-deep); text-decoration:none; }
  .path-step-actions{ margin-top:10px; }
  .path-step-actions button{ background:none; border:none; padding:0; font-size:.78rem; color:var(--ink-dim); cursor:pointer; text-decoration:underline; }

  .path-complete{ text-align:center; margin-top:clamp(30px,5vw,50px); padding:clamp(30px,5vw,44px); background:var(--ground-2); border-radius:10px; }
  .path-complete h3{ font-family:var(--font-display); font-weight:400; font-size:1.3rem; }
  .path-complete p{ margin-top:10px; color:var(--ink-dim); font-size:.92rem; }
  .path-complete[hidden]{ display:none; }

  /* ================= MORNING ROOM ================= */
  .morning-hero{ padding:clamp(56px,9vw,100px) 0 clamp(10px,3vw,20px); text-align:center; }
  .morning-hero h1{ margin-top:14px; font-size:clamp(2rem,4.4vw,3.1rem); font-weight:400; }
  .morning-hero h1 em{ font-style:italic; color:var(--accent-deep); }
  .morning-hero p{ margin-top:16px; color:var(--ink-dim); font-size:.98rem; line-height:1.72; max-width:56ch; margin-inline:auto; }

  .morning-card{
    margin-top:clamp(30px,5vw,50px); padding:clamp(40px,6vw,64px) clamp(24px,5vw,60px);
    background:var(--ground-2); border-radius:10px; text-align:center; position:relative;
  }
  .morning-card-eyebrow{ font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--accent-deep); font-weight:600; }
  .morning-card-date{ display:block; margin-top:6px; font-size:.82rem; color:var(--ink-faint); }
  .morning-card blockquote{
    margin:22px auto 0; font-size:clamp(1.4rem,3.2vw,2.1rem); font-style:italic; font-weight:400;
    line-height:1.4; max-width:34ch; color:var(--ink);
  }
  .morning-card-source{
    display:block; margin-top:20px; font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-faint);
  }
  .morning-reflection{
    margin:34px auto 0; max-width:44ch; padding-top:28px; border-top:1px solid var(--line);
  }
  .morning-reflection-label{ font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); font-weight:600; }
  .morning-reflection p{ margin-top:10px; font-size:1.02rem; line-height:1.6; color:var(--ink); }
  .morning-actions{ margin-top:30px; display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
  .morning-actions .btn[hidden]{ display:none; }

  .morning-nav{ margin-top:24px; display:flex; align-items:center; justify-content:center; gap:20px; }
  .morning-nav button{ background:none; border:none; color:var(--ink-dim); font-size:.8rem; font-weight:500; cursor:pointer; display:flex; align-items:center; gap:6px; }
  .morning-nav button:hover{ color:var(--accent-deep); }
  .morning-nav button[hidden]{ display:none; }

  .morning-archive{ margin-top:clamp(48px,7vw,76px); }
  .morning-archive-label{ display:block; text-align:center; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); font-weight:600; margin-bottom:16px; }
  .morning-archive-strip{ display:flex; justify-content:center; gap:8px; flex-wrap:wrap; }
  .morning-archive-day{
    display:flex; flex-direction:column; align-items:center; gap:4px; padding:10px 6px; border-radius:8px;
    width:64px; text-decoration:none; color:var(--ink-dim); border:1px solid transparent; transition:border-color .15s ease;
  }
  .morning-archive-day:hover{ border-color:var(--line-strong); }
  .morning-archive-day.is-active{ border-color:var(--accent-deep); background:var(--ground-2); }
  .morning-archive-daynum{ font-family:var(--font-display); font-size:1.1rem; color:var(--ink); }
  .morning-archive-tag{ font-size:.62rem; letter-spacing:.03em; text-transform:uppercase; color:var(--ink-faint); text-align:center; line-height:1.3; }

  /* ================= CONTACT PAGE ================= */
  .contact-hero{ padding:clamp(64px,10vw,120px) 0 clamp(30px,5vw,50px); text-align:center; }
  .contact-hero .email-link{
    display:inline-block; margin-top:18px; font-family:var(--font-display); font-size:clamp(1.7rem,4.4vw,2.8rem);
    color:var(--ink); text-decoration:none; border-bottom:2px solid var(--line-strong);
    transition:border-color .2s ease, color .2s ease;
  }
  .contact-hero .email-link:hover{ color:var(--accent-deep); border-color:var(--accent-deep); }
  .contact-hero p{ margin-top:20px; color:var(--ink-dim); line-height:1.7; max-width:52ch; margin-inline:auto; }
  .contact-form-section{ padding:clamp(40px,7vw,70px) 0 clamp(64px,10vw,120px); }
  .contact-form-grid{ display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(30px,5vw,56px); }
  .contact-form-copy h3{ font-size:clamp(1.4rem,2.8vw,1.9rem); font-weight:400; }
  .contact-form-copy p{ margin-top:14px; color:var(--ink-dim); line-height:1.7; max-width:40ch; }
  .contact-form{ display:flex; flex-direction:column; gap:20px; }
  .contact-form label{ display:block; font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:7px; }
  .contact-form input, .contact-form textarea{
    width:100%; padding:12px 0; border:none; border-bottom:1px solid var(--line-strong);
    background:transparent; color:var(--ink); font-family:var(--font-body); font-size:.94rem;
  }
  .contact-form textarea{ min-height:110px; resize:vertical; }
  .contact-form input:focus, .contact-form textarea:focus{ outline:none; border-color:var(--accent-deep); }
  .contact-form-status{ font-size:.82rem; min-height:1.2em; }
  .contact-form-status.ok{ color:var(--accent-deep); }
  .contact-form-status.bad{ color:#B5433A; }
  @media (max-width:860px){ .contact-form-grid{ grid-template-columns:1fr; } }

  /* ================= PODCAST PAGE ================= */
  .podcast-hero{ padding:clamp(64px,10vw,120px) 0 clamp(30px,5vw,50px); text-align:center; }
  .podcast-hero h1{ margin-top:14px; font-size:clamp(2rem,4.4vw,3.2rem); font-weight:400; }
  .podcast-hero h1 em{ font-style:italic; color:var(--accent-deep); }
  .podcast-hero p{ margin-top:18px; color:var(--ink-dim); line-height:1.75; max-width:56ch; margin-inline:auto; }
  .episodes{ padding:clamp(20px,4vw,40px) 0 clamp(64px,10vw,120px); }
  .episodes-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(24px,3vw,32px); }
  .episode-card{
    display:flex; flex-direction:column; text-align:left; background:none; border:none; padding:0; cursor:pointer; font-family:inherit;
  }
  .episode-thumb-wrap{ position:relative; aspect-ratio:16/9; background:var(--ground-2); overflow:hidden; border-radius:6px; }
  .episode-thumb{ width:100%; height:100%; object-fit:cover; }
  .episode-play{
    position:absolute; inset:0; margin:auto; width:50px; height:50px; border-radius:50%;
    background:#fff; color:var(--ink); display:flex; align-items:center; justify-content:center;
  }
  .episode-duration{
    position:absolute; right:10px; bottom:10px; background:rgba(28,20,22,.75); color:#fff;
    font-size:.68rem; font-weight:600; padding:3px 8px; border-radius:4px;
  }
  .episode-body{ display:flex; flex-direction:column; padding:16px 2px 0; gap:6px; }
  .episode-date{ font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--accent-deep); font-weight:600; }
  .episode-title{ font-family:var(--font-display); font-size:1.08rem; }
  .episode-desc{ font-size:.84rem; line-height:1.55; color:var(--ink-dim); }
  @media (max-width:860px){ .episodes-grid{ grid-template-columns:repeat(2,1fr); } }
  @media (max-width:560px){ .episodes-grid{ grid-template-columns:1fr; } }
  .episodes-empty{ text-align:center; max-width:520px; margin-inline:auto; padding:clamp(50px,8vw,80px) 20px; }
  .episodes-empty h2{ margin-top:14px; font-size:clamp(1.4rem,2.8vw,1.9rem); font-weight:400; }
  .episodes-empty p{ margin-top:14px; color:var(--ink-dim); line-height:1.7; }
  .episodes-empty .btn-solid{ margin-top:26px; }

  .video-modal{
    position:fixed; inset:0; z-index:300; background:rgba(20,14,15,.9);
    display:flex; align-items:center; justify-content:center; padding:20px;
    opacity:0; pointer-events:none; transition:opacity .25s ease;
  }
  .video-modal.open{ opacity:1; pointer-events:auto; }
  .video-modal-inner{ width:100%; max-width:900px; }
  .video-modal-close{ display:block; margin:0 0 10px auto; background:none; border:none; color:#fff; font-size:1.8rem; line-height:1; padding:6px; }
  .video-modal-frame{ position:relative; width:100%; aspect-ratio:16/9; background:#000; border-radius:6px; overflow:hidden; }
  .video-modal-frame iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
  .video-modal-placeholder{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.6); font-family:var(--font-display); font-style:italic; }
  .video-modal-meta{ padding:18px 4px 0; }
  .video-modal-meta h3{ font-size:1.2rem; font-weight:400; color:#fff; }
  .video-modal-meta p{ margin-top:8px; color:rgba(255,255,255,.7); line-height:1.6; }

  /* ================= QUOTES PAGE ================= */
  .quotes-hero{ padding:clamp(56px,9vw,100px) 0 clamp(20px,4vw,36px); text-align:center; }
  .quotes-hero h1{ margin-top:14px; font-size:clamp(2rem,4.4vw,3.1rem); font-weight:400; }
  .quotes-hero h1 em{ font-style:italic; color:var(--accent-deep); }
  .quotes-hero p{ margin-top:16px; color:var(--ink-dim); font-size:.98rem; line-height:1.72; max-width:56ch; margin-inline:auto; }

  .quote-shuffle{
    margin-top:clamp(30px,5vw,50px); padding:clamp(40px,6vw,64px) clamp(24px,5vw,60px);
    background:var(--ground-2); border-radius:10px; text-align:center; position:relative;
  }
  .quote-shuffle-count{ font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); }
  .quote-shuffle blockquote{
    margin-top:18px; font-size:clamp(1.4rem,3.2vw,2.1rem); font-style:italic; font-weight:400;
    line-height:1.4; max-width:34ch; margin-inline:auto; color:var(--ink);
    opacity:0; transition:opacity .3s ease;
  }
  .quote-shuffle blockquote.in{ opacity:1; }
  .quote-shuffle-source{
    display:block; margin-top:22px; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--accent-deep);
  }
  .quote-shuffle-actions{ margin-top:26px; display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }

  .quote-tabs{
    margin-top:clamp(44px,7vw,70px); display:flex; gap:10px; flex-wrap:wrap; justify-content:center;
  }
  .quote-tab{
    font-family:var(--font-body); font-size:.8rem; font-weight:500; color:var(--ink-dim);
    background:none; border:1px solid var(--line-strong); border-radius:999px; padding:9px 18px;
    transition:border-color .2s ease, color .2s ease, background .2s ease;
  }
  .quote-tab:hover{ border-color:var(--accent-deep); color:var(--accent-deep); }
  .quote-tab.is-active{ background:var(--ink); border-color:var(--ink); color:#fff; }

  .quotes-grid{
    margin-top:clamp(36px,6vw,56px); padding-bottom:clamp(64px,10vw,110px);
    columns:3; column-gap:22px;
  }
  .quote-card{
    break-inside:avoid; margin-bottom:22px; padding:26px 24px; background:var(--ground-2);
    border-radius:8px; display:flex; flex-direction:column; gap:16px;
  }
  .quote-card .qc-tag{
    align-self:flex-start; font-size:.66rem; letter-spacing:.1em; text-transform:uppercase;
    color:var(--accent-deep); font-weight:600;
  }
  .quote-card blockquote{ font-size:1.05rem; font-style:italic; font-weight:400; line-height:1.5; color:var(--ink); }
  .quote-card .qc-source{
    display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink);
    padding-top:14px; border-top:1px solid var(--line-strong);
  }
  .quote-card .qc-cover{ width:26px; aspect-ratio:2/3; object-fit:cover; border-radius:1px; flex-shrink:0; }
  .quote-card .qc-book{ font-size:.78rem; font-weight:500; }
  .quote-card .qc-actions{ display:flex; gap:16px; }
  .quote-card .qc-actions .btn{ font-size:.7rem; padding-bottom:2px; }
  @media (max-width:900px){ .quotes-grid{ columns:2; } }
  @media (max-width:600px){ .quotes-grid{ columns:1; } }
