main{max-width:var(--content-max-width);margin:0 auto;padding:0 1rem}.projects-page-nav{flex-direction:row;justify-content:space-between;align-items:center;padding:1rem;display:flex}.projects-page-nav a{color:inherit;text-decoration:none}.projects-page-nav .contact-info{gap:1rem;display:flex}@media (max-width:768px){.projects-page-nav .contact-info{gap:.5rem}}.projects-container{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}@media (max-width:768px){.projects-container{grid-template-columns:1fr}}.projects-page-nav .logo{width:70px;height:auto}@media (max-width:768px){.projects-page-nav .logo{width:50px}}.project-card{aspect-ratio:4/3;border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;width:100%;padding:0;display:block;position:relative;overflow:hidden}.project-card>img{object-fit:cover;width:100%;height:100%}.project-card-overlay{justify-content:center;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);text-align:center;color:var(--color-text-primary);background:rgba(0, 0, 0, var(--opacity-70));opacity:0;flex-direction:column;transition:opacity .3s;display:flex;position:absolute;inset:0}.project-card:hover .project-card-overlay,.project-card:focus-visible .project-card-overlay{opacity:1}.project-card-overlay h2{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.project-card-overlay p{font-size:var(--font-size-base);font-weight:var(--font-weight-light);line-height:var(--line-height-base);color:var(--color-text-secondary)}.project-card-bar{display:none}@media (hover:none){.project-card-overlay{display:none}.project-card-bar{padding:var(--spacing-lg) var(--spacing-sm) var(--spacing-xs);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);text-align:start;color:var(--color-text-primary);background:linear-gradient(#0000,#000000bf);align-items:flex-end;display:flex;position:absolute;inset:auto 0 0}}.image-viewer{z-index:100;gap:var(--spacing-xs);padding:var(--spacing-sm);background:var(--color-bg-dark-1);flex-direction:column;display:flex;position:fixed;inset:0}.image-viewer-stage{flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative}.image-viewer-stage img{object-fit:contain;max-width:100%;max-height:100%}.image-viewer-close,.image-viewer-arrow{min-width:44px;min-height:44px;color:var(--color-text-primary);background:var(--color-white-10);cursor:pointer;transition:var(--transition-base);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.image-viewer-close:hover,.image-viewer-arrow:hover{background:var(--color-white-20)}.image-viewer-close svg,.image-viewer-arrow svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.image-viewer-close{align-self:flex-end}.image-viewer-arrow{position:absolute;top:50%;transform:translateY(-50%)}.image-viewer-arrow.is-prev{left:0}.image-viewer-arrow.is-next{right:0}.image-viewer-thumbs{gap:var(--spacing-xs);padding-bottom:var(--spacing-xs);display:flex;overflow-x:auto}.image-viewer-thumbs:before,.image-viewer-thumbs:after{content:"";margin:auto}.image-viewer-thumb{width:72px;height:54px;opacity:var(--opacity-50);cursor:pointer;transition:var(--transition-base);background:0 0;border:none;border-radius:4px;flex:none;padding:0;overflow:hidden}.image-viewer-thumb:hover,.image-viewer-thumb.is-active{opacity:1}.image-viewer-thumb.is-active{outline:2px solid var(--color-text-primary);outline-offset:-2px}.image-viewer-thumb img{object-fit:cover;width:100%;height:100%}
