section em { color: var(--amber); }
.section-heading { margin-bottom: 2rem; }
.section-heading h2 { margin: .45rem 0 0; }
.split-heading { display: flex; justify-content: space-between; gap: 2rem; align-items: end; }
.split-heading > p { max-width: 26rem; margin: 0; color: var(--gray-500); }
.featured-projects { background: var(--off-white); }
.featured-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.featured-card, .project-card { background: #fff; border: 1px solid var(--gray-300); border-radius: var(--radius); overflow: hidden; transition: transform var(--transition), box-shadow var(--transition); }
.featured-card:hover, .project-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.project-card-media { display: block; position: relative; overflow: hidden; background: var(--navy); }
.project-card-media img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .45s ease; }
.featured-card:first-child .project-card-media img { aspect-ratio: 4 / 4.7; }
.project-card:hover img, .featured-card:hover img { transform: scale(1.04); }
.card-category-badge { position: absolute; top: .75rem; left: .75rem; padding: .35rem .65rem; border: 1px solid rgba(232,160,32,.45); border-radius: 99px; background: rgba(10,22,40,.84); color: var(--amber); font: 600 .68rem/1 var(--font-ui); letter-spacing: .1em; text-transform: uppercase; }
.project-card-overlay { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: end; padding: 1.25rem; opacity: 0; background: linear-gradient(to top, rgba(10,22,40,.95), rgba(10,22,40,.05) 68%); transition: opacity .25s ease; }
.project-card-media:hover .project-card-overlay, .project-card-media:focus-visible .project-card-overlay { opacity: 1; }
.overlay-title { color: #fff; font: 400 1.55rem/1.05 var(--font-display); }.overlay-sub { color: var(--amber); font: 500 .72rem/1 var(--font-ui); letter-spacing: .09em; text-transform: uppercase; margin: .35rem 0 .8rem; }.overlay-cta { color: #fff; font: 600 .75rem/1 var(--font-ui); letter-spacing: .08em; text-transform: uppercase; }
.featured-card-copy, .project-card-body { padding: 1.15rem; }.featured-card-copy h3, .project-card-body h3 { margin: .25rem 0 .45rem; font-size: 1.45rem; }.featured-card-copy p { color: var(--gray-500); margin-bottom: 1rem; }.project-kicker, .project-card-body p { font: 600 .7rem/1.3 var(--font-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--gray-500); }.project-card-body a, .text-link { color: var(--navy); font: 700 .75rem/1 var(--font-ui); letter-spacing: .08em; text-transform: uppercase; }
.portfolio-stats { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--gray-300); border-radius: var(--radius); overflow: hidden; margin-bottom: 2rem; }.portfolio-stat { padding: 1.1rem .7rem; text-align: center; border-right: 1px solid var(--gray-300); }.portfolio-stat:last-child { border: 0; }.portfolio-stat strong { display: block; color: var(--navy); font: 700 1.6rem/1 var(--font-display); }.portfolio-stat span { display: block; margin-top: .35rem; color: var(--gray-500); font: 600 .68rem/1 var(--font-ui); letter-spacing: .09em; text-transform: uppercase; }
.portfolio-controls { display: grid; grid-template-columns: minmax(16rem, 25rem) 1fr; gap: 1rem; align-items: start; margin-bottom: 1.5rem; }.project-search { display: flex; align-items: center; gap: .5rem; padding: .15rem .85rem; border: 1px solid var(--gray-300); border-radius: 99px; background: #fff; }.project-search:focus-within { border-color: var(--navy); box-shadow: 0 0 0 3px rgba(10,22,40,.12); }.project-search input { width: 100%; min-height: 2.45rem; border: 0; outline: 0; font: 400 .9rem var(--font-ui); background: transparent; }.filter-bar { display: flex; gap: .45rem; flex-wrap: wrap; }.filter-btn { border: 1px solid var(--gray-300); background: #fff; border-radius: 99px; padding: .62rem .85rem; cursor: pointer; color: var(--navy); font: 600 .7rem/1 var(--font-ui); letter-spacing: .08em; text-transform: uppercase; transition: all var(--transition); }.filter-btn:hover, .filter-btn.active { color: #fff; background: var(--navy); border-color: var(--navy); }
.projects-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }.project-card-body h3 { font-size: 1.2rem; }.project-card-body p { margin-bottom: .9rem; }.no-results { padding: 3rem 0; text-align: center; color: var(--gray-500); }.no-results h3 { margin-bottom: .4rem; }.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
@media (max-width: 900px) { .featured-grid, .projects-grid { grid-template-columns: repeat(2, 1fr); }.portfolio-controls { grid-template-columns: 1fr; }.split-heading { align-items: start; flex-direction: column; } }
@media (max-width: 600px) { .featured-grid, .projects-grid { grid-template-columns: 1fr; }.featured-card:first-child .project-card-media img { aspect-ratio: 4 / 3; }.portfolio-stats { grid-template-columns: repeat(2, 1fr); }.portfolio-stat:nth-child(2) { border-right: 0; }.portfolio-stat:nth-child(-n+2) { border-bottom: 1px solid var(--gray-300); }.filter-bar { flex-wrap: nowrap; overflow-x: auto; padding-bottom: .4rem; }.filter-btn { flex: 0 0 auto; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition-duration: .01ms !important; } }
