.project-list-section{padding:0;width:100%}.project-list-grid{display:grid;gap:2rem;grid-template-columns:repeat(3,1fr);width:100%}.project-list-grid[data-columns-desktop="1"]{grid-template-columns:1fr}.project-list-grid[data-columns-desktop="2"]{grid-template-columns:repeat(2,1fr)}.project-list-grid[data-columns-desktop="3"]{grid-template-columns:repeat(3,1fr)}.project-card{background:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.08);display:flex;flex-direction:column;max-width:100%;overflow:hidden;position:relative;transition:all .3s ease}.project-card:hover{border-color:var(--brand-secondary,#a3d977);box-shadow:0 10px 30px rgba(0,0,0,.12);transform:translateY(-5px)}.project-image-wrapper{background:#f5f5f5;height:200px;overflow:hidden;position:relative;width:100%}.project-image{height:100%;object-fit:cover;transition:transform .3s ease;width:100%}.project-card:hover .project-image{transform:scale(1.05)}.project-image-wrapper .project-badge{backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);box-shadow:0 2px 8px rgba(0,0,0,.15);position:absolute;right:.75rem;top:.75rem;z-index:10}.project-content{display:flex;flex-direction:column;flex-grow:1;padding:1.5rem}.project-name{color:inherit;font-size:1.5rem;font-weight:700;line-height:1.3;margin:0 0 1rem}.project-badge,.project-name{font-family:Work Sans,-apple-system,sans-serif}.project-badge{align-items:center;border-radius:6px;display:inline-flex;flex-shrink:0;font-size:.75rem;font-weight:600;letter-spacing:.5px;padding:.5rem .875rem;text-transform:uppercase;white-space:nowrap}.project-badge-demo{background-color:rgba(227,242,253,.95);border:1px solid rgba(25,118,210,.2);color:#1976d2}.project-badge-client{background-color:rgba(243,229,245,.95);border:1px solid rgba(123,31,162,.2);color:#7b1fa2}.project-description{color:inherit;flex-grow:1;font-family:Work Sans,-apple-system,sans-serif;font-size:1rem;line-height:1.6;margin-bottom:1.5rem;opacity:.9}.project-description p{margin:0 0 1rem}.project-description p:last-child{margin-bottom:0}.tech-stack{margin-bottom:1.5rem}.tech-stack-title{color:inherit;font-family:Work Sans,-apple-system,sans-serif;font-size:.875rem;font-weight:600;letter-spacing:.5px;margin:0 0 .75rem;opacity:.7;text-transform:uppercase}.tech-stack-items{display:flex;flex-wrap:wrap;gap:.75rem;transition:max-height .3s ease}.tech-stack-items.tech-stack-collapsed{mask-image:linear-gradient(180deg,#000 0,#000 70%,transparent);-webkit-mask-image:linear-gradient(180deg,#000 0,#000 70%,transparent);max-height:150px;overflow:hidden;position:relative}.tech-stack-items.tech-stack-collapsed:after{background:linear-gradient(to bottom,transparent,var(--card-bg,hsla(0,0%,100%,.95)));bottom:0;content:"";height:40px;left:0;pointer-events:none;position:absolute;right:0}.tech-stack-item{align-items:center;background:rgba(0,0,0,.03);border-radius:6px;display:flex;gap:.5rem;opacity:1;padding:.5rem .75rem;transform:scale(1);transition:all .2s ease}.tech-stack-item.tech-stack-hidden{display:none}.tech-stack-item:hover{background:rgba(0,0,0,.06);transform:translateY(-2px)}.tech-stack-toggle{align-items:center;background:var(--toggle-button-bg,#fff);border:1px solid var(--toggle-button-border,#e0e0e0);border-radius:var(--button-radius,6px);color:var(--toggle-button-text,#2d5016);cursor:pointer;display:flex;font-family:Work Sans,-apple-system,sans-serif;font-size:var(--button-font-size,15px);font-weight:var(--button-font-weight,600);gap:.5rem;justify-content:center;margin-top:.75rem;padding:.5rem 1rem;transition:all .2s ease;width:100%}.tech-stack-toggle:hover{background:var(--toggle-button-hover-bg,#f5f5f5);border-color:var(--toggle-button-text,#2d5016);color:var(--toggle-button-hover-text,#a3d977)}.tech-stack-toggle:active{transform:scale(.98)}.toggle-icon{font-size:.75rem;transition:transform .3s ease}.tech-stack.expanded .toggle-icon{transform:rotate(180deg)}.tech-stack.expanded .tech-stack-items{mask-image:none;-webkit-mask-image:none;max-height:none;overflow:visible}.tech-stack.expanded .tech-stack-items:after{display:none}.tech-stack.expanded .tech-stack-item.tech-stack-hidden{animation:fadeInUp .3s ease-out;display:flex}.tool-icon-emoji,.tool-icon-fontawesome{display:inline-block;font-size:1.25rem;line-height:1}.tool-icon-fontawesome{color:var(--link-color,#2d5016)}.tool-icon-fontawesome svg{fill:currentColor;height:1.25rem;width:1.25rem}.tool-icon-image{display:inline-block;height:1.25rem;object-fit:contain;width:1.25rem}.tool-name{color:inherit;font-family:Work Sans,-apple-system,sans-serif;font-size:.875rem;font-weight:500}.project-link-wrapper{border-top:1px solid rgba(0,0,0,.08);margin-top:auto;padding-top:1rem}.project-link{align-items:center;background-color:var(--button-bg,#2d5016);border-radius:var(--button-radius,6px);color:var(--button-text,#fff);display:inline-flex;font-family:Work Sans,-apple-system,sans-serif;font-size:var(--button-font-size,15px);font-weight:var(--button-font-weight,600);justify-content:center;padding:var(--button-padding-v,12px) var(--button-padding-h,24px);text-align:center;text-decoration:none;transition:all .3s ease;width:100%}.project-link:hover{background-color:var(--button-hover-bg,#a3d977);box-shadow:0 4px 12px rgba(0,0,0,.15);color:var(--button-hover-text,#fff);text-decoration:none;transform:translateY(-2px)}.project-link:active{transform:translateY(0)}@media (max-width:1024px){.project-list-grid{gap:1.5rem;grid-template-columns:repeat(2,1fr)}.project-image-wrapper{height:180px}.project-content{padding:1.25rem}.project-name{font-size:1.375rem}.project-description{font-size:.9375rem}}@media (max-width:768px){.project-list-grid{gap:1.5rem}.project-list-grid,.project-list-grid[data-columns-mobile="1"]{grid-template-columns:1fr!important}.project-list-grid[data-columns-mobile="2"]{grid-template-columns:repeat(2,1fr)!important}.project-image-wrapper{height:160px}.project-content{padding:1.25rem}.project-name{font-size:1.25rem}.project-description{font-size:.9375rem}.tech-stack-items{gap:.5rem}.tech-stack-item{padding:.4rem .6rem}.tool-icon-emoji,.tool-icon-fontawesome{font-size:1rem}.tool-icon-image{height:1rem;width:1rem}.tool-name{font-size:.8125rem}.project-link{font-size:.875rem;padding:.625rem 1.25rem}}@media (max-width:480px){.project-list-grid{gap:1rem}.project-image-wrapper{height:140px}.project-content{padding:1rem}.project-name{font-size:1.125rem}.project-description{font-size:.875rem}.tech-stack-title{font-size:.8125rem}.tech-stack-items{gap:.4rem}.tech-stack-item{padding:.35rem .5rem}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.project-card{animation:fadeInUp .5s ease-out}.project-card:first-child{animation-delay:.1s}.project-card:nth-child(2){animation-delay:.2s}.project-card:nth-child(3){animation-delay:.3s}.project-card:nth-child(4){animation-delay:.4s}.project-card:nth-child(5){animation-delay:.5s}.project-card:nth-child(6){animation-delay:.6s}.project-card:nth-child(7){animation-delay:.7s}.project-card:nth-child(8){animation-delay:.8s}.project-card:not(:has(.project-image-wrapper)) .project-content{padding-top:1.5rem}.project-card:not(:has(.tech-stack)) .project-description{margin-bottom:1.5rem}.project-card:not(:has(.project-link-wrapper)) .tech-stack{margin-bottom:0}