.collage-header {max-width:960px;margin:0 auto;padding:32px 24px}
.collage-gallery {padding:30px clamp(20px,5vw,48px) 70px}
.collage-gallery h1 {margin-bottom:32px}
.collage-gallery > .work-desc {max-width:var(--column-max);margin-left:auto;margin-right:auto}
.collage-gallery .work {margin-top:72px}
.report-art {position:relative;overflow:hidden;margin-bottom:12px}
.report-art > img {display:block;width:100%;height:auto;transform-origin:0 0}
.art-surface {position:absolute;inset:0;width:100%;height:100%;border:0;padding:0;background:transparent;cursor:crosshair;touch-action:none}
.report-art[data-zoomed="true"] .art-surface {cursor:grab}
.report-art.is-dragging .art-surface {cursor:grabbing}
.art-surface:focus-visible {outline:3px solid #d7f970;outline-offset:-3px}
.zoom-controls {display:flex;align-items:center;justify-content:center;gap:10px;margin:12px 0 28px;font:14px system-ui,sans-serif}
.zoom-controls button {font:inherit;color:inherit;background:transparent;border:1px solid currentColor;border-radius:24px;min-width:40px;min-height:40px;padding:6px 12px;cursor:pointer}
.zoom-controls button:disabled {opacity:.35;cursor:default}
.zoom-controls output {min-width:48px;text-align:center;font-variant-numeric:tabular-nums}
.report-status {min-height:1.5em;font-size:.9rem}
.photo-connector {position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:1000;display:none;overflow:visible}
.photo-connector line {stroke:#d7f970;stroke-width:2;filter:drop-shadow(0 1px 2px #000)}
.photo-connector circle {stroke:#0d1b2a;stroke-width:2;fill:#d7f970}
.report-preview {position:fixed;inset:auto;margin:0;padding:0;width:min(320px,calc(100vw - 24px));max-width:none;border:1px solid #41536a;border-radius:14px;background:#0d1b2a;color:#f5f7fa;box-shadow:0 8px 40px #0008;z-index:1001;overflow:hidden;font:14px/1.4 system-ui,sans-serif}
.preview-heading {display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px 8px 14px}
.preview-heading h2 {font:600 13px/1.4 system-ui,sans-serif;margin:0}
.preview-close {background:transparent;border:0;color:inherit;font:26px/1 system-ui;cursor:pointer;min-width:36px;min-height:36px;border-radius:50%}
.preview-link {display:block;text-decoration:none;color:#d7f970}
.preview-media {position:relative;display:grid;place-items:center;height:min(220px,32vh);background:#07111c}
.preview-photo {display:block;width:100%;height:100%;object-fit:contain;min-height:0}
.preview-photo:not([src]) {visibility:hidden}
.preview-loading {position:absolute;inset:0;display:grid;place-items:center;padding:24px;text-align:center;color:#dbe5f0;pointer-events:none}
.preview-loading[hidden] {display:none}
.preview-caption {display:flex;justify-content:space-between;padding:12px 14px}
.preview-close:focus-visible,.preview-link:focus-visible,.zoom-controls button:focus-visible {outline:3px solid #d7f970;outline-offset:-3px}
