.portfolio-hero{background:linear-gradient(135deg,#111111d9 0%,#1a1a1ac7 100%),url(/images/pages/case_studies_intro.png) 50%/cover no-repeat;padding-top:clamp(5rem,9vw,8rem);padding-bottom:clamp(2.5rem,5vw,4rem);position:relative;overflow:hidden}.portfolio-filters{flex-wrap:wrap;gap:.75rem;margin-bottom:2.5rem;display:flex}.filter-btn{border:1.5px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;letter-spacing:.025em;background:0 0;border-radius:100px;padding:.625rem 1.5rem;font-size:.8rem;font-weight:600;transition:all .3s}.filter-btn:hover{border-color:var(--color-brand);color:var(--color-brand)}.filter-btn.active{background:var(--color-brand);color:#fff;border-color:var(--color-brand);box-shadow:0 4px 14px #ee51264d}.portfolio-grid{grid-template-columns:repeat(4,1fr);gap:1rem;display:grid}.portfolio-item{aspect-ratio:4/3;cursor:pointer;border-radius:1rem;position:relative;overflow:hidden}.portfolio-item img{object-fit:cover;width:100%;height:100%;transition:transform .6s cubic-bezier(.4,0,.2,1)}.portfolio-item:hover img{transform:scale(1.05)}.portfolio-item-overlay{opacity:0;background:linear-gradient(#0000 0%,#0003 50%,#000000d9 100%);flex-direction:column;justify-content:flex-end;padding:1.25rem;transition:opacity .4s;display:flex;position:absolute;inset:0}.portfolio-item:hover .portfolio-item-overlay{opacity:1}.portfolio-item-category{color:var(--color-brand);text-transform:uppercase;letter-spacing:.15em;margin-bottom:.35rem;font-size:.65rem;font-weight:600}.portfolio-item-title{color:#fff;font-size:1rem;font-weight:700}.lightbox{z-index:9999;opacity:0;pointer-events:none;background:#000000f2;justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:fixed;inset:0}.lightbox.active{opacity:1;pointer-events:all}.lightbox img{object-fit:contain;border-radius:.5rem;max-width:90vw;max-height:85vh}.lightbox-close{color:#fff;cursor:pointer;background:#ffffff1a;border:none;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.5rem;transition:background .3s;display:flex;position:absolute;top:2rem;right:2rem}.lightbox-close:hover{background:#fff3}.portfolio-filters{display:none}.portfolio-filters-mobile{max-width:320px;margin-bottom:1.5rem;display:block;position:relative}.portfolio-filters-mobile>summary{border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-surface-dark);cursor:pointer;border-radius:.75rem;justify-content:space-between;align-items:center;gap:.75rem;padding:.7rem 1rem .7rem 1.1rem;font-size:.9rem;font-weight:700;list-style:none;transition:border-color .25s,box-shadow .25s;display:flex}.portfolio-filters-mobile>summary:hover{border-color:var(--color-brand)}.portfolio-filters-mobile>summary::-webkit-details-marker{display:none}.portfolio-filters-mobile[open]>summary{border-color:var(--color-brand);box-shadow:0 6px 18px #ee51261f}.filter-trigger-left{align-items:center;gap:.5rem;display:flex}.filter-trigger-icon{width:18px;height:18px;color:var(--color-brand)}.filter-trigger-title{letter-spacing:.02em;font-weight:800}.filter-trigger-right{align-items:center;gap:.5rem;display:flex}.filter-trigger-current{color:var(--color-brand);text-overflow:ellipsis;white-space:nowrap;background:#ee51261a;border-radius:100px;max-width:130px;padding:.2rem .6rem;font-size:.75rem;font-weight:700;overflow:hidden}.filter-trigger-chevron{width:18px;height:18px;color:var(--color-text-secondary);transition:transform .25s}.portfolio-filters-mobile[open] .filter-trigger-chevron{transform:rotate(180deg)}.filter-dropdown-backdrop{z-index:55;background:#11111140;animation:.18s filter-fade-in;position:fixed;inset:0}@keyframes filter-fade-in{0%{opacity:0}to{opacity:1}}.filter-dropdown{z-index:60;border:1.5px solid var(--color-border);background:var(--color-surface);border-radius:.75rem;animation:.2s cubic-bezier(.4,0,.2,1) filter-dropdown-in;position:absolute;top:calc(100% + .5rem);left:0;right:0;overflow:hidden;box-shadow:0 16px 40px #0000002e}@keyframes filter-dropdown-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.filter-option{color:var(--color-text-secondary);border-bottom:1px solid var(--color-border-light);justify-content:space-between;align-items:center;gap:.75rem;padding:.9rem 1.25rem;font-size:.9rem;font-weight:600;transition:background .2s,color .2s;display:flex}.filter-option:last-child{border-bottom:none}.filter-option:hover,.filter-option.active{color:var(--color-brand);background:#ee51260f}.filter-option.active{font-weight:800}@media (width<=768px){.portfolio-grid{grid-template-columns:repeat(2,1fr)}.portfolio-filters-mobile{max-width:100%}}.pg{justify-content:center;display:flex}.pg-list{flex-wrap:wrap;align-items:center;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.pg-link{border:1.5px solid var(--color-border);background:var(--color-surface);min-width:44px;height:44px;color:var(--color-text-primary);cursor:pointer;border-radius:.625rem;place-items:center;padding:0 .85rem;font-size:.9rem;font-weight:600;text-decoration:none;transition:all .25s;display:grid}.pg-link:hover{border-color:var(--color-brand);color:var(--color-brand);transform:translateY(-2px)}.pg-active,.pg-active:hover{background:var(--color-brand);border-color:var(--color-brand);color:#fff;transform:none;box-shadow:0 6px 16px #ee512659}.pg-disabled{opacity:.4;cursor:not-allowed;transform:none}.pg-disabled:hover{border-color:var(--color-border);color:var(--color-text-primary);transform:none}.pg-dots{min-width:24px;height:44px;color:var(--color-text-muted);place-items:center;font-weight:700;display:grid}.portfolio-logos-grid-container{background:0 0;border:none;border-radius:0;margin-bottom:2rem;padding:0}.portfolio-logos-grid-container .logos-title{color:var(--color-surface-dark)}.portfolio-logos-grid-container .logos-grid-header{border-bottom-color:var(--color-border-light)}.portfolio-logos-grid{grid-template-columns:repeat(9,1fr);gap:1.25rem;margin-top:2rem;display:grid}.logo-grid-item{background:0 0;border:none;border-radius:0;justify-content:center;align-items:center;height:90px;padding:0;transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex}.logo-grid-item img{object-fit:contain;opacity:.85;width:auto;max-width:100%;height:auto;max-height:100%;transition:opacity .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1)}.logo-grid-item:hover{transform:translateY(-3px)}.logo-grid-item:hover img{opacity:1;transform:scale(1.08)}.logo-is-white img,.logo-is-white:hover img{filter:invert()}@media (width<=768px){.portfolio-logos-grid{grid-template-columns:repeat(4,1fr);gap:.75rem}.logo-grid-item{height:64px}}
