.filter-bar{display:flex;flex-direction:column;gap:1rem;padding:1rem;background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;margin-bottom:1rem}.filter-bar__search{width:100%}.filter-bar__search-input{width:100%;padding:.75rem 1rem;font-size:.9375rem;border:1px solid #d1d5db;border-radius:.375rem;background:#fff;transition:border-color .2s ease,box-shadow .2s ease}.filter-bar__search-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.filter-bar__filters{display:flex;flex-wrap:wrap;align-items:center;gap:1rem}.filter-bar__theme,.filter-bar__tags-wrap{position:relative}.filter-bar__theme-button{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#fff;border:1px solid #d1d5db;border-radius:.375rem;font-size:.9375rem;font-weight:500;color:#374151;cursor:pointer;transition:all .2s ease}.filter-bar__theme-button:hover{border-color:#9ca3af;background:#f9fafb}.filter-bar__theme-button:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.filter-bar__theme-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 .375rem;background:#3b82f6;color:#fff;font-size:.75rem;font-weight:600;border-radius:9999px}.filter-bar__theme-chevron{transition:transform .2s ease}.filter-bar__theme-chevron.is-open{transform:rotate(180deg)}.filter-bar__theme-dropdown{position:absolute;top:calc(100% + .5rem);left:0;min-width:clamp(13rem,40vw,16rem);background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;box-shadow:0 10px 40px #00000026;z-index:100;overflow:hidden;animation:dropdown-in .15s ease-out;transform-origin:top center}@keyframes dropdown-in{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.filter-bar__theme-option{min-height:44px}.filter-bar__theme-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-bottom:1px solid #e5e7eb;background:#f9fafb}.filter-bar__theme-count{font-size:.875rem;color:#6b7280;font-weight:500}.filter-bar__theme-clear{padding:.25rem .5rem;background:transparent;border:none;color:#3b82f6;font-size:.875rem;font-weight:500;cursor:pointer;border-radius:4px;transition:background .2s ease}.filter-bar__theme-clear:hover{background:#3b82f61a}.filter-bar__theme-options,.filter-bar__tags-options{max-height:17.5rem;overflow-y:auto;padding:.5rem 0}.filter-bar__tags-dropdown{min-width:clamp(14rem,48vw,20rem)}.filter-bar__theme-option{display:flex;align-items:center;gap:.75rem;padding:.625rem 1rem;cursor:pointer;transition:background .15s ease}.filter-bar__theme-option:hover{background:#f3f4f6}.filter-bar__theme-option input[type=checkbox]{width:1rem;height:1rem;cursor:pointer;accent-color:#3b82f6}.filter-bar__theme-option span{font-size:.9375rem;color:#374151}.filter-bar__dropdown-overlay{position:fixed;inset:0;z-index:99}.filter-bar__type{display:flex;gap:.25rem;background:#f3f4f6;padding:.25rem;border-radius:.375rem}.filter-bar__type-tab{padding:.5rem 1rem;background:transparent;border:none;border-radius:.25rem;font-size:.9375rem;font-weight:500;color:#6b7280;cursor:pointer;transition:all .2s ease}.filter-bar__type-tab:hover{color:#374151;background:#ffffff80}.filter-bar__type-tab.is-active{background:#fff;color:#1f2937;box-shadow:0 1px 3px #0000001a}.filter-bar__type-tab:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.filter-bar__clear-all{padding:.5rem 1rem;background:transparent;border:1px solid #ef4444;border-radius:.375rem;color:#ef4444;font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .2s ease;margin-left:auto}.filter-bar__clear-all:hover{background:#ef4444;color:#fff}.filter-bar__clear-all:focus-visible{outline:2px solid #ef4444;outline-offset:2px}@media(prefers-reduced-motion:reduce){.filter-bar__theme-dropdown,.filter-bar__theme-chevron,.filter-bar__theme-button,.filter-bar__type-tab,.filter-bar__search-input,.filter-bar__theme-clear,.filter-bar__clear-all{transition:none!important;animation:none!important}}@media(max-width:640px){.filter-bar{padding:.75rem}.filter-bar__filters{flex-direction:column;align-items:stretch;gap:.75rem}.filter-bar__theme,.filter-bar__tags-wrap{width:100%}.filter-bar__theme-button{width:100%;justify-content:space-between;min-height:44px}.filter-bar__theme-dropdown{left:0;right:0;min-width:unset;width:100%}.filter-bar__type{width:100%;justify-content:center}.filter-bar__type-tab{flex:1;text-align:center;min-height:44px}.filter-bar__clear-all{width:100%;margin-left:0;min-height:44px}}.projects-section{padding:clamp(1.5rem,4vw,2rem) clamp(.8rem,2.5vw,1rem);max-width:87.5rem;margin:0 auto}.projects-container{width:100%}.projects-count{margin:1.5rem 0 1rem;font-size:.875rem;color:#6b7280}.projects-count__filtered{color:#3b82f6;font-weight:500}.projects-grid{display:grid;gap:1.5rem;grid-template-columns:1fr}.projects-grid>*{animation:fade-in-up .4s ease-out backwards;animation-delay:calc(var(--index, 0) * 60ms)}@keyframes fade-in-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media(min-width:768px){.projects-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.projects-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:1280px){.projects-grid{gap:2rem}}.projects-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:clamp(2.5rem,8vw,4rem) clamp(1rem,4vw,2rem);text-align:center}.projects-empty__icon{color:#9ca3af;margin-bottom:1rem}.projects-empty__title{font-size:1.25rem;font-weight:600;color:#374151;margin:0 0 .5rem}.projects-empty__description{font-size:.9375rem;color:#6b7280;max-width:25rem;margin:0 0 1.5rem;line-height:1.5}.projects-empty__clear{padding:.75rem 1.5rem;background:#3b82f6;color:#fff;border:none;border-radius:.375rem;font-size:.9375rem;font-weight:500;cursor:pointer;transition:background .2s ease}.projects-empty__clear:hover{background:#2563eb}.projects-empty__clear:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}@media(prefers-reduced-motion:reduce){.projects-grid>*,.projects-empty,.projects-empty__clear,.projects-count{animation:none!important;transition:none!important}}
