/* ══════════════════════════════════════════════════════════
   CORELIGHT — Master Stylesheet v3
   ══════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600;700&family=EB+Garamond:ital,wght@0,400;0,500;1,400&display=swap');

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body {
  background: #07070f;
  color: #d4c9a8;
  font-family: 'EB Garamond', 'Georgia', serif;
  line-height: 1.78;
  overflow-x: hidden;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }

::selection { background: rgba(240,208,96,.25); color: #fffae0; }

/* ── TOKENS ─────────────────────────────────────────────── */
:root {
  --gold:         #f0d060;
  --gold-bright:  #fffae0;
  --gold-mid:     #d4a830;
  --amber:        #c8820a;
  --amber-soft:   #e09a30;
  --navy:         #07070f;
  --navy-mid:     #0c0c1a;
  --navy-light:   #121228;
  --navy-card:    #0e0e1e;
  --navy-hover:   #141430;
  --border:       rgba(240,208,96,.13);
  --border-hover: rgba(240,208,96,.32);
  --text:         #d4c9a8;
  --text-mid:     #9a8e6a;
  --text-dim:     #6a5e42;
  --rose-gold:    #c88060;
  --silver-blue:  #a0b8c8;
  --nav-h:        70px;
  --max-w:        1120px;
  --ease:         cubic-bezier(.22,.68,0,1.2);
}

/* ── ANIMATIONS ──────────────────────────────────────────── */
@keyframes fracture-pulse  { 0%,100%{opacity:.5;filter:brightness(1)}   50%{opacity:1;filter:brightness(1.7)} }
@keyframes float           { 0%,100%{transform:translateY(0)}            50%{transform:translateY(-10px)} }
@keyframes fade-up         { from{opacity:0;transform:translateY(30px)}  to{opacity:1;transform:translateY(0)} }
@keyframes fade-in         { from{opacity:0}                             to{opacity:1} }
@keyframes mark-breathe    { 0%,100%{box-shadow:0 0 10px 3px rgba(240,208,96,.4)} 50%{box-shadow:0 0 36px 12px rgba(255,250,224,.5)} }
@keyframes shimmer         { 0%{background-position:-600px 0}            100%{background-position:600px 0} }
@keyframes scan            { 0%{transform:translateY(-100%)}             100%{transform:translateY(100vh)} }
@keyframes spin-slow       { from{transform:rotate(0deg)}                to{transform:rotate(360deg)} }
@keyframes particle-float  {
  0%    { opacity:0; transform:translateY(0) scale(1); }
  15%   { opacity:var(--op,.5); }
  85%   { opacity:var(--op,.5); }
  100%  { opacity:0; transform:translateY(-90px) scale(.4); }
}
@keyframes btn-shimmer {
  0%   { left:-100%; }
  40%  { left:140%; }
  100% { left:140%; }
}
@keyframes cover-float {
  0%,100%{ transform: translateY(0) rotateY(-1deg) rotateX(.5deg); box-shadow:12px 14px 0 rgba(0,0,0,.6), 0 0 60px rgba(240,208,96,.12); }
  50%    { transform: translateY(-10px) rotateY(-2deg) rotateX(1deg); box-shadow:18px 22px 0 rgba(0,0,0,.6), 0 0 80px rgba(240,208,96,.2); }
}
@keyframes gradient-shift {
  0%  { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100%{ background-position: 0% 50%; }
}

/* ── NAV ─────────────────────────────────────────────────── */
nav {
  position: fixed; top:0; left:0; right:0; z-index:500;
  height: var(--nav-h);
  display: flex; align-items:center; justify-content:space-between;
  padding: 0 60px;
  background: rgba(7,7,15,.96);
  backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--border);
  transition: background .3s;
}
.nav-logo {
  display: flex; flex-direction:column; gap:1px;
  font-family: 'Cinzel', 'Georgia', serif;
  font-size: .95rem; letter-spacing:.28em;
  text-transform:uppercase; color:var(--gold);
  line-height:1;
}
.nav-logo small {
  font-size:.55rem; letter-spacing:.22em;
  color:var(--text-dim); font-family:'EB Garamond',serif;
}
.nav-center { display:flex; gap:32px; list-style:none; align-items:center; }
.nav-center a {
  font-size:.72rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--text-mid); transition:color .2s; position:relative; padding-bottom:4px;
  font-family:'EB Garamond',serif;
}
.nav-center a::after {
  content:''; position:absolute; bottom:0; left:0; right:0;
  height:1px; background:var(--gold);
  transform:scaleX(0); transform-origin:left; transition:transform .25s;
}
.nav-center a:hover,
.nav-center a.active { color:var(--gold); }
.nav-center a:hover::after,
.nav-center a.active::after { transform:scaleX(1); }
.nav-cta {
  padding:9px 24px;
  background:var(--gold); color:#07070f;
  font-size:.7rem; letter-spacing:.18em; text-transform:uppercase;
  font-weight:700; border-radius:2px;
  transition:all .2s; font-family:'EB Garamond',serif;
  position:relative; overflow:hidden;
}
.nav-cta::after {
  content:''; position:absolute; top:0; left:-100%;
  width:50px; height:100%;
  background:linear-gradient(to right,transparent,rgba(255,255,255,.4),transparent);
  transform:skewX(-20deg);
  animation:btn-shimmer 3.5s ease-in-out infinite;
}
.nav-cta:hover { background:var(--gold-bright); transform:translateY(-1px); box-shadow:0 4px 20px rgba(240,208,96,.3); }

