:root{
  --ink:#16323A;
  --backwater:#1F5B5E;
  --copper:#C1592E;
  --copper-light:#E08B5B;
  --parchment:#E8DCC3;
  --paper:#FBF6EC;
  --mist:#8FA6A3;
  --mist-dark:#57706C;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Source Serif 4', serif;
  line-height:1.65;
}
a{color:inherit;}
.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:12px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--copper);
}
h1,h2,h3{
  font-family:'Fraunces', serif;
  font-weight:500;
  letter-spacing:-0.01em;
}

/* NAV */
nav{
  position:sticky; top:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:22px 6vw;
  background:rgba(250,247,238,0.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid rgba(20,32,28,0.08);
}
.wordmark{
  font-family:'Fraunces', serif;
  font-weight:500;
  font-size:19px;
  letter-spacing:-0.01em;
  color:var(--ink);
  text-decoration:none;
}
.navlinks{display:flex; gap:36px; font-family:'IBM Plex Mono', monospace; font-size:13px;}
.navlinks a{color:var(--ink); text-decoration:none; opacity:0.72; transition:opacity .2s;}
.navlinks a:hover, .navlinks a.active{opacity:1;}

/* HERO (homepage, full) */
.hero{
  background:var(--ink);
  color:var(--paper);
  padding:11vw 6vw 8vw;
  position:relative;
  overflow:hidden;
}
.hero-inner{max-width:900px; margin:0 auto; text-align:center; position:relative; z-index:2;}
.hero .eyebrow{color:var(--copper-light); margin-bottom:22px; display:block;}
.hero h1{
  font-size:clamp(44px, 8vw, 92px);
  line-height:0.98;
  color:var(--paper);
  margin-bottom:26px;
}
.hero p.tagline{
  font-size:19px;
  color:var(--mist);
  max-width:560px;
  margin:0 auto 40px;
  font-style:italic;
}
.cta-row{display:flex; gap:18px; justify-content:center; flex-wrap:wrap;}
.btn{
  font-family:'IBM Plex Mono', monospace;
  font-size:13px;
  letter-spacing:0.04em;
  padding:14px 28px;
  text-decoration:none;
  border:1px solid var(--copper);
  color:var(--paper);
  transition:all .2s;
  display:inline-block;
  cursor:pointer;
  background:none;
}
.btn.solid{background:var(--copper); color:var(--ink);}
.btn.solid:hover{background:var(--copper-light);}
.btn.on-light{color:var(--ink);}
.btn:not(.solid):hover{background:rgba(184,99,47,0.14);}

.waterline{
  position:absolute; left:0; right:0; bottom:0; width:100%; height:180px;
}

/* PAGE HERO (about, contact, book detail — shorter) */
.page-hero{
  background:var(--ink); color:var(--paper);
  padding:6vw 6vw 5vw; position:relative; overflow:hidden;
}
.page-hero-inner{max-width:760px; margin:0 auto; position:relative; z-index:2;}
.page-hero .eyebrow{color:var(--copper-light); margin-bottom:16px; display:block;}
.page-hero h1{font-size:clamp(32px,5.5vw,56px); color:var(--paper);}
.breadcrumb{
  font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--mist);
  margin-bottom:20px;
}
.breadcrumb a{color:var(--mist); text-decoration:none;}
.breadcrumb a:hover{color:var(--copper-light);}
.page-hero .waterline{height:110px;}

/* SECTION SHELL */
section{padding:7vw 6vw;}
.section-head{max-width:640px; margin:0 auto 56px; text-align:center;}
.section-head .eyebrow{margin-bottom:14px; display:block;}
.section-head h2{font-size:clamp(28px,4vw,40px);}

/* DIVIDER */
.divider{width:100%; height:56px; background:var(--paper);}
.divider.on-parchment{background:var(--parchment);}
.divider svg{width:100%; height:100%; display:block;}

