/* Book detail pages — shared style, matches the main Diogenes by the Sea site */
:root{
  --deep:#0a4f5c;
  --sea:#2a7f8f;
  --shallow:#7fb8bf;
  --foam:#e8f4f5;
  --sand:#f2e8d5;
  --sunset:#e08a4f;
  --ink:#1e3a40;
  --ink-soft:#4a6b73;
  --paper:#fdfcf9;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
img{max-width:100%;height:auto}
body{
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Helvetica Neue',sans-serif;
  color:var(--ink);background:var(--paper);line-height:1.85;font-size:16px;overflow-x:hidden;
}
.serif{font-family:'Iowan Old Style','Apple Garamond',Georgia,'Times New Roman',serif}

/* ---------- floating bubbles ---------- */
.bubbles{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.bubble{
  position:absolute;bottom:-80px;border-radius:50%;
  background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.9),rgba(127,184,191,.22));
  animation:rise linear infinite;opacity:0;
}
@keyframes rise{
  0%{transform:translateY(0) translateX(0) scale(.6);opacity:0}
  10%{opacity:.5}
  90%{opacity:.35}
  100%{transform:translateY(-110vh) translateX(40px) scale(1.1);opacity:0}
}

/* ---------- top bar ---------- */
.topbar{
  position:relative;z-index:5;display:flex;justify-content:space-between;align-items:center;
  gap:1rem;padding:1.4rem 2rem;max-width:1080px;margin:0 auto;
  font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;
}
.topbar a{
  color:var(--sea);text-decoration:none;border-bottom:1px solid transparent;transition:.3s;
}
.topbar a:hover{color:var(--sunset);border-bottom-color:var(--sunset)}
.topbar .vol-mark{color:#8fa8ad}

/* ---------- hero ---------- */
.hero-book{
  position:relative;z-index:2;max-width:1080px;margin:0 auto;padding:2rem 2rem 4.5rem;
  display:grid;grid-template-columns:300px 1fr;gap:3.6rem;align-items:start;
}
.hero-book .cover img{
  width:100%;display:block;border-radius:3px;
  box-shadow:0 14px 42px rgba(10,79,92,.20),0 3px 8px rgba(10,79,92,.10);
}
.vol-tag{
  display:inline-block;font-family:Georgia,serif;font-size:.76rem;letter-spacing:.36em;
  color:var(--sunset);margin-bottom:1rem;
}
.hero-book h1{
  font-family:'Iowan Old Style','Songti SC','STSong',Georgia,serif;
  font-size:2.5rem;font-weight:400;color:var(--deep);letter-spacing:.06em;line-height:1.25;
}
.en-title{font-family:Georgia,serif;font-style:italic;font-size:1.3rem;color:var(--sea);margin-top:.5rem}
.tagline{
  font-family:Georgia,serif;font-size:1.06rem;color:var(--ink-soft);margin:1.4rem 0 1.2rem;
  padding-left:1rem;border-left:2px solid var(--sunset);
}
.meta{
  font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:#8fa8ad;margin-bottom:1.5rem;
}
.meta span{margin-right:1.1rem;white-space:nowrap}
.lede{font-size:1.06rem;color:var(--ink-soft)}

/* ---------- sections ---------- */
.sec{position:relative;z-index:2;max-width:820px;margin:0 auto;padding:3.6rem 2rem}
.sec.alt{background:linear-gradient(180deg,rgba(232,244,245,0) 0%,#eef7f8 12%,#eef7f8 88%,rgba(232,244,245,0) 100%);max-width:none}
.sec.alt .sec-inner{max-width:820px;margin:0 auto}
.sec h2{
  font-family:'Iowan Old Style',Georgia,serif;font-weight:400;font-size:1.6rem;
  color:var(--deep);margin-bottom:.4rem;letter-spacing:.04em;
}
.sec .kicker{
  font-size:.72rem;letter-spacing:.34em;text-transform:uppercase;color:var(--sunset);margin-bottom:.7rem;
}
.sec-sub{color:#8fa8ad;font-size:.92rem;margin-bottom:2rem;font-family:Georgia,serif;font-style:italic}
.sec p{margin-bottom:1.15rem;color:var(--ink-soft)}
.sec p strong{color:var(--deep);font-weight:600}

/* ---------- contents ---------- */
.toc{list-style:none;counter-reset:ch;columns:2;column-gap:2.6rem}
.toc li{
  counter-increment:ch;break-inside:avoid;
  display:flex;align-items:baseline;gap:.7rem;padding:.42rem 0;border-bottom:1px dotted #d5e3e5;
}
.toc .n{
  font-family:Georgia,serif;font-size:.76rem;color:#a9c2c6;min-width:1.6rem;
}
.toc .tt{flex:1;min-width:0}
.toc .en{display:block;font-size:.97rem;color:var(--ink)}
.toc .cn{
  display:block;font-family:'Songti SC','STSong',Georgia,serif;font-size:.8rem;color:#9ab4b8;letter-spacing:.04em;
}
.toc .pg{font-family:Georgia,serif;font-size:.85rem;color:var(--shallow)}

/* ---------- bullets ---------- */
.bullets{list-style:none;margin-top:.6rem}
.bullets li{
  position:relative;padding:0 0 1rem 1.5rem;color:var(--ink-soft);
}
.bullets li::before{
  content:"";position:absolute;left:0;top:.72em;width:7px;height:7px;border-radius:50%;background:var(--shallow);
}
.bullets li b{color:var(--deep);font-weight:600}

/* ---------- quotes ---------- */
.q-list{display:grid;gap:1.6rem}
blockquote{
  background:#fff;border:1px solid #dce9eb;border-left:3px solid var(--sunset);
  border-radius:4px;padding:1.5rem 1.7rem;
}
blockquote .q-en{
  font-family:Georgia,serif;font-size:1.08rem;color:var(--deep);line-height:1.7;
}
blockquote .q-cn{
  font-family:'Songti SC','STSong',Georgia,serif;font-size:.9rem;color:#9ab4b8;margin-top:.6rem;letter-spacing:.03em;
}
blockquote .src{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:#b3c8cb;margin-top:.8rem}

/* ---------- pager ---------- */
.pager{
  position:relative;z-index:2;max-width:820px;margin:0 auto;padding:3rem 2rem 1rem;
  display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;
  border-top:1px solid #e6e0d2;
}
.pager a{
  color:var(--sea);text-decoration:none;font-size:.86rem;letter-spacing:.12em;text-transform:uppercase;
  transition:.3s;
}
.pager a:hover{color:var(--sunset)}
.pager .home{color:#8fa8ad}

footer{
  position:relative;z-index:2;text-align:center;padding:2.5rem 1.5rem 3.5rem;
  color:#a9c2c6;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;
}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.3,1)}
.reveal.in{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media (max-width:820px){
  .hero-book{grid-template-columns:1fr;gap:2rem;padding:1rem 1.5rem 3rem}
  .hero-book .cover{width:52%;max-width:210px;margin:0 auto}
  .hero-book h1{font-size:2rem}
  .topbar{padding:1.1rem 1.5rem;font-size:.7rem}
  .sec{padding:2.8rem 1.5rem}
  .toc{columns:1}
  .pager{padding:2.2rem 1.5rem 1rem}
}
@media (max-width:480px){
  .hero-book h1{font-size:1.7rem}
  .en-title{font-size:1.12rem}
  .meta span{display:block;margin-right:0}
}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .bubbles{display:none}
}
