body[data-page="products"]{background:var(--cream);color:var(--ink)}
.projects-main{padding:48px clamp(22px,5vw,80px) 0}.projects-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;padding-bottom:44px}.projects-heading h1{font-size:clamp(48px,6.5vw,96px);font-weight:500;line-height:1.04;letter-spacing:-.065em}.projects-heading h1 span{color:var(--blue)}.projects-heading>p{font:12px/1.4 var(--mono);color:var(--muted);padding-bottom:8px;white-space:nowrap}.gallery-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:27px}.case-filters{display:flex;gap:7px;flex-wrap:wrap}.case-filters button{padding:10px 17px;border:1px solid #29306625;border-radius:99px;background:transparent;font-size:13px;line-height:1.35;transition:background .18s,color .18s,border-color .18s}.case-filters button:hover{border-color:var(--blue)}.case-filters button[aria-pressed=true]{background:var(--blue);color:var(--cream);border-color:var(--blue)}.case-counter{font:11px/1.5 var(--mono);color:var(--muted);white-space:nowrap}.case-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:39px 24px;align-items:start}.project-card{min-width:0;scroll-margin-top:24px}.project-card[hidden]{display:none}.project-link{display:block;text-decoration:none;border-radius:20px}.project-cover{--cover-bg:#dce1fa;--cover-ink:#293066;--cover-accent:#344ce8;aspect-ratio:4/3;position:relative;overflow:hidden;border-radius:18px;background:var(--cover-bg);color:var(--cover-ink);isolation:isolate;border:1px solid #2930660a;box-shadow:inset 0 1px 0 #ffffff60;transition:transform .24s,box-shadow .24s}.project-cover::before{content:"";position:absolute;inset:0;background-image:radial-gradient(currentColor .6px,transparent .6px);background-size:14px 14px;opacity:.065;z-index:-1}.project-cover::after{content:"";position:absolute;height:77%;aspect-ratio:1;border:1px solid currentColor;border-radius:50%;opacity:.1;right:-22%;bottom:-34%;z-index:-1}.cover-blue{--cover-bg:#344ce8;--cover-ink:#fbf1df;--cover-accent:#fac581}.cover-peach{--cover-bg:#fac581;--cover-ink:#293066;--cover-accent:#344ce8}.cover-ice{--cover-bg:#dce1fa;--cover-ink:#293066;--cover-accent:#344ce8}.cover-ink{--cover-bg:#293066;--cover-ink:#fbf1df;--cover-accent:#fac581}.cover-rose{--cover-bg:#eac4cb;--cover-ink:#62384e;--cover-accent:#344ce8}.cover-lavender{--cover-bg:#c9c0eb;--cover-ink:#293066;--cover-accent:#344ce8}.cover-cream{--cover-bg:#f7e6cd;--cover-ink:#293066;--cover-accent:#344ce8}.cover-number{position:absolute;top:18px;left:20px;font:10px/1 var(--mono);opacity:.57}.cover-open{position:absolute;right:15px;top:14px;width:30px;height:30px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center;font-size:18px;line-height:1;opacity:.55;transition:background .2s,opacity .2s}.cover-name{position:absolute;left:23px;right:20px;top:25%;white-space:pre-line;line-height:1.07;letter-spacing:-.055em;font-size:clamp(23px,2.65vw,38px);font-weight:600;z-index:1}.cover-name.is-long{font-size:clamp(20px,2.1vw,30px)}.cover-logo{position:absolute;left:24px;top:28%;width:65%;height:24%;object-fit:contain;object-position:left center;filter:brightness(0);opacity:.82}.cover-graphic{position:absolute;width:36%;height:41%;right:10%;bottom:6%;color:var(--cover-accent);transform:rotate(-7deg);transition:transform .35s cubic-bezier(.2,.7,.2,1)}.cover-graphic svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;overflow:visible}.project-caption{padding:17px 2px 0}.project-caption h2{font-size:21px;line-height:1.2;letter-spacing:-.035em;font-weight:500;margin:0 0 9px}.project-caption p{font-size:14px;line-height:1.5;color:#686d86;margin:0;max-width:370px}.project-tags{display:flex;flex-wrap:wrap;gap:9px;margin-top:13px;font:10px/1.3 var(--mono);color:#686d86}.project-tags span+span::before{content:"/";margin-right:9px;opacity:.55}.projects-contact{margin:60px 0 42px;padding:29px 33px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:#dce1fa;border-radius:18px}.projects-contact p{font-size:clamp(23px,2.8vw,36px);line-height:1.1;letter-spacing:-.045em}.projects-contact .button{gap:30px}.project-dialog{padding:0;border:1px solid white;border-radius:22px;width:min(790px,calc(100vw - 32px));max-height:calc(100dvh - 48px);color:var(--ink);background:var(--cream);box-shadow:0 7px 0 #bdc4df,0 30px 100px #10184550;overscroll-behavior:contain}.project-dialog::backdrop{background:#1f285c77;backdrop-filter:blur(6px)}.project-dialog-bar{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 16px 12px 25px;background:#e9edf8;border-bottom:1px solid #29306612;font:11px/1.4 var(--mono)}.project-dialog-close{width:34px;height:34px;border-radius:9px;background:var(--cream);border:1px solid #2930661a;font:24px/1 var(--font)}.project-dialog-close:hover{background:var(--orange)}.project-dialog-content{padding:25px 32px 33px}.project-dialog-visual{height:220px;aspect-ratio:auto;border-radius:14px;margin-bottom:27px}.project-dialog-visual .cover-name{font-size:45px;left:29px;top:33%;max-width:65%}.project-dialog-visual .cover-name.is-long{font-size:34px}.project-dialog-visual .cover-logo{top:34%;height:33%;width:55%;left:29px}.project-dialog-visual .cover-number,.project-dialog-visual .cover-open{display:none}.project-dialog-visual .cover-graphic{width:29%;height:66%;right:7%;bottom:13%}.project-dialog-visual::after{height:125%;right:-6%;bottom:-47%}.project-dialog-content h2{font-size:35px;line-height:1.1;letter-spacing:-.045em;font-weight:500;margin-bottom:18px}.project-dialog-copy{font-size:16px;line-height:1.6;max-width:630px}.project-dialog-copy p+p{margin-top:13px}.project-dialog-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:28px;border-top:1px solid #29306622;padding-top:20px}.project-source{font-size:12px;text-decoration-thickness:1px;color:var(--muted)}.project-dialog-footer .button{font-size:13px;gap:19px;min-height:44px}
@media(hover:hover){.project-link:hover .project-cover{transform:translateY(-3px);box-shadow:0 7px 0 #29306613}.project-link:hover .cover-graphic{transform:rotate(3deg) translateY(-5px)}.project-link:hover .cover-open{background:#ffffff20;opacity:1}.project-link:hover h2{color:var(--blue)}}
@media(min-width:1500px){.cover-name{font-size:38px}.cover-name.is-long{font-size:30px}}
@media(max-width:1060px){.case-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:35px 23px}.cover-name{font-size:clamp(26px,4vw,39px)}.cover-name.is-long{font-size:clamp(21px,3.3vw,32px)}.projects-heading>p{font-size:10px}.project-caption h2{font-size:22px}}
@media(max-width:650px){.projects-main{padding-top:29px}.projects-heading{display:block;padding-bottom:26px}.projects-heading h1{font-size:clamp(44px,9.5vw,61px)}.projects-heading>p{font-size:10px;padding:0;margin-top:15px}.gallery-toolbar{align-items:start;flex-direction:column;gap:13px;margin-bottom:22px}.case-filters{gap:6px}.case-filters button{font-size:12px;padding:9px 12px}.case-counter{font-size:10px}.case-grid{grid-template-columns:1fr;gap:34px}.project-cover{aspect-ratio:1.42}.cover-name{font-size:clamp(30px,7vw,43px);top:25%}.cover-name.is-long{font-size:clamp(24px,5.8vw,36px)}.project-caption{padding-top:16px}.project-caption h2{font-size:23px}.project-caption p{font-size:14px;max-width:none}.project-tags{margin-top:11px}.projects-contact{margin-top:43px;flex-direction:column;align-items:start;padding:27px 24px;gap:22px}.project-dialog{width:calc(100vw - 24px);max-height:calc(100dvh - 30px);border-radius:18px}.project-dialog-content{padding:18px 20px 25px}.project-dialog-visual{height:180px;margin-bottom:22px}.project-dialog-visual .cover-name{font-size:32px;left:20px;top:30%;max-width:70%}.project-dialog-visual .cover-name.is-long{font-size:24px}.project-dialog-visual .cover-logo{left:20px;top:31%;width:66%;height:28%}.project-dialog-visual .cover-graphic{height:46%;width:32%;right:7%;bottom:6%;opacity:.8}.project-dialog-content h2{font-size:29px}.project-dialog-copy{font-size:15px}.project-dialog-footer{align-items:start;flex-direction:column;gap:21px}.project-dialog-footer .button{width:100%}}
@media(prefers-reduced-motion:reduce){.project-cover,.cover-graphic,.cover-open,.case-filters button{transition:none}.project-link:hover .project-cover,.project-link:hover .cover-graphic{transform:none}}

/* Real portfolio imagery extracted from the supplied Trinity presentations. */
.project-cover-image{background:#fff;border:1px solid #29306612}
.project-cover-image::before,.project-cover-image::after{display:none}
.project-cover-image .cover-open{z-index:1;background:#fbf1dfe8;color:#293066;border-color:#29306630;opacity:1}
.project-shot{display:block;width:100%;height:100%;padding:20px;object-fit:contain;object-position:center;transition:transform .25s ease}
.project-link:hover .project-shot{transform:scale(1.025)}
.project-cover-image.project-cover-dark{background:#101010;color:var(--cream)}
.project-dialog-visual.project-cover-image{height:auto;aspect-ratio:16/10;max-height:52dvh;margin-bottom:25px}
.project-dialog-visual .project-shot{padding:12px;max-height:52dvh}
.client-strip{background:var(--blue);color:var(--cream);border-radius:18px;padding:21px 25px;margin-bottom:38px}
.client-strip h2{font-size:14px;font-weight:400;margin:0 0 17px;letter-spacing:0;color:#e3e7ff}
.client-logo-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:16px 24px;align-items:center;list-style:none;margin:0;padding:0}
.client-logo-grid li{display:flex;align-items:center;justify-content:center;min-width:0;height:49px}
.client-logo-grid img{display:block;max-width:100%;width:112px;height:43px;object-fit:contain}
.client-logo-grid .client-logo-original{padding:4px;background:#fff;border-radius:8px;object-fit:contain;width:43px}
@media(min-width:1051px){.client-logo-grid li:nth-child(17){grid-column:3}}
@media(min-width:651px) and (max-width:1050px){.client-logo-grid li:nth-child(19){grid-column:3}}
@media(max-width:1050px){.client-logo-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px 20px}}
@media(max-width:650px){.client-strip{padding:20px;margin-bottom:28px}.client-logo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 19px}.client-logo-grid li{height:43px}.client-logo-grid img{height:33px}.client-logo-grid .client-logo-original{height:40px;width:40px}.project-shot{padding:17px}.project-dialog-visual.project-cover-image{aspect-ratio:1.25}}
@media(prefers-reduced-motion:reduce){.project-shot{transition:none}.project-link:hover .project-shot{transform:none}}

/* Keep gallery controls comfortable to use by touch, including short screens. */
@media(max-width:760px), (pointer:coarse){
  .case-filters button{min-width:44px;min-height:44px}
  .project-dialog-close{width:44px;height:44px;flex-shrink:0}
  .project-source{display:inline-flex;align-items:center;min-height:44px}
}
@media(max-width:650px){
  .project-dialog-bar{gap:12px;padding:10px 12px 10px 20px}
  .project-dialog-content h2,.project-dialog-copy,.project-caption{overflow-wrap:anywhere}
  .project-dialog-visual .cover-name{overflow-wrap:anywhere}
  .project-source{font-size:14px}
}
