.book-detail-page{max-width:900px;padding:var(--space-xl) 0;margin:0 auto}.book-detail-layout{gap:var(--space-xl);grid-template-columns:300px 1fr;display:grid}.book-detail-cover{aspect-ratio:2/3;object-fit:cover;border-radius:var(--radius-sm);background-color:var(--color-sage-light);border:1px solid #d7dadd;width:100%;box-shadow:0 6px 18px #1f293729,0 2px 5px #1f29371a}.book-360-container,.book-360-viewer{align-self:start;width:100%;min-width:0;max-width:320px;margin:0 auto}.book-360-surface{--book-tilt:0deg;isolation:isolate;cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none;border-radius:var(--radius-md);padding:20px 18px 48px;position:relative}.book-360-surface:before{content:"";z-index:-1;height:22px;transform:scaleX(var(--book-footprint,1));pointer-events:none;background:radial-gradient(closest-side,#140f2333,#0000);transition:transform .18s ease-out;position:absolute;bottom:36px;left:10%;right:10%}.book-360-surface .book-3d{transition-duration:.18s}.book-360-surface img{pointer-events:none}.book-360-viewer.is-dragging .book-360-surface{cursor:grabbing}.book-360-viewer.is-dragging .book-3d,.book-360-viewer.is-dragging .book-360-surface:before{transition:none}.book-360-surface:focus-visible{outline:2px solid var(--color-sage-dark);outline-offset:3px}.book-360-hint{color:var(--color-text-muted);letter-spacing:.02em;white-space:nowrap;pointer-events:none;align-items:center;gap:.4rem;font-size:.72rem;transition:opacity .4s;display:inline-flex;position:absolute;bottom:8px;left:50%;translate:-50%}.book-360-hint svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.book-360-hint.is-hidden{opacity:0}.book-360-toolbar{border:1px solid var(--color-border);background:var(--color-surface);border-radius:999px;align-items:center;gap:.25rem;padding:2px;display:flex;box-shadow:0 1px 2px #1f29370d}.book-360-icon-button{width:44px;height:44px;color:var(--color-charcoal);cursor:pointer;transition:background-color var(--transition-base);background:0 0;border:0;border-radius:50%;flex-shrink:0;place-items:center;padding:0;display:inline-grid}.book-360-icon-button svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.book-360-icon-button:hover{background:var(--color-sage-light)}.book-360-icon-button:focus-visible{outline:2px solid var(--color-sage-dark);outline-offset:2px}.book-360-slider{--fill:calc(var(--progress,0) * 100%);--track:color-mix(in srgb, var(--color-charcoal) 14%, transparent);cursor:pointer;appearance:none;background:0 0;flex:1;min-width:0;height:44px;margin:0 .25rem}.book-360-slider:focus-visible{outline:none}.book-360-slider::-webkit-slider-runnable-track{background:linear-gradient(90deg, var(--color-sage-dark) var(--fill), var(--track) var(--fill));border-radius:999px;height:4px}.book-360-slider::-moz-range-track{background:var(--track);border-radius:999px;height:4px}.book-360-slider::-moz-range-progress{background:var(--color-sage-dark);border-radius:999px;height:4px}.book-360-slider::-webkit-slider-thumb{box-sizing:border-box;border:2px solid var(--color-sage-dark);appearance:none;background:#fff;border-radius:50%;width:18px;height:18px;margin-top:-7px;transition:transform .15s,box-shadow .15s;box-shadow:0 1px 3px #1f293733}.book-360-slider::-moz-range-thumb{box-sizing:border-box;border:2px solid var(--color-sage-dark);background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .15s,box-shadow .15s;box-shadow:0 1px 3px #1f293733}.book-360-slider:hover::-webkit-slider-thumb{transform:scale(1.12)}.book-360-slider:hover::-moz-range-thumb{transform:scale(1.12)}.book-360-slider:active::-webkit-slider-thumb{transform:scale(1.25)}.book-360-slider:active::-moz-range-thumb{transform:scale(1.25)}.book-360-slider:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px color-mix(in srgb, var(--color-sage-dark) 30%, transparent)}.book-360-slider:focus-visible::-moz-range-thumb{box-shadow:0 0 0 4px color-mix(in srgb, var(--color-sage-dark) 30%, transparent)}.book-360-angle{min-width:4ch;color:var(--color-text-muted);font-variant-numeric:tabular-nums;text-align:right;font-size:.75rem}.book-360-dialog{width:100%;max-width:none;height:100dvh;max-height:none;padding:max(16px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));color:var(--color-charcoal);overscroll-behavior:contain;background:#f5f4f1;border:0;margin:0;position:fixed;inset:0}.book-360-dialog::backdrop{background:#f5f4f1}.book-360-dialog-layout{flex-direction:column;min-height:100%;display:flex}.book-360-dialog-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.book-360-dialog-header h2{font-size:clamp(.95rem,2vw,1.25rem)}.book-360-dialog-header .book-360-icon-button{border:1px solid var(--color-border);background:var(--color-surface)}.book-360-dialog-header .book-360-icon-button:hover{background:var(--color-sage-light)}.book-360-dialog .book-360-viewer{flex-direction:column;flex:1;justify-content:center;align-items:center;max-width:none;display:flex}.book-360-dialog .book-360-surface{width:min(84vw,max(160px,70dvh - 154px),780px);padding:20px 12px 48px}.book-360-dialog .book-360-toolbar{width:min(100%,420px)}@media (min-width:640px) and (max-height:600px){.book-360-dialog .book-360-viewer{grid-template-rows:1fr auto 1fr;grid-template-columns:minmax(0,1fr) 300px;column-gap:1.5rem;display:grid}.book-360-dialog .book-360-surface{grid-row:1/4;justify-self:center;width:min(100%,max(160px,70dvh - 105px))}.book-360-dialog .book-360-toolbar{grid-area:2/2}}@media (prefers-reduced-motion:reduce){.book-360-surface .book-3d,.book-360-surface:before,.book-360-hint{transition:none}.book-360-slider::-webkit-slider-thumb{transition:none}.book-360-slider::-moz-range-thumb{transition:none}}.book-detail-categories{flex-wrap:wrap;gap:.35rem;display:flex}.book-detail-info{align-items:flex-start;gap:var(--space-sm);flex-direction:column;display:flex}.book-detail-subtitle{color:var(--color-text-muted);font-size:var(--font-size-lg)}.book-detail-authors{color:var(--color-sage-dark);font-size:var(--font-size-md)}.book-detail-author:hover{text-decoration:underline}.book-detail-meta{gap:var(--space-xs);flex-direction:column;width:100%;display:flex}.book-detail-meta>div{align-items:baseline;gap:var(--space-sm);display:flex}.book-detail-meta dt{min-width:7rem;color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:500}.book-detail-meta dd{color:var(--color-charcoal);font-size:var(--font-size-md)}.book-detail-purchase,.book-detail-purchase-pending{align-items:flex-start;gap:var(--space-xs);flex-direction:column;display:flex}.book-detail-purchase-links{gap:var(--space-sm);flex-wrap:wrap;display:flex}.book-detail-purchase p,.book-detail-purchase-pending p{font-size:var(--font-size-xs)}.book-detail-description{max-width:760px;margin:var(--space-xl) auto 0;padding-top:var(--space-xl);border-top:1px solid var(--color-border);gap:var(--space-md);flex-direction:column;display:flex}.book-podcast{margin-top:var(--space-xl);border:1px solid var(--color-border);background:#faf8f3;border-radius:12px;grid-template-columns:minmax(220px,.42fr) minmax(0,1fr);align-items:center;gap:clamp(1.5rem,4vw,3rem);padding:clamp(1.25rem,3vw,2rem);display:grid}.book-podcast-copy>p:first-child{color:var(--color-sage-dark);letter-spacing:.12em;text-transform:uppercase;margin-bottom:.5rem;font-size:.7rem;font-weight:700}.book-podcast-copy h2{letter-spacing:-.025em;margin-bottom:.65rem;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.55rem,3vw,2.1rem)}.book-podcast-link{color:var(--color-charcoal);font-size:var(--font-size-sm);align-items:center;gap:.4rem;margin-top:1rem;font-weight:500;display:inline-flex}.book-podcast-link:hover{color:var(--color-sage-dark)}.book-detail-description h2{margin-bottom:var(--space-xs)}.related-books{margin-top:var(--space-2xl);padding-top:var(--space-xl);border-top:1px solid var(--color-border)}.related-books h2{margin-bottom:var(--space-lg)}.related-books-grid{gap:var(--space-md);grid-template-columns:repeat(4,1fr);display:grid}@media (max-width:767px){.book-detail-layout{grid-template-columns:1fr}.book-detail-cover{max-width:280px;margin:0 auto}.book-detail-info{text-align:center;align-items:center}.book-detail-meta,.book-detail-purchase,.book-detail-purchase-pending{align-items:center}.book-detail-purchase-links{justify-content:center}.book-podcast{grid-template-columns:1fr}.related-books-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:479px){.related-books-grid{grid-template-columns:1fr}}
