.v19-book-gallery{display:grid;gap:10px;min-width:0}
.v19-book-stage{--book-w:clamp(220px,27vw,360px);--book-depth:22px;position:relative;display:grid;place-items:center;min-height:calc(var(--book-w) + 76px);overflow:hidden;border:1px solid #e6edf2;border-radius:10px;background:radial-gradient(ellipse at 50% 76%,#e8f0f4 0,transparent 54%),linear-gradient(145deg,#fbfdfe,#f1f6f9);perspective:1400px;perspective-origin:50% 48%;touch-action:pan-y;user-select:none;-webkit-user-select:none;cursor:grab}
.v19-book-stage:focus-visible{outline:3px solid #f18b2b;outline-offset:3px}
.v19-book-stage.is-dragging{cursor:grabbing}
.v19-book-stage::before{position:absolute;top:calc(50% + var(--book-w)/2 - 2px);left:50%;width:min(78%,var(--book-w));height:22px;border-radius:50%;background:rgba(18,48,68,.24);filter:blur(13px);content:"";transform:translateX(-50%);pointer-events:none}
.v19-book-object{position:relative;z-index:1;width:var(--book-w);height:var(--book-w);transform-style:preserve-3d;transform:rotateX(2deg) rotateY(var(--book-rotation,-16deg));transition:transform .52s cubic-bezier(.2,.7,.2,1);pointer-events:none}
.v19-book-stage.is-dragging .v19-book-object{transition:none}
.v19-book-face{position:absolute;inset:0;margin:0;overflow:hidden;border-radius:5px 8px 8px 5px;backface-visibility:hidden;background:#f8fbfc}
.v19-book-face img{display:block;width:100%;height:100%;object-fit:contain;background:#fffdf7;-webkit-user-drag:none}
.v19-book-face-front{transform:translateZ(calc(var(--book-depth)/2))}
.v19-book-face-back{transform:rotateY(180deg) translateZ(calc(var(--book-depth)/2))}
.v19-back-cover-copy{position:absolute;inset:5% 5% auto;max-height:80%;overflow:hidden;padding:5.5%;border:1px solid rgba(255,255,255,.9);border-radius:9px;background:rgba(255,253,247,.94);box-shadow:0 5px 18px rgba(23,58,78,.1);color:#173d67}
.v19-back-brand{display:block;margin-bottom:5px;color:#148365;font-size:clamp(8px,1vw,10px);font-weight:800;letter-spacing:.045em}
.v19-back-brand i{color:#668093;font-size:.92em;font-style:normal;font-weight:650}
.v19-back-cover-copy h2{margin:0 0 6px;color:#0d477d;font-size:clamp(14px,1.65vw,20px);line-height:1.08;letter-spacing:-.025em}
.v19-back-cover-copy p{margin:0;color:#344f65;font-size:clamp(9px,.92vw,11px);line-height:1.48}
.v19-back-imprint{display:grid;grid-template-columns:1fr 1fr;gap:5px 9px;margin-top:8px;padding-top:6px;border-top:1px solid rgba(22,69,103,.14);color:#64798b;font-size:clamp(7px,.75vw,9px);line-height:1.3}
.v19-back-imprint strong{grid-column:1/-1;color:#178264;font-size:clamp(8px,.83vw,10px)}
.v19-book-spine,.v19-book-fore-edge{position:absolute;top:0;bottom:0;width:var(--book-depth);overflow:hidden;backface-visibility:visible}
.v19-book-spine{left:0;display:flex;align-items:center;justify-content:center;gap:10px;border-inline:1px solid rgba(0,0,0,.16);background:linear-gradient(90deg,#0b3a65,#12649a 48%,#0b3a65);color:#fff;transform:translateX(-50%) rotateY(-90deg);box-shadow:inset 4px 0 6px rgba(255,255,255,.16),inset -4px 0 8px rgba(0,0,0,.22)}
.v19-book-spine span,.v19-book-spine strong{writing-mode:vertical-rl;transform:rotate(180deg);text-align:center}
.v19-book-spine span{font-size:8px;font-weight:800;letter-spacing:.06em}
.v19-book-spine strong{max-height:88%;overflow:hidden;font-size:9px;line-height:1.15}
.v19-book-fore-edge{right:0;border:1px solid #dfd7c4;background:repeating-linear-gradient(90deg,#fffdf5 0 2px,#e6dfce 2px 3px,#fffdf5 3px 5px);transform:translateX(50%) rotateY(90deg);box-shadow:inset 2px 0 4px rgba(90,66,36,.1),inset -2px 0 4px rgba(90,66,36,.08)}
.v19-book-hint{display:flex;min-height:38px;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;color:#718393;font-size:11px;text-align:center}
.v19-book-hint-icon{color:#168768;font-size:18px;line-height:1}
.v19-book-hint button{min-height:34px;margin-left:5px;padding:0 12px;border:1px solid #d7e1e8;border-radius:18px;background:#fff;color:#35536a;font-size:11px;font-weight:700;cursor:pointer}
.v19-book-hint button:hover{border-color:#198a68;color:#147655}
.v19-book-hint button:focus-visible{outline:3px solid #ff9a31;outline-offset:2px}
@media(max-width:1050px){.v19-book-stage{--book-w:clamp(220px,34vw,330px);--book-depth:20px}}
@media(max-width:760px){.v19-book-stage{--book-w:min(70vw,310px);min-height:calc(var(--book-w) + 58px)}.v19-back-cover-copy{inset:4.5% 4.5% auto;max-height:80%;padding:5%}.v19-back-cover-copy h2{font-size:clamp(14px,4.3vw,20px)}.v19-back-cover-copy p{font-size:clamp(9px,2.7vw,11px)}.v19-back-imprint{font-size:clamp(7px,2.15vw,9px)}.v19-back-imprint strong{font-size:clamp(8px,2.5vw,10px)}.v19-book-hint{gap:6px;font-size:10px}}
@media(max-width:390px){.v19-book-stage{--book-w:min(74vw,286px);--book-depth:17px;min-height:calc(var(--book-w) + 50px)}.v19-book-hint button{min-height:36px;padding-inline:10px;font-size:10px}}
@media(prefers-reduced-motion:reduce){.v19-book-object,.v19-book-hint button{transition-duration:.01ms}}
