/* ═══════════════════════════════════════════
   FOLIO — author / novelist template
   Built like a book: ivory stock, a single
   reading measure, real drop caps, and type
   that behaves at length.
   ═══════════════════════════════════════════ */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}

:root{
  --page:#ECF0F3;      /* cool slate paper — deliberately not cream */
  --page-2:#E0E7EC;
  --board:#D3DCE3;
  --ink:#1A2431;       /* ink navy */
  --soft:#5C6673;
  --rule:#CAD3DB;
  --green:#1F5066;     /* petrol blue — primary accent */
  --gold:#B0533B;      /* warm brick — secondary accent */
  --disp:'Newsreader',Georgia,serif;
  --ui:'Karla',system-ui,sans-serif;
}

html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}

body{
  background:var(--page);color:var(--ink);
  font-family:var(--disp);font-weight:400;font-size:17px;line-height:1.75;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{display:block;width:100%;height:100%;object-fit:cover;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}

.wrap{max-width:1220px;margin:0 auto;padding:0 34px;}
.measure{max-width:660px;}

/* ── reveal (JS-gated; never traps content hidden) ── */
.js .rv{opacity:0;transform:translateY(18px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);}
.js .rv.in{opacity:1;transform:none;}
.js .rv.d1{transition-delay:.09s;} .js .rv.d2{transition-delay:.18s;} .js .rv.d3{transition-delay:.27s;}
@media (prefers-reduced-motion:reduce){
  .js .rv{opacity:1!important;transform:none!important;transition:none!important;}
}
/* hairline rules that draw themselves in */
.drawn{height:1px;background:var(--rule);transform:scaleX(0);transform-origin:left;
  transition:transform 1.2s cubic-bezier(.16,1,.3,1);}
.js .drawn.in{transform:scaleX(1);}
@media (prefers-reduced-motion:reduce){.drawn{transform:none!important;}}

/* ── type ── */
.eyebrow{
  font-family:var(--ui);font-size:11px;font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;color:var(--gold);
}
h1,h2,h3{font-family:var(--disp);font-weight:400;letter-spacing:-.015em;line-height:1.08;color:var(--ink);}
em{font-style:italic;}

.btn{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--ui);font-size:12px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;
  padding:15px 26px;border:1px solid var(--ink);color:var(--ink);
  position:relative;overflow:hidden;transition:color .34s;
}
.btn span{position:relative;z-index:2;}
.btn::before{
  content:'';position:absolute;inset:0;background:var(--ink);
  transform:translateY(101%);transition:transform .42s cubic-bezier(.16,1,.3,1);z-index:1;
}
.btn:hover::before{transform:translateY(0);}
.btn:hover{color:var(--page);}
.btn-solid{background:var(--green);border-color:var(--green);color:var(--page);}
.btn-solid::before{background:var(--ink);}
.btn-solid:hover{color:var(--page);}
.btn-sm{padding:11px 18px;font-size:11px;}

/* ══ NAV ══ */
.nav{
  position:sticky;top:0;z-index:200;background:var(--page);
  display:flex;align-items:center;justify-content:space-between;gap:28px;
  padding:16px 34px;border-bottom:1px solid transparent;transition:border-color .35s,box-shadow .35s;
}
.nav.stuck{border-bottom-color:var(--rule);box-shadow:0 6px 18px rgba(30,28,24,.045);}
.nav-logo{font-family:var(--disp);font-size:22px;letter-spacing:.02em;}
.nav-logo b{font-weight:400;font-style:italic;}
.nav-links{display:flex;gap:28px;}
.nav-links a{
  font-family:var(--ui);font-size:12px;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--soft);position:relative;padding-bottom:3px;transition:color .3s;
}
.nav-links a::after{
  content:'';position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--gold);
  transform:scaleX(0);transform-origin:right;transition:transform .34s cubic-bezier(.16,1,.3,1);
}
.nav-links a:hover{color:var(--ink);}
.nav-links a:hover::after{transform:scaleX(1);transform-origin:left;}
.burger{display:none;flex-direction:column;gap:5px;padding:6px;}
.burger span{display:block;width:22px;height:1.5px;background:var(--ink);}