/* BOOKS LIST */
.books{background:var(--paper); max-width:1080px; margin:0 auto;}
.book-row{
  display:grid; grid-template-columns:180px 1fr; gap:44px;
  padding:44px 0;
  border-top:1px solid rgba(20,32,28,0.12);
  align-items:center;
}
.book-row:last-child{border-bottom:1px solid rgba(20,32,28,0.12);}
.cover{
  width:180px; height:260px;
  display:flex; flex-direction:column; justify-content:space-between;
  padding:20px 18px;
  position:relative;
  box-shadow:0 14px 30px -14px rgba(20,32,28,0.35);
}
.cover.large{width:260px; height:375px; padding:28px 24px;}
.cover .cvr-eyebrow{font-family:'IBM Plex Mono', monospace; font-size:9.5px; letter-spacing:0.1em; text-transform:uppercase;}
.cover.large .cvr-eyebrow{font-size:11px;}
.cover .cvr-title{font-family:'Fraunces', serif; font-size:19px; line-height:1.12; font-weight:500;}
.cover.large .cvr-title{font-size:27px;}
.cover .cvr-author{font-family:'IBM Plex Mono', monospace; font-size:9.5px; letter-spacing:0.06em;}
.cover.large .cvr-author{font-size:11px;}
.cover.cvr-1{background:linear-gradient(180deg,#1F5B5E,#16323A); color:var(--parchment);}
.cover.cvr-2{background:#16323A; color:var(--parchment); border:1px solid var(--copper);}
.cover.cvr-3{background:var(--parchment); color:var(--ink); border:1px solid rgba(20,32,28,0.2);}

.cover.cvr-photo{
  padding:0; overflow:hidden; justify-content:flex-end;
  border:1px solid rgba(20,32,28,0.15);
}
.cover.cvr-photo img{
  width:100%; height:100%; object-fit:cover; display:block;
}
.cover.cvr-photo.large{padding:0;}

.book-meta .eyebrow{margin-bottom:10px; display:block;}
.book-meta h3{font-size:26px; margin-bottom:12px;}
.book-meta p{color:var(--mist-dark); font-size:15.5px; max-width:520px; margin-bottom:16px;}
.book-meta a.readmore{
  font-family:'IBM Plex Mono', monospace; font-size:12.5px; color:var(--copper);
  text-decoration:none; border-bottom:1px solid var(--copper); padding-bottom:2px;
}
.tag{
  display:inline-block; font-family:'IBM Plex Mono', monospace; font-size:10.5px;
  letter-spacing:0.06em; text-transform:uppercase; color:var(--mist-dark);
  border:1px solid rgba(20,32,28,0.25); padding:3px 9px; margin-right:8px; margin-bottom:8px;
}

/* BOOK DETAIL PAGE */
.book-detail{max-width:1000px; margin:0 auto;}
.detail-grid{display:grid; grid-template-columns:260px 1fr; gap:60px; align-items:start;}
.detail-body p{color:var(--mist-dark); font-size:16px; margin-bottom:18px; max-width:600px;}
.detail-body h3{font-size:20px; margin:32px 0 14px;}
.purchase-links{display:flex; gap:14px; flex-wrap:wrap; margin-top:24px;}
.excerpt{
  background:var(--parchment); padding:36px 40px; margin-top:20px;
  font-style:italic; color:var(--ink); font-size:16px; max-width:600px;
  border-left:2px solid var(--copper);
}

/* ABOUT */
.about{background:var(--parchment);}
.about-inner{
  max-width:1000px; margin:0 auto;
  display:grid; grid-template-columns:220px 1fr; gap:56px; align-items:start;
}
.portrait{
  width:220px; height:220px; border-radius:50%;
  background:var(--ink);
  display:flex; align-items:center; justify-content:center;
  font-family:'Fraunces', serif; font-size:52px; color:var(--copper-light);
  overflow:hidden;
}
.portrait img{
  width:100%; height:100%; object-fit:cover; display:block;
}
.about-text .eyebrow{margin-bottom:14px; display:block;}
.about-text h2{font-size:30px; margin-bottom:20px;}
.about-text p{color:var(--mist-dark); font-size:16px; margin-bottom:16px; max-width:600px;}
.about-text strong{color:var(--ink); font-weight:500;}

.timeline{max-width:640px; margin:60px auto 0;}
.timeline-row{
  display:grid; grid-template-columns:110px 1fr; gap:24px;
  padding:18px 0; border-top:1px solid rgba(20,32,28,0.15);
}
.timeline-row:last-child{border-bottom:1px solid rgba(20,32,28,0.15);}
.timeline-row .yr{font-family:'IBM Plex Mono', monospace; font-size:13px; color:var(--copper);}
.timeline-row p{color:var(--mist-dark); font-size:15px;}

/* BLOG */
.blog-list{max-width:760px; margin:0 auto;}
.blog-row{
  padding:38px 0;
  border-top:1px solid rgba(20,32,28,0.12);
}
.blog-row:last-child{border-bottom:1px solid rgba(20,32,28,0.12);}
.blog-row .eyebrow{margin-bottom:12px; display:block;}
.blog-row h3{font-size:24px; margin-bottom:12px;}
.blog-row h3 a{text-decoration:none; color:var(--ink);}
.blog-row h3 a:hover{color:var(--copper);}
.blog-row p{color:var(--mist-dark); font-size:15.5px; margin-bottom:14px; max-width:640px;}

.post-body{max-width:640px; margin:0 auto;}
.post-meta{
  font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--mist-dark);
  margin-bottom:32px; padding-bottom:24px; border-bottom:1px solid rgba(20,32,28,0.12);
}
.post-body p{color:var(--ink); font-size:16.5px; margin-bottom:20px;}
.post-body p.lead{font-size:19px; color:var(--mist-dark); font-style:italic;}
.newsletter{background:var(--ink); color:var(--paper); text-align:center;}
.newsletter-inner{max-width:560px; margin:0 auto;}
.newsletter h2{color:var(--paper); font-size:clamp(26px,4vw,36px); margin-bottom:16px;}
.newsletter p{color:var(--mist); margin-bottom:32px; font-size:15.5px;}
.form-row{display:flex; gap:0; max-width:420px; margin:0 auto;}
input[type=email], input[type=text], textarea{
  width:100%;
  background:transparent; border:1px solid var(--mist-dark);
  padding:14px 16px; color:var(--paper);
  font-family:'Source Serif 4', serif; font-size:15px;
}
input[type=email]::placeholder, input[type=text]::placeholder, textarea::placeholder{color:var(--mist-dark);}
.form-row input{border-right:none;}
.form-row button{
  font-family:'IBM Plex Mono', monospace; font-size:13px;
  background:var(--copper); color:var(--ink); border:1px solid var(--copper);
  padding:0 24px; cursor:pointer; transition:background .2s;
}
.form-row button:hover{background:var(--copper-light);}

.contact-form{max-width:520px; margin:0 auto; text-align:left;}
.contact-form label{
  font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.06em;
  text-transform:uppercase; color:var(--mist); display:block; margin-bottom:8px;
}
.contact-form .field{margin-bottom:22px;}
.contact-form textarea{min-height:140px; resize:vertical;}
.contact-form button{
  font-family:'IBM Plex Mono', monospace; font-size:13px;
  background:var(--copper); color:var(--ink); border:1px solid var(--copper);
  padding:14px 28px; cursor:pointer; transition:background .2s;
}
.contact-form button:hover{background:var(--copper-light);}

.social-row{display:flex; gap:20px; justify-content:center; margin-top:36px; flex-wrap:wrap;}
.social-row a{
  font-family:'IBM Plex Mono', monospace; font-size:13px; color:var(--mist);
  text-decoration:none; border:1px solid var(--mist-dark); padding:10px 20px;
}
.social-row a:hover{color:var(--copper-light); border-color:var(--copper);}

/* FOOTER */
footer{
  background:var(--ink); color:var(--mist);
  padding:34px 6vw; display:flex; justify-content:space-between; align-items:center;
  font-family:'IBM Plex Mono', monospace; font-size:12px;
  border-top:1px solid rgba(230,223,203,0.1);
  flex-wrap:wrap; gap:12px;
}
footer a{color:var(--mist); text-decoration:none;}
footer a:hover{color:var(--copper-light);}

@media (max-width:720px){
  .book-row{grid-template-columns:1fr; text-align:center;}
  .cover{margin:0 auto;}
  .about-inner{grid-template-columns:1fr; text-align:center;}
  .portrait{margin:0 auto;}
  .form-row{flex-direction:column;}
  .form-row input{border-right:1px solid var(--mist-dark); margin-bottom:10px;}
  .detail-grid{grid-template-columns:1fr; text-align:center;}
  .cover.large{margin:0 auto;}
  .timeline-row{grid-template-columns:1fr; text-align:center; gap:6px;}
}
