
:root{
  --ivory:#f7f3ec;
  --paper:#fbf8f3;
  --ink:#171419;
  --muted:#6e6870;
  --purple:#8d56b2;
  --purple-dark:#5e347b;
  --purple-pale:#eadcf2;
  --green:#358a63;
  --gold:#a87525;
  --hair:rgba(23,20,25,.14);
  --serif:"Libre Baskerville",Georgia,serif;
  --sans:"Source Sans 3","Segoe UI",Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.62}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3,p,blockquote{margin-top:0}
h1,h2,h3,blockquote{font-family:var(--serif);font-weight:400}
.brand{font-family:"Times New Roman",Times,serif;letter-spacing:.035em}
.brand em{font-style:italic;font-weight:400}
.kicker{font-size:.76rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--purple-dark);margin-bottom:14px}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;font-size:.8rem;font-weight:700;letter-spacing:.08em;border:1px solid transparent}
.button.primary{background:var(--purple-dark);color:#fff}
.button.outline{border-color:var(--purple-dark);color:var(--purple-dark)}
.text-action{display:inline-flex;gap:14px;align-items:center;padding:9px 0;border-bottom:1px solid currentColor;font-size:.79rem;font-weight:700;letter-spacing:.09em}
.text-action.dark{color:var(--purple-dark)}

.site-header{
  position:fixed;z-index:50;top:0;left:0;right:0;height:76px;padding:0 clamp(24px,4vw,64px);
  display:flex;align-items:center;gap:36px;background:rgba(247,243,236,.9);backdrop-filter:blur(15px);
  border-bottom:1px solid transparent;transition:.25s ease
}
.site-header.scrolled{border-bottom-color:var(--hair);box-shadow:0 5px 24px rgba(31,24,35,.04)}
.site-header .brand{font-size:1.28rem;white-space:nowrap;margin-right:auto}
.main-nav{display:flex;gap:30px;align-items:center;font-size:.75rem;font-weight:700;letter-spacing:.07em}
.main-nav a{padding:8px 0}
.main-nav .buy-nav{color:var(--purple-dark);border-bottom:1px solid var(--purple-dark)}
.menu-btn{display:none;background:none;border:0;font:inherit;font-size:.76rem;font-weight:700;letter-spacing:.08em}

.hero{
  min-height:790px;padding-top:76px;display:grid;grid-template-columns:58% 42%;position:relative;overflow:hidden;background:#f4eee7
}
.hero-photo{background:url("../assets/hero-book-coffee-sea.webp") center/cover no-repeat;min-height:714px}
.hero-copy{
  display:flex;flex-direction:column;justify-content:center;padding:70px clamp(36px,5vw,86px) 80px 8%;
  position:relative;z-index:3;background:linear-gradient(90deg,rgba(247,243,236,.58),rgba(247,243,236,.97) 19%)
}
.hero-copy h1{font-size:clamp(2.7rem,4.3vw,5rem);line-height:1.12;letter-spacing:-.035em;max-width:690px;margin-bottom:18px}
.hero-actions{display:flex;gap:28px;align-items:center;margin-top:20px;flex-wrap:wrap}
.hero-ribbon{position:absolute;z-index:4;width:76%;height:180px;right:-6%;bottom:-72px;opacity:.95;pointer-events:none}

.story{padding:95px clamp(24px,4vw,64px) 86px;background:var(--paper)}
.story-heading{text-align:center;max-width:810px;margin:0 auto 46px}
.story-heading h2{font-size:clamp(2rem,3.1vw,3.3rem);line-height:1.22}
.timeline-strip{max-width:1390px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;position:relative}
.timeline{min-width:0;position:relative;z-index:2}
.timeline-image{height:245px;position:relative;overflow:hidden;background:#ddd}
.timeline-image img{width:100%;height:100%;object-fit:cover}
.timeline:nth-child(1) .timeline-image img{object-position:center 58%}
.timeline:nth-child(2) .timeline-image img{object-position:center 43%}
.timeline:nth-child(3) .timeline-image img{object-position:center 52%}
.timeline-image:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.02) 48%,rgba(0,0,0,.52))}
.time-tag{position:absolute;z-index:2;left:22px;bottom:18px;color:#fff}
.time-tag span{display:block;font-size:.78rem;font-weight:700;letter-spacing:.12em}
.time-tag small{font-family:var(--serif);font-style:italic;opacity:.88}
.timeline-ribbon{position:absolute;z-index:3;left:-4%;top:146px;width:108%;height:112px;pointer-events:none;opacity:.58}

.book-editorial{
  position:relative;overflow:hidden;padding:112px clamp(24px,5vw,84px);
  display:grid;grid-template-columns:minmax(260px,.78fr) minmax(400px,1.25fr) minmax(260px,.72fr);
  gap:clamp(36px,5vw,88px);align-items:center;background:#f4eee7;border-top:1px solid var(--hair)
}
.book-ribbon{position:absolute;width:82%;left:-14%;bottom:8%;opacity:.7;pointer-events:none}
.book-art{position:relative;z-index:2;display:flex;justify-content:center;align-items:center;min-height:590px}
.book-art img{width:min(330px,82%);box-shadow:0 26px 55px rgba(34,25,22,.16)}
.book-copy{position:relative;z-index:2;max-width:680px}
.book-heading{font-size:clamp(2.25rem,3.4vw,4rem);margin-bottom:25px}
.book-copy blockquote{font-size:1.38rem;line-height:1.55;color:var(--purple-dark);border-left:2px solid var(--purple);padding-left:24px;margin:0 0 26px}
.book-copy p{color:#453e47;margin-bottom:15px}
.book-copy .ending{margin-top:28px;font-family:var(--serif);font-size:1.04rem}
.recognition{align-self:stretch;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;position:relative;z-index:2;border-left:1px solid rgba(168,117,37,.28);padding-left:42px}
.recognition img{width:122px;margin-bottom:22px}
.award-overline{font-family:var(--sans);letter-spacing:.16em;font-weight:700;font-size:.74rem;color:var(--gold);margin-bottom:6px}
.recognition h3{font-size:1.55rem;line-height:1.35;color:#7d581d;margin-bottom:8px}
.recognition p{margin-bottom:7px;color:#5f5547}
.award-cat{font-family:var(--serif);font-style:italic;font-size:.93rem}

.purchase{
  padding:70px clamp(24px,5vw,84px);display:grid;grid-template-columns:.7fr 1.3fr;gap:60px;align-items:end;background:#fffdf9;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)
}
.purchase h2{font-size:clamp(2rem,3vw,3.1rem);margin-bottom:0}
.retailers{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.retailers a{min-height:124px;padding:24px 26px;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;align-content:center;border-right:1px solid var(--hair);transition:.2s ease}
.retailers a:last-child{border-right:0}
.retailers a:hover{background:var(--purple-pale)}
.store-main{font-family:var(--serif);font-size:1.28rem}
.store-sub{font-size:.84rem;color:var(--muted);margin-top:4px}
.arrow{grid-column:2;grid-row:1/3;align-self:center;color:var(--purple-dark);font-size:1.3rem}

.author-home{
  position:relative;overflow:hidden;display:grid;grid-template-columns:48% 52%;min-height:540px;background:#eee9ef
}
.author-image{position:relative;z-index:2;overflow:hidden}
.author-image img{width:100%;height:100%;object-fit:cover;object-position:center 45%}
.author-intro{position:relative;z-index:3;padding:80px clamp(34px,7vw,110px) 70px;align-self:center;max-width:780px}
.author-intro h2{font-size:clamp(2.5rem,4vw,4.3rem);margin-bottom:22px}
.author-intro p{color:#46404a;max-width:650px}
.author-ribbon{position:absolute;z-index:4;width:86%;right:-16%;bottom:-22px;opacity:.76;pointer-events:none}

.site-footer{min-height:116px;padding:28px clamp(24px,4vw,64px);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:28px;background:var(--ivory);font-size:.78rem;color:var(--muted)}
.footer-brand{font-size:1.05rem;color:var(--ink)}
.site-footer nav{display:flex;gap:24px;font-weight:700;letter-spacing:.06em;color:var(--ink)}
.site-footer p{text-align:right;margin:0}

.inner-page{padding-top:76px}
.author-page,.contact-page{min-height:calc(100vh - 76px)}
.author-hero{position:relative;min-height:650px;display:grid;grid-template-columns:48% 52%;background:#ece8ec;overflow:hidden}
.author-page-photo{overflow:hidden}
.author-page-photo img{width:100%;height:100%;object-fit:cover;object-position:center 35%}
.author-page-title{padding:90px clamp(34px,7vw,110px);align-self:center;position:relative;z-index:2}
.author-page-title h1,.contact-intro h1{font-size:clamp(3rem,6vw,6rem);line-height:1;margin-bottom:28px}
.author-page-title .lead{font-family:var(--serif);font-size:1.3rem;max-width:650px;line-height:1.65}
.author-page-ribbon{position:absolute;right:-10%;bottom:-70px;width:76%;opacity:.7}
.author-story{padding:100px clamp(24px,8vw,150px);display:grid;grid-template-columns:.42fr 1fr;gap:80px;background:var(--paper)}
.author-story-label{display:flex;flex-direction:column;gap:8px;font-size:.75rem;font-weight:700;letter-spacing:.14em;color:var(--purple-dark);padding-top:8px}
.author-story-copy{max-width:760px;font-family:var(--serif);font-size:1.05rem}
.author-story-copy p{margin-bottom:24px}
.author-story-copy .button{font-family:var(--sans);margin-top:12px}

.contact-page{padding:110px clamp(24px,8vw,150px);background:var(--paper)}
.contact-intro{max-width:760px;margin-bottom:60px}
.contact-intro p:last-child{max-width:680px;color:#4f4852}
.contact-layout{display:grid;grid-template-columns:1fr .55fr;gap:100px;max-width:1180px}
.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.contact-form label:nth-child(3),.contact-form label:nth-child(4){grid-column:1/-1}
.contact-form label span{display:block;font-size:.78rem;font-weight:700;letter-spacing:.08em;margin-bottom:8px}
.contact-form input,.contact-form textarea{width:100%;border:0;border-bottom:1px solid #8d858e;background:transparent;padding:12px 0;font:inherit;outline:none}
.contact-form input:focus,.contact-form textarea:focus{border-bottom-color:var(--purple-dark)}
.contact-form .button{width:max-content}
.form-note{grid-column:1/-1;font-size:.8rem;color:var(--muted)}
.professional{padding-left:38px;border-left:1px solid var(--hair);align-self:start}
.professional p{color:#544d57}

@media(max-width:980px){
  .main-nav{gap:18px}
  .hero{grid-template-columns:1fr;min-height:0}
  .hero-photo{min-height:58vw;background-position:center}
  .hero-copy{padding:54px 8% 85px;background:var(--ivory)}
  .hero-ribbon{width:115%;right:-35%;bottom:-55px}
  .timeline-strip{grid-template-columns:1fr;gap:34px}
  .timeline-image{height:330px}
  .timeline-ribbon{display:none}
  .book-editorial{grid-template-columns:.8fr 1.2fr;align-items:start}
  .recognition{grid-column:1/-1;border-left:0;border-top:1px solid rgba(168,117,37,.28);padding:32px 0 0;flex-direction:row;gap:24px;text-align:left;justify-content:flex-start}
  .recognition img{margin:0;width:95px}
  .book-art{min-height:auto}
  .purchase{grid-template-columns:1fr;gap:30px}
  .author-home{grid-template-columns:1fr}
  .author-image{height:480px}
  .author-intro{padding:65px 8% 90px}
  .author-hero{grid-template-columns:1fr}
  .author-page-photo{height:520px}
  .author-story{grid-template-columns:1fr;gap:30px}
  .contact-layout{grid-template-columns:1fr;gap:70px}
}
@media(max-width:720px){
  body{font-size:16px}
  .site-header{height:66px;padding:0 18px}
  .site-header .brand{font-size:.96rem}
  .menu-btn{display:block}
  .main-nav{display:none;position:absolute;top:66px;left:0;right:0;padding:20px;background:rgba(247,243,236,.98);flex-direction:column;align-items:stretch;border-bottom:1px solid var(--hair)}
  .main-nav.open{display:flex}
  .hero{padding-top:66px}
  .hero-photo{min-height:62vw;background-size:cover;background-position:36% center}
  .hero-copy{padding:40px 22px 74px}
  .hero-copy h1{font-size:2.55rem}
  .hero-actions{align-items:flex-start;flex-direction:column;gap:10px}
  .story{padding:72px 18px 60px}
  .story-heading{text-align:left}
  .story-heading h2{font-size:2.15rem}
  .timeline-image{height:220px}
  .book-editorial{padding:76px 22px;grid-template-columns:1fr;gap:44px}
  .book-art{justify-content:flex-start}
  .book-art img{width:min(285px,80vw)}
  .recognition{grid-column:auto}
  .purchase{padding:58px 22px}
  .retailers{grid-template-columns:1fr}
  .retailers a{border-right:0;border-bottom:1px solid var(--hair)}
  .retailers a:last-child{border-bottom:0}
  .author-image{height:330px}
  .author-intro{padding:52px 22px 80px}
  .site-footer{grid-template-columns:1fr;gap:15px;padding:28px 22px}
  .site-footer nav{flex-wrap:wrap}
  .site-footer p{text-align:left}
  .inner-page{padding-top:66px}
  .author-page-photo{height:370px}
  .author-page-title{padding:55px 22px 80px}
  .author-page-title h1,.contact-intro h1{font-size:3.2rem}
  .author-story{padding:70px 22px}
  .contact-page{padding:80px 22px}
  .contact-form{grid-template-columns:1fr}
  .contact-form label{grid-column:1/-1!important}
  .professional{padding-left:0;border-left:0;border-top:1px solid var(--hair);padding-top:28px}
}


/* =========================================================
   V2 COMPACT EDITORIAL REFINEMENT
   ========================================================= */

/* HERO: substantially smaller, quieter, and more artistic */
.hero{
  min-height:520px;
  height:520px;
  grid-template-columns:52% 48%;
  background:var(--ivory);
}
.hero-photo{
  min-height:444px;
  height:444px;
  margin-top:0;
  position:relative;
  background-position:center center;
  -webkit-mask-image:linear-gradient(90deg,#000 0%,#000 76%,rgba(0,0,0,.65) 88%,transparent 100%);
  mask-image:linear-gradient(90deg,#000 0%,#000 76%,rgba(0,0,0,.65) 88%,transparent 100%);
}
.hero:before{
  content:"";
  position:absolute;
  left:0;
  top:76px;
  width:58%;
  height:444px;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(180deg,transparent 65%,rgba(247,243,236,.72) 91%,var(--ivory) 100%);
}
.hero-copy{
  padding:40px clamp(34px,5vw,72px) 38px 4%;
  background:transparent;
}
.hero-copy h1{
  font-size:clamp(2rem,3.35vw,3.75rem);
  line-height:1.15;
  max-width:610px;
  margin-bottom:12px;
}
.hero-copy .kicker{margin-bottom:10px}
.hero-actions{margin-top:12px;gap:24px}
.hero-ribbon{
  width:62%;
  height:120px;
  right:-2%;
  bottom:-45px;
  opacity:.66;
}

/* TIMELINES: compact horizontal visual strip with ALL copy overlaid */
.story{
  padding:64px clamp(24px,4vw,64px) 58px;
}
.story-heading{
  margin-bottom:28px;
  max-width:760px;
}
.story-heading h2{
  font-size:clamp(1.7rem,2.5vw,2.55rem);
}
.timeline-strip{
  gap:10px;
}
.timeline-image{
  height:250px;
}
.timeline-image:after{
  background:linear-gradient(180deg,rgba(0,0,0,.03) 22%,rgba(0,0,0,.08) 48%,rgba(0,0,0,.78) 100%);
}
.timeline-content{
  position:absolute;
  z-index:4;
  inset:auto 18px 16px 18px;
  color:#fff;
  text-shadow:0 1px 12px rgba(0,0,0,.5);
}
.timeline-content .time-tag{
  position:static;
  margin-bottom:7px;
}
.timeline-content .time-tag span{
  font-size:.68rem;
  letter-spacing:.12em;
}
.timeline-content .time-tag small{
  font-size:.77rem;
}
.timeline-content h3{
  font-size:1.28rem;
  margin:0 0 5px;
  color:#fff;
}
.timeline-content p{
  margin:0;
  max-width:300px;
  font-size:.82rem;
  line-height:1.42;
  color:rgba(255,255,255,.94);
}
.timeline-ribbon{
  top:124px;
  height:94px;
  opacity:.36;
}

/* BOOK: remove oversized decorative elements and reduce vertical space */
.book-editorial{
  padding:78px clamp(24px,5vw,78px);
  grid-template-columns:minmax(210px,.62fr) minmax(380px,1.22fr) minmax(230px,.62fr);
  gap:clamp(30px,4vw,66px);
}
.book-art{
  min-height:410px;
}
.book-art img{
  width:min(245px,76%);
  box-shadow:0 20px 44px rgba(34,25,22,.14);
}
.book-heading{
  font-size:clamp(1.85rem,2.7vw,2.8rem);
  margin-bottom:20px;
}
.book-copy blockquote{
  font-size:1.13rem;
  line-height:1.48;
  margin-bottom:20px;
  padding-left:18px;
}
.book-copy p{
  font-size:.96rem;
  line-height:1.56;
}
.book-copy .ending{
  margin-top:19px;
  font-size:.96rem;
}
.book-ribbon{
  width:68%;
  left:-10%;
  bottom:1%;
  opacity:.5;
}
.recognition{
  padding-left:30px;
}
.recognition img{
  width:86px;
  margin-bottom:14px;
}
.recognition h3{
  font-size:1.25rem;
}
.recognition p{
  font-size:.88rem;
}

/* PURCHASE: one compact band */
.purchase{
  padding:48px clamp(24px,5vw,78px);
  gap:42px;
}
.purchase h2{
  font-size:clamp(1.7rem,2.4vw,2.4rem);
}
.retailers a{
  min-height:96px;
  padding:18px 22px;
}
.store-main{font-size:1.08rem}

/* AUTHOR HOMEPAGE: small circular portrait, not a giant half-page image */
.author-home{
  min-height:0;
  display:grid;
  grid-template-columns:210px minmax(0,650px);
  justify-content:center;
  align-items:center;
  gap:56px;
  padding:64px clamp(24px,5vw,78px);
  background:#f0ebf1;
}
.author-image{
  width:190px;
  height:190px;
  border-radius:50%;
  overflow:hidden;
  box-shadow:0 12px 32px rgba(54,37,62,.12);
  border:5px solid rgba(255,255,255,.72);
}
.author-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 34%;
}
.author-intro{
  padding:0;
  align-self:center;
}
.author-intro h2{
  font-size:clamp(2rem,3.1vw,3.15rem);
  margin-bottom:14px;
}
.author-intro p{
  font-size:.96rem;
  line-height:1.55;
  margin-bottom:10px;
}
.author-ribbon{
  width:54%;
  right:-12%;
  bottom:-50px;
  opacity:.5;
}

/* AUTHOR INNER PAGE: smaller circular portrait and less hero height */
.author-hero{
  min-height:390px;
  grid-template-columns:290px minmax(0,700px);
  justify-content:center;
  gap:70px;
  align-items:center;
  padding:58px clamp(24px,6vw,90px);
}
.author-page-photo{
  width:230px;
  height:230px;
  border-radius:50%;
  overflow:hidden;
  justify-self:center;
  box-shadow:0 14px 34px rgba(42,32,48,.13);
  border:6px solid rgba(255,255,255,.72);
}
.author-page-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 30%;
}
.author-page-title{
  padding:0;
}
.author-page-title h1{
  font-size:clamp(2.7rem,4.4vw,4.5rem);
  margin-bottom:20px;
}
.author-page-title .lead{
  font-size:1.08rem;
  line-height:1.55;
  max-width:620px;
}
.author-page-ribbon{
  width:50%;
  right:-10%;
  bottom:-76px;
  opacity:.45;
}
.author-story{
  padding:72px clamp(24px,8vw,130px);
  gap:58px;
}
.author-story-copy{
  font-size:1rem;
}

/* FOOTER tighter */
.site-footer{
  min-height:90px;
  padding-top:20px;
  padding-bottom:20px;
}

/* Remove any vestigial folio styling */

@media(max-width:980px){
  .hero{
    height:auto;
    min-height:0;
    grid-template-columns:1fr;
  }
  .hero-photo{
    min-height:320px;
    height:320px;
    -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 78%,rgba(0,0,0,.55) 90%,transparent 100%);
    mask-image:linear-gradient(180deg,#000 0%,#000 78%,rgba(0,0,0,.55) 90%,transparent 100%);
  }
  .hero:before{
    display:none;
  }
  .hero-copy{
    padding:28px 8% 55px;
  }
  .timeline-image{height:235px}
  .book-editorial{
    grid-template-columns:230px 1fr;
  }
  .book-art{min-height:auto}
  .recognition{
    grid-column:1/-1;
    flex-direction:row;
    text-align:left;
  }
  .author-home{
    grid-template-columns:170px 1fr;
    gap:36px;
  }
  .author-image{
    width:155px;height:155px;
  }
  .author-hero{
    grid-template-columns:210px 1fr;
    gap:42px;
  }
  .author-page-photo{
    width:190px;height:190px;
  }
}

@media(max-width:720px){
  .hero-photo{
    min-height:240px;
    height:240px;
    background-position:34% center;
  }
  .hero-copy{
    padding:24px 20px 48px;
  }
  .hero-copy h1{
    font-size:2.15rem;
  }
  .story{
    padding:52px 16px 44px;
  }
  .story-heading{
    margin-bottom:22px;
  }
  .timeline-strip{
    grid-template-columns:1fr;
    gap:12px;
  }
  .timeline-image{
    height:205px;
  }
  .timeline-content{
    inset:auto 16px 14px 16px;
  }
  .timeline-content p{
    font-size:.8rem;
    max-width:none;
  }
  .book-editorial{
    padding:58px 20px;
    grid-template-columns:1fr;
    gap:34px;
  }
  .book-art{
    justify-content:center;
  }
  .book-art img{
    width:min(210px,62vw);
  }
  .recognition{
    grid-column:auto;
    padding-top:24px;
  }
  .purchase{
    padding:42px 20px;
  }
  .author-home{
    grid-template-columns:1fr;
    gap:20px;
    text-align:center;
    padding:50px 20px 58px;
  }
  .author-image{
    width:138px;height:138px;
    justify-self:center;
  }
  .author-intro{
    max-width:560px;
    justify-self:center;
  }
  .author-intro .text-action{
    justify-content:center;
  }
  .author-hero{
    grid-template-columns:1fr;
    gap:22px;
    min-height:0;
    padding:50px 20px 58px;
    text-align:center;
  }
  .author-page-photo{
    width:155px;height:155px;
  }
  .author-page-title .lead{
    margin-left:auto;margin-right:auto;
  }
  .author-story{
    padding:58px 20px;
  }
}

/* FINAL QC SCALE PASS */
.hero{
  min-height:430px;
  height:430px;
}
.hero-photo{
  min-height:354px;
  height:354px;
}
.hero:before{
  height:354px;
}
.hero-copy{
  padding-top:26px;
  padding-bottom:24px;
}
.hero-copy h1{
  font-size:clamp(1.85rem,2.85vw,3.15rem);
  max-width:560px;
}
.hero-ribbon{
  height:92px;
  bottom:-34px;
}
.book-heading{
  font-size:clamp(1.6rem,2.1vw,2.15rem);
  letter-spacing:.02em;
}

@media(max-width:980px){
  .hero{height:auto;min-height:0}
  .hero-photo{min-height:275px;height:275px}
}
@media(max-width:720px){
  .hero-photo{min-height:205px;height:205px}
  .hero-copy h1{font-size:1.95rem}
}


/* ============================================================
   FINAL V3: compact editorial hero + single-author-photo system
   ============================================================ */

/* Homepage hero: image as an art object rather than a split-screen block */
.hero.hero-editorial{
  min-height:0;
  height:auto;
  padding:118px clamp(24px,5vw,78px) 64px;
  display:grid;
  grid-template-columns:minmax(360px,.92fr) minmax(420px,1.08fr);
  gap:clamp(42px,6vw,92px);
  align-items:center;
  background:
    radial-gradient(circle at 82% 18%, rgba(172,118,210,.10), transparent 28%),
    var(--ivory);
  overflow:hidden;
  position:relative;
}
.hero-editorial .hero-art{
  min-height:350px;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
}
.hero-editorial .hero-photo-frame{
  position:relative;
  z-index:2;
  width:min(610px,100%);
  aspect-ratio:1.68/1;
  overflow:hidden;
  border-radius:48% 42% 46% 38% / 42% 48% 38% 46%;
  box-shadow:0 22px 55px rgba(36,27,38,.11);
  transform:rotate(-1.2deg);
  background:#e9e1d7;
}
.hero-editorial .hero-photo-frame:after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  box-shadow:inset 0 0 58px 18px rgba(247,243,236,.23);
}
.hero-editorial .hero-photo-frame img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 51%;
}
.hero-editorial .hero-copy{
  position:relative;
  z-index:4;
  padding:0;
  background:none;
  display:block;
}
.hero-editorial .hero-copy h1{
  font-size:clamp(2.15rem,3.45vw,4rem);
  line-height:1.12;
  letter-spacing:-.032em;
  max-width:660px;
  margin-bottom:18px;
}
.hero-editorial .hero-copy .kicker{
  margin-bottom:12px;
}
.hero-editorial .hero-rule{
  width:82px;
  height:1px;
  margin:20px 0 22px;
  background:linear-gradient(90deg,var(--gold),rgba(168,117,37,.15));
}
.hero-editorial .hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:22px;
  align-items:center;
  margin:0;
}
.hero-editorial .hero-ribbon{
  position:absolute;
  z-index:3;
  width:118%;
  height:140px;
  left:-18%;
  bottom:-16px;
  right:auto;
  opacity:.74;
  pointer-events:none;
  transform:rotate(-2deg);
}

/* Timelines: preserve composition and keep copy legible */
.timeline:nth-child(2) .timeline-image img{
  object-fit:cover;
  object-position:center center;
}
.timeline-image{
  isolation:isolate;
}
.timeline-content{
  max-width:88%;
}
.timeline-content p{
  font-size:.79rem;
  line-height:1.38;
}
.timeline-content h3{
  font-size:1.22rem;
}

/* Homepage author teaser is intentionally text-only.
   The single author portrait appears on the dedicated Author page. */
.author-home.author-home-text{
  min-height:0;
  display:block;
  padding:56px clamp(24px,8vw,130px) 60px;
  background:
    radial-gradient(circle at 16% 40%,rgba(145,88,178,.09),transparent 28%),
    #f0ebf1;
  position:relative;
  overflow:hidden;
}
.author-home-text .author-intro{
  max-width:760px;
  margin:0 auto;
  padding:0;
  text-align:center;
}
.author-home-text .author-intro h2{
  font-size:clamp(2rem,3vw,3rem);
  margin-bottom:12px;
}
.author-home-text .author-intro p{
  max-width:680px;
  margin:0 auto 9px;
}
.author-home-text .author-ribbon{
  width:52%;
  right:-13%;
  left:auto;
  bottom:-58px;
  opacity:.45;
}

/* Internal Author page: one small portrait only */
.author-hero{
  min-height:360px;
  grid-template-columns:220px minmax(0,700px);
  gap:54px;
  padding-top:48px;
  padding-bottom:48px;
}
.author-page-photo{
  width:180px;
  height:180px;
}
.author-page-title h1{
  font-size:clamp(2.6rem,4vw,4.1rem);
}
.author-page-title .lead{
  font-size:1.02rem;
}

/* Compact global rhythm */
.story{padding-top:54px;padding-bottom:50px}
.story-heading{margin-bottom:24px}
.book-editorial{padding-top:68px;padding-bottom:68px}
.purchase{padding-top:42px;padding-bottom:42px}
.site-footer{min-height:82px}

/* Desktop-wide refinement */
@media(min-width:1280px){
  .hero.hero-editorial{
    grid-template-columns:minmax(430px,.94fr) minmax(490px,1.06fr);
  }
  .hero-editorial .hero-photo-frame{
    width:min(640px,100%);
  }
}

/* Tablet */
@media(max-width:980px){
  .hero.hero-editorial{
    padding:96px 32px 52px;
    grid-template-columns:1fr 1fr;
    gap:34px;
  }
  .hero-editorial .hero-art{
    min-height:280px;
  }
  .hero-editorial .hero-photo-frame{
    width:100%;
  }
  .hero-editorial .hero-copy h1{
    font-size:clamp(2rem,4vw,3rem);
  }
  .author-hero{
    grid-template-columns:180px 1fr;
    gap:34px;
  }
  .author-page-photo{
    width:150px;
    height:150px;
  }
}

/* Mobile: deliberate mobile composition, not a shrunk desktop hero */
@media(max-width:720px){
  .hero.hero-editorial{
    padding:82px 18px 42px;
    grid-template-columns:1fr;
    gap:22px;
  }
  .hero-editorial .hero-art{
    min-height:0;
    order:1;
  }
  .hero-editorial .hero-photo-frame{
    width:94%;
    max-width:450px;
    aspect-ratio:1.72/1;
    border-radius:42% 36% 42% 34% / 38% 44% 36% 42%;
    transform:rotate(-.6deg);
  }
  .hero-editorial .hero-ribbon{
    width:126%;
    height:88px;
    left:-13%;
    bottom:-16px;
  }
  .hero-editorial .hero-copy{
    order:2;
    text-align:center;
  }
  .hero-editorial .hero-copy .kicker{
    margin-bottom:9px;
  }
  .hero-editorial .hero-copy h1{
    max-width:520px;
    margin:0 auto 14px;
    font-size:clamp(1.9rem,8vw,2.45rem);
    line-height:1.13;
  }
  .hero-editorial .hero-rule{
    margin:16px auto 18px;
  }
  .hero-editorial .hero-actions{
    justify-content:center;
    gap:14px;
  }
  .timeline-image{
    height:190px;
  }
  .timeline-content{
    max-width:94%;
    inset:auto 14px 12px 14px;
  }
  .timeline-content .time-tag{
    margin-bottom:4px;
  }
  .timeline-content h3{
    font-size:1.08rem;
    margin-bottom:3px;
  }
  .timeline-content p{
    font-size:.74rem;
    line-height:1.32;
  }
  .author-home.author-home-text{
    padding:46px 20px 52px;
  }
  .author-home-text .author-intro h2{
    font-size:2rem;
  }
  .author-hero{
    padding:42px 20px 50px;
    grid-template-columns:1fr;
    gap:18px;
    text-align:center;
  }
  .author-page-photo{
    width:132px;
    height:132px;
    justify-self:center;
  }
  .author-page-title .lead{
    margin-left:auto;
    margin-right:auto;
  }
}


/* ============================================================
   FINAL V4 HERO UPDATE
   Edge-to-edge seamless hero with right-side fade and text over image
   ============================================================ */
.hero.hero-seamless{
  position:relative;
  min-height:470px;
  height:470px;
  padding-top:76px;
  overflow:hidden;
  background:var(--ivory);
  display:block;
}
.hero-seamless .hero-bg{
  position:absolute;
  inset:76px 0 0 0;
}
.hero-seamless .hero-bg img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  display:block;
}
.hero-seamless .hero-overlay{
  position:absolute;
  inset:76px 0 0 0;
  background:linear-gradient(90deg,
    rgba(247,243,236,0) 0%,
    rgba(247,243,236,0) 44%,
    rgba(247,243,236,.08) 58%,
    rgba(247,243,236,.34) 68%,
    rgba(247,243,236,.72) 80%,
    rgba(247,243,236,.96) 91%,
    var(--ivory) 100%);
  z-index:2;
}
.hero-seamless .hero-copy{
  position:relative;
  z-index:4;
  max-width:620px;
  margin-left:auto;
  padding:84px clamp(28px,5vw,86px) 0 0;
  text-align:left;
  background:none;
}
.hero-seamless .hero-copy h1{
  font-size:clamp(2rem,3.3vw,3.8rem);
  line-height:1.12;
  letter-spacing:-.03em;
  margin-bottom:18px;
}
.hero-seamless .hero-copy .kicker{
  margin-bottom:10px;
}
.hero-seamless .hero-rule{
  width:82px;
  height:1px;
  margin:18px 0 20px;
  background:linear-gradient(90deg,var(--gold),rgba(168,117,37,.18));
}
.hero-seamless .hero-actions{
  display:flex;
  gap:22px;
  align-items:center;
  flex-wrap:wrap;
}
.hero-seamless .hero-ribbon{
  position:absolute;
  z-index:3;
  left:-2%;
  right:-2%;
  bottom:-6px;
  width:104%;
  height:138px;
  opacity:.72;
  pointer-events:none;
}

/* Override prior editorial hero rules */
.hero.hero-editorial,
.hero-editorial .hero-art,
.hero-editorial .hero-photo-frame,
.hero-editorial .hero-photo-frame:after,
.hero-editorial .hero-photo-frame img,
.hero-editorial .hero-copy,
.hero-editorial .hero-rule,
.hero-editorial .hero-actions,
.hero-editorial .hero-ribbon{
  all:unset;
}

/* Tablet */
@media(max-width:980px){
  .hero.hero-seamless{
    min-height:430px;
    height:430px;
  }
  .hero-seamless .hero-bg,
  .hero-seamless .hero-overlay{
    inset:76px 0 0 0;
  }
  .hero-seamless .hero-copy{
    max-width:470px;
    padding:70px 36px 0 0;
  }
  .hero-seamless .hero-copy h1{
    font-size:clamp(1.9rem,4vw,3rem);
  }
  .hero-seamless .hero-ribbon{
    height:118px;
  }
}

/* Mobile: keep seamless image, but stack text lower with a stronger bottom fade */
@media(max-width:720px){
  .hero.hero-seamless{
    min-height:455px;
    height:455px;
    padding-top:66px;
  }
  .hero-seamless .hero-bg,
  .hero-seamless .hero-overlay{
    inset:66px 0 0 0;
  }
  .hero-seamless .hero-bg img{
    object-position:34% center;
  }
  .hero-seamless .hero-overlay{
    background:linear-gradient(180deg,
      rgba(247,243,236,0) 0%,
      rgba(247,243,236,0) 48%,
      rgba(247,243,236,.16) 62%,
      rgba(247,243,236,.55) 76%,
      rgba(247,243,236,.92) 90%,
      var(--ivory) 100%);
  }
  .hero-seamless .hero-copy{
    max-width:none;
    margin-left:0;
    padding:218px 20px 0;
    text-align:left;
  }
  .hero-seamless .hero-copy h1{
    font-size:clamp(1.8rem,7.8vw,2.3rem);
    max-width:340px;
    margin-bottom:14px;
  }
  .hero-seamless .hero-rule{
    margin:14px 0 16px;
  }
  .hero-seamless .hero-actions{
    gap:12px;
  }
  .hero-seamless .hero-ribbon{
    left:-8%;
    right:-8%;
    width:116%;
    height:92px;
    bottom:-10px;
  }
}


/* ============================================================
   V4 FINAL HERO
   Exact uploaded image + right-only seamless fade + responsive text
   ============================================================ */

.hero.hero-final{
  position:relative !important;
  display:block !important;
  width:100% !important;
  height:clamp(520px,37vw,690px) !important;
  min-height:520px !important;
  padding:76px 0 0 !important;
  margin:0 !important;
  overflow:hidden !important;
  background:var(--ivory) !important;
}

.hero-final-image{
  position:absolute;
  z-index:1;
  inset:76px 0 0 0;
  width:100%;
  height:calc(100% - 76px);
  object-fit:cover;
  object-position:50% 66%;
  display:block;
}

.hero-final-fade{
  position:absolute;
  z-index:2;
  inset:76px 0 0 0;
  pointer-events:none;
  background:linear-gradient(
    90deg,
    rgba(247,243,236,0) 0%,
    rgba(247,243,236,0) 48%,
    rgba(247,243,236,.05) 57%,
    rgba(247,243,236,.18) 66%,
    rgba(247,243,236,.42) 75%,
    rgba(247,243,236,.72) 85%,
    rgba(247,243,236,.94) 95%,
    var(--ivory) 100%
  );
}

.hero-final-copy{
  position:absolute;
  z-index:5;
  top:76px;
  right:clamp(32px,5vw,92px);
  bottom:38px;
  width:min(42vw,680px);
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  padding:18px 0 58px;
  background:transparent !important;
}

.hero-final-copy .kicker{
  margin:0 0 12px;
  font-size:clamp(.7rem,.8vw,.84rem);
}

.hero-final-copy h1{
  max-width:100%;
  margin:0;
  font-family:var(--serif);
  font-size:clamp(2.25rem,3.35vw,4.25rem);
  line-height:1.08;
  letter-spacing:-.035em;
  overflow:visible;
}

.hero-final-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:18px 26px;
  margin-top:30px;
}

.hero-final-ribbon{
  position:absolute;
  z-index:4;
  left:-1%;
  bottom:4px;
  width:102%;
  height:clamp(78px,8.4vw,132px);
  display:block !important;
  object-fit:fill;
  opacity:.9;
  pointer-events:none;
}

/* Medium desktop / landscape tablet */
@media (max-width:1180px){
  .hero.hero-final{
    height:clamp(500px,44vw,610px) !important;
    min-height:500px !important;
  }
  .hero-final-image{
    object-position:46% 66%;
  }
  .hero-final-copy{
    right:30px;
    width:43vw;
    bottom:28px;
    padding-bottom:48px;
  }
  .hero-final-copy h1{
    font-size:clamp(2rem,3.7vw,3.4rem);
  }
  .hero-final-actions{
    margin-top:22px;
    gap:14px 20px;
  }
}

/* Tablet portrait */
@media (max-width:860px){
  .hero.hero-final{
    height:500px !important;
    min-height:500px !important;
  }
  .hero-final-image{
    object-position:42% 68%;
  }
  .hero-final-fade{
    background:linear-gradient(
      90deg,
      rgba(247,243,236,0) 0%,
      rgba(247,243,236,.03) 36%,
      rgba(247,243,236,.22) 52%,
      rgba(247,243,236,.62) 72%,
      rgba(247,243,236,.94) 94%,
      var(--ivory) 100%
    );
  }
  .hero-final-copy{
    right:22px;
    width:48vw;
    bottom:24px;
    padding-bottom:42px;
  }
  .hero-final-copy h1{
    font-size:clamp(1.8rem,4.8vw,2.7rem);
    line-height:1.09;
  }
  .hero-final-actions{
    flex-direction:column;
    align-items:flex-start;
    gap:8px;
    margin-top:18px;
  }
  .hero-final-ribbon{
    width:104%;
    left:-2%;
    height:86px;
  }
}

/* Mobile */
@media (max-width:620px){
  .hero.hero-final{
    height:470px !important;
    min-height:470px !important;
    padding-top:66px !important;
  }
  .hero-final-image{
    inset:66px 0 0 0;
    height:calc(100% - 66px);
    object-position:43% 68%;
  }
  .hero-final-fade{
    inset:66px 0 0 0;
    background:linear-gradient(
      90deg,
      rgba(247,243,236,0) 0%,
      rgba(247,243,236,.08) 32%,
      rgba(247,243,236,.42) 52%,
      rgba(247,243,236,.78) 72%,
      rgba(247,243,236,.96) 92%,
      var(--ivory) 100%
    );
  }
  .hero-final-copy{
    top:66px;
    right:14px;
    bottom:18px;
    width:52vw;
    min-width:188px;
    padding:18px 0 54px;
  }
  .hero-final-copy .kicker{
    font-size:.62rem;
    letter-spacing:.13em;
    margin-bottom:8px;
  }
  .hero-final-copy h1{
    font-size:clamp(1.48rem,6.2vw,2rem);
    line-height:1.08;
    letter-spacing:-.025em;
  }
  .hero-final-actions{
    margin-top:15px;
    gap:6px;
  }
  .hero-final-actions .button{
    min-height:40px;
    padding:0 14px;
    font-size:.67rem;
  }
  .hero-final-actions .text-action{
    font-size:.65rem;
    padding:6px 0;
  }
  .hero-final-ribbon{
    display:block !important;
    left:-3%;
    bottom:2px;
    width:106%;
    height:70px;
    opacity:.82;
  }
}

/* Very narrow phones */
@media (max-width:390px){
  .hero.hero-final{
    height:445px !important;
    min-height:445px !important;
  }
  .hero-final-image{
    object-position:41% 68%;
  }
  .hero-final-copy{
    right:12px;
    width:53vw;
    min-width:176px;
    padding-bottom:48px;
  }
  .hero-final-copy h1{
    font-size:1.42rem;
  }
}


/* Contact form: live Cloudflare form */
.contact-honeypot{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.turnstile-wrap{
  grid-column:1/-1;
  min-height:66px;
}
.contact-submit-row{
  grid-column:1/-1;
  display:flex;
  align-items:center;
  gap:18px;
  min-height:48px;
}
.form-status{
  margin:0;
  font-size:.88rem;
  line-height:1.4;
  color:var(--muted);
}
.form-status.is-success{color:#2f7555}
.form-status.is-error{color:#9b3d48}
.contact-form .button[disabled]{
  opacity:.58;
  cursor:wait;
}
.contact-form input[aria-invalid="true"],
.contact-form textarea[aria-invalid="true"]{
  border-bottom-color:#9b3d48;
}
@media(max-width:720px){
  .turnstile-wrap,
  .contact-submit-row{grid-column:1/-1}
  .contact-submit-row{
    align-items:flex-start;
    flex-direction:column;
    gap:10px;
  }
}
