:root{--tpm-navy:#2e3c7e;--tpm-red:#891818;--tpm-soft:#f7f8fc;--tpm-line:#e0e4f0}.tpm-portfolio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}.tpm-project-card{overflow:hidden;border:1px solid var(--tpm-line);border-radius:22px;background:#fff;box-shadow:0 15px 40px rgba(46,60,126,.07);transition:transform .25s ease,box-shadow .25s ease}.tpm-project-card:hover{transform:translateY(-5px);box-shadow:0 22px 48px rgba(46,60,126,.13)}.tpm-project-image{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--tpm-soft)}.tpm-project-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.tpm-project-card:hover .tpm-project-image img{transform:scale(1.035)}.tpm-project-body{padding:22px}.tpm-project-type{margin:0 0 8px;color:var(--tpm-red);font-weight:700}.tpm-project-body h3{margin:0 0 10px;color:var(--tpm-navy);font-size:1.35rem}.tpm-project-body a{text-decoration:none;color:inherit}.tpm-project-body>p:not(.tpm-project-type){color:#69718c}.tpm-project-link{display:inline-flex;margin-top:8px;font-weight:800;color:var(--tpm-red)!important}.tpm-single-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.tpm-single-gallery figure{margin:0;overflow:hidden;border-radius:18px}.tpm-single-gallery img{display:block;width:100%;height:auto}.tpm-layout-masonry{display:block;columns:2;column-gap:18px}.tpm-layout-masonry figure{break-inside:avoid;margin-bottom:18px}.tpm-layout-slider{display:flex;overflow-x:auto;scroll-snap-type:x mandatory}.tpm-layout-slider figure{min-width:82%;scroll-snap-align:center}.tpm-related{margin-top:70px}.tpm-related h2{color:var(--tpm-navy)}.tpm-related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.tpm-related-grid a{text-decoration:none;color:var(--tpm-navy)}.tpm-related-grid img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:14px;margin-bottom:10px}@media(max-width:900px){.tpm-portfolio{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.tpm-portfolio,.tpm-single-gallery,.tpm-related-grid{grid-template-columns:1fr}.tpm-layout-masonry{columns:1}}@media(prefers-reduced-motion:reduce){.tpm-project-card,.tpm-project-image img{transition:none}.tpm-project-card:hover,.tpm-project-card:hover .tpm-project-image img{transform:none}}.tmc-gallery.tpm-single-gallery{margin:30px 0}.tmc-gallery.tpm-layout-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.tmc-gallery.tpm-layout-grid figure{aspect-ratio:auto;background:#fff}.tmc-gallery.tpm-layout-grid img{width:100%;height:auto;object-fit:contain}.tmc-gallery.tpm-layout-masonry{display:block;columns:2;column-gap:18px}.tmc-gallery.tpm-layout-masonry figure{break-inside:avoid;margin:0 0 18px;aspect-ratio:auto}.tmc-gallery.tpm-layout-masonry img{height:auto;object-fit:contain}.tmc-gallery.tpm-layout-slider{display:flex;grid-template-columns:none;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;padding-block-end:12px}.tmc-gallery.tpm-layout-slider figure{flex:0 0 82%;min-width:0;aspect-ratio:16/10;scroll-snap-align:center}.tmc-gallery.tpm-layout-slider img{width:100%;height:100%;object-fit:cover}.tmc-gallery.tpm-single-gallery figure{overflow:hidden;border-radius:18px}.tmc-gallery.tpm-single-gallery img{display:block;border-radius:0}@media(max-width:620px){.tmc-gallery.tpm-layout-grid{grid-template-columns:1fr}.tmc-gallery.tpm-layout-masonry{columns:1}.tmc-gallery.tpm-layout-slider figure{flex-basis:92%}}

/* Portfolio archive filters and card rhythm. */
.tpm-work-filters{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin:0 auto 30px;padding:0}
html[dir="ltr"] .tpm-work-filters{direction:ltr;text-align:left}
html[dir="rtl"] .tpm-work-filters{direction:rtl;text-align:right}
.tpm-work-filters .tmb-work-filter{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:9px 17px;border:1px solid var(--tpm-line);border-radius:999px;background:#fff;color:var(--tpm-navy);font:inherit;font-weight:800;line-height:1.25;cursor:pointer;box-shadow:0 7px 20px rgba(46,60,126,.05);transition:color .24s ease,background-color .24s ease,border-color .24s ease,box-shadow .24s ease,transform .24s ease}
.tpm-work-filters .tmb-work-filter:hover{border-color:rgba(137,24,24,.4);color:var(--tpm-red);transform:translateY(-2px);box-shadow:0 10px 25px rgba(46,60,126,.1)}
.tpm-work-filters .tmb-work-filter.is-active{border-color:var(--tpm-red);background:var(--tpm-red);color:#fff;box-shadow:0 10px 26px rgba(137,24,24,.2)}
.tpm-work-filters .tmb-work-filter:focus-visible{outline:3px solid rgba(46,60,126,.24);outline-offset:3px}
.tmb-work-filter-count{display:grid;place-items:center;min-width:25px;height:25px;padding-inline:6px;border-radius:50%;background:var(--tpm-soft);color:var(--tpm-navy);font-size:.78em;line-height:1}
.tpm-work-filters .is-active .tmb-work-filter-count{background:rgba(255,255,255,.18);color:#fff}
.tmb-work-archive .tmc-project-grid{align-items:stretch}
.tmb-work-archive .tmc-card{display:flex;flex-direction:column;height:100%;overflow:hidden}
.tmb-work-archive .tmc-card[hidden]{display:none!important}
.tmb-work-archive .tmc-card>*:last-child{margin-block-end:0}

@media(max-width:620px){.tpm-work-filters{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;margin-inline:calc(50% - 50vw);padding:4px max(20px,calc((100vw - 100%)/2)) 12px;scroll-snap-type:x proximity;scrollbar-width:none}.tpm-work-filters::-webkit-scrollbar{display:none}.tpm-work-filters .tmb-work-filter{flex:0 0 auto;min-height:42px;padding:8px 14px;scroll-snap-align:start}}
@media(prefers-reduced-motion:reduce){.tpm-work-filters .tmb-work-filter{transition:none}}
