f3005e626d
The full-screen lightbox showed the framed piece capped at ~66vh, so on desktop it was barely larger than the page view and there was no way to inspect detail (mobile can pinch). Add a "Zoom in" affordance: it swaps to a magnified inspection view (full-res image scaled 2.5×) where moving the cursor pans via transform-origin; click or Escape steps back to the framed view, Escape/✕/backdrop close. Restructured the lightbox from a single <button> to a dialog (backdrop button + close button + stage) so the controls are valid/accessible. Zoom button hidden on touch (hover:none) — native pinch covers mobile. Uses the already-cached full-res copy (/api/art/image/<id>?size=full); fade-in, frame/thickness, rotate-on-portrait all preserved. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>