/* Book editorial: shared typography, buttons, spacing, and one dedicated 3D stage. */
.v2 .book-page { padding-top: var(--v2-gutter); }
.v2 .book-label { display:block; font-size:var(--ds-label); color:#646963; line-height:1.5; }
.v2 .book-hero { margin:0 var(--v2-gutter); padding:32px var(--ds-section-inset) 44px; border-radius:var(--ds-radius); background:#e9e9e3; overflow:hidden; }
.v2 .book-hero-top { display:flex; justify-content:space-between; gap:20px; align-items:center; color:#61655f; font-size:var(--ds-label); }
.v2 .book-hero-top a { display:inline-flex; align-items:center; gap:12px; min-height:32px; }
.v2 .book-hero-top a:hover { color:var(--v2-fg); }
.v2 .book-hero-grid { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:clamp(24px,4vw,64px); }
.v2 .book-intro { padding-block:62px 32px; }
.v2 .book-intro h1 { font-size:var(--ds-hero); line-height:1.01; margin:26px 0 26px; }
.v2 .book-title-dot { color:#3155c8; }
.v2 .book-subtitle { font-size:var(--ds-lead); line-height:1.55; max-width:38ch; }
.v2 .book-description { max-width:44ch; color:#60655f; font-size:var(--ds-copy); line-height:1.65; margin-top:20px; }
.v2 .book-author { margin-top:26px; font-size:var(--ds-label); }
.v2 .book-author span { display:block; margin-top:3px; color:#646963; font-size:var(--ds-meta); }
.v2 .book-actions { display:flex; align-items:center; gap:18px 26px; flex-wrap:wrap; margin-top:32px; }
.v2 .book-actions svg { width:19px; height:19px; }
.v2 .book-text-link { display:inline-flex; align-items:center; gap:14px; font-size:var(--ds-label); line-height:1.5; min-height:44px; text-underline-offset:5px; }
.v2 .book-text-link:hover { text-decoration:underline; }
.v2 .book-facts { display:flex; gap:0; flex-wrap:wrap; margin-top:26px; font-size:var(--ds-meta); color:#646963; }
.v2 .book-facts span+span::before { content:'·'; padding-inline:12px; }
.v2 .book-art { margin:0; min-width:0; align-self:stretch; display:flex; flex-direction:column; justify-content:center; position:relative; }
.v2 .book-model { width:100%; aspect-ratio:1; position:relative; isolation:isolate; cursor:grab; touch-action:pan-y; }
.v2 .book-model:active { cursor:grabbing; }
.v2 .book-model::before { content:''; position:absolute; width:68%; height:8%; left:16%; bottom:2%; background:radial-gradient(ellipse,rgba(39,44,45,.20),transparent 68%); filter:blur(9px); z-index:-1; }
.v2 .book-poster,.v2 .book-model canvas { width:100%; height:100%; object-fit:contain; position:absolute; inset:0; }
.v2 .book-poster { transition:opacity 350ms ease; }
.v2 .book-model canvas { opacity:0; transition:opacity 350ms ease; }
.v2 .book-model.is-ready canvas { opacity:1; }
.v2 .book-model.is-ready .book-poster { opacity:0; pointer-events:none; }
.v2 .book-art figcaption { display:flex; gap:12px; align-items:center; justify-content:space-between; padding:26px 16px 0; color:#646963; font-size:var(--ds-meta); }
.v2 .book-open { display:inline-flex; gap:18px; align-items:center; min-height:44px; border:1px solid #c0c3b9; padding:0 18px; border-radius:var(--ds-control-radius); background:transparent; color:#303a34; font:inherit; cursor:pointer; transition:background var(--ds-fast); }
.v2 .book-open:hover { background:#f6f6f0; }
.v2 .book-open[hidden] { display:none; }
.v2 .book-wrap { max-width:1600px; margin-inline:auto; padding-inline:calc(var(--v2-gutter) + var(--ds-section-inset)); }
.v2 .book-inside { padding-block:var(--ds-section-gap); scroll-margin-top:90px; }
.v2 .book-section-head { display:grid; grid-template-columns:1.2fr 1fr; gap:60px; align-items:end; margin-bottom:44px; }
.v2 .book-section-head h2,.v2 .book-preview h2,.v2 .book-download h2 { font-size:var(--ds-heading); line-height:1.1; margin-top:18px; }
.v2 .book-section-head>p { color:var(--v2-muted); font-size:var(--ds-copy); line-height:1.7; max-width:48ch; }
.v2 .book-parts { list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:0 48px; margin:0; padding:0; }
.v2 .book-parts li { border-top:1px solid #d5d8d0; display:grid; grid-template-columns:34px 1fr; gap:14px; padding-block:28px; }
.v2 .book-part-number { font-size:var(--ds-label); color:#6d765f; padding-top:3px; }
.v2 .book-parts h3 { font-size:var(--ds-card-heading); line-height:1.2; }
.v2 .book-parts p { color:var(--v2-muted); margin-top:14px; line-height:1.65; font-size:var(--ds-body); max-width:48ch; }
.v2 .book-part-page { display:block; margin-top:18px; color:#747a71; font-size:var(--ds-meta); }
.v2 .book-preview { margin-inline:var(--v2-gutter); border-radius:var(--ds-radius); background:#dfe6dc; display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,8vw,128px); padding:clamp(36px,6vw,88px) var(--ds-section-inset); align-items:center; overflow:hidden; }
.v2 .book-preview-copy>p { font-size:var(--ds-copy); color:#5b6758; line-height:1.65; margin-top:24px; max-width:38ch; }
.v2 .book-preview-options { margin-top:32px; border-bottom:1px solid #bcc8b7; }
.v2 .book-preview-options button { display:grid; width:100%; grid-template-columns:22px 1fr 18px; gap:16px; padding:24px 0; text-align:left; align-items:start; border:0; border-top:1px solid #bcc8b7; background:transparent; color:#606e5e; cursor:pointer; font:inherit; }
.v2 .book-preview-options button>span { font-size:var(--ds-meta); margin-top:3px; }
.v2 .book-preview-options strong { display:block; font-size:var(--ds-copy); font-weight:400; line-height:1.45; }
.v2 .book-preview-options small { display:block; font-size:var(--ds-meta); margin-top:8px; }
.v2 .book-preview-options button[aria-pressed="true"] { color:#182b20; }
.v2 .book-preview-options button[aria-pressed="true"] strong { font-weight:500; }
.v2 .book-preview-options button[aria-pressed="true"]>span:first-child { color:#285037; }
.v2 .book-preview-options button>span:last-child { opacity:0; transition:opacity var(--ds-fast); }
.v2 .book-preview-options button:is(:hover,[aria-pressed="true"])>span:last-child { opacity:1; }
.v2 .book-preview-copy>.book-text-link { margin-top:24px; }
.v2 .book-preview-sheet { width:min(100%,450px); justify-self:center; transform:rotate(2deg); }
.v2 .book-preview-sheet img { width:100%; height:auto; border-radius:2px; box-shadow:0 24px 50px -24px #45503f60,0 2px 8px #2b352d0f; background:white; }
.v2 .book-preview-caption { display:block; margin-top:18px; font-size:var(--ds-meta); text-align:center; color:#596754; }
.v2 .book-download { display:flex; align-items:center; justify-content:space-between; gap:40px; padding-block:var(--ds-section-gap); }
.v2 .book-download p { font-size:var(--ds-copy); color:var(--v2-muted); line-height:1.65; margin-top:24px; }
.v2 .book-download-action { display:grid; justify-items:center; gap:16px; flex-shrink:0; }
.v2 .book-download-action>span { font-size:var(--ds-meta); color:var(--v2-muted); }
@media(min-width:1600px){.v2 .book-hero-grid { max-width:1530px; margin-inline:auto; }.v2 .book-model { max-height:690px; }}
@media(max-width:1100px){.v2 .book-hero { padding-inline:32px; }.v2 .book-hero-grid{gap:20px;}.v2 .book-art figcaption{padding-inline:0;}.v2 .book-wide-break{display:none;}.v2 .book-parts{gap:0 28px;}.v2 .book-preview{gap:40px;}}
@media(max-width:800px){.v2 .book-hero { padding:24px; }.v2 .book-hero-grid { grid-template-columns:1fr; gap:0; }.v2 .book-intro { padding:40px 0 0; }.v2 .book-intro h1 { font-size:clamp(3rem,11vw,5.5rem); margin-block:20px; }.v2 .book-hero-top>span{font-size:var(--ds-meta);}.v2 .book-description{max-width:52ch;}.v2 .book-art{width:min(100%,520px);justify-self:center;margin-top:26px;}.v2 .book-art figcaption{padding-top:12px;}.v2 .book-section-head{grid-template-columns:1fr;gap:24px;}.v2 .book-wrap{padding-inline:calc(var(--v2-gutter) + 16px);}.v2 .book-preview{grid-template-columns:1fr;padding:36px 28px;gap:40px;}.v2 .book-preview-sheet{width:min(90%,420px);}.v2 .book-download{align-items:flex-start;flex-direction:column;}.v2 .book-download-action{justify-items:start;}}
@media(max-width:540px){.v2 .book-parts{grid-template-columns:1fr;}.v2 .book-actions{gap:14px;}.v2 .book-actions>.btn{width:100%;}.v2 .book-actions>.book-text-link{width:100%;justify-content:center;}.v2 .book-author{margin-top:22px;}.v2 .book-facts{margin-top:16px;}.v2 .book-art figcaption{font-size:.75rem;gap:8px;}.v2 .book-open{padding-inline:12px;gap:10px;}.v2 .book-preview-options button{gap:10px;}}
@media(prefers-reduced-motion:reduce){.v2 .book-poster,.v2 .book-model canvas{transition:none;}.v2 .book-preview-sheet{transform:none;}}
