.project-catalog{margin:24px auto 56px;width:100%;color:var(--ink)}
.catalog-deck{display:grid;gap:24px;max-width:1100px;margin:auto}
.catalog-card{display:block;padding:0;border:1px solid var(--line);background:var(--paper);color:inherit;overflow:hidden;box-shadow:0 12px 32px #252b2612}
.catalog-card img{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none;user-select:none}
.project-catalog.is-ready .catalog-deck{position:relative;height:clamp(340px,56vw,680px);max-width:1400px;overflow:hidden;touch-action:pan-y;isolation:isolate}
.project-catalog.is-ready .catalog-card{position:absolute;left:50%;top:46%;width:min(69%,780px);aspect-ratio:4/3;max-height:85%;border:7px solid var(--paper);will-change:transform;transform-origin:50% 65%;box-shadow:0 18px 48px #252b2620;cursor:pointer}
.catalog-card:focus-visible,.catalog-controls button:focus-visible{outline:2px solid var(--ink);outline-offset:5px}
.catalog-controls{max-width:1100px;margin:18px auto 0;padding:0 24px;align-items:center;justify-content:space-between;gap:20px;font:500 14px var(--sans);letter-spacing:.08em}
.catalog-controls:not([hidden]){display:flex}.catalog-hint{color:var(--muted)}.catalog-hint span{margin-left:12px}.catalog-arrows{display:flex;gap:12px}.catalog-arrows button{background:none;border:1px solid var(--line);color:var(--ink);width:48px;height:48px;font:24px var(--sans)}
.project-catalog.is-single .catalog-hint,.project-catalog.is-single .catalog-arrows{display:none}
#project-photo-viewer{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:64px 24px 24px;border:0;background:rgba(20,24,21,.93);color:#fff;overflow:hidden}
#project-photo-viewer[open]{display:flex;align-items:center;justify-content:center}#project-photo-viewer::backdrop{background:rgba(20,24,21,.93)}
#project-photo-viewer img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 20px 80px #0004}
#project-photo-viewer button{position:absolute;right:20px;top:16px;border:1px solid #ffffff80;background:transparent;color:white;width:44px;height:44px;font:26px var(--sans)}
html.catalog-viewing,html.catalog-viewing body{overflow:hidden}
@media(max-width:600px){.project-catalog{margin:12px auto 36px}.project-catalog.is-ready .catalog-deck{height:clamp(300px,90vw,480px)}.project-catalog.is-ready .catalog-card{width:76%;border-width:4px;aspect-ratio:4/5}.catalog-controls{padding:0 8px;font-size:12px;gap:12px}.catalog-arrows button{width:44px;height:44px}#project-photo-viewer{padding:70px 12px 28px}}
@media(prefers-reduced-motion:reduce){.project-catalog.is-ready .catalog-card{will-change:auto}}

.catalog-deck,.catalog-card{touch-action:pan-y;user-select:none;-webkit-user-select:none}.catalog-card img{-webkit-user-drag:none}.project-catalog.is-ready .catalog-card{cursor:grab}.project-catalog.is-ready .catalog-card:active{cursor:grabbing}
#project-photo-viewer img{touch-action:pan-y;user-select:none;-webkit-user-select:none;-webkit-user-drag:none}#project-photo-viewer .viewer-prev,#project-photo-viewer .viewer-next{top:50%;transform:translateY(-50%);background:#141815aa}#project-photo-viewer .viewer-prev{left:16px;right:auto}#project-photo-viewer .viewer-next{right:16px}#project-photo-viewer button[hidden]{display:none}
