/* Shared stylesheet for /books and the individual book pages. */
@font-face{font-family:"Inter Tight";src:url("/assets/fonts/InterDisplay-Medium.woff2") format("woff2");font-weight:500;font-display:swap;}
@font-face{font-family:"Inter Tight";src:url("/assets/fonts/InterDisplay-SemiBold.woff2") format("woff2");font-weight:600 700;font-display:swap;}
@font-face{font-family:"Inter";src:url("/assets/fonts/Inter-Regular.woff2") format("woff2");font-weight:400;font-display:swap;}
@font-face{font-family:"Inter";src:url("/assets/fonts/Inter-Medium.woff2") format("woff2");font-weight:500;font-display:swap;}
@font-face{font-family:"Inter";src:url("/assets/fonts/Inter-SemiBold.woff2") format("woff2");font-weight:600;font-display:swap;}
@font-face{font-family:"JetBrains Mono";src:url("/assets/fonts/JetBrainsMono-Medium.woff2") format("woff2");font-weight:400 500;font-display:swap;}

:root{
  --paper:#fff; --paper-2:#f5f5f7; --ink:#1a1a1c; --ink-soft:#6e6e73;
  --hair:#e3e3e6; --crimson:#930b14; --crimson-deep:#6e080f;
  --tan:#ded8ca; --tan-soft:#75705f;
  --crimson-lit:#c4141f;
  --void:#0c0c0e; --void-2:#141417; --bone:#f4f2ec; --bone-soft:#9a978f;
  --hairD:rgba(244,242,236,.14);
  --g:#61bb46; --y:#f6bb18; --o:#f5821f; --r:#e03a3e; --p:#963d97; --b:#009ddc;
  --fd:-apple-system,BlinkMacSystemFont,"SF Pro Display","Inter Tight","Helvetica Neue",Helvetica,Arial,sans-serif;
  --fb:-apple-system,BlinkMacSystemFont,"SF Pro Text","Inter","Helvetica Neue",Helvetica,Arial,sans-serif;
  --fm:ui-monospace,SFMono-Regular,"SF Mono","JetBrains Mono",Menlo,Consolas,monospace;
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--fb);
  font-size:20px;line-height:1.7;-webkit-font-smoothing:antialiased;}
h1,h2,h3{font-family:var(--fd);margin:0;font-weight:600;}
p{margin:0 0 1.15em;} p:last-child{margin-bottom:0;}
a{color:inherit;} img{max-width:100%;display:block;}
:focus-visible{outline:2px solid var(--crimson);outline-offset:4px;border-radius:3px;}