/* Hamburger */
.nav-hamburger {
  display:none; flex-direction:column; gap:5px; cursor:pointer;
  padding:6px; background:none; border:none;
}
.nav-hamburger span {
  display:block; width:22px; height:1.5px; background:var(--gold);
  transition:all .3s;
}
.nav-hamburger.open span:nth-child(1) { transform:translateY(6.5px) rotate(45deg); }
.nav-hamburger.open span:nth-child(2) { opacity:0; }
.nav-hamburger.open span:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg); }

/* Mobile drawer */
.nav-drawer {
  position:fixed; top:var(--nav-h); left:0; right:0; z-index:499;
  background:rgba(7,7,15,.98); backdrop-filter:blur(20px);
  padding:32px 40px 40px;
  border-bottom:1px solid var(--border);
  transform:translateY(-8px); opacity:0; pointer-events:none;
  transition:all .3s;
  display:flex; flex-direction:column; gap:20px;
}
.nav-drawer.open { transform:translateY(0); opacity:1; pointer-events:all; }
.nav-drawer a {
  font-size:1.1rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--text-mid); padding:8px 0; border-bottom:1px solid var(--border);
}
.nav-drawer a:last-child { border-bottom:none; }
.nav-drawer a:hover { color:var(--gold); }

/* ── READING PROGRESS BAR ────────────────────────────────── */
.reading-progress {
  position:fixed; top:0; left:0; z-index:600;
  height:2px; width:0%;
  background:linear-gradient(to right,var(--amber),var(--gold),var(--gold-bright));
  transition:width .1s linear;
  pointer-events:none;
}

/* ── PAGE HERO ───────────────────────────────────────────── */
.page-hero {
  position:relative; overflow:hidden;
  min-height:52vh;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:calc(var(--nav-h) + 64px) 60px 68px;
}
.page-hero-bg {
  position:absolute; inset:0;
  background: linear-gradient(160deg, var(--navy-light) 0%, var(--navy) 60%);
}
.page-hero-bg::after {
  content:''; position:absolute; inset:0;
  background:
    radial-gradient(ellipse 60% 70% at 10% 50%, rgba(240,208,96,.07) 0%, transparent 70%),
    radial-gradient(ellipse 40% 50% at 90% 20%, rgba(200,130,10,.05) 0%, transparent 65%),
    radial-gradient(ellipse 30% 40% at 50% 90%, rgba(240,208,96,.03) 0%, transparent 60%);
}
.page-hero-fractures {
  position:absolute; inset:0; pointer-events:none; opacity:.18;
}
.page-hero-eyebrow {
  font-size:.68rem; letter-spacing:.38em; text-transform:uppercase;
  color:var(--amber-soft); margin-bottom:14px; position:relative;
  animation:fade-up .8s ease both;
}
.page-hero-title {
  font-family:'Cinzel','Georgia',serif;
  font-size:clamp(2.4rem,6vw,5.2rem);
  font-weight:600; letter-spacing:.05em; text-transform:uppercase;
  line-height:1.02; margin-bottom:18px; position:relative;
  background:linear-gradient(140deg,var(--gold-bright) 0%,var(--gold) 55%,var(--amber) 100%);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
  animation:fade-up .8s .1s ease both;
}
.page-hero-sub {
  font-size:1.08rem; color:var(--text-mid); max-width:580px; position:relative;
  animation:fade-up .8s .22s ease both;
  line-height:1.7;
}
.page-hero-rule {
  position:absolute; left:0; bottom:0; right:0; height:1px;
  background:linear-gradient(to right,transparent 0%,var(--gold-mid) 30%,var(--gold-mid) 70%,transparent 100%);
  opacity:.2;
}

