.portfolio{padding:clamp(28px,4vw,68px) 0 clamp(42px,6vw,92px)}
.portfolio-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;margin-bottom:25px}
.portfolio-intro h1{font-size:clamp(55px,6.8vw,116px);line-height:.98;letter-spacing:-.045em}
.portfolio-intro h1 span{color:var(--blue)}
.portfolio-intro p{color:var(--ink);font-size:clamp(15px,1.3vw,20px);line-height:1.45}
.portfolio-intro div>span{display:block;margin-top:3px;color:var(--muted);font-size:13px}
.portfolio-filters{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:14px}
.portfolio-filters[hidden],.portfolio-tile[hidden]{display:none}
.portfolio-filters button{padding:9px 14px;background:transparent;color:#374858;border:1px solid #ccd4d8;border-radius:4px;font-size:14px;line-height:1.2}
.portfolio-filters button[aria-pressed=true]{background:#16374c;border-color:#16374c;color:white}
.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.portfolio-tile{display:block;aspect-ratio:1;position:relative;overflow:hidden;background:#d4d9d8;cursor:zoom-in}
.portfolio-tile img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .3s}
.portfolio-caption{position:absolute;inset:auto 0 0;padding:28px 15px 12px;background:linear-gradient(transparent,rgba(7,24,35,.85));color:white;font:550 clamp(14px,1.2vw,20px)/1.2 var(--sans);opacity:0;transition:opacity .2s}
.portfolio-tile:is(:hover,:focus-visible) .portfolio-caption{opacity:1}
.portfolio-tile:focus-visible{z-index:1}
@media(hover:hover){.portfolio-tile:hover img{transform:scale(1.025)}}
.portfolio-status{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}
.portfolio-viewer{background:#10232f;color:white;border:0;padding:0;width:min(1120px,94vw);max-width:94vw;max-height:95dvh;overflow:auto}
.portfolio-viewer::backdrop{background:#08141bf2}
body:has(.portfolio-viewer[open]){overflow:hidden}
.portfolio-stage{display:grid;place-items:center;background:#0b1820}
.portfolio-stage img{display:block;width:100%;height:min(68dvh,760px);object-fit:contain}
.portfolio-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px clamp(16px,2vw,28px)}
.portfolio-controls h2{font-size:clamp(20px,2.4vw,34px);line-height:1.2}.portfolio-service{display:inline-block;text-decoration:underline;text-underline-offset:3px;color:#d6e6ef;font-size:14px;margin-top:4px}
.portfolio-close,.portfolio-turn button{height:44px;width:44px;border:1px solid #81919b;border-radius:50%;background:#152d3b;color:white;font:500 20px/1 var(--sans)}
.portfolio-close{position:absolute;top:12px;right:12px;z-index:1;font-size:24px}
.portfolio-turn{display:flex;gap:6px}.portfolio-turn[hidden]{display:none}
.portfolio-viewer button:hover{background:#315465}
@media(max-width:700px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.portfolio-intro{display:block;margin-bottom:15px}.portfolio-intro>div{margin-top:12px}.portfolio-filters button{min-height:40px;padding:7px 11px}.portfolio-controls{gap:8px}.portfolio-stage img{height:min(56dvh,540px)}}
@media(hover:none){.portfolio-caption{opacity:1;padding:20px 9px 8px;font-size:13px}}