.band{padding:clamp(66px,9vw,116px) 24px;}
.band--gray{background:var(--paper-2);}
.band--ink{background:var(--ink);color:#fff;}
.band--void{background:var(--void);color:var(--bone);}
.band--void .eyebrow{color:var(--bone-soft);}
.band--void .eyebrow::before{border-color:var(--y);}
.band--void h2{color:var(--bone);}
.band--void .q{border-color:var(--hairD);}
.band--void .q cite{color:var(--bone-soft);}
.bands{display:flex;flex-direction:column;width:100%;}
.bands i{display:block;height:6px;width:100%;}
.bands i:nth-child(1){background:var(--g);} .bands i:nth-child(2){background:var(--y);}
.bands i:nth-child(3){background:var(--o);} .bands i:nth-child(4){background:var(--r);}
.bands i:nth-child(5){background:var(--p);} .bands i:nth-child(6){background:var(--b);}
.wrap{max-width:720px;margin:0 auto;}
.wrap--wide{max-width:1040px;margin:0 auto;}

.eyebrow{font-family:var(--fm);font-size:13px;font-weight:500;letter-spacing:.13em;
  text-transform:uppercase;color:var(--ink-soft);display:flex;align-items:center;gap:11px;margin:0 0 24px;}
.eyebrow::before{content:"";width:10px;height:10px;border-radius:50%;
  border:1.5px solid var(--crimson);flex:0 0 auto;}
.eyebrow--c{justify-content:center;}
.band--ink .eyebrow{color:rgba(255,255,255,.55);}
.band--ink .eyebrow::before{border-color:#fff;}
h2{font-size:clamp(1.9rem,4vw,2.8rem);line-height:1.14;letter-spacing:-.016em;
  margin-bottom:.6em;text-wrap:balance;}
h3{font-size:1.24rem;letter-spacing:-.014em;}

/* ---------- topbar ---------- */
.top{border-bottom:1px solid var(--hairD);padding:16px 24px;background:var(--void);}
.top__in{max-width:1040px;margin:0 auto;display:flex;justify-content:space-between;
  align-items:center;gap:20px;}
.top a{text-decoration:none;font-family:var(--fm);font-size:11.5px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--bone-soft);}
.top a:hover{color:var(--y);}
.top .home{color:var(--bone);font-family:var(--fd);font-weight:600;font-size:1.02rem;
  letter-spacing:-.014em;text-transform:none;}

/* ---------- cover ---------- */
.cover span{display:block;position:relative;transition:transform .3s ease;}
.cover:hover span{transform:translateY(-5px);}
.cover img{width:100%;height:auto;display:block;border-radius:2px;
  box-shadow:0 34px 74px -34px rgba(0,0,0,.95);}

/* ---------- hero ---------- */
.hero{background:var(--void);color:var(--bone);
  padding:clamp(56px,7vw,92px) 24px clamp(62px,8vw,100px);}
.hero__grid{display:grid;grid-template-columns:290px 1fr;gap:60px;align-items:center;
  max-width:1040px;margin:0 auto;}
.hero h1{font-size:clamp(2.2rem,4.8vw,3.6rem);line-height:1.05;letter-spacing:-.028em;}
.hero h1 em{font-style:normal;display:block;font-size:.52em;letter-spacing:-.018em;margin-top:12px;
  background:linear-gradient(90deg,var(--g),var(--y),var(--o),var(--r),var(--p),var(--b));
  -webkit-background-clip:text;background-clip:text;color:transparent;}
.hero .sub{color:var(--bone-soft);font-size:clamp(1.08rem,1.7vw,1.28rem);line-height:1.5;margin-top:20px;}
.by{font-family:var(--fm);font-size:11.5px;letter-spacing:.15em;text-transform:uppercase;
  color:var(--bone-soft);margin-bottom:16px;}
@media(max-width:860px){
  .hero__grid{grid-template-columns:1fr;gap:34px;}
  /* Cover stays on top on book pages, but centred — it was pinned left. */
  .cover{max-width:200px;margin-left:auto;margin-right:auto;}
  .hero{padding-top:52px;}
}
@media(max-width:480px){
  .cover{max-width:168px;}
}

/* ---------- buy ---------- */
.buy{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px;align-items:center;}
.btn{display:inline-block;background:var(--crimson);color:#fff;text-decoration:none;
  font-family:var(--fd);font-weight:600;font-size:1.08rem;padding:16px 36px;
  border-radius:980px;transition:background .18s ease,transform .18s ease;}
.btn:hover{background:var(--crimson-deep);transform:translateY(-1px);}
.btn--ghost{background:var(--bone);color:var(--void);border:1.5px solid var(--bone);}
.btn--ghost:hover{background:#fff;}
.hero .btn{background:var(--crimson-lit);}
.hero .btn:hover{background:var(--crimson);}
.btn--light{background:#fff;color:var(--ink);}
.fmt{font-family:var(--fm);font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--bone-soft);margin-top:16px;}

/* ---------- lists ---------- */
.learn{list-style:none;counter-reset:l;margin:32px 0 0;padding:0;border-top:1px solid var(--hair);}
.learn li{counter-increment:l;position:relative;padding:18px 0 18px 52px;
  border-bottom:1px solid var(--hair);font-size:1.06rem;line-height:1.5;}
.learn li::before{content:counter(l,decimal-leading-zero);position:absolute;left:0;top:20px;
  font-family:var(--fm);font-size:12px;letter-spacing:.06em;color:var(--crimson);}

/* ---------- praise ---------- */
.praise{margin-top:36px;}
.q{padding:26px 0;border-top:1px solid var(--hair);}
.q:last-child{border-bottom:1px solid var(--hair);}
.q p{font-family:var(--fd);font-weight:500;font-size:1.24rem;line-height:1.42;
  letter-spacing:-.012em;margin-bottom:12px;}
.q cite{font-style:normal;font-family:var(--fm);font-size:11.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-soft);}
.band--ink .q{border-color:rgba(255,255,255,.16);}
.band--ink .q cite{color:rgba(255,255,255,.55);}

/* ---------- author ---------- */
.author{display:grid;grid-template-columns:200px 1fr;gap:36px;align-items:start;margin-top:34px;}
.author__img{border-radius:10px;overflow:hidden;background:var(--paper-2);border:1px solid var(--hair);}
.author__img img{width:100%;height:auto;display:block;}
@media(max-width:700px){.author{grid-template-columns:1fr;gap:24px;}.author__img{max-width:190px;}}

/* ---------- books index grid ---------- */
.grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:52px;}
.card{display:grid;grid-template-columns:190px 1fr;gap:30px;align-items:start;text-decoration:none;}
.card h3{margin-bottom:10px;font-size:1.3rem;line-height:1.2;}
.card p{font-size:1rem;color:var(--ink-soft);line-height:1.55;margin:0;}
.band--void .card p{color:var(--bone-soft);}
.band--void .card .go{color:var(--y);}
.band--void .card h3{color:var(--bone);}
.card .go{font-family:var(--fm);font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--crimson);margin-top:14px;display:block;}
@media(max-width:860px){.grid{grid-template-columns:1fr;gap:44px;}
  .card{grid-template-columns:140px 1fr;gap:22px;}}