/* ── LAYOUT ──────────────────────────────────────────────── */
.section { position:relative; }
.si      { max-width:var(--max-w); margin:0 auto; padding:104px 60px; }
.si.narrow { max-width:800px; }
.si.wide   { max-width:1280px; }

/* ── TYPE ────────────────────────────────────────────────── */
.eyebrow {
  font-size:.68rem; letter-spacing:.38em; text-transform:uppercase;
  color:var(--amber-soft); margin-bottom:14px;
  font-family:'EB Garamond',serif;
}
.h1 {
  font-family:'Cinzel','Georgia',serif;
  font-size:clamp(1.8rem,4vw,3rem); font-weight:600;
  letter-spacing:.04em; text-transform:uppercase;
  color:var(--gold); margin-bottom:36px; line-height:1.1;
}
.h2 {
  font-family:'Cinzel','Georgia',serif;
  font-size:clamp(1.4rem,2.5vw,2rem); font-weight:400;
  letter-spacing:.04em; text-transform:uppercase;
  color:var(--gold); margin-bottom:20px; line-height:1.2;
}
.rule { width:52px; height:1px; background:linear-gradient(to right,var(--gold),transparent); margin-bottom:36px; }
.rule.c { margin:0 auto 36px; }
.body-text { font-size:1.02rem; line-height:1.88; color:var(--text); }
.body-text p+p { margin-top:20px; }
.muted { color:var(--text-mid); }
.dim   { color:var(--text-dim); }

/* ── BUTTONS ─────────────────────────────────────────────── */
.btn {
  display:inline-flex; align-items:center; gap:8px;
  padding:13px 36px; font-size:.75rem; letter-spacing:.2em; text-transform:uppercase;
  border-radius:2px; transition:all .25s var(--ease); cursor:pointer;
  font-family:'EB Garamond',serif; position:relative; overflow:hidden;
}
.btn-gold {
  background:var(--gold); color:#07070f; font-weight:700;
}
.btn-gold::after {
  content:''; position:absolute; top:0; left:-100%;
  width:50px; height:100%;
  background:linear-gradient(to right,transparent,rgba(255,255,255,.4),transparent);
  transform:skewX(-20deg);
  animation:btn-shimmer 3.5s 1s ease-in-out infinite;
}
.btn-gold:hover { background:var(--gold-bright); transform:translateY(-2px); box-shadow:0 8px 36px rgba(240,208,96,.35); }
.btn-outline { border:1px solid rgba(240,208,96,.35); color:var(--gold); }
.btn-outline:hover { border-color:var(--gold); background:rgba(240,208,96,.06); transform:translateY(-2px); box-shadow:0 4px 24px rgba(240,208,96,.12); }
.btn-ghost { color:var(--text-mid); font-size:.72rem; letter-spacing:.18em; }
.btn-ghost:hover { color:var(--gold); }
.btn-ghost::after { content:' →'; }

/* ── CARDS ───────────────────────────────────────────────── */
.card {
  background:var(--navy-card); border:1px solid var(--border); border-radius:4px;
  padding:36px 30px; transition:all .35s var(--ease); position:relative; overflow:hidden;
}
.card-glow {
  position:absolute; top:0; left:0; right:0; height:1px;
  background:linear-gradient(to right,transparent,var(--accent,var(--gold)),transparent);
  opacity:0; transition:opacity .3s;
}
.card:hover { border-color:var(--border-hover); box-shadow:0 8px 48px rgba(240,208,96,.09); transform:translateY(-5px); }
.card:hover .card-glow { opacity:1; }

/* ── MARK DOTS ───────────────────────────────────────────── */
.mark-orb {
  width:44px; height:44px; border-radius:50%; margin-bottom:22px;
  background:radial-gradient(circle at 40% 40%, var(--mc,var(--gold)) 0%, rgba(0,0,0,0) 68%);
  animation:fracture-pulse 4s ease-in-out infinite;
  position:relative;
}
.mark-orb::after {
  content:''; position:absolute; inset:4px; border-radius:50%;
  border:1px solid rgba(255,255,255,.08);
}

