/* Reusable book geometry. Cover art is a separate, replaceable front face. */
[data-world="books"] .forest-hero { min-height:0; padding-bottom:70px; }
[data-world="books"] .books-layer { position:relative; inset:auto; height:auto; width:min(1040px,calc(100% - 64px)); margin:64px auto 20px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:72px 75px; perspective:1800px; }
[data-world="books"] .book-node { position:relative; left:auto; top:auto; width:min(215px,100%)!important; margin:0 auto!important; transform:none!important; }
[data-world="books"] .book-node:nth-child(4) { grid-column:1/2; margin-left:50%!important; }
[data-world="books"] .book-node:nth-child(5) { grid-column:3/4; margin-left:-20%!important; }
[data-world="books"] .book-float { animation:none; }
[data-world="books"] .book-node::before { inset:10% -25% 4%; background:radial-gradient(ellipse,#e5bd7330,transparent 65%); opacity:.7; filter:blur(24px); }
[data-world="books"] .book3d { position:relative; aspect-ratio:2/3; border-radius:2px 6px 6px 2px; transform:perspective(1100px) rotateY(-14deg) rotateX(3deg); transform-style:preserve-3d; background:#121622; box-shadow:18px 22px 28px #0008,3px 5px 8px #0005; transition:transform .45s,box-shadow .45s; }
[data-world="books"] .book3d::before { left:-13px; top:1px; bottom:1px; width:14px; border-radius:3px 0 0 3px; background:linear-gradient(90deg,#10131b,color-mix(in srgb,var(--accent) 45%,#1b1e28) 45%,#141824); box-shadow:inset 2px 0 2px #ffffff20,inset -2px 0 3px #0006; transform:rotateY(-15deg); transform-origin:right; }
[data-world="books"] .book3d::after { right:-9px; top:5px; bottom:5px; width:10px; border-radius:0 3px 3px 0; background:repeating-linear-gradient(0deg,#f3ebda 0 1px,#cec7b7 1px 2px); box-shadow:inset 3px 0 5px #0004; transform:translateZ(-3px); }
[data-world="books"] .cover { border:0; border-radius:2px 5px 5px 2px; padding:25px 22px; background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 28%,#151e2a),#0a101b); }
[data-world="books"] .cover::before { z-index:2; background:linear-gradient(90deg,#ffffff18,transparent 3%,#0005 5%,#ffffff15 7%,transparent 12%,transparent 85%,#0003),linear-gradient(135deg,#ffffff12,transparent 55%); mix-blend-mode:normal; pointer-events:none; }
[data-world="books"] .cover::after { inset:12px; border:1px solid #e9dab32e; box-shadow:none; border-radius:0; }
[data-world="books"] .cover.has-image { padding:0; }
[data-world="books"] .cover.has-image::after { display:none; }
[data-world="books"] .cover.has-image img { display:block; width:100%; height:100%; object-fit:cover; }
[data-world="books"] .cover-emblem { display:none; }
[data-world="books"] .cover-kicker { font-size:10px; letter-spacing:.12em; line-height:1.5; color:#e3dac5; }
[data-world="books"] .cover-title { font-size:23px; line-height:1.22; text-shadow:none; text-align:left; width:100%; font-weight:600; margin:auto 0; }
.mockup-author { width:100%; text-align:left; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:#c9c3b7; }
[data-world="books"] .book-label { position:relative; left:auto; top:auto; transform:none!important; width:auto; max-width:none; padding:22px 0 0; border:0; border-radius:0; background:none; backdrop-filter:none; box-shadow:none; text-align:left; text-transform:none; font-size:15px; font-weight:500; line-height:1.5; letter-spacing:0; display:block; color:#eee6d8; }
[data-world="books"] .soon { top:-12px; right:-8px; font-size:10px; padding:8px 10px; transform:none; border-radius:2px; }
[data-world="books"] .book-node:hover .book3d,[data-world="books"] .book-node:focus-visible .book3d { transform:perspective(1100px) rotateY(-5deg) translateY(-7px); filter:none; box-shadow:22px 28px 35px #0009; }
[data-world="books"] .trees { inset:350px -23vw 0; }
@media(max-width:700px) {
 [data-world="books"] .books-layer { width:calc(100% - 56px); grid-template-columns:repeat(2,minmax(0,1fr)); gap:48px 35px; margin-top:44px; }
 [data-world="books"] .book-node:nth-child(4),[data-world="books"] .book-node:nth-child(5) { grid-column:auto; margin:0 auto!important; }
 [data-world="books"] .book-node:last-child { grid-column:1/-1; width:calc((100% - 35px)/2)!important; }
 [data-world="books"] .cover { padding:18px 14px; }
 [data-world="books"] .cover-title { font-size:clamp(14px,3.7vw,21px); }
 [data-world="books"] .cover-kicker,.mockup-author { font-size:8px; }
 [data-world="books"] .book-label { font-size:13px; }
}
@media(prefers-reduced-motion:reduce) { [data-world="books"] .book-node { transform:none!important; } [data-world="books"] .book3d { transition:none; } }
