.portfolio-intro{padding:56px 20px 40px}.portfolio-intro h1{font-size:clamp(36px, 7.8vw, 49px);line-height:1.22;letter-spacing:-.02em}.portfolio-intro>p:not(.eyebrow){max-width:700px;line-height:1.65}.portfolio-filter-band{background:var(--paper);border-top:1px solid var(--line)}.portfolio-mobile-filters{display:none}.portfolio-filter-band .gallery-filters{justify-content:center;gap:12px;margin-block:0;padding-block:30px}.portfolio-filter-band .filter{min-height:44px;font-size:14px;line-height:20px;font-weight:500;padding:10px 20px;border:1px solid var(--line);border-radius:999px;color:var(--ink);white-space:nowrap;transition:background-color .3s,border-color .3s,box-shadow .3s}.portfolio-filter-band .filter span{font-size:12px;margin-left:8px;opacity:.7}@media(max-width:639px){.portfolio-filter-band .gallery-filters{display:none}.portfolio-mobile-filters{display:grid;gap:8px;padding-block:16px}.portfolio-mobile-filters label{margin:0;font-size:13px}.portfolio-category-control{position:relative}.portfolio-mobile-filters select{width:100%;min-width:0;margin:0;min-height:48px;appearance:none;-webkit-appearance:none;padding:11px 44px 11px 16px;border:1px solid #28634752;border-radius:24px;background:var(--paper-soft);color:var(--ink);font-size:16px;line-height:1.5;font-weight:500;cursor:pointer}.portfolio-mobile-filters select:focus-visible{outline:2px solid var(--green);outline-offset:4px;border-color:var(--green)}.portfolio-category-chevron{position:absolute;right:17px;top:50%;transform:translateY(-50%);color:var(--green);pointer-events:none}}@media(max-width:639px) and (forced-colors:active){.portfolio-mobile-filters select{appearance:auto;-webkit-appearance:auto}.portfolio-category-chevron{display:none}}.portfolio-filter-band .filter[aria-pressed=true]{color:#fff;background:var(--green);border-color:var(--green);box-shadow:0 8px 24px #28634759}@media (hover:hover){.portfolio-filter-band .filter:not([aria-pressed=true]):hover{background:var(--sage-soft);border-color:var(--sage)}}@media (prefers-reduced-motion:reduce){.portfolio-filter-band .filter{transition:none}}.portfolio-body{max-width:1088px;padding-block:32px 64px}.portfolio-body #gallery-status{margin:0 0 26px;font-size:12px}.portfolio-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:28px}.portfolio-card{min-width:0;border-radius:var(--radius);background:var(--night);box-shadow:var(--photo-card-shadow);scroll-margin-top:110px;transition:box-shadow .3s cubic-bezier(.25,.46,.45,.94)}.portfolio-open{position:relative;isolation:isolate;overflow:hidden;display:block;width:100%;aspect-ratio:1 / 1;padding:0;border:0;border-radius:inherit;background:var(--night);color:#fff;text-align:left;cursor:pointer}.portfolio-open::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgb(23 30 26 / .8),rgb(23 30 26 / .2),transparent);pointer-events:none}.portfolio-image{position:absolute;inset:0;z-index:-2;display:block;overflow:hidden}.portfolio-image img{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .7s cubic-bezier(.25,.46,.45,.94)}.portfolio-copy{position:absolute;bottom:24px;left:24px;right:24px;display:flex;flex-direction:column;align-items:flex-start;color:#fff;text-shadow:0 1px 8px #0003}.portfolio-title{display:block;font:600 20px/1.25 var(--serif);letter-spacing:-.015em;margin-bottom:12px;overflow-wrap:break-word}.portfolio-action{display:inline-flex;font-size:14px;line-height:1.4;font-weight:500;color:#ffffffd9;transition:color .3s}.portfolio-open:focus-visible{outline:3px solid var(--green);outline-offset:5px;box-shadow:var(--photo-card-shadow-hover)}.portfolio-open:focus-visible .portfolio-action{color:var(--sage-light)}@media (hover:hover) and (pointer:fine){.portfolio-card:hover{box-shadow:var(--photo-card-shadow-hover)}.portfolio-open:hover .portfolio-action{color:var(--sage-light)}}@media (hover:hover) and (prefers-reduced-motion:no-preference){.portfolio-open:hover img{transform:scale(1.07)}}@media (prefers-reduced-motion:reduce){.portfolio-card,.portfolio-image img,.portfolio-action{transition:none}}@media (forced-colors:active){.portfolio-open{border:1px solid ButtonText}.portfolio-copy{background:Canvas;color:CanvasText;text-shadow:none}.portfolio-action{color:LinkText}}@media (min-width:640px){.portfolio-intro{padding-block:80px 48px}.portfolio-intro>p:not(.eyebrow){font-size:17px}.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-open{aspect-ratio:4 / 5}.portfolio-body{padding-block:45px 80px}}@media (min-width:1000px){.portfolio-intro{padding-block:96px 48px}.portfolio-filter-band .gallery-filters{padding-block:30px}.portfolio-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 32px}.portfolio-body{padding-block:56px 88px}}dialog.photo-dialog{width:fit-content;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);padding:0;border:0;border-radius:10px;overflow:hidden;background:#101713;color:#fff}.photo-dialog::backdrop{background:#07100eed}.photo-dialog .dialog-top{position:absolute;z-index:2;top:16px;right:16px;margin:0}.photo-dialog .dialog-top .eyebrow,.photo-dialog #done-dialog{display:none}.photo-dialog .close{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #ffffff70;background:#101713c9;color:#fff;font:30px/1 Arial,sans-serif;backdrop-filter:blur(8px)}.photo-dialog .close:hover{background:#101713}.photo-dialog .close:focus-visible{outline:3px solid #fff;outline-offset:3px}.photo-dialog #dialog-title{position:absolute;z-index:1;inset:auto 0 0;margin:0;padding:64px 24px 24px;background:linear-gradient(transparent,#07100ee6);color:#fff;font-size:clamp(18px, 2vw, 26px);line-height:1.3;text-shadow:0 1px 4px #0008;pointer-events:none}.photo-dialog #dialog-copy{margin:0}.photo-dialog #dialog-copy img{display:block;width:min(calc(100vw - 32px), calc((100dvh - 32px) * var(--photo-ratio, 1)));height:auto;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);margin:0;border-radius:0;object-fit:contain}body:has(dialog.photo-dialog[open]){overflow:hidden}@media (max-width:600px){dialog.photo-dialog{max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:6px}.photo-dialog #dialog-copy img{width:min(calc(100vw - 16px), calc((100dvh - 16px) * var(--photo-ratio, 1)));max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}.photo-dialog .dialog-top{top:10px;right:10px}.photo-dialog #dialog-title{padding:48px 16px 16px}}