.case-gallery-viewer{min-width:0;width:100%}
.case-gallery-track{display:flex;position:relative;gap:0;list-style:none;padding:0;margin:0;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;border:1px solid var(--line);border-radius:6px;background:var(--warm-surface)}
.case-gallery-track::-webkit-scrollbar{display:none}
.case-gallery-slide{flex:0 0 100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always;aspect-ratio:var(--gallery-ratio,16/9)}
.case-gallery-open,.case-gallery-empty{position:relative;display:flex;width:100%;height:100%;align-items:center;justify-content:center;background:var(--warm-surface)}
.case-gallery-open img{display:block;width:100%;height:100%;object-fit:contain;object-position:top}
.case-gallery-viewer[data-gallery-crop] .case-gallery-open img{object-fit:cover;object-position:center}
.case-gallery-pages .case-gallery-slide{position:relative;overflow:hidden;aspect-ratio:16/9}
.case-gallery-pages .case-gallery-open{position:absolute;inset:0;align-items:flex-start;overflow:hidden}
.case-gallery-pages .case-gallery-open img{height:auto;flex:none}
.case-gallery-preview-hint{position:absolute;right:20px;bottom:20px;z-index:1;display:inline-flex;align-items:center;gap:12px;max-width:calc(100% - 40px);padding:10px 14px;border:1px solid var(--line);border-radius:4px;background:rgba(255,255,255,.96);color:var(--ink);font-size:14px;line-height:1.4;box-shadow:0 4px 18px rgba(0,0,0,.08);pointer-events:none}
.case-gallery-preview-hint span{font-size:18px;line-height:1}
.case-gallery-empty{padding:32px;text-align:center;color:var(--secondary);font-size:16px}
.case-gallery-footer{display:flex;align-items:start;justify-content:space-between;gap:24px;margin-top:24px}
.case-gallery-caption{font-size:20px;line-height:1.5;max-width:720px;color:var(--secondary)}
.case-gallery-viewer[data-gallery-stable-frame] .case-gallery-caption{min-height:48px}
.case-gallery-navigation,.case-gallery-controls,.case-gallery-dialog-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.case-gallery-controls[hidden]{display:none}
.case-gallery-count{font-size:14px;line-height:1.5;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--secondary);margin-right:16px}
.case-gallery-button{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);transition:background-color .2s var(--ease),border-color .2s var(--ease)}
.case-gallery-button:disabled{opacity:.3;cursor:default}
.case-gallery-button:focus-visible,.case-gallery-track:focus-visible,.case-gallery-open:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.case-gallery-open:focus-visible{outline-offset:-4px}
.case-media-open{display:block;width:100%;height:100%}
.case-media-open:focus-visible{outline:2px solid var(--ink);outline-offset:-4px}
.case-gallery-dialog{width:min(calc(100% - 48px),1440px);max-width:none;max-height:calc(100dvh - 48px);padding:0;border:0;border-radius:6px;background:var(--bg);color:var(--ink);overflow:hidden}
.case-gallery-dialog::backdrop{background:rgba(0,0,0,.82)}
.case-gallery-dialog-layout{display:flex;flex-direction:column;max-height:calc(100dvh - 48px)}
.case-gallery-dialog-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px 24px;border-bottom:1px solid var(--line);flex-shrink:0}
.case-gallery-dialog-toolbar p{font-size:16px;line-height:1.4;color:var(--ink)}
.case-gallery-dialog-canvas{min-height:0;overflow:auto;overscroll-behavior:contain;background:var(--warm-surface)}
.case-gallery-dialog-canvas img{display:block;width:100%;height:auto;border:1px solid var(--line)}
.case-gallery-pages .case-gallery-dialog-layout{height:calc(100dvh - 48px)}
.case-gallery-pages .case-gallery-dialog-canvas{flex:1}
.case-gallery-dialog-canvas:focus-visible{outline:2px solid var(--ink);outline-offset:-3px}
.case-gallery-scroll-hint{flex-shrink:0;padding:10px 24px;font-size:14px;line-height:1.5;color:var(--secondary);border-bottom:1px solid var(--line)}
.case-gallery-scroll-hint span{margin-right:6px}
body:has(.case-gallery-dialog[open]){overflow:hidden}
@media(hover:hover) and (pointer:fine){.case-gallery-button:not(:disabled):hover{background:var(--warm-surface);border-color:var(--ink)}}
@media(max-width:560px){
  .case-gallery-track{border-radius:4px}
  .case-gallery-preview-hint{right:12px;bottom:12px;max-width:calc(100% - 24px);padding:8px 10px;font-size:12px;gap:8px}
  .case-gallery-footer{flex-direction:column;gap:16px;margin-top:16px}
  .case-gallery-caption,.case-gallery-empty{font-size:16px}
  .case-gallery-navigation{justify-content:space-between;width:100%}
  .case-gallery-dialog{width:100%;max-height:100dvh;height:100dvh;max-width:100%;margin:0;border-radius:0}
  .case-gallery-dialog-layout{height:100%;max-height:100dvh}
  .case-gallery-pages .case-gallery-dialog-layout{height:100dvh}
  .case-gallery-scroll-hint{padding:8px 16px}
  .case-gallery-dialog-toolbar{padding:12px 16px;gap:12px}
  .case-gallery-dialog-toolbar p{font-size:14px}
  .case-gallery-dialog-actions{gap:4px}
}
