.full-book-page { margin: 0; background: #14252d; color: #f1ebe0; font-family: Companion, Arial, sans-serif; }
.book-topbar { max-width: 1220px; margin: auto; padding: 24px 40px; display: flex; align-items: center; justify-content: space-between; gap: 24px; border-bottom: 1px solid #b58b524d; }
.book-brand { max-width: 15ch; font-family: Prologue, Georgia, serif; font-size: 22px; line-height: 1.08; text-decoration: none; letter-spacing: -.02em; }
.book-topbar nav { display: flex; gap: 24px; font-size: 13px; }
.book-topbar a { min-height: 44px; display: inline-flex; align-items: center; }
.full-book-layout, .full-book-offer { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1fr); align-items: center; gap: clamp(44px, 7vw, 110px); padding: 90px max(28px, calc((100vw - 1120px) / 2)); background: radial-gradient(ellipse at 25% 45%, #355352 0, #14252d 57%); color: #f1ebe0; }
.full-book-layout { min-height: min(850px, calc(100svh - 93px)); }
.full-book-offer { border-top: 1px solid #b58b524d; }
.book-stage { perspective: 1300px; padding: 24px 22px 36px; }
.book-object { position: relative; max-width: 345px; margin: auto; transform: rotate(-2deg) rotateY(-9deg); transform-style: preserve-3d; transition: transform .35s ease; }
.book-object::before { content: ''; position: absolute; inset: -10px; background: #d9d0b9; box-shadow: 16px 18px 0 #263e43, 22px 35px 50px #0009; z-index: -1; }
.book-object img { display: block; width: 100%; height: auto; aspect-ratio: 2 / 3; object-fit: contain; position: relative; z-index: 2; background: #14252d; box-shadow: inset 8px 0 12px #0005; }
.book-pages { position: absolute; top: 4px; bottom: 4px; width: 9px; right: -8px; transform: rotateY(38deg); transform-origin: left; background: repeating-linear-gradient(90deg, #e5dfd1 0 1px, #ada99a 1px 2px); }
.approved-cover { position:relative; aspect-ratio:2 / 3; overflow:hidden; z-index:2; background:#14252d; }
/* Show the approved front trim as a viewport into the unchanged full-wrap master. */
.book-object .approved-cover img { position:absolute; width:211.944444%; max-width:none; height:102.777778%; aspect-ratio:auto; left:-109.861111%; top:-1.388889%; object-fit:fill; }
.book-object:hover { transform: rotate(-1deg) rotateY(-3deg) translateY(-3px); }
.book-copy { max-width: 570px; }
.book-eyebrow { margin: 0 0 20px; color: #d4ad70; text-transform: uppercase; letter-spacing: .15em; font-size: 12px; font-weight: 600; }
.book-copy h1, .book-copy h2 { margin: 0; font-family: Prologue, Georgia, serif; font-weight: 500; font-size: clamp(40px, 4.3vw, 62px); line-height: 1.06; color: #f1ebe0; }
.book-copy h1 em, .book-copy h2 em { font-size: .78em; font-weight: 400; }
.book-subtitle { color: #d4ad70; font-size: clamp(12px, 1.15vw, 15px); letter-spacing: .12em; line-height: 1.6; margin: 20px 0 28px; }
.book-copy p:not(.book-eyebrow):not(.book-subtitle) { font-size: 16px; line-height: 1.8; color: #c5d0ce; }
.book-buy, .book-read { display: flex; align-items: center; justify-content: space-between; gap: 24px; width: fit-content; min-width: 220px; min-height: 48px; padding: 12px 0; margin-top: 24px; font-size: 14px; text-decoration: none; border-bottom: 1px solid #d4ad70; }
.book-buy { background: #d4ad70; color: #14252d; padding: 14px 20px; }
.book-buy:hover { background: #f1d6a4; color: #14252d; }
.book-purchase { margin-top:28px; padding-top:24px; border-top:1px solid #d4ad7060; }
.book-purchase .book-eyebrow { margin:0 0 12px; }
.book-purchase .book-buy { margin-top:0; max-width:100%; min-width:min(260px,100%); font-size:1rem; line-height:1.4; }
.book-read:hover { color: #f1d6a4; }
.book-depth { background: #f1ebe0; color: #24333c; padding: 70px max(28px, calc((100vw - 1120px) / 2)); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px 44px; }
.book-depth .book-eyebrow { grid-column: 1 / -1; color: #795225; }
.book-depth h2 { font-family: Prologue, Georgia, serif; font-size: 30px; line-height: 1.15; font-weight: 500; color: #24333c; }
.book-depth p { font-size: 15px; line-height: 1.8; }
.book-copy p + p { margin-top:16px; }
.book-topbar nav, .book-footer { font-size:.875rem; }
.book-depth p { font-size:1rem; }
.book-footer { max-width: 1220px; margin: auto; padding: 30px 40px; display: flex; justify-content: space-between; gap: 20px; font-size: 13px; }
.book-footer a { min-height: 44px; display: inline-flex; align-items: center; }

.book-map-preview { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:2.5rem 3.5rem; padding:clamp(3rem,7vw,5rem) max(28px,calc((100vw - 1120px) / 2)); background:#f1ebe0; color:#24333c; scroll-margin-top:24px; }
.map-preview-heading { grid-column:1 / -1; max-width:780px; }
.book-map-preview .book-eyebrow { color:#795225; font-size:.875rem; }
.book-map-preview :is(h1,h2) { color:#24333c; font:400 clamp(2.3rem,4vw,3.7rem)/1.08 Prologue,Georgia,serif; letter-spacing:-.035em; }
.book-map-preview p { font-size:1.0625rem; line-height:1.7; }
.map-preview-heading > p:last-child { margin-top:1.25rem; }
.map-preview-art { min-width:0; margin:0; align-self:start; }
/* Viewport into the unchanged released map: steps 4–5, source rectangle 136,728,824,290. */
.map-detail-window { position:relative; display:block; aspect-ratio:824 / 290; overflow:hidden; background:#101c25; border:1px solid #927246; }
.map-detail-window img { position:absolute; width:124.27184466%; max-width:none; height:auto; left:-16.50485437%; top:-251.03448276%; }
.map-preview-art figcaption { margin-top:1rem; color:#546168; font-size:.875rem; line-height:1.6; }
.map-preview-art figcaption a { display:inline-flex; align-items:center; gap:.8rem; min-height:44px; color:#624519; text-underline-offset:4px; }
.map-packet-link { margin-top:.75rem; border-top:1px solid #9c7c4d65; padding-top:.5rem; }
.map-packet-link > span { display:block; margin-top:.25rem; }
.map-packet-link a span { flex:none; }
.map-excerpt-text { margin:0; border-left:2px solid #b38b50; padding-left:1.5rem; }
.map-excerpt-text p + p { margin-top:.6rem; }
.map-excerpt-text p.map-step { color:#795225; font-size:.875rem; font-weight:600; line-height:1.5; letter-spacing:.04em; }
.map-excerpt-text p + p.map-step { margin-top:1.5rem; }
.map-excerpt-text footer { margin-top:1.25rem; color:#546168; font-size:.875rem; }
.map-preview-purpose { grid-column:1 / -1; border-top:1px solid #9c7c4d65; padding-top:2rem; }
.map-preview-purpose h3 { margin:0 0 1rem; color:#24333c; font:400 1.9rem/1.15 Prologue,Georgia,serif; }
.map-preview-purpose p { max-width:75ch; }
.map-preview-purpose .book-buy { font-size:1rem; line-height:1.4; max-width:100%; }
.book-map-preview :is(a,summary):focus-visible { outline-color:#795225; }
@media(max-width:800px) { .book-map-preview { grid-template-columns:1fr; gap:2rem; } .map-preview-art { max-width:650px; } }
@media(max-width: 700px) {
  .book-topbar { padding: 15px 24px; gap: 14px; flex-wrap: wrap; }
  .book-topbar nav { gap: 16px; font-size: 11px; }
  .book-brand { font-size: 20px; }
  .full-book-layout, .full-book-offer { grid-template-columns: 1fr; padding: 45px 28px 56px; gap: 30px; }
  .book-object { max-width: 245px; }
  .book-copy h1, .book-copy h2 { font-size: 46px; }
  .book-copy { max-width: 520px; margin: auto; }
  .book-copy p:not(.book-eyebrow):not(.book-subtitle) { font-size: 15px; }
  .book-depth { grid-template-columns: 1fr; padding: 45px 28px; gap: 8px; }
  .book-depth h2 { margin-bottom: 10px; }
  .book-footer { padding: 24px; flex-wrap: wrap; }
}
@media(prefers-reduced-motion: reduce) { .book-object { transition: none; } .book-object:hover { transform: rotate(-2deg) rotateY(-9deg); } }

.preorder-form { margin-top:30px; padding-top:25px; border-top:1px solid #d4ad7060; scroll-margin-top:100px; }
.preorder-form h3 { margin:0 0 18px; color:#f1ebe0; font:500 21px/1.4 Companion,Arial,sans-serif; }
.preorder-form label { display:block; margin-bottom:8px; color:#f1ebe0; font-size:14px; }
.preorder-row { display:flex; gap:10px; }
.preorder-row input { box-sizing:border-box; flex:1; min-width:0; min-height:50px; border:1px solid #9facaa; border-radius:3px; background:#0f2028; color:#f1ebe0; padding:12px 14px; font:16px Companion,Arial,sans-serif; }
.preorder-row input::placeholder { color:#a9b9b9; }
.preorder-submit { min-height:50px; padding:12px 20px; border:1px solid #d4ad70; border-radius:3px; background:#d4ad70; color:#14252d; font:600 15px Companion,Arial,sans-serif; cursor:pointer; white-space:nowrap; }
.preorder-submit:hover { background:#f1d6a4; }
.preorder-submit:disabled { cursor:wait; opacity:.7; }
.preorder-form :focus-visible, .signup-message :focus-visible { outline:3px solid #f1d6a4; outline-offset:4px; }
.book-copy .preorder-form p.preorder-note { margin:12px 0 0; font-size:13px; line-height:1.6; color:#c5d0ce; }
.preorder-note a { text-underline-offset:3px; }
.book-copy .preorder-form p.preorder-status { margin:15px 0 0; font-size:15px; line-height:1.6; color:#f1d6a4; }
.preorder-status:empty, .preorder-form [hidden] { display:none; }
.preorder-trap { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.signup-message { max-width:650px; margin:auto; padding:clamp(45px,10vh,110px) 28px; }
.signup-message h1 { font:500 clamp(36px,6vw,56px)/1.1 Prologue,Georgia,serif; color:#f1ebe0; }
.signup-message p { color:#c5d0ce; line-height:1.8; }
.hero-preorder { color:inherit; font-size:14px; min-height:44px; display:inline-flex; align-items:center; gap:12px; margin-top:12px; text-underline-offset:5px; }
@media(max-width:420px) { .preorder-row { flex-direction:column; } .preorder-submit { width:100%; } }