/* ── TAGS ────────────────────────────────────────────────── */
.tag {
  display:inline-block; padding:4px 12px;
  font-size:.63rem; letter-spacing:.16em; text-transform:uppercase;
  border:1px solid var(--border); color:var(--text-dim); border-radius:2px;
  font-family:'EB Garamond',serif;
}
.tag.gold { border-color:rgba(240,208,96,.35); color:var(--gold); }

/* ── PULL QUOTE ──────────────────────────────────────────── */
.pq {
  position:relative; padding:32px 44px 32px 48px;
  margin:52px 0; background:rgba(240,208,96,.028);
  border-left:2px solid var(--gold);
}
.pq::before {
  content:'\201C'; position:absolute; top:-14px; left:24px;
  font-size:6rem; color:var(--gold); opacity:.14; line-height:1;
  font-family:'Cinzel',serif;
}
.pq p { font-style:italic; font-size:1.15rem; line-height:1.82; color:var(--text); }
.pq cite { display:block; margin-top:14px; font-size:.75rem; font-style:normal; letter-spacing:.12em; color:var(--text-dim); }

/* ── DIVIDER ─────────────────────────────────────────────── */
.hr { border:none; border-top:1px solid var(--border); }

/* ── NEWSLETTER ──────────────────────────────────────────── */
.newsletter {
  background:var(--navy-light);
  border-top:1px solid var(--border); border-bottom:1px solid var(--border);
  padding:72px 40px; text-align:center;
  position:relative; overflow:hidden;
}
.newsletter::before {
  content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse 60% 80% at 50% 50%, rgba(240,208,96,.04) 0%, transparent 70%);
  pointer-events:none;
}
.newsletter h3 {
  font-family:'Cinzel',serif; font-size:1.15rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--gold); margin-bottom:12px; position:relative;
}
.newsletter p { font-size:.92rem; color:var(--text-mid); margin-bottom:32px; max-width:440px; margin-left:auto; margin-right:auto; position:relative; }
.nl-form { display:flex; max-width:480px; margin:0 auto; position:relative; }
.nl-form input {
  flex:1; padding:14px 20px; background:var(--navy);
  border:1px solid rgba(240,208,96,.22); border-right:none;
  color:var(--text); font-size:.88rem; border-radius:2px 0 0 2px; outline:none;
  font-family:'EB Garamond',serif; transition:border-color .2s;
}
.nl-form input:focus { border-color:var(--gold); }
.nl-form input::placeholder { color:var(--text-dim); }
.nl-form button {
  padding:14px 28px; background:var(--gold); color:#07070f;
  font-size:.72rem; letter-spacing:.16em; text-transform:uppercase;
  font-weight:700; border:none; border-radius:0 2px 2px 0;
  cursor:pointer; transition:background .2s; font-family:'EB Garamond',serif;
  position:relative; overflow:hidden;
}
.nl-form button:hover { background:var(--gold-bright); }
.nl-thanks { display:none; color:var(--gold); margin-top:16px; font-size:.92rem; letter-spacing:.08em; position:relative; }

/* ── FOOTER ──────────────────────────────────────────────── */
footer {
  background:var(--navy); padding:72px 60px 36px;
  border-top:1px solid var(--border);
}
.footer-grid {
  max-width:var(--max-w); margin:0 auto;
  display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:60px;
  padding-bottom:52px; border-bottom:1px solid var(--border); margin-bottom:32px;
}
.f-logo { font-family:'Cinzel',serif; font-size:1.15rem; letter-spacing:.22em; color:var(--gold); margin-bottom:4px; }
.f-series { font-size:.68rem; letter-spacing:.18em; color:var(--text-dim); margin-bottom:20px; }
.footer-brand p { font-size:.87rem; color:var(--text-mid); line-height:1.72; margin-bottom:22px; }
.footer-nav h4, .footer-connect h4 {
  font-size:.68rem; letter-spacing:.3em; text-transform:uppercase;
  color:var(--amber-soft); margin-bottom:22px;
  font-family:'EB Garamond',serif;
}
.footer-nav ul { list-style:none; display:flex; flex-direction:column; gap:12px; }
.footer-nav a { font-size:.87rem; color:var(--text-mid); transition:color .2s, padding-left .2s; }
.footer-nav a:hover { color:var(--gold); padding-left:5px; }
.footer-connect p { font-size:.87rem; color:var(--text-mid); line-height:1.72; margin-bottom:22px; }
.footer-bottom,
.f-bottom {
  max-width:var(--max-w); margin:0 auto;
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;
}
.f-copy { font-size:.65rem; color:var(--text-dim); letter-spacing:.06em; }
.f-top { font-size:.65rem; color:var(--text-dim); letter-spacing:.15em; text-transform:uppercase; transition:color .2s; }
.f-top:hover { color:var(--gold); }