/* ══ HERO ══ */
.hero{padding:clamp(54px,7vw,96px) 0 clamp(56px,6vw,90px);position:relative;overflow:hidden;}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(34px,5vw,84px);align-items:center;}
.hero .eyebrow{display:block;margin-bottom:20px;}
.hero h1{
  font-size:clamp(42px,6.4vw,92px);line-height:1.02;margin-bottom:24px;letter-spacing:-.025em;
}
.hero h1 em{color:var(--green);}
.ln{display:block;overflow:hidden;}
.ln i{display:block;font-style:inherit;transform:translateY(105%);}
.js .hero h1 .ln i{animation:foRise 1s cubic-bezier(.16,1,.3,1) forwards;}
.js .hero h1 .ln:nth-child(1) i{animation-delay:.1s;}
.js .hero h1 .ln:nth-child(2) i{animation-delay:.22s;}
@keyframes foRise{to{transform:translateY(0);}}
@media (prefers-reduced-motion:reduce){.ln i{transform:none!important;animation:none!important;}}
.hero p{font-size:17.5px;line-height:1.85;color:var(--soft);max-width:46ch;margin-bottom:28px;}
.hero-actions{display:flex;gap:11px;flex-wrap:wrap;}

/* stacked covers, gently offset */
.hero-books{position:relative;padding:14px 0;}
.hero-books .bk{
  position:absolute;width:62%;box-shadow:0 22px 44px rgba(30,28,24,.24);
  border-radius:2px 4px 4px 2px;overflow:hidden;
}
.hero-books .bk1{position:relative;z-index:3;margin-left:16%;}
.hero-books .bk2{top:9%;left:0;width:52%;z-index:2;transform:rotate(-7deg);}
.hero-books .bk3{top:16%;right:0;width:50%;z-index:1;transform:rotate(6deg);}
.hero-books .bk::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(0,0,0,.28) 0%,rgba(0,0,0,0) 7%,rgba(255,255,255,.07) 50%,rgba(0,0,0,.08) 100%);
}

/* ══ SECTIONS ══ */
.sec{padding:clamp(66px,7.5vw,110px) 0;position:relative;}
.sec-2{background:var(--page-2);}
.sec-board{background:var(--board);}
.sec-green{background:var(--green);color:var(--page);}
.sec-green h2,.sec-green h3{color:var(--page);}

.head{margin-bottom:clamp(32px,4vw,54px);}
.head .eyebrow{display:block;margin-bottom:14px;}
.head h2{font-size:clamp(30px,4.4vw,58px);margin-bottom:16px;}
.head h2 em{color:var(--green);}
.sec-green .head h2 em{color:var(--board);}
.head p{font-size:17px;line-height:1.85;color:var(--soft);max-width:60ch;}
.sec-green .head p{color:rgba(251,248,241,.76);}

/* ══ FEATURED BOOK ══ */
.feature{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(32px,4.6vw,72px);align-items:center;}
.feature-cover{position:relative;box-shadow:0 26px 52px rgba(30,28,24,.26);border-radius:2px 5px 5px 2px;overflow:hidden;}
.feature-cover::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(0,0,0,.3) 0%,rgba(0,0,0,0) 7%,rgba(255,255,255,.07) 50%,rgba(0,0,0,.08) 100%);
}
.feature h2{font-size:clamp(30px,4.2vw,54px);margin-bottom:8px;}
.feature .sub{font-family:var(--ui);font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:22px;}
.feature p{font-size:17px;line-height:1.85;color:var(--soft);margin-bottom:16px;}
.buy{display:flex;flex-wrap:wrap;gap:9px;margin-top:26px;}
.buy a{
  font-family:var(--ui);font-size:11.5px;font-weight:600;letter-spacing:.1em;
  border:1px solid var(--rule);padding:11px 16px;color:var(--soft);transition:border-color .3s,color .3s;
}
.buy a:hover{border-color:var(--ink);color:var(--ink);}
.pull{
  border-left:2px solid var(--gold);padding:4px 0 4px 20px;margin:24px 0;
  font-style:italic;font-size:19px;line-height:1.6;color:var(--ink);
}
.pull cite{display:block;font-style:normal;font-family:var(--ui);font-size:11.5px;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--soft);margin-top:10px;}