@media(max-width:480px){
  .card{grid-template-columns:112px 1fr;gap:18px;}
  .card h3{font-size:1.14rem;}
}

/* ---------- tan worksheet block ---------- */
.band--tan{background:var(--tan);color:#1c1a17;}
.band--tan .eyebrow{color:var(--tan-soft);}
.bands{display:flex;flex-direction:column;width:100%;margin-bottom:30px;}
.bands i{display:block;height:5px;width:100%;}
.bands i:nth-child(1){background:#61bb46;} .bands i:nth-child(2){background:#f6bb18;}
.bands i:nth-child(3){background:#f5821f;} .bands i:nth-child(4){background:#e03a3e;}
.bands i:nth-child(5){background:#963d97;} .bands i:nth-child(6){background:#009ddc;}
.band--tan .btn{border-radius:8px;}

footer{padding:52px 24px;background:var(--void);color:var(--bone);}
.foot{max-width:1040px;margin:0 auto;display:flex;justify-content:space-between;
  gap:22px;flex-wrap:wrap;align-items:center;}
.foot nav a{font-family:var(--fm);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--bone-soft);text-decoration:none;margin-right:22px;}
.foot nav a:hover{color:var(--y);}
.foot .c{font-family:var(--fm);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--bone-soft);}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important;}}

/* ---------- credential strip ---------- */
.strip{border-top:1px solid var(--hairD);padding:24px;background:var(--void-2);color:var(--bone);}
.strip__in{max-width:1040px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.strip b{display:block;font-family:var(--fd);font-weight:600;font-size:1.32rem;letter-spacing:-.018em;}
.strip span{font-family:var(--fm);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--bone-soft);display:block;margin-top:4px;}
@media(max-width:760px){.strip__in{grid-template-columns:1fr 1fr;gap:20px;}}

/* ---------- stories ---------- */
.stories{list-style:none;margin:30px 0 0;padding:0;}
.stories li{padding:20px 0 20px 30px;border-bottom:1px solid var(--hair);position:relative;
  font-size:1.06rem;line-height:1.52;}
.stories li:first-child{border-top:1px solid var(--hair);}
.stories li::before{content:"";position:absolute;left:0;top:31px;width:9px;height:9px;
  border-radius:50%;border:1.5px solid var(--crimson);}

/* ---------- contents ---------- */
.toc{margin-top:30px;}
.toc__p{font-family:var(--fm);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--crimson);margin:26px 0 10px;}
.toc__p:first-child{margin-top:0;}
.toc ol{list-style:none;margin:0;padding:0;counter-reset:c;}
.toc li{counter-increment:c;position:relative;padding:9px 0 9px 42px;font-size:1.02rem;
  border-bottom:1px solid var(--hair);line-height:1.4;}
.toc li::before{content:counter(c,decimal-leading-zero);position:absolute;left:0;top:11px;
  font-family:var(--fm);font-size:11px;color:var(--ink-soft);letter-spacing:.06em;}

/* ---------- for-who ---------- */
.forwho{display:grid;grid-template-columns:1fr 1fr;gap:36px;margin-top:30px;}
.forwho h3{font-size:1.1rem;margin-bottom:14px;}
.forwho ul{list-style:none;margin:0;padding:0;}
.forwho li{padding:10px 0;border-bottom:1px solid var(--hair);font-size:1rem;line-height:1.5;}
@media(max-width:760px){.forwho{grid-template-columns:1fr;gap:26px;}}