/* ── BOOK COVER (REAL IMAGE) ─────────────────────────────── */
.cover-img-wrap {
  position:relative;
  transform-style:preserve-3d;
  perspective:800px;
}
.cover-img-wrap img {
  width:100%; border-radius:3px;
  box-shadow:12px 14px 0 rgba(0,0,0,.6), 0 0 60px rgba(240,208,96,.1);
  transition:transform .5s var(--ease), box-shadow .5s;
  display:block;
  animation:cover-float 6s ease-in-out infinite;
}
.cover-img-wrap:hover img {
  animation:none;
  transform:translateY(-10px) rotateY(-4deg) rotateX(1.5deg);
  box-shadow:22px 26px 0 rgba(0,0,0,.65), 0 0 90px rgba(240,208,96,.22);
}
.cover-img-wrap::after {
  content:''; position:absolute; bottom:-8px; left:8px; right:-8px;
  height:20px;
  background:radial-gradient(ellipse 80% 100% at 50% 0%, rgba(0,0,0,.5) 0%, transparent 100%);
  pointer-events:none;
}

/* ── BOOK STAT ROW ───────────────────────────────────────── */
.book-stats {
  display:flex; gap:28px; flex-wrap:wrap; padding:24px 0;
  border-top:1px solid var(--border); border-bottom:1px solid var(--border);
  margin:28px 0;
}
.book-stat { display:flex; flex-direction:column; gap:4px; }
.book-stat-val { font-family:'Cinzel',serif; font-size:1.1rem; color:var(--gold); }
.book-stat-label { font-size:.6rem; letter-spacing:.22em; text-transform:uppercase; color:var(--text-dim); }

/* ── PARTICLE BG ─────────────────────────────────────────── */
.hero-particles {
  position:absolute; inset:0; overflow:hidden; pointer-events:none;
}
.hp {
  position:absolute; border-radius:50%; background:var(--gold); opacity:0;
  animation:particle-float var(--dur,8s) var(--del,0s) ease-in-out infinite;
}

/* ── FADE-IN (JS hook) ───────────────────────────────────── */
.reveal { opacity:0; transform:translateY(28px); transition:opacity .75s ease, transform .75s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }
.reveal-left  { opacity:0; transform:translateX(-30px); transition:opacity .75s ease, transform .75s ease; }
.reveal-left.visible  { opacity:1; transform:translateX(0); }
.reveal-right { opacity:0; transform:translateX(30px); transition:opacity .75s ease, transform .75s ease; }
.reveal-right.visible { opacity:1; transform:translateX(0); }
.reveal-delay-1 { transition-delay:.12s; }
.reveal-delay-2 { transition-delay:.24s; }
.reveal-delay-3 { transition-delay:.36s; }
.reveal-delay-4 { transition-delay:.48s; }

/* ── SCROLL-TO-TOP ───────────────────────────────────────── */
.back-top {
  position:fixed; bottom:32px; right:32px; z-index:400;
  width:46px; height:46px; border-radius:50%;
  background:rgba(240,208,96,.12); border:1px solid rgba(240,208,96,.3);
  display:flex; align-items:center; justify-content:center;
  color:var(--gold); font-size:.85rem; cursor:pointer;
  transition:all .25s; opacity:0; pointer-events:none;
  backdrop-filter:blur(8px);
}
.back-top.visible { opacity:1; pointer-events:all; }
.back-top:hover { background:rgba(240,208,96,.22); transform:translateY(-3px); box-shadow:0 4px 20px rgba(240,208,96,.2); }

/* ── WORLD PAGE ──────────────────────────────────────────── */
.mark-types-grid {
  display:grid; grid-template-columns:repeat(2,1fr); gap:24px;
}
.anchor-grid {
  display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; margin-top:48px;
}
.anchor-figure {
  display:flex; justify-content:center; align-items:center;
}

