.gallery-page{padding:80px 64px}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.project-tile{display:block;width:100%;aspect-ratio:4/3;position:relative;overflow:hidden;padding:0;border:0;box-shadow:0 10px 20px #0000000d}.project-tile img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.project-tile span{position:absolute;inset:0;display:flex;align-items:flex-end;padding:24px;background:linear-gradient(transparent 50%,#000b);color:white;font-size:18px;font-weight:600;text-align:left;opacity:0;transition:opacity .3s}.project-tile:focus-visible span,.project-tile:hover span{opacity:1}.project-tile:hover img{transform:scale(1.02)}.project-dialog{width:95vw!important;max-width:1200px!important;max-height:94dvh;overflow:auto;border-radius:0;background:#111;color:white;padding:24px;text-align:center}.project-dialog [data-slot=dialog-description]{color:#ddd}.project-view{height:62dvh;position:relative;touch-action:pan-y}.project-view img{width:100%;height:100%;object-fit:contain}.project-view [role=alert]{position:absolute;top:50%;width:100%}.project-caption{font-size:15px;line-height:1.6;max-width:800px;margin:auto}.project-controls{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;pointer-events:none;padding:0 12px}.project-controls button{pointer-events:auto;display:grid;place-items:center;width:56px;height:56px;padding:0 0 5px;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 14px #0008;font-size:46px;line-height:1;cursor:pointer}.project-controls button,.project-controls button:hover{background:#fff;color:#111}.project-controls button:focus-visible{outline:3px solid #f05223;outline-offset:4px}.project-dialog [data-slot=dialog-close]{color:white}@media(max-width:1100px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:767px){.gallery-page{padding:40px 20px}.project-grid{grid-template-columns:1fr}.project-tile span{opacity:1}.project-dialog{padding:20px}.project-view{height:48dvh}.project-caption{font-size:13px}}@media(prefers-reduced-motion:reduce){.project-tile img,.project-tile span{transition:none}}@media(max-width:767px){.project-controls{padding:0 4px}.project-controls button{width:48px;height:48px;font-size:40px}}