.project-library{--collection-ink:var(--forest,#243f2b);--collection-muted:#52624f;--collection-line:#d7ddcf;--collection-paper:var(--paper,#f5f3ec);width:100%;min-width:0}.project-library__heading{font-size:clamp(30px,3vw,48px);margin:0 0 15px;letter-spacing:-.04em}.project-library__intro{max-width:660px;margin:0 0 25px;font-size:14px}.project-library__toolbar{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:18px;align-items:end;padding:22px 0 0;border-top:1px solid var(--collection-line)}.project-library__search,.project-library__filter{display:block;margin:0;min-width:0}.project-library__label{display:block;font-size:11px;font-weight:650;letter-spacing:.1em;text-transform:uppercase;color:var(--collection-muted);margin-bottom:8px}.project-library__search input,.project-library__filter select{display:block;width:100%;height:48px;border:1px solid #bbc7b0;border-radius:9px;background:#fffef84d;color:var(--collection-ink);padding:10px 14px;font:inherit;font-size:14px;box-sizing:border-box}.project-library__search input::placeholder{color:#52624f}.project-library__filter select{padding-right:32px;cursor:pointer}.project-library__status{font-size:12px;color:var(--collection-muted);margin:17px 0 20px;scroll-margin-top:120px;line-height:1.6}.project-library__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:27px 20px;min-width:0}.project-library__card{min-width:0;margin:0}.project-library__image-button{padding:0;position:relative;display:block;width:100%;aspect-ratio:4/3;overflow:hidden;background:#dfe3d5;border:0;border-radius:14px;cursor:zoom-in}.project-library__image-button img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s ease}.project-library__image-button:hover img{transform:scale(1.025)}.project-library__open-indicator{position:absolute;bottom:12px;right:12px;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#f5f3eced;color:var(--collection-ink);font-size:17px;line-height:1;transition:background .2s}.project-library__image-button:hover .project-library__open-indicator{background:var(--lime,#d5e7a0)}.project-library__caption{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-top:12px}.project-library__title{font-size:13px;font-weight:600;letter-spacing:-.02em;line-height:1.45;margin:0;color:var(--collection-ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:38px}.project-library__view-label{font-size:11px;color:var(--collection-muted);white-space:nowrap;flex:none;margin-top:3px}.project-library__empty{padding:35px 20px;border:1px solid var(--collection-line);text-align:center;font-size:13px;color:var(--collection-muted);margin:0}.project-library__footer{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;border-top:1px solid var(--collection-line);margin-top:26px;padding-top:20px}.project-library__pager{display:flex;align-items:center;gap:10px;max-width:100%}.project-library__page-button{border:1px solid #b9c5af;background:transparent;color:var(--collection-ink);padding:10px 15px;min-height:44px;font:inherit;font-size:12px;line-height:1.4;white-space:nowrap;border-radius:30px}.project-library__page-button:not(:disabled):hover{background:#e7eddd}.project-library__page-button:disabled{opacity:.38;cursor:default}.project-library__page-label{display:block}.project-library__page-select{height:44px;width:123px;border:1px solid #b9c5af;background:transparent;color:var(--collection-ink);font:inherit;font-size:12px;padding:8px 22px 8px 10px;border-radius:9px;cursor:pointer}.project-library__gallery-link{font-size:12px;font-weight:600;text-decoration:none;border-bottom:1px solid #819173;padding:6px 0;color:var(--collection-ink)}.project-library__gallery-link:hover{border-color:var(--collection-ink)}.project-library__sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.project-library [hidden],.project-library-dialog [hidden]{display:none!important}.project-library button:focus-visible,.project-library input:focus-visible,.project-library select:focus-visible,.project-library a:focus-visible,.project-library-dialog button:focus-visible,.project-library-dialog a:focus-visible{outline:3px solid #7e9459;outline-offset:4px}
.project-library-dialog{color:var(--ink,#243f2b);background:var(--paper,#f5f3ec);border:0;border-radius:14px;width:min(1100px,94vw);max-width:94vw;max-height:94dvh;padding:0;overflow:auto;box-shadow:0 30px 100px #0f241c66}.project-library-dialog::backdrop{background:#11271ee6;backdrop-filter:blur(6px)}.project-library-dialog__header{padding:20px 26px;display:flex;align-items:center;justify-content:space-between;gap:25px;position:sticky;top:0;z-index:2;background:var(--paper,#f5f3ec);border-bottom:1px solid #d7ddcf}.project-library-dialog__title{font:inherit;font-size:23px;font-weight:550;line-height:1.3;letter-spacing:-.035em;margin:0}.project-library-dialog__close{width:40px;height:40px;display:grid;place-items:center;flex:none;border:1px solid #b9c5af;border-radius:50%;font-size:25px;line-height:1;background:transparent;color:inherit;padding:0}.project-library-dialog__close:hover{background:#e5ebdb}.project-library-dialog__image{display:block;width:100%;height:min(60dvh,700px);object-fit:contain;background:#182c20}.project-library-dialog__caption{padding:19px 26px}.project-library-dialog__description{font-size:14px;line-height:1.7;max-width:800px;margin:0}.project-library-dialog__attribution{font-size:12px;color:#52624f;margin:9px 0 0;line-height:1.7}.project-library-dialog__attribution a{text-decoration:underline;text-underline-offset:3px}.project-library-dialog__controls{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;padding:17px 26px;border-top:1px solid #d7ddcf}.project-library-dialog__arrow{font:inherit;font-size:12px;line-height:1.4;color:inherit;background:transparent;border:1px solid #b9c5af;border-radius:9px;padding:10px 14px;min-height:42px;justify-self:start}.project-library-dialog__arrow:last-child{justify-self:end}.project-library-dialog__arrow:hover{background:#e5ebdb}.project-library-dialog__counter{font-size:12px;color:#52624f;white-space:nowrap}
@media(max-width:1000px){.project-library__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 18px}.project-library__toolbar{grid-template-columns:minmax(0,1fr) 195px}.project-library__title{font-size:13px}}
@media(max-width:640px){.project-library__toolbar{grid-template-columns:minmax(0,1fr) minmax(115px,.72fr);gap:10px;padding-top:18px}.project-library__label{font-size:11px;letter-spacing:.07em;margin-bottom:7px}.project-library__search input,.project-library__filter select{height:48px;font-size:16px;padding:9px 10px;min-width:0}.project-library__filter select{padding-right:18px;font-size:14px}.project-library__status{font-size:12px;margin:14px 0 16px}.project-library__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 12px}.project-library__caption{padding-top:9px;gap:0}.project-library__title{font-size:12px;min-height:35px;line-height:1.45}.project-library__view-label{display:none}.project-library__open-indicator{width:25px;height:25px;font-size:14px;bottom:8px;right:8px}.project-library__footer{margin-top:21px;padding-top:17px;gap:20px}.project-library__pager{display:grid;width:100%;grid-template-columns:1fr 1.35fr .85fr;gap:7px}.project-library__page-button{font-size:12px;padding:10px 8px;min-width:0}.project-library__page-select{font-size:12px;width:100%;padding-left:8px;min-width:0}.project-library__gallery-link{font-size:11px}.project-library-dialog{width:96vw;max-width:96vw;max-height:96dvh}.project-library-dialog__header{padding:16px 17px;gap:15px}.project-library-dialog__title{font-size:18px}.project-library-dialog__close{width:35px;height:35px;font-size:22px}.project-library-dialog__image{height:52dvh}.project-library-dialog__caption{padding:17px}.project-library-dialog__description{font-size:14px}.project-library-dialog__attribution{font-size:12px}.project-library-dialog__controls{gap:8px;padding:15px 17px}.project-library-dialog__arrow{font-size:12px;min-height:44px;padding:9px 8px}.project-library-dialog__counter{font-size:12px}}
@media(prefers-reduced-motion:reduce){.project-library *,.project-library-dialog *{transition:none!important}}