/* ── SERIES PAGE ─────────────────────────────────────────── */
.book-cards-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:32px;
}
.book-cover {
  aspect-ratio:6/9;
  background:linear-gradient(135deg, var(--navy-light) 0%, var(--navy) 100%);
  border:1px solid var(--border);
  border-color:var(--accent,var(--gold));
  display:flex; align-items:center; justify-content:center;
  margin-bottom:24px; position:relative; overflow:hidden; border-radius:2px;
}
.book-cover svg { width:70%; height:70%; opacity:.4; }
.book-cover.dimmed { opacity:.6; border-color:var(--border); }
.book-cover.dimmed svg { opacity:.2; }
.book-badge {
  display:inline-block; font-size:.63rem; padding:5px 12px;
  background:var(--accent,var(--gold)); color:var(--navy); font-weight:700;
  margin-right:8px; margin-bottom:12px; text-transform:uppercase;
  letter-spacing:.16em; border-radius:2px; font-family:'EB Garamond',serif;
}
.book-status {
  display:inline-block; font-size:.63rem; padding:5px 12px;
  background:rgba(240,208,96,.12); color:var(--gold); font-weight:700;
  text-transform:uppercase; letter-spacing:.16em;
  border:1px solid rgba(240,208,96,.35); border-radius:2px; font-family:'EB Garamond',serif;
}
.book-status.dimmed { background:rgba(100,100,100,.08); color:var(--text-dim); border-color:var(--border); }
.book-tagline { font-size:.95rem; color:var(--text-mid); font-style:italic; margin-bottom:16px; line-height:1.6; }
.book-tagline.dimmed { color:var(--text-dim); }
.book-description { font-size:.95rem; line-height:1.75; color:var(--text); margin-bottom:20px; }
.book-note { font-size:.85rem; color:var(--text-dim); font-style:italic; margin-top:16px; line-height:1.6; }
.book-buttons { display:flex; gap:12px; margin-top:24px; }
.reading-list { list-style:none; padding:0; margin:0; }
.reading-list li {
  display:flex; align-items:center; gap:20px; padding:24px; margin-bottom:16px;
  background:var(--navy-card); border:1px solid var(--border); border-left:3px solid var(--gold); border-radius:2px;
  transition:border-color .3s, background .3s;
}
.reading-list li:hover { border-left-color:var(--gold-bright); background:var(--navy-hover); }
.reading-list li.dimmed { border-left-color:var(--border); }
.reading-number { font-family:'Cinzel',serif; font-size:1.5rem; color:var(--gold); font-weight:700; min-width:36px; text-align:center; }
.reading-number.dimmed { color:var(--text-dim); }
.reading-info { flex:1; }
.reading-title { font-family:'Cinzel',serif; font-size:1.05rem; color:var(--gold); letter-spacing:.04em; margin-bottom:4px; }
.reading-title.dimmed { color:var(--text-mid); }
.reading-status { font-size:.85rem; color:var(--text-mid); letter-spacing:.06em; }
.reading-status.dimmed { color:var(--text-dim); }
.reading-quote { text-align:center; font-style:italic; font-size:1.05rem; color:var(--text-mid); margin-top:52px; }
.theme-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }

