.tooloon-flying-gallery{margin-top:var(--tfg-margin-top,0);margin-bottom:var(--tfg-margin-bottom,0);display:grid;grid-template-columns:repeat(var(--tfg-columns,3),minmax(0,1fr));gap:var(--tfg-gap);width:100%;pointer-events:none;user-select:none}.tfg-panel{position:relative;height:var(--tfg-height);overflow:hidden;border-radius:var(--tfg-radius);background:var(--tfg-bg)}.tfg-slide{position:absolute;inset:var(--tfg-background-extension,0px);opacity:0;transform:var(--enter,translate3d(100%,0,0));transition:transform var(--tfg-duration) cubic-bezier(.22,.85,.25,1),opacity calc(var(--tfg-duration)*.75) ease;will-change:transform,opacity}.tfg-slide.is-active{opacity:1;transform:translate3d(0,0,0);z-index:2}.tfg-slide.is-entering{opacity:0;transform:var(--enter)}.tfg-slide.is-leaving{opacity:0;transform:var(--leave);z-index:1}.tfg-slide img{width:100%;height:100%;display:block;object-fit:var(--fit);object-position:var(--pos-x) var(--pos-y);transform:scale(var(--scale));transform-origin:50% 50%;image-rendering:auto;-webkit-user-drag:none}.tfg-caption{position:absolute;z-index:4;left:var(--tx);top:var(--ty);transform:translate(-50%,-50%);font-family:var(--ff);font-size:clamp(14px,var(--fs),8vw);color:var(--tc);-webkit-text-stroke:var(--outline-width) var(--outline-color);text-shadow:var(--shadow-x) var(--shadow-y) var(--shadow-blur) var(--shadow-color);line-height:1.1;text-align:center;max-width:92%;overflow-wrap:anywhere}.effect-shadow{}.effect-outline{}.effect-glow{text-shadow:0 0 6px currentColor,0 0 20px currentColor}.effect-plate{background:rgba(0,0,0,.55);padding:.25em .5em;border-radius:.15em}.is-active .effect-fade{animation:tfgFade .8s both}.is-active .effect-slide{animation:tfgTextSlide .8s both}.is-active .effect-zoom{animation:tfgTextZoom .8s both}@keyframes tfgFade{from{opacity:0}to{opacity:1}}@keyframes tfgTextSlide{from{opacity:0;transform:translate(-50%,20%)}to{opacity:1;transform:translate(-50%,-50%)}}@keyframes tfgTextZoom{from{opacity:0;transform:translate(-50%,-50%) scale(.5)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@media(max-width:767px){.tooloon-flying-gallery{margin-top:var(--tfg-margin-top,0);margin-bottom:var(--tfg-margin-bottom,0);grid-template-columns:1fr}.tfg-panel{height:var(--tfg-height)}}@media(prefers-reduced-motion:reduce){.tfg-slide{transition:none}.tfg-caption{animation:none!important}}

.tfg-slide video,.tfg-slide iframe{width:100%;height:100%;display:block;border:0;object-fit:var(--fit);object-position:var(--pos-x) var(--pos-y);transform:scale(var(--scale));transform-origin:50% 50%}.tfg-copyright{font-size:11px;opacity:.65;text-align:right;margin-top:6px}.tfg-slide iframe{pointer-events:none}

/* Version 3.17 layout, title and frame controls */
.tfg-gallery-block{margin-top:var(--tfg-margin-top,30px);margin-bottom:var(--tfg-margin-bottom,30px);width:100%}
.tfg-gallery-block .tooloon-flying-gallery{margin:0}
.tfg-gallery-title{margin:0 0 10px;line-height:1.2;font-size:var(--tfg-gallery-title-size,32px)}
.tfg-gallery-frame{border:0!important;border-radius:0;padding:0;overflow:visible;box-shadow:none!important;outline:0!important;background:transparent}.tfg-gallery-frame.is-enabled{border:var(--tfg-gallery-border-width,1px) solid var(--tfg-gallery-border-color,#000)!important;border-radius:var(--tfg-gallery-frame-radius,0);padding:var(--tfg-gallery-frame-padding,0);overflow:hidden}
.tfg-window-wrap{min-width:0}
.tfg-window-title{margin:0 0 8px;line-height:1.2}
.tfg-panel-frame{border:0!important;border-radius:0;padding:0;overflow:visible;box-shadow:none!important;outline:0!important;background:transparent}.tfg-panel-frame.is-enabled{border:var(--tfg-window-border-width,1px) solid var(--tfg-window-border-color,#000)!important;border-radius:var(--tfg-window-frame-radius,0);padding:var(--tfg-window-frame-padding,0);overflow:hidden}
.tfg-panel-frame .tfg-panel{border-radius:var(--tfg-radius)}
.tfg-gallery-block .tfg-copyright{font-size:11px;opacity:.65;text-align:right;margin:10px 0 0;padding:0}

/* 3.19: no outer wrapper or theme frame unless explicitly enabled */
.tfg-gallery-block{border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;padding:0!important;}
.tfg-gallery-block>.tooloon-flying-gallery{border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;padding:0!important;}

/* 3.20: keep every edited visible crop centered when a slide lands */
.tfg-slide{display:block;overflow:hidden;transform-origin:50% 50%!important;}
.tfg-slide>img,.tfg-slide>video,.tfg-slide>iframe{position:absolute;inset:0;margin:auto;transform-origin:50% 50%!important;}

/* 3.21: Show entire media always lands geometrically centered. */
.tfg-slide[style*="--fit:contain"]>img,
.tfg-slide[style*="--fit:contain"]>video,
.tfg-slide[style*="--fit:contain"]>iframe{
  object-position:50% 50%!important;
  transform-origin:50% 50%!important;
}

.tfg-gallery-block .tfg-copyright{margin:var(--tfg-copyright-margin-top,10px) 0 0!important;padding:0!important;font-size:var(--tfg-copyright-size,11px)!important;color:var(--tfg-copyright-color,#666)!important;opacity:1!important;line-height:1.3;border:0!important;outline:0!important;box-shadow:none!important}

/* 3.37: optional blur of the page background through transparent gallery windows */
.tfg-panel.has-backdrop-blur{background:transparent;-webkit-backdrop-filter:blur(var(--tfg-backdrop-blur,10px));backdrop-filter:blur(var(--tfg-backdrop-blur,10px));}


/* 3.39: optional color overlay on transparent or colored window backgrounds */
.tfg-panel{isolation:isolate}
.tfg-panel::before{content:"";position:absolute;inset:0;background-color:var(--tfg-overlay-color,#000000);opacity:var(--tfg-overlay-opacity,0);pointer-events:none;z-index:0}
.tfg-panel>.tfg-slide{z-index:1}
.tfg-panel>.tfg-slide.is-active{z-index:2}
.tfg-panel>.tfg-slide.is-leaving{z-index:1}


/* 3.44: Bottom spacing must remain visible even as the last child of a WordPress container. */
.tfg-gallery-block{margin-bottom:0!important;padding-bottom:var(--tfg-margin-bottom,30px)!important;box-sizing:border-box;}


/* 3.49: edge fade, softened inner transition, rounding and image border. */
.tfg-media-shell{position:absolute;inset:0;box-sizing:border-box;overflow:visible;z-index:1;--tfg-media-radius-effective:0px;border-radius:var(--tfg-media-radius-effective)}
.tfg-media-clip{position:absolute;inset:0;box-sizing:border-box;overflow:hidden;border-radius:inherit}
.tfg-media-clip>img,.tfg-media-clip>video,.tfg-media-clip>iframe{position:absolute;inset:0;width:100%;height:100%;display:block;border:0;object-fit:var(--fit);object-position:var(--pos-x) var(--pos-y);transform:scale(var(--tfg-media-inner-scale,1));transform-origin:50% 50%;margin:auto}
.tfg-media-primary{z-index:1}
.tfg-media-edge-blur{z-index:2;pointer-events:none;filter:blur(var(--tfg-edge-softness-effective,0));opacity:.92;-webkit-mask-image:linear-gradient(to right,#000 0,transparent 100%),linear-gradient(to left,#000 0,transparent 100%),linear-gradient(to bottom,#000 0,transparent 100%),linear-gradient(to top,#000 0,transparent 100%);-webkit-mask-size:var(--tfg-edge-blur-band,0) 100%,var(--tfg-edge-blur-band,0) 100%,100% var(--tfg-edge-blur-band,0),100% var(--tfg-edge-blur-band,0);-webkit-mask-position:left top,right top,left top,left bottom;-webkit-mask-repeat:no-repeat;mask-image:linear-gradient(to right,#000 0,transparent 100%),linear-gradient(to left,#000 0,transparent 100%),linear-gradient(to bottom,#000 0,transparent 100%),linear-gradient(to top,#000 0,transparent 100%);mask-size:var(--tfg-edge-blur-band,0) 100%,var(--tfg-edge-blur-band,0) 100%,100% var(--tfg-edge-blur-band,0),100% var(--tfg-edge-blur-band,0);mask-position:left top,right top,left top,left bottom;mask-repeat:no-repeat;mask-composite:add}
.tfg-media-shell.has-media-radius{--tfg-media-radius-effective:var(--tfg-media-radius,0)}.tfg-media-shell.has-media-radius,.tfg-media-shell.has-media-radius .tfg-media-clip{border-radius:var(--tfg-media-radius-effective)}
.tfg-media-clip.has-edge-fade{-webkit-mask-image:linear-gradient(to right,transparent 0,#000 var(--tfg-edge-fade-effective,0),#000 calc(100% - var(--tfg-edge-fade-effective,0)),transparent 100%),linear-gradient(to bottom,transparent 0,#000 var(--tfg-edge-fade-effective,0),#000 calc(100% - var(--tfg-edge-fade-effective,0)),transparent 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(to right,transparent 0,#000 var(--tfg-edge-fade-effective,0),#000 calc(100% - var(--tfg-edge-fade-effective,0)),transparent 100%),linear-gradient(to bottom,transparent 0,#000 var(--tfg-edge-fade-effective,0),#000 calc(100% - var(--tfg-edge-fade-effective,0)),transparent 100%);mask-composite:intersect}

/* 3.55: rebuilt image border. OFF means no border element exists. */
.tfg-media-shell,
.tfg-media-clip,
.tfg-media-primary,
.tfg-media-edge-blur{
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  padding:0!important;
  background:transparent!important;
}
.tfg-media-shell::before,.tfg-media-shell::after,
.tfg-media-clip::before,.tfg-media-clip::after,
.tfg-media-primary::before,.tfg-media-primary::after{
  content:none!important;
  display:none!important;
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
}
.tfg-image-border{
  position:absolute!important;
  z-index:3!important;
  display:block!important;
  pointer-events:none!important;
  box-sizing:border-box!important;
  border-style:solid!important;
  border-width:var(--tfg-image-border-width,0px)!important;
  border-color:var(--tfg-image-border-color,transparent)!important;
  outline:0!important;
  box-shadow:none!important;
  background:transparent!important;
}
.tfg-image-border--inside{inset:0!important;border-radius:inherit!important}
.tfg-image-border--outside{
  inset:calc(0px - var(--tfg-image-border-width,0px))!important;
  border-radius:calc(var(--tfg-media-radius-effective,0px) + var(--tfg-image-border-width,0px))!important;
}
.tfg-slide>.tfg-media-shell[data-fit="contain"] .tfg-media-clip>img,
.tfg-slide>.tfg-media-shell[data-fit="contain"] .tfg-media-clip>video,
.tfg-slide>.tfg-media-shell[data-fit="contain"] .tfg-media-clip>iframe{object-position:50% 50%!important;transform:none!important}
