.portfolio-section{background:linear-gradient(160deg,#252525,#353535 55%,#252525);padding:100px 0;position:relative;overflow:hidden}.portfolio-bg-glow{position:absolute;border-radius:50%;pointer-events:none;filter:blur(100px)}.portfolio-bg-glow--tr{top:-100px;right:-100px;width:480px;height:480px;background:radial-gradient(circle,rgba(138,195,72,.1) 0%,transparent 70%)}.portfolio-bg-glow--bl{bottom:-120px;left:-80px;width:420px;height:420px;background:radial-gradient(circle,rgba(138,195,72,.07) 0%,transparent 70%)}.portfolio-eyebrow{display:inline-block;font-family:Montserrat,sans-serif;font-size:.68rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#8ac348;background:#8ac3481f;border:1px solid rgba(138,195,72,.3);border-radius:50px;padding:4px 16px;margin-bottom:16px}.portfolio-heading{color:#fff;font-family:Montserrat,sans-serif;font-weight:700;font-size:2.25rem;line-height:1.2;margin-bottom:16px}.portfolio-subheading{color:#ffffff94;font-size:1rem;line-height:1.75;margin-bottom:0}.portfolio-filters{display:flex;justify-content:center;gap:10px;margin-bottom:52px;flex-wrap:wrap}.portfolio-filter-btn{background:transparent;border:1.5px solid rgba(255,255,255,.2);color:#ffffff80;border-radius:50px;padding:8px 26px;font-size:.83rem;font-family:Montserrat,sans-serif;font-weight:600;letter-spacing:.02em;cursor:pointer;transition:border-color .22s ease,color .22s ease,background .22s ease,box-shadow .22s ease}.portfolio-filter-btn:hover{border-color:#ffffff73;color:#fff}.portfolio-filter-btn.active{background:#8ac348;border-color:#8ac348;color:#fff}.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.portfolio-card{border-radius:14px;overflow:hidden;position:relative;aspect-ratio:4 / 3;cursor:pointer;border:1px solid rgba(255,255,255,.08);background:#1e1e1e;animation:portfolioCardIn .45s cubic-bezier(.22,1,.36,1) both;transition:border-color .3s ease,box-shadow .3s ease}.portfolio-card:hover{border-color:#8ac34866;box-shadow:0 16px 48px #00000080,0 0 0 1px #8ac34826}@keyframes portfolioCardIn{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}.portfolio-card-img-wrap{position:absolute;inset:0}.portfolio-card-img{width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform .65s cubic-bezier(.25,.46,.45,.94);display:block}.portfolio-card:hover .portfolio-card-img{transform:scale(1.07)}.portfolio-card-overlay{position:absolute;inset:0;background:linear-gradient(to top,#1e1e1ef7,#1e1e1eb3 28%,#1e1e1e0d 55%,#1e1e1e00 68%);display:flex;flex-direction:column;justify-content:flex-end;padding:22px 20px;transition:background .5s ease}.portfolio-card:hover .portfolio-card-overlay{background:linear-gradient(to top,#1e1e1efa,#1e1e1ef2 52%,#1e1e1e99 80%,#1e1e1e1f)}.portfolio-card-extra{overflow:hidden;max-height:0;opacity:0;transition:max-height .44s cubic-bezier(.4,0,.2,1),opacity .32s ease .06s}.portfolio-card:hover .portfolio-card-extra{max-height:200px;opacity:1}.portfolio-card-bottom{flex-shrink:0}.portfolio-category-pill{display:inline-block;background:#8ac3482e;border:1px solid rgba(138,195,72,.45);color:#a8d46a;font-size:.67rem;font-family:Montserrat,sans-serif;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border-radius:50px;padding:3px 11px;margin-bottom:7px;display:block;width:fit-content}.portfolio-card-title{color:#fff;font-family:Montserrat,sans-serif;font-weight:700;font-size:1.05rem;line-height:1.3;margin:0}.portfolio-card-desc{color:#ffffffb8;font-size:.8rem;line-height:1.65;margin:0 0 12px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.portfolio-card-tags{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:14px}.portfolio-tag{background:#ffffff14;border:1px solid rgba(255,255,255,.14);color:#ffffffa6;font-size:.67rem;font-family:Montserrat,sans-serif;font-weight:500;letter-spacing:.02em;border-radius:4px;padding:2px 8px}@media (hover: none){.portfolio-card-extra{max-height:200px;opacity:1}.portfolio-card-overlay{background:linear-gradient(to top,#1e1e1ef7,#1e1e1ee0 52%,#1e1e1e26)}}@media (max-width: 991px){.portfolio-grid{grid-template-columns:repeat(2,1fr);gap:16px}.portfolio-section{padding:80px 0}}@media (max-width: 575px){.portfolio-grid{grid-template-columns:1fr;gap:14px}.portfolio-heading{font-size:1.8rem}.portfolio-section{padding:70px 0}.portfolio-card{aspect-ratio:16 / 10}}