/* ── CHARACTERS PAGE ─────────────────────────────────────── */
.chars-list { display:flex; flex-direction:column; gap:72px; }
.char-block {
  display:grid; grid-template-columns:1fr 2.2fr; gap:56px; align-items:start;
  padding-bottom:72px; border-bottom:1px solid var(--border);
}
.char-block:last-child { border-bottom:none; padding-bottom:0; }
.char-block.flipped { grid-template-columns:2.2fr 1fr; }
.char-block.flipped .char-visual { order:2; }
.char-block.flipped .char-content { order:1; }
.char-visual { position:sticky; top:calc(var(--nav-h)+32px); }
.char-portrait {
  aspect-ratio:3/4; border-radius:4px; background:var(--navy-card);
  border:1px solid var(--border);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:16px; padding:32px; text-align:center; transition:border-color .4s, box-shadow .4s;
  position:relative; overflow:hidden;
}
.char-portrait::before {
  content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse 60% 50% at 50% 40%, rgba(var(--rgb),0.07) 0%, transparent 70%);
  transition:opacity .4s;
}
.char-portrait::after {
  content:''; position:absolute; bottom:0; left:0; right:0; height:2px;
  background:linear-gradient(to right,transparent,rgba(var(--rgb,240,208,96),0.5),transparent);
  opacity:0; transition:opacity .4s;
}
.char-portrait:hover { border-color:rgba(var(--rgb),0.4); box-shadow:0 0 40px rgba(var(--rgb),.1); }
.char-portrait:hover::after { opacity:1; }
.char-portrait-name { font-family:'Cinzel',serif; font-size:1rem; letter-spacing:.14em; text-transform:uppercase; color:var(--mc,var(--gold)); position:relative; }
.char-portrait-role { font-size:.7rem; letter-spacing:.14em; color:var(--text-dim); position:relative; }
.char-portrait-hint { font-size:.62rem; color:var(--text-dim); margin-top:auto; position:relative; }
.char-name { font-family:'Cinzel',serif; font-size:clamp(1.5rem,3vw,2.2rem); font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--mc,var(--gold)); margin-bottom:6px; }
.char-role { font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--text-dim); margin-bottom:20px; }
.mark-badge {
  display:inline-flex; align-items:center; gap:8px; padding:6px 14px; border-radius:2px;
  border:1px solid rgba(var(--rgb),0.3); font-size:.68rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--mc,var(--gold)); margin-bottom:28px;
}
.mark-badge-pip { width:8px; height:8px; border-radius:50%; background:var(--mc,var(--gold)); animation:fracture-pulse 3s ease-in-out infinite; }
.char-bio { font-size:.98rem; line-height:1.88; color:var(--text); margin-bottom:24px; }
.char-bio p+p { margin-top:18px; }
.char-quote { border-left:2px solid var(--mc,var(--gold)); padding:16px 24px; font-style:italic; font-size:.98rem; color:var(--text); line-height:1.75; background:rgba(240,208,96,.025); margin-top:24px; }
.connections-section { background:var(--navy-light); border-top:1px solid var(--border); }
.connections-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:48px; }
.conn-card { background:var(--navy-card); border:1px solid var(--border); border-radius:4px; padding:24px; transition:border-color .3s; }
.conn-card:hover { border-color:var(--border-hover); }
.conn-names { font-size:.78rem; letter-spacing:.1em; color:var(--gold); margin-bottom:8px; }
.conn-type { font-size:.65rem; letter-spacing:.18em; text-transform:uppercase; color:var(--amber-soft); margin-bottom:10px; }
.conn-desc { font-size:.85rem; color:var(--text-mid); line-height:1.68; }

/* ── AUTHOR PAGE ─────────────────────────────────────────── */
.author-bio-grid { display:grid; grid-template-columns:2fr 1fr; gap:72px; align-items:start; }
.author-portrait-wrap {
  width:100%; aspect-ratio:3/4; background:var(--navy-card);
  border:1px solid var(--border);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  position:relative; overflow:hidden; border-radius:4px;
  transition:border-color .4s;
}
.author-portrait-wrap:hover { border-color:var(--border-hover); }
.author-portrait-bg {
  position:absolute; inset:0; width:100%; height:100%; opacity:.06;
}
.author-portrait-label {
  position:relative; z-index:1; text-align:center; padding:20px;
}
.writing-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; }

