.sk3cc-gallery.sk3cc-wait{min-height:60vh}
.sk3cc-gallery .sk3cc-status{padding:2rem 1rem;text-align:center;font-size:1rem;color:#3d3d3d}
.sk3cc-gallery .sk3cc-status a{color:#c8781a}
.sk3cc-gallery .sk3cc-count{margin:0 0 1rem;font-size:.9rem;color:#5a5a5a}
.sk3cc-gallery .sk3cc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin:0;padding:0;list-style:none}
.sk3cc-gallery .sk3cc-grid li{margin:0;padding:0}
.sk3cc-gallery .sk3cc-grid button{display:block;width:100%;aspect-ratio:3/2;padding:0;border:0;background:#e9e9e9;cursor:zoom-in;overflow:hidden;border-radius:3px}
.sk3cc-gallery .sk3cc-grid img{width:100%;height:100%;object-fit:cover;display:block}
.sk3cc-gallery .sk3cc-grid button:focus-visible{outline:3px solid #c8781a;outline-offset:2px}
.sk3cc-gallery .sk3cc-more{display:block;margin:1.5rem auto 0;padding:.7rem 1.6rem;font-size:1rem;border:1px solid #c8781a;background:#fff;color:#c8781a;border-radius:4px;cursor:pointer}
.sk3cc-gallery .sk3cc-more:hover{background:#c8781a;color:#fff}
.sk3cc-gallery .sk3cc-by{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 1rem}
/* Every state is pinned. The theme gives every button's :hover and :focus
   white text on pink, and a clicked button keeps focus - so without these the
   pressed button read white on orange, 3.4:1, under the 4.5:1 WCAG AA asks.
   Dark ink on this orange is 5.2:1. Scoped by two classes so they outrank the
   theme's [type=button]:focus. */
.sk3cc-gallery .sk3cc-by button,.sk3cc-gallery .sk3cc-by button:hover,.sk3cc-gallery .sk3cc-by button:focus{min-height:44px;padding:.45rem 1rem;font-size:.9rem;border:1px solid #d2d2d2;background:#fff;color:#3d3d3d;border-radius:999px;cursor:pointer}
.sk3cc-gallery .sk3cc-by button:hover,.sk3cc-gallery .sk3cc-by button:focus{border-color:#c8781a}
.sk3cc-gallery .sk3cc-by button[aria-pressed="true"],.sk3cc-gallery .sk3cc-by button[aria-pressed="true"]:hover,.sk3cc-gallery .sk3cc-by button[aria-pressed="true"]:focus{background:#c8781a;border-color:#c8781a;color:#1c1814}
.sk3cc-gallery .sk3cc-by button:focus-visible{outline:3px solid #c8781a;outline-offset:2px}
.sk3cc-gallery .sk3cc-by .sk3cc-n{opacity:.7;margin-left:.35rem}
.sk3cc-lb{position:fixed;inset:0;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center;z-index:99999}
.sk3cc-lb img{max-width:94vw;max-height:88vh;object-fit:contain}
.sk3cc-lb .sk3cc-nav{position:absolute;top:50%;transform:translateY(-50%);font-size:2.4rem;line-height:1;color:#fff;background:rgba(0,0,0,.45);border:0;cursor:pointer;padding:.4rem .9rem;border-radius:4px}
.sk3cc-lb .sk3cc-prev{left:2%} .sk3cc-lb .sk3cc-next{right:2%}
.sk3cc-lb .sk3cc-close{position:absolute;top:3%;right:3%;font-size:1.6rem;color:#fff;background:rgba(0,0,0,.45);border:0;cursor:pointer;padding:.3rem .8rem;border-radius:4px}
.sk3cc-lb .sk3cc-cap{position:absolute;bottom:3%;left:0;right:0;text-align:center;color:#eee;font-size:.85rem}
/* The bottom of the viewer is a stack, not three hand-tuned percentages.
   .sk3cc-cap sat at 3% and .sk3cc-act at 12%, which worked only for exactly
   those two; a third line had nowhere to go that did not land on one of them.
   search-block.py already had to rebuild its own viewer this way after the
   pills and the caption overlapped on the live site - this is that fix,
   ported, so the two viewers behave the same and a fourth line is free. */
.sk3cc-lb .sk3cc-foot{position:absolute;bottom:3%;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:.55rem;padding:0 1rem}
.sk3cc-lb .sk3cc-foot .sk3cc-act,.sk3cc-lb .sk3cc-foot .sk3cc-credit,.sk3cc-lb .sk3cc-foot .sk3cc-cap{position:static;bottom:auto;left:auto;right:auto;padding:0}
.sk3cc-lb .sk3cc-credit{margin:0;text-align:center;color:#fff;font-size:.95rem}
.sk3cc-lb .sk3cc-act{position:absolute;bottom:12%;left:0;right:0;display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap;padding:0 1rem}
.sk3cc-lb .sk3cc-act button{min-height:44px;padding:.5rem 1.2rem;font-size:.95rem;color:#fff;background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.55);border-radius:4px;cursor:pointer}
.sk3cc-lb .sk3cc-act button:hover{background:rgba(255,255,255,.18)}
.sk3cc-lb .sk3cc-act button[disabled]{opacity:.6;cursor:default}
.sk3cc-lb .sk3cc-copy{min-height:44px;flex:1 1 18rem;max-width:26rem;padding:.5rem .7rem;font-size:.9rem;border:1px solid rgba(255,255,255,.55);border-radius:4px;background:#fff;color:#222}
.sk3cc-lb .sk3cc-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.sk3cc-lb button:focus-visible{outline:3px solid #c8781a;outline-offset:2px}
@media (max-width:600px){.sk3cc-gallery .sk3cc-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px}}
