.book-page{background:#fff}
.book-intro{padding:64px 0 44px;border-bottom:1px solid var(--line)}
.book-intro-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(340px,.7fr);gap:64px;align-items:end}
.book-intro h1{margin:0;font-size:clamp(32px,3vw,40px)!important;font-weight:540!important;line-height:1.16!important;letter-spacing:-.04em!important}
.book-intro-copy{max-width:560px;justify-self:end}
.book-intro-copy p{margin:0;color:#6b746f;font-size:15px;line-height:1.78}
.book-intro-copy .book-lead{margin-bottom:10px;color:#222722;font-size:17px;font-weight:540;line-height:1.62;letter-spacing:-.022em}
.book-gallery-section{padding:32px 0 112px}
.book-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:0 0 15px;margin-bottom:26px;border-bottom:1px solid var(--line);font-size:10.5px;font-weight:700;letter-spacing:.08em;color:#7b8580}
.book-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:22px;row-gap:48px}
.book-card{display:block;width:100%;padding:0;border:0;background:none;text-align:left;color:inherit;cursor:pointer}
.book-card:focus-visible{outline:2px solid var(--brand);outline-offset:6px;border-radius:12px}
.book-cover{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;background:#f0f3f1;border-radius:10px}
.book-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 68%,rgba(0,0,0,.16));pointer-events:none}
.book-cover img{width:100%;height:100%;object-fit:cover;transition:transform .4s cubic-bezier(.2,.7,.2,1)}
.book-card:hover .book-cover img{transform:scale(1.018)}
.book-number{position:absolute;right:13px;bottom:11px;z-index:1;color:#fff;font-size:11px;font-weight:750;letter-spacing:.08em}
.book-category{display:block;margin-top:15px;color:var(--brand);font-size:10.5px;font-weight:800;letter-spacing:.09em}
.book-card strong{display:block;margin-top:8px;font-size:18px;font-weight:570;line-height:1.45;letter-spacing:-.03em;color:#1d211d}
.book-summary{display:block;margin-top:8px;color:#727c76;font-size:13px;line-height:1.68}

.book-reader{display:none;position:fixed;inset:0;z-index:100}
.book-reader.is-open{display:block}
.book-reader-backdrop{position:absolute;inset:0;background:rgba(8,18,13,.62);backdrop-filter:blur(8px)}
.book-reader-panel{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(1080px,calc(100% - 48px));height:min(88vh,900px);max-height:900px;overflow:hidden;background:#fff;border-radius:18px;box-shadow:0 28px 90px rgba(0,0,0,.24);display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr)}
.book-reader-close{position:absolute;right:18px;top:18px;z-index:4;min-width:64px;height:38px;padding:0 14px;border:1px solid #dfe5e1;border-radius:999px;background:rgba(255,255,255,.96);color:var(--brand);font-size:12px;font-weight:700;cursor:pointer;box-shadow:0 7px 24px rgba(0,0,0,.08)}
.book-reader-hero{min-height:0;background:#edf1ee;overflow:hidden}
.book-reader-hero img{width:100%;height:100%;object-fit:cover}
.book-reader-content{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:54px 48px 64px;scrollbar-gutter:stable}
.reader-meta{display:flex;justify-content:space-between;gap:20px;padding-bottom:14px;border-bottom:1px solid var(--line);color:var(--brand);font-size:10.5px;font-weight:800;letter-spacing:.08em}
.book-reader-content h2{max-width:650px;margin:26px 0 0;font-size:clamp(27px,2.45vw,36px)!important;font-weight:560!important;line-height:1.24!important;letter-spacing:-.042em!important}
.reader-deck{max-width:650px;margin:17px 0 0;color:#4f5853;font-size:16px;line-height:1.78;letter-spacing:-.015em}
.reader-body{margin-top:34px;color:#353c38;font-size:15px;line-height:1.92}
.reader-body h3{margin:42px 0 14px;font-size:20px!important;font-weight:610!important;line-height:1.48!important;letter-spacing:-.028em!important;color:#202520}
.reader-body h3:first-child{margin-top:0}
.reader-body p{margin:0 0 18px}
.reader-body p+p{margin-top:-2px}
.reader-body p+h3{margin-top:42px}
.reader-end{margin-top:48px;padding-top:18px;border-top:1px solid var(--line);font-size:10.5px;font-weight:750;letter-spacing:.1em;color:#87908b}
body.reader-open{overflow:hidden}

@media(max-width:1180px){
  .book-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .book-intro-grid{gap:48px}
}
@media(max-width:900px){
  .book-intro{padding:56px 0 40px}
  .book-intro-grid{grid-template-columns:1fr;gap:24px}
  .book-intro-copy{justify-self:start}
  .book-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:17px;row-gap:42px}
  .book-reader-panel{width:min(720px,calc(100% - 28px));height:min(92vh,920px);grid-template-columns:1fr;grid-template-rows:240px minmax(0,1fr);border-radius:16px}
  .book-reader-hero{height:240px}
  .book-reader-content{padding:34px 28px 48px}
  .book-reader-close{right:14px;top:14px}
}
@media(max-width:560px){
  .book-intro{padding:48px 0 36px}
  .book-intro h1{font-size:32px!important}
  .book-intro-copy .book-lead{font-size:16px}
  .book-gallery-section{padding:28px 0 84px}
  .book-toolbar{align-items:flex-start;flex-direction:column;gap:6px;margin-bottom:22px}
  .book-grid{grid-template-columns:1fr;row-gap:40px}
  .book-cover{aspect-ratio:1.05/1}
  .book-card strong{font-size:18px}
  .book-summary{font-size:13.5px}
  .book-reader-panel{width:calc(100% - 16px);height:calc(100dvh - 16px);max-height:none;border-radius:14px;grid-template-rows:190px minmax(0,1fr)}
  .book-reader-hero{height:190px}
  .book-reader-content{padding:30px 20px 42px}
  .book-reader-content h2{font-size:28px!important;margin-top:22px}
  .reader-deck{font-size:15px;line-height:1.72}
  .reader-body{margin-top:30px;font-size:14.5px;line-height:1.88}
  .reader-body h3{font-size:18px!important;margin-top:36px}
}