/* Portfolio-only presentation. Shared site styles remain untouched. */
.portfolio-heading{padding-block:120px 0}
.portfolio-heading .eyebrow{margin-bottom:22px}
.portfolio-heading h1{font-size:clamp(40px,6vw,72px);line-height:1.05}
.portfolio-heading h1+.lead{margin-top:24px}
.portfolio-work{padding-top:56px;padding-bottom:0;container-type:inline-size}
.portfolio-filters{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 24px}
.portfolio-filters button{background:none;border:1px solid var(--line2);color:var(--muted);font-family:var(--body);font-size:11px;letter-spacing:.22em;text-transform:uppercase;padding:10px 16px;cursor:pointer;min-height:42px}
.portfolio-filters button[aria-pressed="true"]{background:var(--ink);color:var(--paper-ink);border-color:var(--ink)}
.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;grid-auto-rows:calc((100cqw - 24px) / 4.5)}
.portfolio-grid{opacity:1;transition:opacity .2s ease}
.portfolio-grid.is-changing{opacity:0}
.portfolio-tile{position:relative;display:block;min-width:0;width:100%;height:100%;padding:0;border:0;border-radius:0;overflow:hidden;background:#050505;cursor:pointer;text-align:left;opacity:1;transition:opacity .6s ease}
.portfolio-grid.has-reveals .portfolio-tile:not(.is-revealed){opacity:0}
.portfolio-tile[hidden]{display:none}
.portfolio-tile img{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover}
.portfolio-tile--wide{grid-column:span 2}
.portfolio-grid.is-filtered{grid-auto-rows:auto}
.portfolio-grid.is-filtered .portfolio-tile{aspect-ratio:3/2;height:auto}
.portfolio-grid.is-filtered .portfolio-tile--wide{grid-column:auto}
.portfolio-play{position:absolute;top:50%;left:50%;width:56px;height:56px;transform:translate(-50%,-50%);border:1px solid #F7F5F1;border-radius:50%;opacity:.8;transition:opacity .6s ease;pointer-events:none}
.portfolio-play::after{content:"";position:absolute;inset:0;background:center/20px 20px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5L19 12L8 19Z' fill='none' stroke='%23F7F5F1' stroke-width='1'/%3E%3C/svg%3E")}
@media (min-width:761px) and (hover:hover) and (pointer:fine){.portfolio-tile:hover .portfolio-play{opacity:1}}
@media (min-width:761px) and (max-width:960px){
  .portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:calc((100cqw - 12px) / 3)}
}
@media (min-width:761px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .portfolio-tile img{transition:transform .6s ease}
  .portfolio-tile:hover img{transform:scale(1.03)}
}
@media (max-width:760px){
  .portfolio-heading{padding-top:88px;padding-bottom:0}
  .portfolio-grid{grid-template-columns:minmax(0,1fr);grid-auto-rows:auto;gap:12px}
  .portfolio-tile,.portfolio-grid.is-filtered .portfolio-tile{aspect-ratio:3/2;height:auto}
  .portfolio-tile--wide,.portfolio-grid.is-filtered .portfolio-tile--wide{grid-column:auto}
  .portfolio-closing{margin-top:64px!important}
}
.portfolio-lightbox{position:fixed;inset:0;z-index:100;background:#050505;display:grid;grid-template-columns:64px minmax(0,1fr) 64px;grid-template-rows:minmax(0,1fr);align-items:center;justify-items:center;padding:56px 20px 48px;animation:portfolio-viewer-in .4s ease both}
@keyframes portfolio-viewer-in{from{opacity:0}to{opacity:1}}
.portfolio-lightbox[hidden]{display:none}
.portfolio-lightbox__media{position:relative;width:100%;height:100%;display:grid;place-items:center;min-width:0;min-height:0}
.portfolio-lightbox__media img,.portfolio-lightbox__media iframe{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border:0}
.portfolio-lightbox__media img{width:100%;height:100%}
.portfolio-lightbox__media iframe{background:#050505}
.portfolio-lightbox__button{position:absolute;z-index:2;display:grid;place-items:center;width:48px;height:48px;padding:0;border:0;background:transparent;color:#f7f5f1;cursor:pointer}
.portfolio-lightbox__button svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1}
.portfolio-lightbox__close{top:12px;right:16px}
.portfolio-lightbox__prev,.portfolio-lightbox__next{position:static}
.portfolio-lightbox__counter{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);color:#8D8A85;font-size:12px;letter-spacing:.24em;white-space:nowrap}
.portfolio-closing{margin-top:100px}
body.portfolio-lightbox-open{overflow:hidden}
@media (max-width:600px){
  .portfolio-lightbox{grid-template-columns:36px minmax(0,1fr) 36px;padding:56px 8px 48px}
  .portfolio-lightbox__prev,.portfolio-lightbox__next{width:36px;height:48px}
}
@media (prefers-reduced-motion:reduce){.portfolio-tile,.portfolio-tile img,.portfolio-grid,.portfolio-play{transition:none!important}.portfolio-lightbox{animation:none}}