.project-section .project-links a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.project-section .projects{padding-top:clamp(2rem,6vw,4rem);padding-bottom:var(--section-padding)}.project-section .projects h1,.project-section .projects h2{font-size:var(--text-h2);margin-top:0.75rem;text-align:left}.project-section .section-description{margin-top:1rem;text-align:left;margin-left:0;margin-right:0}.project-section .filter-pill:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.project-section .project-filter{display:flex;flex-wrap:wrap;gap:0.5rem;margin-top:2rem}.project-section .filter-pill{display:inline-block;font-family:var(--font-mono);font-size:0.75rem;font-weight:500;letter-spacing:0.04em;color:var(--accent);background-color:var(--accent-soft);border:none;border-radius:999px;padding:0.35rem 0.875rem;cursor:pointer;transition:color 0.2s ease,background-color 0.2s ease}.project-section .filter-pill:hover{color:var(--ink)}.project-section .filter-pill.is-active{color:var(--surface);background-color:var(--accent)}.project-section .filter-pill.is-active:hover{color:var(--surface)}.project-section .project-cards-container{display:grid;grid-template-columns:1fr;gap:1.5rem;margin-top:2rem}.project-section .project-cards-container .card{display:flex;flex-direction:column;height:100%;margin:0;overflow:hidden;color:var(--ink);background-color:var(--surface);border:1px solid var(--line);border-radius:0;box-shadow:none;transition:transform 0.2s ease,box-shadow 0.2s ease,border-color 0.2s ease}.project-section .project-cards-container .card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 8px 24px color-mix(in srgb,var(--ink) 8%,transparent)}.project-section .project-card.hidden{display:none}.project-section .project-cards-container .card-preview-img{width:100%;height:11rem;object-fit:cover;padding:0;border-radius:0;background-color:var(--accent-soft)}.project-section .project-card-info{display:flex;flex-direction:column;flex:1;gap:0.75rem;padding:1.25rem;background-color:var(--surface);width:100%;height:auto}.project-section .project-title{font-family:var(--font-display);font-size:1.125rem;font-weight:700;letter-spacing:0;color:var(--ink);margin:0;text-align:left}.project-section .project-skills{display:flex;flex-wrap:wrap;gap:0.5rem;margin:0;padding:0}.project-section .project-description{flex:1;font-family:var(--font-body);font-size:0.9375rem;line-height:var(--line-height-body);color:var(--muted);text-align:left}.project-section .project-links{display:flex;align-items:center;gap:0.75rem;margin-top:0.25rem;padding-top:0.75rem;border-top:1px solid var(--line)}.project-section .project-links a{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;color:var(--muted);transition:color 0.2s ease}.project-section .project-links a:hover{color:var(--accent)}.project-section .project-links a i,.project-section .project-links a svg,.project-section .project-links a .icon{font-size:1rem;padding:0}@media only screen and (min-width:640px){.project-section .project-cards-container{grid-template-columns:repeat(2,minmax(0,1fr))}}@media only screen and (min-width:960px){.project-section .project-cards-container{grid-template-columns:repeat(3,minmax(0,1fr))}}.photo-cards-container{display:grid;grid-template-columns:1fr;gap:1.5rem;margin-top:2.5rem}.photo-cards-container .card{display:flex;flex-direction:column;height:100%;margin:0;overflow:hidden;color:var(--ink);background-color:var(--surface);border:1px solid var(--line);transition:transform 0.2s ease,box-shadow 0.2s ease,border-color 0.2s ease}.photo-cards-container .card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 8px 24px color-mix(in srgb,var(--ink) 8%,transparent)}.photo-cards-container .card-preview-img{width:100%;height:11rem;object-fit:cover;background-color:var(--accent-soft)}.photo-cards-container .project-card-info{padding:1.25rem;background-color:var(--surface)}.photo-cards-container .project-title{font-family:var(--font-display);font-size:1.125rem;font-weight:700;color:var(--ink);text-align:left}@media only screen and (min-width:577px){.photo-cards-container{grid-template-columns:repeat(2,minmax(0,1fr))}}@media only screen and (min-width:769px){.photo-cards-container{grid-template-columns:repeat(3,minmax(0,1fr))}}@media only screen and (min-width:993px){.photo-cards-container{grid-template-columns:repeat(4,minmax(0,1fr))}}