.tmpg-gallery{--bg:#050807;--panel:#0a1210;--gold:#f4b900;--text:#f7f8f6;--muted:#9daaa6;--tmpg-bg-image:none;--tmpg-bg-overlay:0;position:relative;width:100%;background:#050807 var(--tmpg-bg-image) center/cover no-repeat;color:var(--text);padding:34px 24px;box-sizing:border-box;overflow:hidden;isolation:isolate}.tmpg-gallery:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(rgba(3,9,7,var(--tmpg-bg-overlay)),rgba(3,9,7,var(--tmpg-bg-overlay))),radial-gradient(circle at 15% 15%,rgba(25,89,76,.18),transparent 32%),radial-gradient(circle at 90% 80%,rgba(244,185,0,.06),transparent 25%)}.tmpg-shell{width:min(1380px,100%);margin:auto}.tmpg-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:14px}.tmpg-eyebrow{font-size:10px;letter-spacing:3px;color:var(--gold);font-weight:700}.tmpg-heading h2{font-size:clamp(24px,3vw,40px);line-height:1;margin:6px 0 0;font-weight:700;letter-spacing:-1px}.tmpg-count{display:flex;align-items:end;gap:7px;color:var(--muted);font-size:9px;letter-spacing:2px}.tmpg-count b{font-size:22px;color:#fff;line-height:1}.tmpg-split{display:grid;grid-template-columns:minmax(0,.82fr) minmax(480px,1.18fr);gap:14px;align-items:stretch;height:min(68vh,680px);min-height:500px}.tmpg-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:1fr;gap:8px;height:100%;overflow:auto;padding:1px;scrollbar-width:thin;scrollbar-color:#2a4540 transparent}.tmpg-thumb{position:relative;padding:0 !important;border:0 !important;border-radius:11px;overflow:hidden;background:#101816;cursor:pointer;min-height:0;isolation:isolate}.tmpg-thumb img{width:100% !important;height:100% !important;min-width:100%;min-height:100%;display:block !important;object-fit:cover !important;position:absolute;inset:0;transition:transform .45s cubic-bezier(.2,.8,.2,1),filter .3s;filter:saturate(.82) brightness(.72)}.tmpg-thumb:hover img,.tmpg-thumb.is-active img{transform:scale(1.05);filter:saturate(1) brightness(.96)}.tmpg-thumb.is-active{outline:1px solid rgba(244,185,0,.9);box-shadow:0 0 0 2px rgba(244,185,0,.1),0 10px 24px rgba(0,0,0,.3)}.tmpg-thumb-shine{position:absolute;inset:0;background:linear-gradient(130deg,transparent 35%,rgba(255,255,255,.13) 50%,transparent 65%);transform:translateX(-130%);transition:transform .7s}.tmpg-thumb:hover .tmpg-thumb-shine{transform:translateX(130%)}.tmpg-index{position:absolute;right:7px;bottom:6px;background:rgba(3,8,7,.72);backdrop-filter:blur(7px);border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:3px 5px;color:#fff;font-size:9px}.tmpg-viewer{background:linear-gradient(145deg,rgba(13,24,21,.96),rgba(7,16,14,.96));border:1px solid rgba(255,255,255,.1);border-radius:18px;padding:10px;display:flex;flex-direction:column;height:100%;min-height:0;box-shadow:0 24px 60px rgba(0,0,0,.28);backdrop-filter:blur(10px)}.tmpg-viewer-top{display:flex;align-items:center;gap:7px;color:#899894;font-size:8px;letter-spacing:2px;padding:2px 3px 8px}.tmpg-live-dot{width:6px;height:6px;background:var(--gold);border-radius:50%;box-shadow:0 0 0 4px rgba(244,185,0,.08)}.tmpg-viewer-counter{margin-left:auto}.tmpg-viewer-counter b{color:#fff}.tmpg-image-frame{position:relative;flex:1;min-height:0;border-radius:12px;overflow:hidden;background:#020504 center/cover no-repeat;isolation:isolate}.tmpg-main-image{position:relative;z-index:2;width:100%;height:100%;object-fit:contain;object-position:center;display:block;transition:opacity .2s,transform .45s cubic-bezier(.2,.8,.2,1);background:transparent}.tmpg-main-image.tmpg-changing{opacity:0;transform:scale(1.025)}.tmpg-image-frame:before{content:"";position:absolute;inset:-18px;z-index:0;background:inherit;filter:blur(22px);transform:scale(1.08);opacity:.48}.tmpg-image-frame:after{content:"";position:absolute;inset:0;z-index:1;background:rgba(0,0,0,.12)}.tmpg-image-overlay{position:absolute;inset:0;z-index:3;background:linear-gradient(180deg,transparent 58%,rgba(0,0,0,.5));pointer-events:none}.tmpg-expand{position:absolute;right:12px;top:12px;width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:rgba(0,0,0,.35);backdrop-filter:blur(8px);color:#fff;font-size:17px;cursor:pointer}.tmpg-viewer-bottom{display:flex;align-items:end;justify-content:space-between;padding:10px 3px 0;gap:12px}.tmpg-small-label{font-size:8px;letter-spacing:2px;color:var(--gold)}.tmpg-caption{font-size:16px;margin:4px 0 0;color:#fff;font-weight:600}.tmpg-controls{display:flex;gap:6px}.tmpg-controls button{width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.12);background:#121d1a;color:#fff;font-size:17px;cursor:pointer;transition:.2s}.tmpg-controls button:hover{background:var(--gold);color:#06110f}.tmpg-lightbox{position:fixed;z-index:999999;inset:0;background:rgba(0,0,0,.93);display:none;align-items:center;justify-content:center;padding:30px}.tmpg-lightbox.is-open{display:flex}.tmpg-lightbox img{max-width:min(92vw,1400px);max-height:90vh;object-fit:contain}.tmpg-lb-close,.tmpg-lb-prev,.tmpg-lb-next{position:fixed;border:1px solid rgba(255,255,255,.2);background:rgba(10,15,13,.7);color:#fff;border-radius:50%;cursor:pointer;width:44px;height:44px;font-size:22px}.tmpg-lb-close{top:22px;right:22px}.tmpg-lb-prev{left:22px;top:50%;transform:translateY(-50%)}.tmpg-lb-next{right:22px;top:50%;transform:translateY(-50%)}.tmpg-layout-grid .tmpg-viewer{display:none}.tmpg-layout-grid .tmpg-split{display:block;height:auto}.tmpg-layout-grid .tmpg-grid{height:auto;grid-template-columns:repeat(5,1fr);grid-auto-rows:190px}@media(max-width:1100px){.tmpg-gallery{padding:28px 16px}.tmpg-split{grid-template-columns:.72fr 1.28fr;height:min(70vh,620px);min-height:470px}.tmpg-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.tmpg-gallery{min-height:100svh;padding-left:12px !important;padding-right:12px !important}.tmpg-heading{align-items:center}.tmpg-count{display:none}.tmpg-split{display:flex;flex-direction:column;height:auto;min-height:0}.tmpg-grid{order:2;height:260px;grid-template-columns:repeat(4,1fr);grid-auto-rows:125px;overflow:auto}.tmpg-viewer{order:1;height:430px;min-height:430px}.tmpg-image-frame{min-height:0}.tmpg-caption{font-size:14px}.tmpg-layout-grid .tmpg-grid{grid-template-columns:repeat(2,1fr);height:auto;grid-auto-rows:150px}}@media(max-width:480px){.tmpg-gallery{padding:22px 10px !important;min-height:100svh}.tmpg-heading h2{font-size:27px}.tmpg-grid{height:220px;grid-template-columns:repeat(3,1fr);grid-auto-rows:100px;gap:6px}.tmpg-viewer{height:360px;min-height:360px}.tmpg-viewer-bottom{padding-top:8px}.tmpg-controls button{width:34px;height:34px}.tmpg-caption{font-size:13px}}

/* v1.0.6 - Full-bleed viewport section. Escapes Elementor/theme container gutters. */
.tmpg-gallery{
  width:100vw !important;
  max-width:100vw !important;
  margin-left:calc(50% - 50vw) !important;
  margin-right:calc(50% - 50vw) !important;
  box-sizing:border-box !important;
  min-height:100vh;
  padding-left:clamp(16px,4.6vw,88px) !important;
  padding-right:clamp(16px,4.6vw,88px) !important;
  border-radius:0 !important;
}
.tmpg-shell{width:100% !important;max-width:1480px;margin-left:auto;margin-right:auto;}
.tmpg-split{height:min(72vh,700px);min-height:520px;}

/* Preserve the complete photograph. No face or subject cropping. */
.tmpg-main-image{object-fit:contain !important;object-position:center center !important;}
@media(max-width:760px){.tmpg-main-image{object-fit:contain !important;}}


/* v1.0.7 - Interactive pan & zoom. Starts fully visible; zoom then drag to inspect any part of a photo. */
.tmpg-image-tools{margin-left:auto;display:flex;align-items:center;gap:4px;margin-right:10px}
.tmpg-image-tools button{height:25px;min-width:25px;padding:0 7px;border:1px solid rgba(255,255,255,.12);border-radius:7px;background:rgba(255,255,255,.04);color:#b8c4c0;font:600 9px/1 inherit;letter-spacing:.7px;cursor:pointer;transition:all .2s ease}
.tmpg-image-tools button:hover,.tmpg-image-tools .tmpg-pan-toggle.is-active{background:rgba(244,185,0,.14);border-color:rgba(244,185,0,.45);color:#ffd45a}
.tmpg-image-tools .tmpg-zoom-reset{min-width:30px}
.tmpg-image-frame.is-pannable{cursor:grab}
.tmpg-image-frame.is-dragging{cursor:grabbing}
.tmpg-main-image.tmpg-zoomed{max-width:none;max-height:none;width:100%;height:100%;object-fit:contain!important;will-change:transform;transform-origin:center center;transition:opacity .2s,transform .12s ease-out}
@media(max-width:760px){.tmpg-image-tools{margin-right:4px}.tmpg-image-tools button{height:24px;min-width:24px;padding:0 5px;font-size:8px}.tmpg-pan-toggle{font-size:0!important}.tmpg-pan-toggle:before{content:'✋';font-size:11px}}

/* v1.0.8 - reliable interactive image controls */
.tmpg-viewer-top{position:relative;z-index:20;pointer-events:auto!important;}
.tmpg-image-tools{position:relative;z-index:30;pointer-events:auto!important;}
.tmpg-image-tools button{position:relative;z-index:31;pointer-events:auto!important;user-select:none;-webkit-user-select:none;}
.tmpg-image-frame{touch-action:none;}
.tmpg-main-image.tmpg-zoomed{cursor:inherit;}


/* v1.0.9 - Replace attachment filename/caption with a refined animated brand message. */
.tmpg-storyline{min-width:0;}
.tmpg-caption-animated{display:block;min-height:1.2em;white-space:nowrap;overflow:hidden;font-size:clamp(16px,1.35vw,22px);font-weight:700;letter-spacing:-.35px;color:#fff;}
.tmpg-letter{display:inline-block;opacity:0;transform:translateY(9px) scale(.94);filter:blur(3px);transition:opacity .38s ease,transform .48s cubic-bezier(.2,.8,.2,1),filter .48s ease;transition-delay:calc(var(--i) * 32ms);}
.tmpg-caption-animated.is-typing .tmpg-letter{opacity:1;transform:translateY(0) scale(1);filter:blur(0);}
.tmpg-caption-animated.is-typing .tmpg-letter:nth-last-child(-n+6){text-shadow:0 0 18px rgba(244,185,0,.14);}
@media(max-width:760px){.tmpg-caption-animated{font-size:14px}.tmpg-letter{transition-delay:calc(var(--i) * 24ms)}}

/* v1.1.0 - clean viewer controls and adaptive subject-safe framing */
.tmpg-image-tools{display:none !important;}
.tmpg-viewer-top{pointer-events:none;}
.tmpg-main-image{max-width:100% !important;max-height:100% !important;width:auto !important;height:auto !important;object-fit:contain !important;object-position:center center !important;transform-origin:center center !important;will-change:transform;}
.tmpg-main-image.tmpg-zoomed{max-width:none !important;max-height:none !important;width:auto !important;height:auto !important;cursor:grab;}
.tmpg-image-frame.is-pannable{cursor:grab;}
.tmpg-image-frame.is-dragging{cursor:grabbing;}
.tmpg-image-frame{touch-action:none;}
@media(max-width:760px){.tmpg-main-image{max-width:100% !important;max-height:100% !important;width:auto !important;height:auto !important;}}


/* v1.1.1 - single Full View toggle. Default remains subject-safe contain;
   Full View fills the entire right viewer panel when enabled. */
.tmpg-fit-toggle{
  margin-left:auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  min-height:30px;
  padding:0 10px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:8px;
  background:rgba(255,255,255,.035);
  color:#b8c4c0;
  font:600 9px/1 inherit;
  letter-spacing:.7px;
  cursor:pointer;
  transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease;
  pointer-events:auto;
  position:relative;
  z-index:40;
}
.tmpg-fit-toggle:hover,.tmpg-fit-toggle.is-active{
  background:rgba(244,185,0,.14);
  border-color:rgba(244,185,0,.45);
  color:#ffd45a;
}
.tmpg-fit-toggle:active{transform:scale(.97);}
.tmpg-image-frame.is-cover .tmpg-main-image{
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:cover !important;
  object-position:center center !important;
  transform:translate3d(0,0,0) scale(1) !important;
}
.tmpg-image-frame.is-cover{
  background:#020504;
}
@media(max-width:760px){
  .tmpg-fit-toggle{min-height:27px;padding:0 8px;font-size:8px;}
}
@media(max-width:430px){
  .tmpg-fit-toggle span{display:none;}
  .tmpg-fit-toggle{min-width:30px;padding:0 7px;}
}
