.portfolio-intro{max-width:940px}.portfolio-intro .page-title{max-width:880px}.portfolio-section{margin-top:clamp(60px,9vw,104px)}.gallery-heading{justify-content:space-between;align-items:end;gap:28px;margin-bottom:26px;display:flex}.gallery-note{color:var(--muted);margin:0 0 5px;font-size:.92rem}.filters{flex-wrap:wrap;gap:9px;margin-bottom:34px;display:flex}.filter-button{border:1px solid var(--line);min-height:42px;color:var(--teal-dark);cursor:pointer;background:#ffffffd1;border-radius:999px;padding:7px 15px;font-size:.82rem;font-weight:800;transition:border-color .2s,background .2s,color .2s,transform .2s}.filter-button:hover{border-color:#3f947c73;transform:translateY(-1px)}.filter-button.active{border-color:var(--teal);background:var(--teal);color:#fff}.gallery{columns:3 280px;column-gap:18px}.gallery-item{break-inside:avoid;width:100%;margin:0 0 18px}.gallery-item[hidden]{display:none}.project-card{border:1px solid var(--line);cursor:zoom-in;text-align:left;background:#fff;border-radius:20px;width:100%;padding:0;transition:transform .28s,box-shadow .28s,border-color .28s;position:relative;overflow:hidden;box-shadow:0 8px 25px #214f4212}.project-card:hover,.project-card:focus-visible{border-color:#3f947c5c;transform:translateY(-5px);box-shadow:0 20px 44px #214f4226}.image-frame{background:#f4f4ef;display:block;overflow:hidden}.image-frame img{width:100%;transition:transform .45s cubic-bezier(.2,.7,.2,1)}.project-card:hover .image-frame img,.project-card:focus-visible .image-frame img{transform:scale(1.025)}.project-caption{grid-template-columns:1fr auto;gap:3px 14px;padding:16px 17px 18px;display:grid}.project-category{color:var(--pink);letter-spacing:.1em;text-transform:uppercase;grid-column:1/-1;font-size:.68rem;font-weight:800}.project-caption strong{color:var(--teal-dark);font-size:1rem;line-height:1.35}.open-label{color:var(--muted);white-space:nowrap;align-self:end;font-size:.75rem;font-weight:700}.empty-state{border:1px dashed var(--line);color:var(--muted);text-align:center;border-radius:20px;padding:40px}.portfolio-cta{border:1px solid var(--line);background:linear-gradient(135deg, var(--teal-soft), #fff 62%, var(--pink-soft));border-radius:28px;justify-content:space-between;align-items:center;gap:40px;padding:clamp(28px,5vw,54px);display:flex}.portfolio-cta>div{max-width:720px}.portfolio-cta p:last-child{color:var(--muted);margin:14px 0 0}.portfolio-cta .button{flex:none}.lightbox{background:0 0;border:0;border-radius:24px;width:min(1180px,100% - 28px);max-width:none;max-height:calc(100dvh - 28px);padding:0;overflow:visible}.lightbox::backdrop{backdrop-filter:blur(8px);background:#0d1a17d1}.lightbox-shell{background:var(--paper);border-radius:24px;grid-template-columns:minmax(0,1.65fr) minmax(270px,.75fr);max-height:calc(100dvh - 28px);display:grid;position:relative;overflow:hidden;box-shadow:0 30px 100px #0006}.lightbox-media{background:#eeeee8;place-items:center;min-height:520px;padding:28px;display:grid;overflow:auto}.lightbox-image{object-fit:contain;max-width:100%;max-height:calc(100dvh - 84px);box-shadow:0 14px 40px #14231f29}.lightbox-info{align-self:center;padding:clamp(30px,5vw,60px) clamp(26px,4vw,48px)}.lightbox-category{color:var(--pink);letter-spacing:.13em;text-transform:uppercase;margin-bottom:10px;font-size:.72rem;font-weight:800}.lightbox-info h2{color:var(--teal-dark);letter-spacing:-.035em;margin-bottom:18px;font-size:clamp(1.65rem,3vw,2.65rem)}.lightbox-description{color:#505b5d;line-height:1.7}.lightbox-count{color:var(--muted);margin:30px 0 0;font-size:.78rem;font-weight:700}.lightbox-close,.lightbox-nav{z-index:2;color:#fff;cursor:pointer;background:#142722c7;border:1px solid #ffffff59;border-radius:50%;place-items:center;width:46px;height:46px;padding:0;transition:transform .2s,background .2s;display:grid;position:absolute;box-shadow:0 10px 24px #0000002e}.lightbox-close:hover,.lightbox-nav:hover{background:var(--teal-dark);transform:scale(1.06)}.lightbox-close{font-size:1.8rem;line-height:1;top:16px;right:16px}.lightbox-nav{font-size:1.25rem;top:50%;transform:translateY(-50%)}.lightbox-nav:hover{transform:translateY(-50%)scale(1.06)}.lightbox-prev{left:16px}.lightbox-next{right:calc(31% + 16px)}@media (width<=820px){.gallery-heading{flex-direction:column;align-items:start}.lightbox-shell{grid-template-columns:1fr;overflow-y:auto}.lightbox-media{min-height:0;padding:62px 20px 20px}.lightbox-image{max-height:62dvh}.lightbox-info{padding-top:26px}.lightbox-nav{top:42%}.lightbox-next{right:16px}.portfolio-cta{flex-direction:column;align-items:flex-start}}@media (width<=560px){.gallery{columns:1}.gallery-note{display:none}.filters{scrollbar-width:thin;flex-wrap:nowrap;margin-right:-15px;padding-right:15px;overflow-x:auto}.filter-button{flex:none}.lightbox{border-radius:0;width:100%;max-height:100dvh;margin:0}.lightbox-shell{border-radius:0;min-height:100dvh;max-height:100dvh}.lightbox-media{padding-inline:12px}.lightbox-info{padding:24px 22px 36px}}.gallery{column-gap:26px}.gallery-item{margin-bottom:26px}.project-card{border-radius:24px;box-shadow:0 8px 26px #214f420d}.project-card:hover,.project-card:focus-visible{transform:translateY(-3px);box-shadow:0 18px 42px #214f421a}.project-caption{padding:18px 19px 21px}.open-label{display:none}.image-frame img{transform-origin:50%}.gallery-item:nth-child(5n+1) .image-frame img{object-fit:cover;min-height:300px}.gallery-item:nth-child(5n+3) .image-frame img{object-fit:contain;background:#fbfbf7;max-height:430px}