/* ══ EXCERPT READER — the signature piece ══ */
.reader{
  background:var(--page);border:1px solid var(--rule);
  max-width:760px;margin:0 auto;position:relative;
  box-shadow:0 20px 50px rgba(30,28,24,.07);
}
.reader-top{
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:16px 30px;border-bottom:1px solid var(--rule);
  font-family:var(--ui);font-size:11px;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:var(--soft);
}
.reader-body{padding:clamp(30px,4vw,54px) clamp(26px,4.4vw,62px);min-height:430px;position:relative;}
.pg{display:none;}
.pg.on{display:block;animation:foPage .55s cubic-bezier(.16,1,.3,1) both;}
@keyframes foPage{from{opacity:0;transform:translateX(14px);}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion:reduce){.pg.on{animation:none;}}
.pg p{font-size:18px;line-height:1.9;margin-bottom:19px;text-align:justify;hyphens:auto;}
.pg p:last-child{margin-bottom:0;}
/* real drop cap on the opening page only */
.pg.first p:first-of-type::first-letter{
  float:left;font-size:4.6em;line-height:.82;padding:.06em .1em 0 0;
  font-weight:400;color:var(--green);
}
.reader-foot{
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:14px 22px 14px 30px;border-top:1px solid var(--rule);
}
.reader-nav{display:flex;gap:8px;}
.reader-nav button{
  font-family:var(--ui);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  border:1px solid var(--rule);padding:10px 16px;color:var(--ink);transition:border-color .3s,background .3s,color .3s;
}
.reader-nav button:hover:not(:disabled){background:var(--ink);border-color:var(--ink);color:var(--page);}
.reader-nav button:disabled{opacity:.32;cursor:default;}
.reader-count{font-family:var(--ui);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--soft);}
.reader-bar{height:2px;background:var(--rule);position:relative;overflow:hidden;}
.reader-bar i{position:absolute;inset:0 auto 0 0;width:0;background:var(--green);transition:width .5s cubic-bezier(.16,1,.3,1);}
.reader-after{text-align:center;margin-top:26px;}
.reader-after p{font-size:15px;color:var(--soft);margin-bottom:16px;}

/* ══ BOOKSHELF ══ */
.shelf{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(22px,3vw,42px);}
.book{display:block;}
.book-cov{
  position:relative;box-shadow:0 16px 32px rgba(30,28,24,.18);
  border-radius:2px 4px 4px 2px;overflow:hidden;
  transition:transform .5s cubic-bezier(.16,1,.3,1),box-shadow .5s;
}
.book:hover .book-cov{transform:translateY(-8px) rotate(-1deg);box-shadow:0 26px 46px rgba(30,28,24,.26);}
.book-cov::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(0,0,0,.3) 0%,rgba(0,0,0,0) 7%,rgba(255,255,255,.07) 50%,rgba(0,0,0,.08) 100%);
}
.book-meta{margin-top:16px;}
.book-meta h3{font-size:22px;margin-bottom:3px;}
.book-meta span{font-family:var(--ui);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--soft);}

/* ══ PRAISE ══ */
.praise{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.6vw,38px);}
.quote{border-top:2px solid var(--gold);padding-top:22px;}
.quote blockquote{font-size:19px;line-height:1.68;font-style:italic;margin-bottom:14px;}
.sec-green .quote{border-top-color:var(--board);}
.sec-green .quote blockquote{color:var(--page);}
.quote cite{font-style:normal;font-family:var(--ui);font-size:11px;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:var(--soft);}
.sec-green .quote cite{color:rgba(251,248,241,.66);}

/* ══ ABOUT ══ */
.about{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(32px,4.4vw,72px);align-items:center;}
.about-img{aspect-ratio:4/5;overflow:hidden;}
.about-img img{filter:grayscale(.2);}
.about h2{font-size:clamp(28px,4vw,52px);margin-bottom:18px;}
.about h2 em{color:var(--green);}
.about p{font-size:17px;line-height:1.85;color:var(--soft);margin-bottom:15px;}

/* ══ EVENTS ══ */
.events{border-top:1px solid var(--rule);}
.ev{
  display:grid;grid-template-columns:130px 1fr auto;gap:26px;align-items:baseline;
  padding:22px 4px;border-bottom:1px solid var(--rule);
  transition:padding-left .4s cubic-bezier(.16,1,.3,1);
}
.ev:hover{padding-left:16px;}
.ev-date{font-family:var(--ui);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);}
.ev-what h3{font-size:21px;margin-bottom:3px;}
.ev-what p{font-size:14.5px;color:var(--soft);}
.ev-city{font-family:var(--ui);font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--soft);white-space:nowrap;}

