.card-book{margin:20px auto;width:100%;max-width:980px}.book-stage{perspective:1800px;padding:12px 0 20px;touch-action:pan-y}.book-spread{position:relative;width:100%;transform:translateX(-25%);transition:transform .85s ease;transform-style:preserve-3d;min-height:360px}.book-leaf{position:absolute;left:50%;top:0;width:50%;height:100%;transform-origin:left center;transform-style:preserve-3d;transition:transform .85s cubic-bezier(.3,.05,.25,1)}.book-cover{z-index:2}.book-rear{z-index:1}.card-book .book-face{position:absolute;inset:0;margin:0;min-height:360px;height:100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;box-shadow:0 8px 24px #16363c20;padding:24px;border:1px solid #c9c5b8;justify-content:center}.card-book .front-paper{padding:0 0 24px;justify-content:flex-start}.face-reverse{transform:rotateY(180deg)}.card-book[data-view=inside] .book-spread{transform:translateX(0)}.card-book[data-view=inside] .book-cover,.card-book[data-view=back] .book-cover{transform:rotateY(-180deg)}.card-book[data-view=back] .book-spread{transform:translateX(25%)}.card-book[data-view=back] .book-rear{transform:rotateY(-180deg);z-index:3}.book-status{text-align:center;font-size:13px!important;margin:8px 0 14px!important}.book-controls{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.book-controls button{padding:12px 16px;min-height:44px}.book-controls button:disabled{opacity:.4;cursor:default}.book-flat .book-spread{height:auto!important;transform:none!important;display:grid;grid-template-columns:1fr 1fr;gap:16px;transform-style:flat}.book-flat .book-leaf{display:contents}.book-flat .book-face{position:relative;inset:auto;transform:none!important;backface-visibility:visible;height:auto!important}.book-flat .book-stage{perspective:none}.card-book .personal-note{white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:600px){.card-book .book-face{padding:12px;min-height:360px}.card-book .front-paper{padding:0 0 12px}.card-book .side-paper h3{font-size:20px}.card-book .side-paper p,.card-book .message-paper .personal-note{font-size:13px;line-height:1.5}.card-book .side-paper .eyebrow{font-size:9px;letter-spacing:.08em}.card-book .side-paper .small{font-size:11px}.card-book .recipe-paper .button{font-size:11px;padding:8px;min-height:44px}.card-book .front-paper h3{padding:0 10px}.book-controls{gap:8px}.book-controls button{font-size:13px;padding:10px}.book-flat .book-spread{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.book-spread,.book-leaf{transition:none}}
@media print{.book-controls,.book-status{display:none}.book-spread{transform:none!important;height:auto!important;display:grid;grid-template-columns:1fr 1fr;gap:12px}.book-leaf{display:contents}.card-book .book-face{position:relative;transform:none!important;backface-visibility:visible;height:auto!important;break-inside:avoid}}

.card-book .book-face>*{flex-shrink:0}
/* Full recipes stay in the card; page height grows with the written method. */
.card-book .recipe-paper{justify-content:flex-start}.card-book .panel-recipe-image{height:110px;width:100%;object-fit:contain;aspect-ratio:auto}.card-recipe-content{text-align:left;width:100%;font-size:14px;line-height:1.55}.card-book .card-recipe-content p,.card-book .card-recipe-content li,.card-book .card-recipe-content dd,.card-book .card-recipe-content dt{font-size:14px;line-height:1.55;margin:6px 0}.card-recipe-content dl{display:block}.card-recipe-content dd{margin-left:0!important}.card-recipe-content dt{font-weight:700}.card-recipe-content ol{padding-left:20px}.card-recipe-content h4,.card-book .card-recipe-content h3{font-family:inherit;font-size:15px;margin:18px 0 8px}.card-book .back-paper .button{white-space:normal}.card-book .book-face{box-shadow:none}@media(max-width:600px){.card-book .card-recipe-content{font-size:14px}.card-book .panel-recipe-image{height:80px}.card-book .recipe-paper{padding:10px}.card-book .card-recipe-content h4,.card-book .card-recipe-content h3{font-size:14px}}
.book-controls{margin-bottom:18px}.card-book[data-view=inside] .message-paper{justify-content:flex-start;padding-top:42px}
/* Fixed 5:7 faces; recipes paginate within their allocated text area. */
.card-book{max-width:900px}.card-book .book-face{min-height:0!important;box-sizing:border-box;overflow:hidden}.card-book .recipe-paper{display:flex;gap:6px;padding:18px}.card-book .recipe-paper .eyebrow{margin:0;font-size:10px}.card-book .recipe-paper>h3{font-size:22px;line-height:1.15;margin:4px 0}.card-book .panel-recipe-image{height:64px;flex:0 0 64px}.card-book .card-recipe-content{flex:1 1 0!important;min-height:0;overflow:hidden;white-space:pre-wrap;font-size:14px;line-height:1.5;margin:0}.recipe-page-nav{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:12px;flex:0 0 auto}.recipe-page-nav button{padding:4px 12px;min-height:36px}.recipe-page-nav button:disabled{opacity:.35}.card-book .recipe-paper>.button{padding:5px 8px;min-height:32px;font-size:11px}.card-book .message-paper .personal-note{overflow:auto;min-height:0;flex:0 1 auto!important}.book-flat .book-face{height:auto!important;aspect-ratio:5/7}.book-flat .book-spread{align-items:start}.card-book .front-paper .card-art{max-height:60%;object-fit:contain}.card-book .front-paper>h3{font-size:clamp(20px,2.5vw,32px)}
@media(max-width:600px){.card-book .book-spread{height:auto!important;transform:none!important;display:grid;gap:12px;min-height:0}.card-book .book-leaf{display:contents}.card-book .book-face{display:none;position:relative;inset:auto;transform:none!important;backface-visibility:visible!important;width:100%;height:auto!important;aspect-ratio:5/7;animation:card-page-in .3s ease}.card-book .book-face[aria-hidden=false]{display:flex}.card-book .recipe-paper{padding:14px}.card-book .side-paper h3{font-size:24px}.card-book .message-paper .personal-note{font-size:16px}.card-book .back-paper p{font-size:15px}.card-book .book-stage{perspective:none}.card-book .card-recipe-content{font-size:14px}.book-flat .book-face{display:flex}.card-book .back-paper .back-mark{font-size:28px}.card-book .back-paper h3{font-size:26px;margin:8px 0}.card-book .back-paper p{margin:8px 0}.card-book .front-paper>h3{font-size:26px}}
@keyframes card-page-in{from{opacity:.4;transform:rotateY(-12deg)}to{opacity:1;transform:rotateY(0)}}
@media(prefers-reduced-motion:reduce){.card-book .book-face{animation:none}}

.recipe-page-nav button{min-width:44px!important;min-height:44px!important}
.message-scroll-hint{font-size:12px!important;line-height:1.4!important;margin:8px 0!important;flex:none!important}
.message-scroll-hint[hidden]{display:none!important}

.export-pages{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px;margin:16px 0 28px}.export-page-link{display:flex;flex-direction:column;gap:10px;text-decoration:none;font-size:14px}.export-page-link img{display:block;width:100%;aspect-ratio:5/7;object-fit:contain;border:1px solid #c9c5b8}.export-page-link span{padding:10px 4px;min-height:44px;box-sizing:border-box}.export-page-link:focus-visible{outline:3px solid #167d80;outline-offset:4px}

/* Keep the complete back readable on narrow phones without changing 5:7 sizing. */
@media(max-width:380px){
 .card-book .back-paper .back-mark{font-size:20px;line-height:1.2}
 .card-book .back-paper h3{font-size:22px;margin:5px 0}
 .card-book .back-paper p{margin:5px 0;line-height:1.4}
 .card-book .back-paper .button{font-size:12px;line-height:1.4;padding:8px;min-height:44px}
}

/* Let artwork yield space to the complete cover greeting. */
.card-book .front-paper .card-art{flex:1 1 0;min-height:0;height:0;max-height:60%}
.card-book .front-paper>h3{flex:0 0 auto;overflow-wrap:anywhere;line-height:1.2;margin:12px 0}
@media(max-width:600px){.card-book .front-paper>h3{font-size:clamp(18px,5.7vw,26px)}}

.card-book .message-paper [id$="-to"]{font-family:inherit;font-size:17px;font-weight:400;letter-spacing:normal;text-transform:none;line-height:1.5;overflow-wrap:anywhere}.card-book .back-paper{justify-content:flex-start}.card-book .back-paper .card-site-credit{margin-top:auto!important;font-size:13px}.card-site-credit a{color:inherit;text-decoration:none}.card-site-credit a:hover{text-decoration:underline}@media(max-width:600px){.card-book .message-paper [id$="-to"]{font-size:16px}}

/* Give recipe text a measured area and let the gift photo use spare message space. */
.card-book .recipe-paper>h3{flex:0 0 auto;font-size:clamp(18px,2vw,24px);line-height:1.15;max-height:28%;overflow:auto;margin:4px 0 8px}.card-book .recipe-paper .card-recipe-content{flex:1 1 auto!important;height:0;min-height:60px}.card-book .recipe-paper .eyebrow,.recipe-page-nav,.card-book .recipe-paper>.button{flex-shrink:0}.card-book .message-paper{gap:12px;justify-content:flex-start!important;padding-top:24px!important}.card-book .message-paper>p{margin:0;flex-shrink:0}.card-book .message-paper [id$="-message"]{flex:0 1 auto!important;min-height:24px}.card-book .message-paper .panel-recipe-image{margin-top:auto;flex:1 1 100px;height:0;min-height:0;max-height:48%;width:100%;object-fit:contain}.card-edit-actions{margin:16px 0}.card-edit-actions button{font-size:13px;padding:10px 14px}@media(max-width:600px){.card-book .recipe-paper>h3{font-size:19px}.card-book .message-paper{padding-top:18px!important}.card-book .recipe-paper{gap:5px}.card-book .recipe-paper .card-recipe-content{font-size:14px;line-height:1.5}.card-book .message-paper .panel-recipe-image{height:0;max-height:48%}}
#card-preview>.card-book,#received>.card-book{padding:0}.card-book .book-leaf{padding:0}
