.project-card{background:#fff;border:1px solid #e9ecef;border-radius:0;height:100%;transition:all .3s;overflow:hidden;box-shadow:0 2px 4px #0000001a,0 8px 16px #0000001a}.project-card:hover{transform:translateY(-5px);box-shadow:0 4px 8px #0000001f,0 16px 32px #00000026}.project-card .card-content-wrapper{flex-direction:column;height:100%;display:flex}.project-card .project-image{width:100%;position:relative;overflow:hidden}.project-card .project-image img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.project-card .project-image:hover img{transform:scale(1.05)}.project-card .project-image .image-overlay{background:linear-gradient(45deg,#0000004d 0%,#0000 50%,#0003 100%);justify-content:space-between;align-items:flex-start;padding:1rem;display:flex;position:absolute;inset:0}.project-card .project-image .status-badge{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#fffffff2;border:1px solid #ffffff4d;border-radius:0;padding:.4rem .8rem;font-size:.75rem;font-weight:600}.project-card .project-image .status-badge.completed{color:#198754;border-color:#1987544d}.project-card .project-image .status-badge.in-progress{color:#fd7e14;border-color:#fd7e144d}.project-card .project-image .category-badge-bottom-right{color:#fff;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#2669c9e6;border:1px solid #ffffff4d;border-radius:0;padding:.4rem .8rem;font-size:.75rem;font-weight:500;position:absolute;bottom:1rem;right:1rem}.project-card .card-body{flex-direction:column;flex-grow:1;padding:1.5rem;display:flex}.project-card .project-title{color:#222;margin-bottom:.75rem;font-size:1.25rem;font-weight:500;line-height:1.3}.project-card .project-description{color:#666;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-bottom:1rem;font-size:1rem;font-weight:400;line-height:1.5;display:-webkit-box;overflow:hidden}.project-card .card-project-timeline{margin-bottom:1.5rem}.project-card .card-project-timeline .project-timeline{margin:.5rem 0}.project-card .card-project-timeline .project-timeline .timeline-date{background:#f8f9fa;border:1px solid #dee2e6;padding:.25rem .6rem;font-size:.85rem;box-shadow:0 2px 4px #0000000d}.project-card .card-project-timeline .project-timeline .timeline-dot{width:10px;height:10px}.project-card .card-project-timeline .project-timeline .timeline-line{height:3px}.project-card .project-footer{justify-content:space-between;align-items:flex-end;gap:1rem;margin-top:auto;display:flex}.project-card .project-tags{flex-wrap:wrap;flex-grow:1;gap:.375rem;display:flex}.project-card .project-tags .project-tag{color:#000;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:0;align-items:center;padding:.25rem .75rem;font-size:.875rem;font-weight:400;text-decoration:none;transition:all .2s;display:inline-flex;box-shadow:0 2px 8px #00000014}.project-card .project-tags .project-tag:hover{color:#000;background-color:#e9ecef}.project-card .project-tags .project-tag-primary{color:#fff;background-color:#0d6efdbf;border:1px solid #dee2e6}.project-card .project-tags .project-tag-primary:hover{color:#fff;background-color:#0d6efdd9}.project-card .project-tags .more-tags{color:#6c757d;background:#e9ecef;border:1px solid #dee2e6;border-radius:0;align-items:center;padding:.25rem .75rem;font-size:.875rem;font-weight:600;transition:all .2s;display:inline-flex;box-shadow:0 2px 8px #00000014}.project-card .project-tags .more-tags:hover{color:#fff;background:#2669c9;border-color:#2669c9;transform:translateY(-1px);box-shadow:0 4px 12px #2669c94d}.project-card .project-link{color:#2669c9;flex-shrink:0;align-items:center;gap:.5rem;font-size:.875rem;font-weight:400;text-decoration:none;transition:all .3s;display:flex}.project-card .project-link:hover{color:#1e54b1;gap:.75rem}.project-card .project-link svg{transition:transform .3s}.project-card .project-link:hover svg{transform:translate(2px)}.project-card.masonry-view .project-title{font-size:1.1rem}.project-card.masonry-view .project-description{-webkit-line-clamp:2;font-size:.9rem}.project-card.masonry-view .project-image{height:150px}@media (min-width:576px){.project-card.masonry-view.sm-three-cols .project-title{font-size:2rem}.project-card.masonry-view.sm-three-cols .project-description{-webkit-line-clamp:4;font-size:1.2rem}.project-card.masonry-view.sm-two-cols .project-title{font-size:1.5rem}.project-card.masonry-view.sm-two-cols .project-description{-webkit-line-clamp:3;font-size:1.1rem}.project-card.masonry-view.sm-one-cols .project-title{font-size:1.1rem}.project-card.masonry-view.sm-one-cols .project-description{-webkit-line-clamp:2;font-size:.9rem}}@media (min-width:768px){.project-card.masonry-view.lg-one-cols .project-image,.project-card.masonry-view.lg-two-cols .project-image{height:150px}.project-card.masonry-view.lg-three-cols .project-image{height:250px}.project-card.masonry-view.md-three-cols .project-title{font-size:2rem}.project-card.masonry-view.md-three-cols .project-description{-webkit-line-clamp:4;font-size:1.2rem}.project-card.masonry-view.md-two-cols .project-title{font-size:1.5rem}.project-card.masonry-view.md-two-cols .project-description{-webkit-line-clamp:3;font-size:1.1rem}.project-card.masonry-view.md-one-cols .project-title{font-size:1.1rem}.project-card.masonry-view.md-one-cols .project-description{-webkit-line-clamp:2;font-size:.9rem}}@media (min-width:992px){.project-card.masonry-view.lg-one-cols .project-image,.project-card.masonry-view.lg-two-cols .project-image{height:150px}.project-card.masonry-view.lg-three-cols .project-image{height:250px}.project-card.masonry-view.lg-three-cols .project-title{font-size:2rem}.project-card.masonry-view.lg-three-cols .project-description{-webkit-line-clamp:4;font-size:1.2rem}.project-card.masonry-view.lg-two-cols .project-title{font-size:1.5rem}.project-card.masonry-view.lg-two-cols .project-description{-webkit-line-clamp:3;font-size:1.1rem}.project-card.masonry-view.lg-one-cols .project-title{font-size:1.1rem}.project-card.masonry-view.lg-one-cols .project-description{-webkit-line-clamp:2;font-size:.9rem}}.project-card.grid-view .project-image{height:200px}.timeline-card{gap:2rem;display:flex;position:relative}.timeline-card .timeline-marker{display:none}.timeline-card .timeline-content{flex-grow:1}.timeline-card .timeline-content .project-card .project-image{flex-shrink:0;width:100%;height:200px;position:relative}.timeline-card .timeline-content .project-card .project-image .timeline-image-mobile{width:100%;height:100%;display:block;position:relative}.timeline-card .timeline-content .project-card .project-image .timeline-image-desktop{display:none}@media (min-width:769px){.timeline-card .timeline-content .project-card .project-image{width:300px;height:400px}.timeline-card .timeline-content .project-card .project-image .timeline-image-mobile{display:none}.timeline-card .timeline-content .project-card .project-image .timeline-image-desktop{width:100%;height:100%;display:block;position:relative}}.timeline-card .timeline-content .project-card .card-content-wrapper{flex-direction:column;gap:1.5rem}@media (min-width:769px){.timeline-card .timeline-content .project-card .card-content-wrapper{flex-direction:row}}.timeline-card .timeline-content .project-card .card-body{flex-grow:1}@media (max-width:768px){.project-card .card-body{padding:1.25rem}.project-card .project-title{font-size:1.1rem}.project-card .project-description{font-size:.9rem}.project-card .project-footer{flex-direction:column;align-items:flex-start;gap:1rem}.project-card .project-link{align-self:flex-end}.timeline-card{gap:1rem}}@media (max-width:576px){.project-card .card-body{padding:1rem}.project-card .project-title{font-size:1rem}.project-card .project-tags .project-tag{padding:.2rem .5rem;font-size:.7rem}.timeline-card .timeline-marker{display:none}.timeline-card .timeline-content{margin-left:0}}.project-image-placeholder{background-size:200% 100%;border-radius:0}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}
.custom-select-wrapper{z-index:auto;width:100%;position:relative}.custom-select-wrapper.open{z-index:1100}.custom-select-wrapper .custom-select{cursor:pointer;background:#fff;border:2px solid #e9ecef;border-radius:0;justify-content:space-between;align-items:center;width:100%;padding:.75rem 2.5rem .75rem 1rem;font-size:.9rem;transition:all .3s;display:flex;position:relative}.custom-select-wrapper .custom-select .custom-select-value{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.custom-select-wrapper .custom-select .custom-select-arrow{color:#666;pointer-events:none;transition:all .3s;position:absolute;top:50%;right:.75rem;transform:translateY(-50%)rotate(0)}.custom-select-wrapper .custom-select .custom-select-arrow.open{color:#2669c9;transform:translateY(-50%)rotate(180deg)}.custom-select-wrapper:not(.open) .custom-select:hover{border-color:#dee2e6}.custom-select-wrapper.open .custom-select{z-index:1101;position:relative;box-shadow:0 0 0 3px #2669c91a;border-color:#2669c9!important}.custom-select-wrapper .custom-select-dropdown{z-index:1102;background:#fff;border:1px solid #dee2e6;border-radius:0;max-height:300px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px #00000026}.custom-select-wrapper .custom-select-dropdown .custom-select-option{cursor:pointer;padding:.75rem 1rem;font-size:.9rem;transition:background-color .2s}.custom-select-wrapper .custom-select-dropdown .custom-select-option:hover{background-color:#f8f9fa}.custom-select-wrapper .custom-select-dropdown .custom-select-option.selected{color:#2669c9;background-color:#2669c91a;font-weight:500}
.project-filters{z-index:100;margin-bottom:2rem;position:relative;overflow:visible}.project-filters .filter-top-bar{margin-bottom:1rem}.project-filters .filter-toggle{cursor:pointer;background:#fff;border:1px solid #dee2e6;border-radius:0;padding:1rem 1.5rem;transition:all .3s;box-shadow:0 2px 8px #00000014}.project-filters .filter-toggle:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001f}.project-filters .filter-toggle .filter-toggle-content{justify-content:space-between;align-items:center;display:flex;position:relative}.project-filters .filter-toggle .filter-toggle-content .filter-icon{color:#2669c9;align-items:center;display:flex}.project-filters .filter-toggle .filter-toggle-content .filter-text{color:#333;font-weight:600;position:absolute;left:50%;transform:translate(-50%)}.project-filters .filter-toggle .filter-toggle-content .result-count{margin-left:auto;margin-right:1rem}.project-filters .filter-toggle .filter-toggle-content .result-count .badge{background:linear-gradient(135deg,#2669c9 0%,#1e54b1 100%);border-radius:12px;padding:.4rem .8rem;font-size:.8rem}.project-filters .filter-toggle .filter-toggle-content .expand-arrow{color:#666;transition:transform .3s}.project-filters .filter-toggle .filter-toggle-content .expand-arrow.rotated{transform:rotate(180deg)}.project-filters .filter-panel{opacity:0;max-height:0;transition:max-height .4s,opacity .3s;overflow:hidden}.project-filters .filter-panel .filter-panel-content{background:#fff;border:1px solid #dee2e6;border-radius:0;margin-top:1rem;padding:2rem;overflow:visible;box-shadow:0 2px 8px #00000014}.project-filters .filter-panel .filter-panel-content .row,.project-filters .filter-panel .filter-panel-content .col,.project-filters .filter-panel .filter-panel-content [class*=col-]{overflow:visible}.project-filters.expanded .filter-panel{opacity:1;max-height:1000px;overflow:visible}.project-filters .view-mode-buttons-top{gap:.5rem;display:flex}@media (min-width:768px){.project-filters .view-mode-buttons-top{justify-content:flex-end}}.project-filters .view-mode-buttons-top .view-btn{cursor:pointer;color:#666;background:#fff;border:1px solid #dee2e6;border-radius:0;justify-content:center;align-items:center;padding:1rem 1.25rem;transition:all .3s;display:flex;box-shadow:0 2px 8px #00000014}.project-filters .view-mode-buttons-top .view-btn:hover{color:#2669c9;border-color:#2669c9;transform:translateY(-2px);box-shadow:0 4px 12px #0000001f}.project-filters .view-mode-buttons-top .view-btn.active{color:#fff;background:linear-gradient(135deg,#2669c9 0%,#1e54b1 100%);border-color:#2669c9}.project-filters .filter-group{margin-bottom:1.5rem;overflow:visible}.project-filters .filter-group .filter-label{color:#333;text-transform:none;letter-spacing:normal;margin-bottom:.5rem;font-size:.875rem;font-weight:500;display:block}.project-filters .filter-group .search-input-wrapper{position:relative}.project-filters .filter-group .search-input-wrapper .search-input{background:#fff;border:2px solid #e9ecef;border-radius:0;width:100%;padding:.75rem 1rem .75rem 2.5rem;font-size:.9rem;transition:all .3s}.project-filters .filter-group .search-input-wrapper .search-input:focus{border-color:#2669c9;outline:none;box-shadow:0 0 0 3px #2669c91a}.project-filters .filter-group .search-input-wrapper .search-input::placeholder{color:#adb5bd}.project-filters .filter-group .search-input-wrapper .search-icon{color:#adb5bd;position:absolute;top:50%;left:.75rem;transform:translateY(-50%)}.project-filters .filter-group .select-wrapper{position:relative}.project-filters .filter-group .select-wrapper .filter-select{cursor:pointer;appearance:none;background:#fff;border:2px solid #e9ecef;border-radius:0;width:100%;padding:.75rem 2.5rem .75rem 1rem;font-size:.9rem;transition:all .3s}.project-filters .filter-group .select-wrapper .filter-select:focus{border-color:#2669c9;outline:none;box-shadow:0 0 0 3px #2669c91a}.project-filters .filter-group .select-wrapper .select-arrow{pointer-events:none;color:#666;transition:all .3s;position:absolute;top:50%;right:.75rem;transform:translateY(-50%)rotate(0)}.project-filters .filter-group .select-wrapper.focused .select-arrow{color:#2669c9;transform:translateY(-50%)rotate(180deg)}.project-filters .filter-group .filter-select{cursor:pointer;background:#fff;border:2px solid #e9ecef;border-radius:0;width:100%;padding:.75rem 1rem;font-size:.9rem;transition:all .3s}.project-filters .filter-group .filter-select:focus{border-color:#2669c9;outline:none;box-shadow:0 0 0 3px #2669c91a}.project-filters .filter-group .clear-btn{border-radius:0;width:100%;padding:.75rem;font-weight:500}.project-filters .filter-group .tag-cloud{flex-wrap:wrap;gap:.5rem;display:flex}.project-filters .filter-group .tag-cloud .tag-btn{color:#000;cursor:pointer;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:0;align-items:center;padding:.25rem .75rem;font-size:.875rem;font-weight:400;text-decoration:none;transition:all .2s;display:inline-flex;box-shadow:0 2px 8px #00000014}.project-filters .filter-group .tag-cloud .tag-btn:hover{color:#000;background-color:#e9ecef}.project-filters .filter-group .tag-cloud .tag-btn.selected{color:#fff;background-color:#0d6efdbf;border:1px solid #dee2e6}.project-filters .filter-group .tag-cloud .tag-btn.selected:hover{color:#fff;background-color:#0d6efdd9}.project-filters .filter-group .tag-cloud .tag-btn.more-tags-btn{color:#6c757d;background-color:#e9ecef;font-weight:600}.project-filters .filter-group .tag-cloud .tag-btn.more-tags-btn:hover{color:#fff;background-color:#2669c9;border-color:#2669c9;transform:translateY(-1px);box-shadow:0 4px 12px #2669c94d}.project-filters .filter-group .year-chips{flex-wrap:wrap;gap:.5rem;display:flex}.project-filters .filter-group .year-chips .year-chip{color:#000;cursor:pointer;text-align:center;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:0;justify-content:center;align-items:center;min-width:60px;padding:.25rem .75rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex;box-shadow:0 2px 8px #00000014}.project-filters .filter-group .year-chips .year-chip:hover{color:#000;background-color:#e9ecef}.project-filters .filter-group .year-chips .year-chip.selected{color:#fff;background-color:#0d6efdbf;border:1px solid #dee2e6}.project-filters .filter-group .year-chips .year-chip.selected:hover{color:#fff;background-color:#0d6efdd9}@media (max-width:768px){.project-filters{position:relative;top:0}.project-filters .filter-toggle{border-radius:0;padding:.75rem 1rem}.project-filters .filter-toggle .filter-toggle-content .filter-text{font-size:.9rem}.project-filters .view-mode-buttons-top .view-btn{flex:1;padding:.75rem}.project-filters .filter-panel-content{border-radius:0;padding:1.5rem}.project-filters .filter-group{margin-bottom:1rem}.project-filters .filter-group .tag-cloud .tag-btn{padding:.4rem .8rem;font-size:.8rem}.project-filters .filter-group .year-chips .year-chip{min-width:50px;padding:.4rem .8rem;font-size:.85rem}}@media (max-width:576px){.project-filters .filter-panel-content{padding:1rem}.project-filters .view-mode-buttons-top .view-btn{padding:.6rem .5rem}.project-filters .view-mode-buttons-top .view-btn svg{width:14px;height:14px}}
.project-table-section{border-top:1px solid #e9ecef;margin-top:4rem;padding-top:3rem}.project-table-section h2{color:#2c3e50;margin-bottom:1.5rem;font-weight:600}.project-table{background:#fff;border:none;border-radius:.5rem;overflow:hidden;box-shadow:0 2px 8px #0000001f,0 -2px 8px #0000001f}.project-table thead{background:#f8f9fa}.project-table thead th{color:#495057;text-transform:none;letter-spacing:.5px;border:none;padding:1rem;font-size:.9rem;font-weight:600}.project-table tbody tr{border:none;transition:background-color .2s}.project-table tbody tr:hover{background-color:#f8f9fa}.project-table tbody tr td{vertical-align:middle;border-color:#f1f3f4;padding:1rem}.project-table .project-title-link{color:#2c3e50;font-weight:500;text-decoration:none;transition:color .2s}.project-table .project-title-link:hover{color:#3498db;text-decoration:none}.project-table .category-badge-table{white-space:nowrap;border:1px solid #dee2e6;align-items:center;padding:.125rem .5rem;font-size:.75rem;display:inline-flex;box-shadow:0 2px 8px #00000014;color:#fff!important;background-color:#0d6efdbf!important;border-radius:0!important}.project-table .category-badge-table:disabled{opacity:1}.project-table .tag-badge-table{white-space:nowrap;border:1px solid #dee2e6;align-items:center;padding:.125rem .5rem;font-size:.75rem;transition:background .2s,color .2s;display:inline-flex;color:#000!important;background:#f8f9fa!important;border-radius:0!important}.project-table .tag-badge-table:disabled{opacity:1}.project-table .tag-badge-table .me-1{margin-right:.25rem!important}.project-table .table-date{white-space:nowrap;font-size:.9rem}.project-table .tags-container,.project-table .tags-container.tags-single-row,.project-table .tags-container.tags-two-column{flex-wrap:wrap;align-items:center;gap:.25rem;display:flex}.table-responsive-wrapper{position:relative}@media (max-width:767.98px){.table-responsive-wrapper:after{content:"";pointer-events:none;z-index:2;background:linear-gradient(270deg,#ffffffe6,#0000);width:30px;position:absolute;top:0;bottom:40px;right:0}.table-responsive-wrapper .table-responsive{-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#dee2e6 #0000}.table-responsive-wrapper .table-responsive::-webkit-scrollbar{height:6px}.table-responsive-wrapper .table-responsive::-webkit-scrollbar-track{background:#f8f9fa;border-radius:3px}.table-responsive-wrapper .table-responsive::-webkit-scrollbar-thumb{background:#dee2e6;border-radius:3px}.table-responsive-wrapper .table-responsive::-webkit-scrollbar-thumb:hover{background:#adb5bd}}.mobile-scroll-indicator{text-align:center;color:#6c757d;background:#f8f9fa;border-top:1px solid #dee2e6;border-radius:0 0 .5rem .5rem;padding:.5rem;font-size:.8rem}.mobile-scroll-indicator span{color:#0d6efd;background:#0d6efd1a;border-radius:.25rem;padding:.25rem .5rem;font-weight:500;display:inline-block}@media (max-width:767.98px){.project-table-section{margin-top:2rem;padding-top:2rem}.project-table-section h2{margin-bottom:1rem;font-size:1.5rem}.project-table{font-size:.85rem}.project-table thead th,.project-table tbody td{padding:.75rem .5rem}.project-table .category-badge-table,.project-table .tag-badge-table{padding:.1rem .4rem;font-size:.7rem;margin-bottom:.2rem!important}.project-table .table-date{font-size:.8rem}.project-table .tags-container{gap:.2rem}}@media (max-width:767.98px) and (max-width:576px){.project-table th:nth-child(3){width:35%}}@media (max-width:576px){.project-table .project-title-link{font-size:.9rem;line-height:1.3}}.project-row-reveal{opacity:1;animation:.7s cubic-bezier(.23,1,.32,1) forwards projectRowRevealAnim;transform:translateY(0)}@keyframes projectRowRevealAnim{0%{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}.project-table tbody tr{opacity:0;transform:translateY(32px)}