/* ══ NEWSLETTER ══ */
.news{max-width:620px;margin:0 auto;text-align:center;}
.news h2{font-size:clamp(28px,4vw,50px);margin-bottom:14px;}
.news p{font-size:16.5px;line-height:1.8;color:rgba(251,248,241,.76);margin-bottom:26px;}
.news form{display:flex;gap:9px;flex-wrap:wrap;justify-content:center;}
.news input{
  flex:1 1 260px;background:transparent;border:1px solid rgba(251,248,241,.34);
  color:var(--page);font-family:var(--disp);font-size:16px;padding:14px 16px;
}
.news input::placeholder{color:rgba(251,248,241,.5);}
.news input:focus{outline:none;border-color:var(--board);}
.news .btn{border-color:var(--board);color:var(--page);}
.news .btn::before{background:var(--board);}
.news .btn:hover{color:var(--green);}
.news small{display:block;margin-top:14px;font-family:var(--ui);font-size:11.5px;color:rgba(251,248,241,.55);}

/* ══ FAQ ══ */
.faq{border-top:1px solid var(--rule);max-width:840px;}
.faq details{border-bottom:1px solid var(--rule);}
.faq summary{
  list-style:none;cursor:pointer;padding:20px 0;display:flex;
  justify-content:space-between;align-items:center;gap:20px;
  font-size:20px;transition:color .3s;
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary:hover{color:var(--green);}
.faq summary::after{content:'+';font-family:var(--ui);font-size:19px;color:var(--gold);transition:transform .35s;}
.faq details[open] summary::after{transform:rotate(45deg);}
.faq p{padding:0 0 22px;font-size:16.5px;line-height:1.85;color:var(--soft);max-width:70ch;}

/* ══ CONTACT ══ */
.contact{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,64px);}
.c-block h3{font-size:21px;margin-bottom:6px;}
.c-block p{font-size:16px;color:var(--soft);line-height:1.8;}
.c-block + .c-block{margin-top:26px;}

/* ══ FOOTER ══ */
.foot{background:var(--ink);color:var(--page);padding:58px 0 28px;}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:32px;margin-bottom:44px;}
.foot-logo{font-family:var(--disp);font-size:26px;margin-bottom:12px;}
.foot-logo b{font-weight:400;font-style:italic;}
.foot p{font-size:15px;line-height:1.8;color:rgba(251,248,241,.6);}
.foot h5{font-family:var(--ui);font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;margin-bottom:13px;}
.foot a{display:block;font-size:15px;color:rgba(251,248,241,.6);margin-bottom:7px;transition:color .3s;}
.foot a:hover{color:var(--board);}
.foot-bot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;
  border-top:1px solid rgba(251,248,241,.16);padding-top:22px;
  font-family:var(--ui);font-size:11.5px;color:rgba(251,248,241,.42);}
.foot-bot a{display:inline;color:rgba(251,248,241,.72);}

.byline{
  background:var(--page-2);border-top:1px solid var(--rule);padding:15px 34px;text-align:center;
  font-family:var(--ui);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--soft);
}
.byline a{color:var(--green);}

/* ══ RESPONSIVE ══ */
@media(max-width:1000px){
  .shelf{grid-template-columns:repeat(2,1fr);}
  .praise{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:820px){
  .nav-links{display:none;}
  .burger{display:flex;}
  .hero-grid,.feature,.about,.contact{grid-template-columns:1fr;}
  .hero-books{max-width:340px;margin:0 auto;}
  .ev{grid-template-columns:1fr;gap:6px;}
  .ev-city{grid-row:1;justify-self:start;}
}
@media(max-width:560px){
  .wrap{padding:0 20px;}
  .nav{padding:14px 20px;}
  .shelf{grid-template-columns:1fr 1fr;gap:20px;}
  .book-meta h3{font-size:18px;}
  .pg p{text-align:left;font-size:17px;}
  .reader-foot{flex-direction:column;align-items:stretch;gap:12px;}
  .reader-count{text-align:center;}
  .foot-grid{grid-template-columns:1fr;}
}
