/* Real project photographs: natural colour and uncropped proportions. */
.portfolio-category.has-projects{grid-column:1/-1}
.category-selected .portfolio-category.has-projects{display:block}
.has-projects .category-cover,.category-selected .has-projects .category-cover{min-height:0;aspect-ratio:3.2;max-height:360px}
.has-projects .category-cover img{object-position:50% 25%}
.has-projects .category-body,.category-selected .has-projects .category-body{padding:32px}
.project-gallery-intro{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:24px 0 18px;border-block-start:1px solid #e7e7e7;padding-block-start:24px}
.project-gallery-intro h3{font-size:1.2rem;margin:0 0 5px}
.project-gallery-intro p{font-size:.85rem;margin:0;color:#666}
.project-photo-count{flex-shrink:0;border-radius:999px;padding:7px 14px;background:#f8e8e9;color:#9e1820;font-size:.85rem;font-weight:800}
.real-project-gallery{columns:3;column-gap:20px;margin-block:18px 30px}
.portfolio-category-grid:not(.category-selected) .real-project-gallery .project-shot:nth-child(n+4){display:none}
.project-gallery-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.category-selected .gallery-show-all{display:none}
.project-shot{display:block;position:relative;break-inside:avoid;page-break-inside:avoid;margin:0 0 20px;border:1px solid #ddd;border-radius:18px;overflow:hidden;background:#fff;box-shadow:0 6px 18px #00000008;transition:transform .3s,border-color .3s,box-shadow .3s;scroll-margin-block:110px}
.project-shot figure{margin:0}
.project-shot img{display:block;width:100%;height:auto;filter:none;background:#191919}
.booth-project-focus img{aspect-ratio:1;object-fit:cover;object-position:50% 50%}
.project-shot figcaption{padding:16px 18px;line-height:1.6;color:#222}
.project-shot figcaption strong{display:block;font-size:.9rem;font-weight:800}
.project-shot .project-stage{display:inline-block;font-size:.72rem;color:#666;margin-block-start:6px}
.project-shot .project-stage.is-concept{color:#9e1820}
.project-shot .project-zoom{position:absolute;inset-block-start:12px;inset-inline-end:12px;width:31px;height:31px;display:grid;place-items:center;background:#111b;border:1px solid #ffffff88;border-radius:50%;color:#fff;font-size:1.05rem;box-shadow:0 4px 12px #0003;transition:background .3s}
.project-shot:focus-visible{outline:3px solid #b81f25;outline-offset:4px;border-color:#b81f25}
.project-shot:active{transform:scale(.99);border-color:#b81f25}
.project-lightbox{padding:0;border:1px solid #ffffff30;border-radius:22px;background:#101010;color:#fff;width:min(1260px,calc(100vw - 40px));max-width:none;max-height:calc(100dvh - 40px);overflow:auto;box-shadow:0 24px 90px #0009}
.project-lightbox:not([open]){display:none}
.project-lightbox::backdrop{background:#000d;backdrop-filter:blur(5px)}
.lightbox-shell{display:flex;flex-direction:column;max-height:calc(100dvh - 42px)}
.lightbox-header{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:16px 22px;border-block-end:1px solid #ffffff20}
.lightbox-header h2{font-size:1rem;line-height:1.5;margin:0;color:#fff}
.lightbox-control{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #ffffff40;border-radius:999px;padding:9px 15px;background:#ffffff0d;color:#fff;cursor:pointer;font:inherit;font-size:.85rem;line-height:1.5;touch-action:manipulation}
.lightbox-control:hover{border-color:#e35059;background:#b81f25}
.lightbox-control:focus-visible{outline:2px solid #ff969c;outline-offset:3px}
.lightbox-image-wrap{min-height:0;flex:1;display:grid;place-items:center;padding:12px;background:#0a0a0a;touch-action:pan-y}
.lightbox-image{display:block;width:100%;height:100%;max-height:calc(100dvh - 210px);object-fit:contain}
.lightbox-footer{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:16px 22px;border-block-start:1px solid #ffffff20}
.lightbox-caption{min-width:0;margin:0;text-align:center;font-size:.9rem;line-height:1.5;color:#eee}
.lightbox-caption span{display:block}
.lightbox-counter{font-size:.75rem;color:#aaa;margin-block-start:5px}
.lightbox-prev-arrow,.lightbox-next-arrow{font-size:1.1rem}
[dir="rtl"] .lightbox-prev-arrow,[dir="rtl"] .lightbox-next-arrow{transform:rotate(180deg)}
@media(hover:hover) and (pointer:fine){.project-shot:hover{transform:translateY(-4px);border-color:#b81f25;box-shadow:0 14px 28px #0002,0 0 15px #b81f251a}.project-shot:hover .project-zoom{background:#b81f25}}
@media(max-width:1020px){.real-project-gallery{columns:2}.has-projects .category-cover,.category-selected .has-projects .category-cover{aspect-ratio:2.4;max-height:300px}}
@media(max-width:640px){.has-projects .category-body,.category-selected .has-projects .category-body{padding:22px}.real-project-gallery{columns:1;column-gap:0}.project-gallery-intro{align-items:flex-start;gap:12px}.project-gallery-intro h3{font-size:1.1rem}.project-gallery-intro p{font-size:.78rem}.project-photo-count{font-size:.75rem;padding:6px 10px}.has-projects .category-cover,.category-selected .has-projects .category-cover{aspect-ratio:1.6;max-height:none}.project-lightbox{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:14px}.lightbox-shell{max-height:calc(100dvh - 18px)}.lightbox-header,.lightbox-footer{padding:12px;gap:8px}.lightbox-header h2{font-size:.9rem}.lightbox-control{padding:8px 10px;font-size:.75rem;gap:4px}.lightbox-caption{font-size:.75rem}.lightbox-image{max-height:calc(100dvh - 180px)}.lightbox-image-wrap{padding:5px}}
@media(prefers-reduced-motion:reduce){.project-shot,.project-zoom{transition:none}.project-shot:hover,.project-shot:active{transform:none}.project-lightbox::backdrop{backdrop-filter:none}}
