
.lv-carousel{display:flex;align-items:flex-start;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px}
.lv-card{flex:0 0 calc((100% - 28px)/3);min-width:0;scroll-snap-align:start;background:#ffffff0c;border:1px solid #ffffff30;border-radius:14px;padding:18px;overflow-wrap:anywhere}
.lv-card blockquote{white-space:pre-line;margin:10px 0;font-size:.9rem}
.lv-stars{color:#efc66e}
.lv-images{display:flex;gap:6px;margin-top:12px}
.lv-images button{min-width:0;cursor:zoom-in}
.lv-images img{width:70px;height:76px;object-fit:cover;border-radius:6px}
.lv-controls{display:flex;gap:8px;justify-content:flex-end;margin:12px 0}
.lv-controls button,.lv-retry,.lv-photo button{min-width:44px;min-height:44px;padding:6px 12px;border:1px solid #c5a059;border-radius:8px}
.lv-status{text-align:center;margin-top:10px}
.lv-photo{position:fixed;inset:0;margin:auto;background:#211b14;color:white;padding:12px;max-width:94vw;border-radius:12px}
.lv-photo::backdrop{background:#000c}
.lv-photo form{text-align:right;margin-bottom:8px}
.lv-photo img{max-width:calc(94vw - 24px);max-height:75vh;object-fit:contain}
@media(max-width:767px){.lv-card{flex-basis:86%}}

@media (hover: hover) and (pointer: fine) {
  .lv-carousel { scrollbar-width: none; }
  .lv-carousel::-webkit-scrollbar { display: none; }
  .lv-card { cursor: grab; user-select: none; }
  .lv-carousel.lv-dragging { scroll-snap-type: none; }
  .lv-dragging .lv-card, .lv-dragging button { cursor: grabbing; }
}
