.project-filters{border-radius:20px;margin-bottom:24px;padding:24px}.project-filters-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;display:flex}.project-filters-heading h2{margin:0;font-size:1.05rem}.project-filter-reset{border:1px solid var(--line);background:var(--panel);min-height:40px;color:var(--text-soft);font:inherit;cursor:pointer;border-radius:9px;flex-shrink:0;padding:8px 12px;font-size:.8rem}.project-filter-reset:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.project-filter-reset:disabled{opacity:.45;cursor:default}.project-filter-group{border:0;min-width:0;margin:0;padding:0}.project-filter-group legend{color:var(--text);margin-bottom:10px;padding:0;font-size:.86rem;font-weight:650}.project-filter-options{flex-wrap:wrap;gap:8px;display:flex}.project-filter-option{border:1px solid var(--line);min-width:0;min-height:40px;color:var(--text-soft);background:var(--panel);cursor:pointer;overflow-wrap:anywhere;border-radius:10px;align-items:center;gap:8px;padding:7px 11px;font-size:.8rem;display:inline-flex}.project-filter-option input{width:14px;height:14px;accent-color:var(--accent);flex:0 0 14px;margin:0}.project-filter-option:hover{border-color:var(--line-strong)}.project-filter-option:has(input:checked){color:var(--text);border-color:var(--accent);background:var(--accent-soft)}.project-filter-option:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:3px}.project-filter-technologies{border-top:1px solid var(--line);margin-top:20px;padding-top:16px}.project-filter-technologies summary{cursor:pointer;min-height:40px;color:var(--text);align-items:center;gap:10px;font-size:.86rem;font-weight:650;list-style:none;display:flex}.project-filter-technologies summary::-webkit-details-marker{display:none}.project-filter-technologies summary:after{content:"⌄";color:var(--muted);margin-left:auto}.project-filter-technologies[open] summary:after{transform:rotate(180deg)}.project-filter-tech-body{padding-top:12px}.project-filter-search{max-width:360px;margin-bottom:12px;display:block}.project-filter-search input{box-sizing:border-box;border:1px solid var(--line);background:var(--panel);width:100%;min-height:42px;color:var(--text);font:inherit;border-radius:10px;padding:9px 12px;font-size:.82rem}.project-filter-search input::placeholder{color:var(--muted)}.project-filter-tech-options{max-height:240px;margin:-3px;padding:3px;overflow-y:auto}.project-filter-tech-empty,.project-filter-note{color:var(--muted);font-size:.82rem}.project-filter-selected{border-top:1px solid var(--line);align-items:flex-start;gap:12px;margin-top:18px;padding-top:16px;font-size:.78rem;display:flex}.project-filter-selected>span{color:var(--muted);flex-shrink:0;padding-top:8px}.project-filter-chips{flex-wrap:wrap;gap:7px;display:flex}.project-filter-chips button{border:1px solid var(--line-strong);min-height:36px;color:var(--text);background:var(--accent-soft);font:inherit;cursor:pointer;overflow-wrap:anywhere;border-radius:9px;padding:6px 10px}.project-filter-chips button:hover{border-color:var(--accent)}.project-filter-empty{margin-top:0}.project-card-categories{color:var(--muted);flex-wrap:wrap;gap:6px;margin:-4px 0 12px;padding:0;font-size:.72rem;list-style:none;display:flex}.project-card-categories li+li:before{content:"·";margin-right:6px}.project-filters[hidden],.project-filter-selected[hidden],.project-filter-option[hidden],.project-filter-tech-empty[hidden],.project-filter-empty[hidden],.projects-grid[hidden],.project-card[hidden]{display:none}@media (min-width:768px){.project-filters>.project-filter-group>legend{float:left;margin:0 20px 0 0;padding:10px 0}.project-filter-technologies{margin-top:16px;padding-top:12px;position:relative}.project-filter-technologies[open] summary{padding-right:270px}.project-filter-technologies[open] .project-filter-search{width:250px;max-width:100%;margin:0;position:absolute;top:12px;right:0}.project-filter-tech-body{padding-top:8px}}@media (max-width:767px){.project-filters{margin-bottom:16px;padding:18px 16px}.project-filter-options{gap:7px}.project-filter-option{min-height:42px}.project-filter-search{max-width:none}.project-filter-selected{gap:8px}}
