/* Living Portal Press — shared styles */
:root{
  --cream:#FFFCF2;
  --paper:#F7F2E4;
  --forest:#207450;
  --pine:#123527;
  --pine-deep:#0C271C;
  --ink:#1B2420;
  --gold:#B5893B;
  --gold-soft:#D9BE8C;
  --sage:#E9EFE6;
  --line:rgba(32,116,80,.18);
  --shadow:0 18px 50px -18px rgba(18,53,39,.35);
  --r:14px;
  --nav-h:72px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:'Poppins',system-ui,sans-serif;
  font-size:16px;line-height:1.7;
  color:var(--ink);background:var(--cream);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--forest);text-decoration:none}
.wrap{max-width:1120px;margin:0 auto;padding:0 22px}
.serif{font-family:'Cormorant Garamond',Georgia,serif}
.script{font-family:'Dancing Script',cursive}

h1,h2,h3{font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;line-height:1.15;color:var(--pine)}
h1{font-size:clamp(2.4rem,6vw,4.2rem)}
h2{font-size:clamp(1.9rem,4.5vw,2.9rem)}
h3{font-size:clamp(1.25rem,3vw,1.6rem)}
p.lead{font-size:clamp(1.05rem,2.2vw,1.25rem);color:#3A4A42}

.eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;
  font-weight:600;color:var(--gold);margin-bottom:16px;
}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--gold)}

