.artifact-book-entry{display:flex;align-items:center;gap:30px;padding:32px 0;border-top:1px solid #cdbfc5;margin-top:38px}.artifact-book-entry>a{flex:0 0 145px;display:block;box-shadow:5px 8px 18px #30253025;transform:rotate(-3deg);transition:transform .25s}.artifact-book-entry>a:hover{transform:rotate(0)}.artifact-book-entry img{display:block;width:100%;height:auto;aspect-ratio:612/792;object-fit:contain}.artifact-book-entry h3{font:500 28px/1.2 var(--sans,sans-serif);margin:8px 0 14px}.artifact-book-entry p{font-size:13px;max-width:46ch;margin-bottom:16px}.artifact-book-entry small{font-size:10px;letter-spacing:.12em;text-transform:uppercase}.artifact-book-entry button{border:0;background:#302530;color:white;padding:13px 20px;font:600 13px var(--sans,sans-serif);cursor:pointer}
.ab-dialog{--ab-ink:#302530;box-sizing:border-box;position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#eeeae4;color:var(--ab-ink);font:14px/1.5 var(--sans,Arial,sans-serif);overscroll-behavior:contain}.ab-dialog::backdrop{background:#201923cc}.ab-dialog[open]{display:flex;flex-direction:column}.ab-toolbar,.ab-controls{display:flex;align-items:center;gap:16px;padding:16px 28px;flex-shrink:0}.ab-toolbar{border-bottom:1px solid #30253020;justify-content:space-between}.ab-title{font-size:13px;letter-spacing:.08em}.ab-title small{display:block;font-size:10px;letter-spacing:.03em;font-weight:400}.ab-dialog button,.ab-dialog select{font:inherit;color:inherit;cursor:pointer}.ab-dialog button{background:transparent;border:1px solid #30253038;padding:10px 16px;min-height:44px;border-radius:2px}.ab-dialog button:hover{background:#fff8}.ab-dialog button:disabled{opacity:.35;cursor:default}.ab-dialog :focus-visible{outline:2px solid #792d48;outline-offset:4px}.ab-toolbar-actions{display:flex;gap:10px;align-items:center}.ab-toolbar-actions a{font-size:12px;color:inherit}.ab-stage{flex:1;min-height:0;display:grid;place-items:center;overflow:hidden;padding:25px 32px;perspective:2200px}.ab-book{position:relative;width:min(100%,calc((100dvh - 220px) * 1.54545),1440px);aspect-ratio:1224/792;transform-style:preserve-3d;transform:translateX(var(--ab-offset,0));transition:transform .7s cubic-bezier(.25,.6,.25,1)}.ab-book[data-state="front"]{--ab-offset:-25%}.ab-book[data-state="back"]{--ab-offset:25%}.ab-page{position:absolute;top:0;width:50%;height:100%;background:#fff;box-shadow:0 10px 24px #3025301b;overflow:hidden}.ab-page img,.ab-face img{display:block;width:100%;height:100%;object-fit:fill;user-select:none;-webkit-user-drag:none}.ab-page--left{left:0}.ab-page--right{right:0}.ab-page[hidden]{display:none}.ab-page:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 94%,#30253012)}.ab-page--right:after{background:linear-gradient(90deg,#30253012,transparent 6%)}.ab-leaf{position:absolute;top:0;width:50%;height:100%;transform-style:preserve-3d;z-index:3;pointer-events:none}.ab-leaf.forward{left:50%;transform-origin:left center}.ab-leaf.backward{left:0;transform-origin:right center}.ab-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:#fff;overflow:hidden;box-shadow:0 4px 12px #30253015}.ab-face--back{transform:rotateY(180deg)}.ab-face:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#30253030,transparent 22%,#fff5 55%,#30253026);opacity:0;animation:ab-paper-shade .72s ease-in-out}.ab-leaf.forward{animation:ab-turn-next .72s cubic-bezier(.25,.6,.25,1) forwards}.ab-leaf.backward{animation:ab-turn-prev .72s cubic-bezier(.25,.6,.25,1) forwards}@keyframes ab-turn-next{0%{transform:rotateY(0) skewY(0)}45%{transform:rotateY(-80deg) skewY(-2deg)}100%{transform:rotateY(-180deg) skewY(0)}}@keyframes ab-turn-prev{0%{transform:rotateY(0) skewY(0)}45%{transform:rotateY(80deg) skewY(2deg)}100%{transform:rotateY(180deg) skewY(0)}}@keyframes ab-paper-shade{0%,100%{opacity:0}45%,65%{opacity:.75}}
.ab-edge{position:absolute;z-index:4;top:0;width:16%;height:100%;border:0!important;opacity:0;padding:0!important}.ab-edge--prev{left:0}.ab-edge--next{right:0}.ab-edge:focus-visible{opacity:1;background:#ffffff18!important}.ab-controls{justify-content:center;flex-wrap:wrap;border-top:1px solid #30253020}.ab-controls select{background:transparent;border:0;max-width:170px;padding:9px}.ab-status{font-size:12px;min-width:110px;text-align:center}.ab-hint{font-size:11px;margin:0;text-align:center}.ab-status-message{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.ab-zoom{position:absolute;inset:0;z-index:10;background:#eeeae4;overflow:auto;padding:70px 20px 20px}.ab-zoom[hidden]{display:none}.ab-zoom-pages{display:flex;width:1800px;max-width:none;margin:auto;align-items:flex-start}.ab-zoom-pages img{display:block;width:900px;max-width:none;height:auto}.ab-zoom-close{position:fixed;right:24px;top:16px;background:#fff!important;z-index:11}.ab-reader{padding:24px;max-width:75ch;margin:auto}.ab-reader[hidden]{display:none}.ab-reader p{white-space:pre-wrap}.ab-dialog.reading .ab-stage{display:none}.ab-dialog.reading .ab-reader{display:block;overflow:auto;flex:1}.ab-dialog.reading .ab-controls{margin-top:auto}
@media(max-width:650px){.artifact-book-entry{gap:20px}.artifact-book-entry>a{flex-basis:110px}.artifact-book-entry h3{font-size:23px}.ab-toolbar{padding:12px;gap:10px}.ab-toolbar-actions{gap:6px}.ab-toolbar-actions a{font-size:10px}.ab-dialog button{padding:8px 10px;font-size:12px}.ab-stage{padding:15px 8px}.ab-book{width:100%}.ab-controls{padding:12px;gap:8px}.ab-title{font-size:11px}.ab-title small{font-size:9px}.ab-zoom-pages{width:1400px}.ab-zoom-pages img{width:700px}.ab-status{min-width:85px}.ab-hint{max-width:95%;margin:auto}}
@media(prefers-reduced-motion:reduce){.artifact-book-entry>a,.ab-book{transition:none}.ab-leaf,.ab-face:after{animation:none!important}}

.artifact-book-entry>a{align-self:center;height:auto}.artifact-library{display:grid;grid-template-columns:1fr 1fr;gap:36px}.artifact-library .artifact-book-entry{min-width:0;align-items:center;gap:22px}.artifact-library .artifact-book-entry>a{flex-basis:120px}.artifact-library .artifact-book-entry h3{font-size:25px}@media(max-width:1000px){.artifact-library{grid-template-columns:1fr;gap:0}.artifact-library .artifact-book-entry>a{flex-basis:145px}}@media(max-width:600px){.artifact-library .artifact-book-entry>a{flex-basis:100px}.artifact-library .artifact-book-entry{gap:20px}}

/* Expanded text reading view. Keep paragraph structure, discard print line wrapping. */
.ab-dialog .ab-reader{box-sizing:border-box;width:calc(100% - 64px);max-width:none;margin:0 auto;padding:32px 20px 48px;min-height:0;align-self:stretch;font-size:17px;line-height:1.85;text-align:left}.ab-dialog .ab-reader p{white-space:normal;margin:0 0 1.1em;overflow-wrap:break-word;text-wrap:pretty}.ab-reader-page+.ab-reader-page{border-top:1px solid #30253020;padding-top:24px;margin-top:28px}.ab-dialog.reading .ab-reader{flex:1 1 0;overflow-y:auto}.ab-dialog.reading .ab-hint{padding-top:10px}@media(max-width:650px){.ab-dialog .ab-reader{width:100%;padding:24px 20px 32px;font-size:16px;line-height:1.75}}
/* Phones: turn-sideways card, swipe tip, compact chrome in landscape, lighter page turn. */
.ab-rotate{position:absolute;inset:0;z-index:20;display:grid;place-items:center;padding:24px;background:rgba(238,234,228,.92)}
.ab-rotate[hidden],.ab-swipe-tip[hidden]{display:none}
.ab-rotate-card{max-width:290px;display:grid;justify-items:center;gap:14px;text-align:center;background:#fff;border-radius:16px;padding:26px 22px;box-shadow:0 12px 30px #30253022;font-size:16px;line-height:1.5}
.ab-rotate-card svg{width:64px;height:64px;color:#792d48;animation:ab-rotate-phone 2.6s ease-in-out infinite}
.ab-rotate-card button{background:#302530;color:#fff;border:0}
@keyframes ab-rotate-phone{0%,20%{transform:rotate(0)}50%,80%{transform:rotate(-90deg)}100%{transform:rotate(0)}}
.ab-swipe-tip{position:absolute;left:50%;bottom:calc(110px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:15;margin:0;padding:10px 18px;border-radius:999px;background:#302530;color:#fff;font-size:14px;white-space:nowrap;pointer-events:none;transition:opacity .6s ease}
.ab-swipe-tip.is-out{opacity:0}
.ab-leaf{will-change:transform}
@media(pointer:coarse){.ab-leaf.forward{animation:ab-turn-next-soft .62s cubic-bezier(.3,.6,.3,1) forwards}.ab-leaf.backward{animation:ab-turn-prev-soft .62s cubic-bezier(.3,.6,.3,1) forwards}.ab-face{box-shadow:none}.ab-face:after{animation:none}}
@keyframes ab-turn-next-soft{from{transform:rotateY(0)}to{transform:rotateY(-180deg)}}
@keyframes ab-turn-prev-soft{from{transform:rotateY(0)}to{transform:rotateY(180deg)}}
@media(max-height:520px){.ab-toolbar,.ab-controls{padding:6px 16px;gap:10px}.ab-dialog button{min-height:36px;padding:6px 12px}.ab-hint{display:none}.ab-stage{padding:8px 16px}.ab-book{width:min(100%,calc((100dvh - 118px) * 1.54545),1440px)}.ab-controls label{display:none}}
@media(prefers-reduced-motion:reduce){.ab-rotate-card svg{animation:none}}