/* ── BOOK PAGE ───────────────────────────────────────────── */
.book-layout { display:grid; grid-template-columns:280px 1fr; gap:72px; align-items:start; }
.cover-frame { position:sticky; top:calc(var(--nav-h)+32px); }
.buy-block {
  background:var(--navy-card); border:1px solid var(--border); border-radius:4px;
  padding:28px; margin-top:24px; text-align:center;
}
.buy-block p { font-size:.75rem; color:var(--text-dim); margin-bottom:14px; letter-spacing:.06em; }
.buy-block .btn { width:100%; margin-bottom:10px; }
.buy-block .btn:last-of-type { margin-bottom:14px; }
.quotes-strip {
  background:var(--navy-mid);
  border-top:1px solid var(--border); border-bottom:1px solid var(--border);
  padding:80px 60px;
}
.quotes-inner { max-width:var(--max-w); margin:0 auto; }
.quotes-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; margin-top:52px; }
.quote-card {
  background:var(--navy-card); border:1px solid var(--border); border-radius:4px;
  padding:32px 28px; position:relative; transition:border-color .3s;
}
.quote-card:hover { border-color:var(--border-hover); }
.quote-card::before {
  content:'"'; position:absolute; top:8px; left:18px;
  font-size:4.5rem; color:var(--gold); opacity:.1; line-height:1;
  font-family:'Cinzel',serif;
}
.quote-card p { font-style:italic; font-size:.97rem; line-height:1.8; color:var(--text); }
.quote-card footer { margin-top:16px; font-size:.7rem; letter-spacing:.12em; color:var(--text-dim); border-top:1px solid var(--border); padding-top:12px; }
.details-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:52px; }
.detail-item { background:var(--navy-card); border:1px solid var(--border); border-radius:4px; padding:22px; transition:border-color .3s; }
.detail-item:hover { border-color:rgba(240,208,96,.25); }
.detail-label { font-size:.62rem; letter-spacing:.22em; text-transform:uppercase; color:var(--text-dim); margin-bottom:6px; }
.detail-val { font-size:.94rem; color:var(--text); }
.excerpt-wrap {
  background:var(--navy-card); border:1px solid var(--border); border-radius:4px;
  padding:52px 56px; position:relative; margin-top:52px;
}
.excerpt-wrap::before {
  content:''; position:absolute; top:0; left:0; bottom:0; width:2px;
  background:linear-gradient(to bottom, var(--gold), var(--amber), transparent);
}
.excerpt-label { font-size:.65rem; letter-spacing:.3em; text-transform:uppercase; color:var(--amber-soft); margin-bottom:28px; }
.excerpt-text { font-size:1.05rem; line-height:1.92; color:var(--text); font-style:italic; }
.excerpt-text p+p { margin-top:20px; }
.buy-section {
  background:linear-gradient(160deg,var(--navy-mid) 0%,var(--navy) 100%);
  text-align:center; padding:100px 40px;
  border-top:1px solid var(--border);
  position:relative; overflow:hidden;
}
.buy-section::before {
  content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse 50% 60% at 50% 50%, rgba(240,208,96,.05) 0%, transparent 70%);
  pointer-events:none;
}
.three-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:52px; }
.card-link {
  background:var(--navy-card); border:1px solid var(--border); border-radius:4px;
  padding:32px; display:flex; flex-direction:column; gap:16px;
  transition:border-color .3s, transform .3s, box-shadow .3s;
}
.card-link:hover { border-color:var(--gold); transform:translateY(-4px); box-shadow:0 8px 32px rgba(240,208,96,.08); }
.card-link-title { font-size:.95rem; font-weight:600; color:var(--text); }
.card-link-desc { font-size:.84rem; color:var(--text-mid); flex:1; line-height:1.68; }
.card-link-arrow { font-size:.78rem; color:var(--gold); }

/* ── RESPONSIVE ──────────────────────────────────────────── */
@media (max-width:960px) {
  nav { padding:0 28px; }
  .nav-center, .nav-cta { display:none; }
  .nav-hamburger { display:flex; }
  .si { padding:80px 28px; }
  .page-hero { padding:calc(var(--nav-h)+40px) 28px 52px; }
  footer { padding:52px 28px 28px; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:40px; }
  .author-bio-grid { grid-template-columns:1fr; }
  .writing-grid { grid-template-columns:1fr; }
  .anchor-grid { grid-template-columns:1fr; gap:48px; }
}
@media (max-width:900px) {
  .book-layout { grid-template-columns:1fr; }
  .cover-frame { position:static; }
  .cover-img-wrap img { max-width:240px; margin:0 auto; }
  .quotes-grid { grid-template-columns:1fr; }
  .details-grid { grid-template-columns:repeat(2,1fr); }
  .quotes-strip { padding:56px 28px; }
  .three-cards { grid-template-columns:1fr; }
  .mark-types-grid { grid-template-columns:1fr; }
  .book-cards-grid { grid-template-columns:1fr; }
  .theme-cards { grid-template-columns:1fr; }
  .char-block, .char-block.flipped { grid-template-columns:1fr; }
  .char-block.flipped .char-visual, .char-block.flipped .char-content { order:unset; }
  .char-visual { position:static; }
  .char-portrait { aspect-ratio:auto; padding:28px; }
  .connections-grid { grid-template-columns:1fr; }
}
@media (max-width:640px) {
  .footer-grid { grid-template-columns:1fr; gap:32px; }
  .nl-form { flex-direction:column; }
  .nl-form input { border-right:1px solid rgba(240,208,96,.2); border-bottom:none; border-radius:2px 2px 0 0; }
  .nl-form button { border-radius:0 0 2px 2px; }
  .details-grid { grid-template-columns:1fr; }
  .excerpt-wrap { padding:32px 28px; }
}