/* ---------- nav ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:60;height:var(--nav-h);
  background:rgba(255,252,242,.88);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
  transition:box-shadow .3s;
}
.nav.scrolled{box-shadow:0 8px 30px -18px rgba(18,53,39,.35)}
.nav .wrap{height:100%;display:flex;align-items:center;justify-content:space-between;gap:16px}
.brand{display:flex;align-items:center;gap:10px}
.brand img{height:46px;width:auto}
.brand span{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:1.05rem;letter-spacing:.14em;text-transform:uppercase;color:var(--pine);white-space:nowrap}
.navlinks{display:flex;align-items:center;gap:26px;list-style:none}
.navlinks a{font-size:.85rem;font-weight:500;color:var(--ink);letter-spacing:.02em;padding:6px 0;border-bottom:2px solid transparent;transition:.2s}
.navlinks a:hover,.navlinks a.active{color:var(--forest);border-color:var(--gold)}
.nav-cta{background:var(--forest);color:#fff !important;padding:10px 20px !important;border-radius:999px;border:none !important;font-weight:600}
.nav-cta:hover{background:var(--pine)}
.burger{display:none;background:none;border:none;cursor:pointer;padding:10px}
.burger span{display:block;width:24px;height:2px;background:var(--pine);margin:5px 0;transition:.3s}

/* dropdown */
.has-drop{position:relative}
.drop{
  position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(6px);
  background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);
  padding:8px;min-width:250px;opacity:0;pointer-events:none;transition:.2s;list-style:none;
}
.has-drop:hover .drop,.has-drop:focus-within .drop{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0)}
.drop a{display:block;padding:10px 14px;border-radius:8px;border:none !important;font-size:.85rem}
.drop a:hover{background:var(--sage)}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:15px 30px;border-radius:999px;font-weight:600;font-size:.95rem;
  transition:.25s;cursor:pointer;border:none;font-family:'Poppins',sans-serif;
  min-height:48px;
}
.btn-gold{background:var(--gold);color:#fff}
.btn-gold:hover{background:#9A7330;transform:translateY(-2px);box-shadow:0 12px 28px -10px rgba(181,137,59,.6)}
.btn-forest{background:var(--forest);color:#fff}
.btn-forest:hover{background:var(--pine);transform:translateY(-2px);box-shadow:0 12px 28px -10px rgba(18,53,39,.5)}
.btn-ghost{background:transparent;color:var(--pine);border:1.5px solid var(--forest)}
.btn-ghost:hover{background:var(--forest);color:#fff}
.btn-light{background:var(--cream);color:var(--pine)}
.btn-light:hover{background:#fff;transform:translateY(-2px)}
.btn svg{flex:none}

/* ---------- hero ---------- */
.hero{
  position:relative;min-height:92vh;display:flex;align-items:center;
  padding:calc(var(--nav-h) + 48px) 0 72px;
  background:
    radial-gradient(1100px 600px at 82% 8%,rgba(181,137,59,.12),transparent 60%),
    radial-gradient(900px 700px at 8% 90%,rgba(32,116,80,.10),transparent 60%),
    var(--cream);
  overflow:hidden;
}
.hero-spiral{
  position:absolute;right:-140px;top:-120px;width:640px;opacity:.14;pointer-events:none;
  -webkit-mask-image:radial-gradient(closest-side,#000 30%,transparent 72%);
  mask-image:radial-gradient(closest-side,#000 30%,transparent 72%);
}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}
.hero-copy .script{font-size:clamp(1.4rem,3vw,1.9rem);color:var(--forest);display:block;margin:6px 0 18px}
.hero-ctas{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}
.hero-note{margin-top:18px;font-size:.82rem;color:#5B6B62;display:flex;align-items:center;gap:8px}
.hero-note svg{color:var(--gold)}

.book-stage{position:relative;display:flex;justify-content:center}
.book-stage::before{
  content:"";position:absolute;inset:8% 4%;border:1px solid var(--gold-soft);
  border-radius:18px;transform:rotate(-3deg);opacity:.6;
}
.book-stage img{
  width:min(380px,80%);border-radius:16px;box-shadow:var(--shadow);
  transition:transform .5s cubic-bezier(.2,.8,.2,1);
  will-change:transform;
}

/* ---------- sections ---------- */
section{padding:88px 0}
.section-head{max-width:680px;margin-bottom:48px}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center}
.section-head.center .eyebrow{justify-content:center}
.section-head.center .eyebrow::before{display:none}
.section-head p{margin-top:14px;color:#3A4A42}

/* mission band */
.mission{
  background:var(--pine);color:var(--cream);text-align:center;
  position:relative;overflow:hidden;padding:76px 0;
}
.mission::after{
  content:"";position:absolute;inset:0;
  background:url('') center/cover;opacity:.14;pointer-events:none;
}
.mission h2{color:var(--cream);max-width:820px;margin:0 auto;font-weight:500}
.mission h2 em{font-style:italic;color:var(--gold-soft)}
.mission .script{color:var(--gold-soft);font-size:1.5rem;display:block;margin-bottom:12px}
.mission-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.15;pointer-events:none}
.mission .wrap{position:relative;z-index:1}

/* ---------- book cards ---------- */
.books-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.book-card{
  background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;
  display:flex;flex-direction:column;transition:.3s;
}
.book-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.book-card .cover{background:var(--sage);padding:34px;display:flex;justify-content:center;align-items:center;height:360px}
.book-card .cover img{max-height:100%;width:auto;max-width:70%;border-radius:10px;box-shadow:0 20px 40px -18px rgba(18,53,39,.5);transition:transform .4s;object-fit:contain}
.book-card:hover .cover img{transform:translateY(-6px) rotate(-1.5deg)}
.book-card .body{padding:30px 30px 34px;display:flex;flex-direction:column;gap:14px;flex:1}
.book-card .kicker{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:600}
.book-card h3{font-size:1.7rem}
.book-card .sub{font-style:italic;font-family:'Cormorant Garamond',serif;font-size:1.1rem;color:var(--forest)}
.book-card p{font-size:.92rem;color:#41504A}
.tags{display:flex;flex-wrap:wrap;gap:8px}
.tag{font-size:.72rem;font-weight:500;background:var(--sage);color:var(--pine);padding:5px 12px;border-radius:999px}
.book-card .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:auto;padding-top:8px}
.book-card .actions .btn{padding:12px 22px;font-size:.85rem}

/* ---------- codex timeline ---------- */
.codex{background:var(--paper)}
.codex-list{display:grid;gap:0;border-top:1px solid var(--line)}
.codex-row{
  display:grid;grid-template-columns:64px 1fr auto;gap:20px;align-items:center;
  padding:22px 8px;border-bottom:1px solid var(--line);transition:.25s;
}
.codex-row:hover{background:rgba(255,255,255,.7);padding-left:16px}
.codex-num{font-family:'Cormorant Garamond',serif;font-size:1.9rem;color:var(--gold);font-weight:500}
.codex-row h3{font-size:1.3rem}
.codex-row .sub{font-size:.85rem;color:#5B6B62;font-style:italic;font-family:'Cormorant Garamond',serif;font-size:1.02rem}
.chip{
  font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  padding:6px 14px;border-radius:999px;white-space:nowrap;
}
.chip.now{background:var(--forest);color:#fff}
.chip.soon{background:transparent;border:1px solid var(--gold);color:var(--gold)}

/* ---------- author ---------- */
.author-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;align-items:center}
.author-photo{position:relative}
.author-photo img{border-radius:18px;box-shadow:var(--shadow)}
.author-photo::after{
  content:"";position:absolute;inset:-14px 14px 14px -14px;border:1.5px solid var(--gold-soft);
  border-radius:20px;z-index:-1;
}
.cred-chips{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0 26px}
.cred-chips .tag{background:#fff;border:1px solid var(--line)}

/* ---------- signup ---------- */
.signup{background:var(--pine-deep);color:var(--cream);position:relative;overflow:hidden}
.signup .spiral-bg{position:absolute;left:-120px;bottom:-160px;width:520px;opacity:.08;pointer-events:none}
.signup h2{color:var(--cream)}
.signup p{color:#B9C9BF;max-width:560px}
.signup-form{display:flex;gap:12px;margin-top:30px;max-width:560px}
.signup-form input{
  flex:1;min-width:0;padding:15px 20px;border-radius:999px;border:1px solid rgba(217,190,140,.4);
  background:rgba(255,252,242,.06);color:var(--cream);font-family:'Poppins',sans-serif;font-size:16px;
}
.signup-form input::placeholder{color:#8AA294}
.signup-form input:focus{outline:2px solid var(--gold);border-color:var(--gold)}
.form-msg{margin-top:14px;font-size:.85rem;color:var(--gold-soft);min-height:1.4em}

/* ---------- book detail pages ---------- */
.bd-hero{
  padding:calc(var(--nav-h) + 56px) 0 72px;
  background:
    radial-gradient(900px 500px at 15% 10%,rgba(181,137,59,.10),transparent 60%),
    linear-gradient(180deg,var(--paper),var(--cream));
}
.bd-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:60px;align-items:center}
.bd-cover img{width:min(360px,85%);margin:0 auto;border-radius:14px;box-shadow:var(--shadow)}
.bd-meta{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 6px}
.bd-quote{
  border-left:3px solid var(--gold);padding:6px 0 6px 22px;margin:22px 0;
  font-family:'Cormorant Garamond',serif;font-size:1.25rem;font-style:italic;color:#33443B;line-height:1.5;
}
.check-list{list-style:none;display:grid;gap:14px}
.check-list li{display:flex;gap:14px;align-items:flex-start;font-size:.95rem;color:#3A4A42}
.check-list svg{flex:none;margin-top:4px;color:var(--forest)}
.toc{counter-reset:ch;list-style:none;display:grid;gap:0;border-top:1px solid var(--line)}
.toc li{
  counter-increment:ch;display:flex;gap:22px;align-items:baseline;
  padding:18px 6px;border-bottom:1px solid var(--line);
  font-family:'Cormorant Garamond',serif;font-size:1.25rem;color:var(--pine);
}
.toc li::before{
  content:counter(ch,decimal-leading-zero);
  font-size:.85rem;font-family:'Poppins',sans-serif;color:var(--gold);letter-spacing:.1em;
}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}

/* sticky buy bar (mobile) */
.buybar{
  position:fixed;left:0;right:0;bottom:0;z-index:55;
  background:rgba(12,39,28,.96);backdrop-filter:blur(10px);
  padding:12px 18px calc(12px + env(safe-area-inset-bottom));
  display:none;align-items:center;justify-content:space-between;gap:14px;
  transform:translateY(110%);transition:transform .35s;
}
.buybar.show{transform:translateY(0)}
.buybar .t{color:var(--cream);font-size:.8rem;line-height:1.3}
.buybar .t strong{display:block;font-family:'Cormorant Garamond',serif;font-size:1rem}
.buybar .btn{padding:11px 22px;font-size:.85rem;white-space:nowrap}

/* ---------- cta band ---------- */
.cta-band{background:var(--forest);color:#fff;text-align:center;position:relative;overflow:hidden}
.cta-band h2{color:#fff}
.cta-band p{color:#D4E6DC;max-width:600px;margin:14px auto 30px}
.cta-band img.band-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.12;pointer-events:none}
.cta-band .wrap{position:relative;z-index:1}

/* ---------- footer ---------- */
footer{background:var(--pine-deep);color:#9DB3A6;padding:64px 0 34px;font-size:.85rem}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;margin-bottom:44px}
.foot-brand img{height:52px;filter:brightness(0) invert(1);opacity:.9;margin-bottom:14px}
footer h4{font-family:'Poppins',sans-serif;font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:16px}
footer ul{list-style:none;display:grid;gap:10px}
footer a{color:#C7D6CC;padding:2px 0;display:inline-block}
footer a:hover{color:var(--gold-soft)}
.foot-bottom{border-top:1px solid rgba(157,179,166,.2);padding-top:24px;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;font-size:.78rem}

/* ---------- reveal ---------- */
.rv{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .rv{opacity:1;transform:none;transition:none}
  .hero-spiral{animation:none}
  html{scroll-behavior:auto}
}

/* ---------- responsive ---------- */

/* small desktop / tablet landscape: tighten nav so it never crowds the logo */
@media (max-width:1120px){
  .navlinks{gap:16px}
  .navlinks a{font-size:.8rem}
  .nav-cta{padding:9px 16px !important}
  .brand span{font-size:.95rem;letter-spacing:.1em}
}

/* tablet: stack the split layouts, switch to burger nav, kill vh hero */
@media (max-width:920px){
  .hero-grid,.bd-grid,.author-grid,.two-col{grid-template-columns:1fr;gap:44px}
  .hero{min-height:0;padding:calc(var(--nav-h) + 40px) 0 64px}
  .hero-spiral{width:420px;right:-120px;top:-100px}
  .book-stage img{width:min(320px,72%)}
  .bd-grid{gap:32px}
  .bd-cover{order:-1}
  .bd-cover img{width:min(280px,70%)}
  .author-photo{max-width:420px}
  .foot-grid{grid-template-columns:1fr 1fr;gap:32px}
  section{padding:72px 0}
  .section-head{margin-bottom:36px}

  /* keep the two books side-by-side on tablets, with slimmer covers */
  .book-card .cover{height:280px;padding:24px}
  .book-card .body{padding:24px 22px 28px}
  .book-card h3{font-size:1.45rem}

  .navlinks{
    position:fixed;top:var(--nav-h);left:0;right:0;
    background:var(--cream);border-bottom:1px solid var(--line);
    flex-direction:column;align-items:stretch;gap:0;padding:10px 22px 22px;
    transform:translateY(-130%);transition:transform .35s;box-shadow:var(--shadow);
  }
  .navlinks.open{transform:none}
  .navlinks a{padding:14px 4px;border-bottom:1px solid var(--line);display:block;font-size:1rem}
  .nav-cta{margin-top:14px;text-align:center;border-radius:999px;padding:14px 20px !important}
  .burger{display:block}
  .burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .burger.open span:nth-child(2){opacity:0}
  .burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .has-drop .drop{position:static;transform:none;opacity:1;pointer-events:auto;box-shadow:none;border:none;background:transparent;padding:0 0 0 16px;min-width:0}
  .buybar{display:flex}
}

/* large phones / small tablets: single-column books, stacked signup */
@media (max-width:700px){
  section{padding:60px 0}
  .books-grid{grid-template-columns:1fr;gap:24px}
  .book-card .cover{height:300px}
  .codex-row{grid-template-columns:44px 1fr;row-gap:6px;padding:18px 4px}
  .codex-row .chip{grid-column:2;justify-self:start}
  .codex-row h3{font-size:1.15rem}
  .codex-num{font-size:1.5rem}
  .signup-form{flex-direction:column}
  .signup-form .btn{width:100%}
  .mission{padding:56px 0}
  .bd-quote{font-size:1.1rem;margin:18px 0}
  .toc li{font-size:1.1rem;gap:16px}
  .hero-copy .script{margin-bottom:12px}
}

/* phones: thumb-sized full-width CTAs, compact hero, single-column footer */
@media (max-width:480px){
  .wrap{padding:0 18px}
  body{font-size:15px}
  .hero{padding:calc(var(--nav-h) + 28px) 0 52px}
  .hero-grid{gap:32px}
  .book-stage img{width:min(240px,68%)}
  .book-stage::before{inset:6% 10%}
  .bd-cover img{width:min(220px,64%)}
  .hero-ctas{flex-direction:column;align-items:stretch}
  .hero-ctas .btn{width:100%}
  .book-card .actions{flex-direction:column;align-items:stretch}
  .book-card .actions .btn{width:100%}
  .book-card .cover{height:240px;padding:20px}
  .cred-chips .tag,.tags .tag{font-size:.68rem;padding:5px 10px}
  .eyebrow{font-size:.64rem;letter-spacing:.16em}
  .foot-grid{grid-template-columns:1fr;gap:26px}
  .foot-bottom{flex-direction:column;gap:8px}
  .brand span{display:none}
  .brand img{height:42px}
  .buybar .t{font-size:.72rem}
  .buybar .t strong{font-size:.9rem}
}

/* ================= MOTION REVAMP ================= */

/* load-in choreography (hero) */
[data-load-in]{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1)}
[data-load-in].in{opacity:1;transform:none}

/* word-by-word headline reveal */
.words .w{display:inline-block;opacity:0;transform:translateY(.55em) rotate(1.5deg);transition:opacity .55s ease,transform .7s cubic-bezier(.2,.8,.2,1)}
.words.in .w{opacity:1;transform:none}

/* staggered child reveals */
.stagger>*{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.8,.2,1)}
.stagger.in>*{opacity:1;transform:none}
.stagger.in>*:nth-child(1){transition-delay:.04s}
.stagger.in>*:nth-child(2){transition-delay:.12s}
.stagger.in>*:nth-child(3){transition-delay:.2s}
.stagger.in>*:nth-child(4){transition-delay:.28s}
.stagger.in>*:nth-child(5){transition-delay:.36s}
.stagger.in>*:nth-child(6){transition-delay:.44s}
.stagger.in>*:nth-child(7){transition-delay:.52s}
.stagger.in>*:nth-child(8){transition-delay:.6s}

/* gold rule grows in */
.rv .eyebrow::before{width:0;transition:width .8s ease .25s}
.rv.in .eyebrow::before{width:34px}

/* drawn golden spiral */
.spiral-svg{position:absolute;right:-90px;top:-60px;width:520px;height:520px;color:var(--gold);opacity:.32;pointer-events:none;transform:rotate(-20deg)}
/* light dust */
#dust{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}

/* floating cover + light sweep */
.cover-wrap{position:relative;width:min(380px,80%);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);will-change:transform}
.cover-wrap img{width:100%;border-radius:0;box-shadow:none}
.float{animation:float 6.5s ease-in-out infinite alternate}
@keyframes float{from{transform:translateY(0)}to{transform:translateY(-12px)}}
.glint{position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 42%,rgba(255,255,255,.22) 50%,transparent 58%);transform:translateX(-130%);animation:glint 6s ease-in-out infinite}
@keyframes glint{0%,55%{transform:translateX(-130%)}80%,100%{transform:translateX(130%)}}

/* marquee ribbon */
.ribbon{background:var(--pine);overflow:hidden;padding:15px 0;border-top:1px solid rgba(217,190,140,.25);border-bottom:1px solid rgba(217,190,140,.25)}
.ribbon-track{display:flex;align-items:center;width:max-content;animation:marquee 32s linear infinite}
.ribbon-track span{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.08rem;letter-spacing:.1em;color:var(--gold-soft);white-space:nowrap;padding:0 8px}
.ribbon-track .dot{color:var(--gold);font-style:normal;padding:0 18px;font-size:.8rem}
@keyframes marquee{to{transform:translateX(-50%)}}

/* pulsing primary CTA */
.btn-pulse{animation:glowPulse 2.8s ease-in-out infinite}
@keyframes glowPulse{0%,100%{box-shadow:0 8px 22px -10px rgba(181,137,59,.45)}50%{box-shadow:0 12px 36px -8px rgba(181,137,59,.8)}}
.btn:active{transform:scale(.97)}

/* parallax layers (JS moves translateY; scale hides edges) */
[data-para]{transform:scale(1.16);will-change:transform}

/* mobile-first hero: hook → book → CTA order, everything thumb-reach */
@media (max-width:920px){
  .hero{overflow:hidden}
  .hero-grid{display:flex;flex-direction:column;align-items:flex-start;gap:0}
  .hero-copy{display:contents}
  .hero-copy .eyebrow{order:1;margin-bottom:14px}
  .hero-copy h1{order:2}
  .hero-copy .script{order:3;margin:8px 0 18px}
  .book-stage{order:4;align-self:center;margin:4px 0 20px}
  .hero-ctas{order:5;margin-top:0;width:100%}
  .hero-copy .lead{order:6;margin-top:20px}
  .hero-note{order:7;margin-top:14px}
  .cover-wrap{width:min(300px,66%)}
  .spiral-svg{width:360px;right:-110px;top:-70px}
}
@media (max-width:480px){
  .cover-wrap{width:min(200px,56%)}
  .hero-copy h1{font-size:2.5rem}
  .hero-copy .lead{font-size:.98rem}
  .ribbon-track span{font-size:.95rem}
}

/* respect reduced motion */
@media (prefers-reduced-motion:reduce){
  [data-load-in],.words .w,.stagger>*{opacity:1;transform:none;transition:none}
  .float,.glint,.btn-pulse,.ribbon-track{animation:none}
  [data-para]{transform:none}
  .spiral-svg polyline{stroke-dashoffset:0 !important}
}

/* ---------- Golden Thread spotlight ---------- */
.gt-card{
  display:grid;grid-template-columns:320px 1fr;gap:48px;align-items:center;
  background:#fff;border:1px solid var(--line);border-radius:22px;
  padding:44px;position:relative;overflow:hidden;
}
.gt-card::before{
  content:"";position:absolute;right:-70px;top:-70px;width:240px;height:240px;
  border-radius:50%;border:1.5px solid var(--gold-soft);opacity:.5;
}
.gt-card .cover-wrap{width:100%}
.gt-copy .kicker{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:600}
.gt-copy h3{font-size:clamp(1.7rem,3.5vw,2.3rem);margin-top:10px}
.gt-copy .sub{font-style:italic;font-family:'Cormorant Garamond',serif;font-size:1.15rem;color:var(--forest);margin-top:4px}
.gt-copy p{margin-top:14px;font-size:.95rem;color:#41504A}
.gt-copy .tags{margin-top:16px}
.gt-copy .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
@media (max-width:920px){
  .gt-card{grid-template-columns:1fr;gap:26px;padding:30px 24px}
  .gt-card .cover-wrap{width:min(250px,68%);margin:0 auto}
  .gt-copy{text-align:left}
}
@media (max-width:480px){
  .gt-copy .actions{flex-direction:column;align-items:stretch}
  .gt-copy .actions .btn{width:100%}
}

/* 3-up minimal book grid (about page) — skips the 2-col tier to avoid orphans */
.books-grid-3{grid-template-columns:repeat(3,1fr)}
@media (max-width:920px){.books-grid-3{grid-template-columns:1fr}}
