.projects{padding-top:96px;padding-bottom:68px;border-bottom:1px solid var(--line)}
.projects-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:36px}
.projects h2{font-size:clamp(30px,3.5vw,44px);margin-top:20px}
.project-navigation{display:flex;gap:10px;flex:none}
.gallery-arrow,.gallery-close{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid var(--line);background:white;color:var(--navy);cursor:pointer;transition:background .2s,color .2s;font:inherit;flex:none}
.gallery-arrow:hover,.gallery-arrow:focus-visible{background:var(--navy);color:white}
.gallery-prev svg,.lightbox-prev svg{transform:rotate(-90deg)}
.gallery-next svg,.lightbox-next svg{transform:rotate(90deg)}
.projects button:focus-visible,.project-dialog button:focus-visible{outline:3px solid var(--red);outline-offset:3px}
.project-swiper{width:100%;overflow:hidden}
.project-swiper:not(.swiper-initialized) .swiper-wrapper{display:flex;overflow-x:auto;gap:24px}
.project-swiper:not(.swiper-initialized) .swiper-slide{width:calc((100% - 48px)/3);flex-shrink:0}
.project-image{position:relative;display:block;width:100%;padding:0;border:0;background:var(--pale);cursor:zoom-in;overflow:hidden;aspect-ratio:4/3}
.project-image img{width:100%;height:100%;object-fit:cover;transition:transform .35s}
.project-image:hover img{transform:scale(1.035)}
.project-enlarge{position:absolute;right:14px;bottom:14px;width:38px;height:38px;display:grid;place-items:center;background:rgba(16,40,73,.88);color:white}
.project-card h3{font-size:18px;font-weight:600;letter-spacing:-.02em;line-height:1.4;margin-top:20px}
.project-description{font-size:14px;line-height:1.6;color:var(--muted);margin-top:8px}
.project-pagination{position:static;display:flex;justify-content:center;flex-wrap:wrap;gap:0;margin-top:25px;min-height:32px}
.project-pagination .swiper-pagination-bullet{position:relative;width:24px;height:32px;padding:0;border:0;background:transparent;opacity:1;margin:0!important;border-radius:0}
.project-pagination .swiper-pagination-bullet:after{content:'';position:absolute;width:7px;height:7px;border-radius:50%;background:#b8c3d1;left:50%;top:50%;transform:translate(-50%,-50%)}
.project-pagination .swiper-pagination-bullet-active:after{background:var(--red);width:9px;height:9px}
.project-dialog{position:fixed;inset:0;width:min(1100px,calc(100% - 40px));max-width:none;max-height:calc(100dvh - 40px);padding:0;margin:auto;border:0;background:#101923;color:white;overflow:auto;box-shadow:0 20px 90px #0008}
.project-dialog::backdrop{background:rgba(0,0,0,.86)}
.gallery-close{position:absolute;right:12px;top:12px;z-index:3;background:#102849e8;border-color:#ffffff60;color:white}
.gallery-close:hover{background:var(--red)}
.lightbox-swiper{width:100%;overflow:hidden}
.lightbox-swiper figure{margin:0}
.lightbox-photo{width:100%;height:min(65dvh,700px);object-fit:contain;background:#0a1018}
.lightbox-caption{padding:20px 28px 12px}
.lightbox-caption h3{font-size:20px;letter-spacing:-.02em;line-height:1.4}
.lightbox-caption p{font-size:16px;color:#c9d2df;margin-top:6px;line-height:1.5}
.lightbox-controls{display:flex;justify-content:space-between;align-items:center;padding:8px 28px 20px;gap:20px}
.lightbox-controls .gallery-arrow{background:transparent;color:white;border-color:#ffffff50;width:44px;height:44px}
.lightbox-controls .gallery-arrow:hover{background:var(--red)}
.lightbox-count{font-size:14px;color:#c9d2df}
html.gallery-open{overflow:hidden}
@media(max-width:740px){.projects{padding-top:60px;padding-bottom:44px}.projects-heading{align-items:center;gap:16px;margin-bottom:28px}.projects h2{font-size:32px}.project-navigation{gap:6px}.project-navigation .gallery-arrow{width:40px;height:44px}.projects-heading .eyebrow{font-size:11px}.project-swiper:not(.swiper-initialized) .swiper-slide{width:100%}.project-dialog{width:calc(100% - 24px);max-height:calc(100dvh - 24px)}.lightbox-photo{height:52dvh}.lightbox-caption{padding:18px 18px 10px}.lightbox-caption h3{font-size:18px}.lightbox-controls{padding:6px 18px 16px}.project-card h3{font-size:18px}}
@media(prefers-reduced-motion:reduce){.project-image img,.gallery-arrow,.gallery-close{transition:none}}

/* A shared project caption stays still while its photos slide. */
.project-image{font:inherit;color:inherit}
.project-photo-count{position:absolute;left:14px;bottom:14px;background:rgba(16,40,73,.88);color:white;font-size:12px;line-height:1.5;padding:7px 10px}
.lightbox-pagination{display:flex;justify-content:center;gap:0;position:static;min-height:26px}
.lightbox-pagination .swiper-pagination-bullet{position:relative;display:block;width:26px;height:26px;padding:0;margin:0!important;border:0;background:none;opacity:1}
.lightbox-pagination .swiper-pagination-bullet:after{content:'';position:absolute;width:7px;height:7px;background:#8290a2;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}
.lightbox-pagination .swiper-pagination-bullet-active:after{background:white;width:9px;height:9px}
.lightbox-pagination.swiper-pagination-lock{display:none}

/* Numbered image discovery and loading states. */
.project-dialog [hidden]{display:none!important}
.lightbox-status{padding:90px 28px 44px;text-align:center;color:#c9d2df;font-size:16px}
.lightbox-retry{display:block;margin:0 auto 28px;padding:12px 24px;background:var(--red);color:white;border:0;font:inherit;cursor:pointer}
.lightbox-pagination{flex-wrap:wrap;padding-inline:18px}
