/* FdGalleryAtmosphere — public decorative layer
 * Stacking (bootstrap_darkroom + FdSiteCustom):
 *   PAGE_CONTENT ≈ 0
 *   HEADER / navbar ≈ 1030–1031
 *   FDGA_EFFECT_LAYER = 1035  (above header, pointer-events:none → menu clickable)
 *   FDGA_TOGGLE = 1048
 *   BOOTSTRAP_MODAL = 1050
 *   LIGHTBOX PhotoSwipe = 1500
 *   CONSENT / FD overlays ≥ 9998
 */
.fdga-root,
#fdga-atmosphere-layer,
.fdga-layer,
.fdga-particles,
.fdga-frost,
.fdga-mist{
  pointer-events:none !important;
  position:fixed;
  inset:0;
  width:100vw;
  height:100vh;
  z-index:1035;
  overflow:hidden;
  contain:strict;
}
.fdga-root,
#fdga-atmosphere-layer{z-index:1035}
.fdga-layer{z-index:1036}
.fdga-message-host{
  pointer-events:none;
  position:fixed;
  z-index:1040;
  left:0;right:0;
}
.fdga-message-host.fdga-pos-top_banner{top:0}
.fdga-message-host.fdga-pos-bottom_card{bottom:1rem;display:flex;justify-content:center;padding:0 1rem}
.fdga-message-host.fdga-pos-toast{bottom:1rem;right:1rem;left:auto;display:flex;justify-content:flex-end}
.fdga-message-host.fdga-pos-before_gallery{position:relative;inset:auto;margin:0.75rem auto;max-width:960px;z-index:5}
.fdga-message{
  pointer-events:auto;
  background:rgba(20,24,28,.88);
  color:#f4f0ea;
  border:1px solid rgba(255,255,255,.12);
  border-radius:10px;
  padding:.7rem 1rem;
  max-width:420px;
  font-size:.95rem;
  line-height:1.4;
  box-shadow:0 8px 24px rgba(0,0,0,.25);
  display:flex;
  gap:.75rem;
  align-items:flex-start;
}
.fdga-pos-top_banner .fdga-message{
  max-width:none;
  border-radius:0;
  justify-content:center;
}
.fdga-message a{color:#9ec5ff;text-decoration:underline}
.fdga-message-close{
  appearance:none;
  border:0;
  background:transparent;
  color:#f4f0ea;
  font-size:1.2rem;
  line-height:1;
  cursor:pointer;
  padding:.1rem .35rem;
  margin-left:auto;
  border-radius:4px;
}
.fdga-message-close:focus-visible{outline:2px solid #9ec5ff;outline-offset:2px}
.fdga-toggle,
#fdga-visitor-toggle{
  pointer-events:auto;
  position:fixed;
  z-index:1048;
  bottom:var(--fdga-toggle-bottom-offset, 1rem);
  right:1rem;
  left:auto;
  appearance:none;
  border:1px solid rgba(255,255,255,.25);
  background:rgba(20,24,28,.82);
  color:#f4f0ea;
  font-size:.8rem;
  padding:.4rem .75rem;
  border-radius:999px;
  cursor:pointer;
  opacity:.85;
  transition:opacity .2s ease, background .2s ease;
  max-width:min(240px, calc(100vw - 1.5rem));
  box-shadow:0 4px 16px rgba(0,0,0,.25);
}
.fdga-toggle.is-hidden-state{opacity:1;background:rgba(61,139,253,.9);border-color:rgba(61,139,253,.9)}
.fdga-toggle:hover,.fdga-toggle:focus-visible{opacity:1}
.fdga-toggle:focus-visible{outline:2px solid #9ec5ff;outline-offset:2px}
@media (max-width:767px){
  .fdga-toggle,
  #fdga-visitor-toggle{
    right:0.75rem !important;
    left:auto !important;
    bottom:var(--fdga-toggle-bottom-offset, 5.75rem) !important;
    top:auto !important;
    font-size:0.72rem;
    z-index:1048;
  }
}

.fdga-diag-box{
  pointer-events:none;
  position:fixed;
  top:.5rem;right:.5rem;
  z-index:1042;
  background:rgba(0,0,0,.7);
  color:#9fdf9f;
  font:11px/1.35 ui-monospace,monospace;
  padding:.4rem .55rem;
  border-radius:6px;
  max-width:260px;
}
.fdga-particle{
  position:absolute;
  will-change:transform,opacity;
  pointer-events:none;
  left:0;top:0;
  display:block;
}
.fdga-shape{
  position:absolute;
  left:0;top:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:0;
  pointer-events:none;
}
.fdga-shape svg{display:block;overflow:visible}

/* Frost — organic corners & irregular lace (NO full-width rectangular bands) */
.fdga-frost-host,
.fdga-layer-frost{
  z-index:1037 !important;
}
.fdga-frost-organic .fdga-frost-edge{display:none !important} /* kill legacy bands if any */
.fdga-frost-corner{
  position:absolute;
  width:min(46vw,340px);
  height:min(46vw,340px);
  pointer-events:none;
  z-index:2;
}
.fdga-frost-corner-tl{top:0;left:0}
.fdga-frost-corner-tr{top:0;right:0;transform:scaleX(-1)}
.fdga-frost-corner-bl{bottom:0;left:0;transform:scaleY(-1)}
.fdga-frost-corner-br{bottom:0;right:0;transform:scale(-1)}
.fdga-frost-svg{width:100%;height:100%;pointer-events:none}
.fdga-frost-svg svg{display:block;width:100%;height:100%;overflow:visible}
.fdga-frost-lace{
  position:absolute;
  pointer-events:none;
  z-index:1;
  top:0;
  height:min(14vh,130px);
}
.fdga-frost-lace-portion{
  top:0;
}
.fdga-frost-lace-bottom{
  top:auto !important;
  bottom:0;
  transform:scaleY(-1);
  height:min(11vh,100px);
}
.fdga-frost-lace svg{display:block;width:100%;height:100%}
.fdga-frost-side{
  position:absolute;
  top:10%;
  bottom:12%;
  width:min(14vw,112px);
  pointer-events:none;
  z-index:1;
  opacity:.72;
}
.fdga-frost-host[data-intensity="strong"] .fdga-frost-side{
  opacity:1;
  width:min(16vw,128px);
}
.fdga-frost-host[data-intensity="medium"] .fdga-frost-side{
  opacity:.78;
}
.fdga-frost-side-left{left:0}
.fdga-frost-side-right{right:0;transform:scaleX(-1)}
.fdga-frost-side svg{width:100%;height:100%;display:block}
.fdga-frost-patch{
  position:absolute;
  width:min(9vw,72px);
  height:min(9vw,72px);
  margin-left:-36px;
  margin-top:-36px;
  border-radius:48% 52% 45% 55%;
  background:
    radial-gradient(circle at 40% 35%, rgba(255,255,255,.55), transparent 58%),
    radial-gradient(circle at 62% 62%, rgba(200,215,230,.28), transparent 68%);
  filter:blur(0.35px);
  pointer-events:none;
  z-index:1;
}
.fdga-frost-patch-crystal{
  border-radius:40% 60% 45% 55%;
  background:
    radial-gradient(circle at 45% 40%, rgba(245,250,255,.5), transparent 55%),
    linear-gradient(135deg, rgba(190,210,230,.25), transparent 60%);
}
.fdga-frost-patch-light{
  background:
    radial-gradient(circle at 40% 35%, rgba(175,195,215,.5), transparent 58%),
    radial-gradient(circle at 62% 62%, rgba(150,170,190,.22), transparent 68%);
  filter:drop-shadow(0 0 1px rgba(130,155,180,.2));
}
.fdga-frost-on-light .fdga-frost-svg{
  filter:drop-shadow(0 0 1.2px rgba(120,145,170,.38));
}
.fdga-frost-host[data-intensity="strong"].fdga-frost-on-light .fdga-frost-svg{
  filter:drop-shadow(0 0 1.6px rgba(100,125,150,.48));
}
.fdga-frost-on-dark .fdga-frost-svg{
  filter:drop-shadow(0 0 4px rgba(220,235,255,.14));
}
.fdga-frost-host[data-intensity="strong"] .fdga-frost-corner{
  width:min(50vw,380px);
  height:min(50vw,380px);
}
.fdga-frost-host[data-intensity="strong"] .fdga-frost-lace{
  height:min(16vh,150px);
}
.fdga-frost-host[data-intensity="strong"] .fdga-frost-lace-bottom{
  height:min(13vh,118px);
}
/* Remove legacy rectangular frost band rules from applying */
.fdga-frost-t,.fdga-frost-b,.fdga-frost-l,.fdga-frost-r,
.fdga-frost-tl,.fdga-frost-tr,.fdga-frost-bl,.fdga-frost-br,
.fdga-frost-crystal,.fdga-frost-fringe,
.fdga-frost-organic .fdga-frost-edge{display:none !important}

/* Mist — textured SVG sheets (1.2.9); no global page filter */
.fdga-mist-host,
.fdga-layer-mist{
  z-index:1036 !important;
  overflow:visible !important;
}
.fdga-mist-defs{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.fdga-mist-sheet{
  position:absolute;
  pointer-events:none;
  will-change:transform,opacity;
  border-radius:0;
  background:transparent !important;
  overflow:visible;
}
/* Depth blur — plane-distinct; moderate so sparse mask holes survive */
.fdga-mist-far{filter:blur(var(--fdga-mist-blur, 22px))}
.fdga-mist-mid{filter:blur(var(--fdga-mist-blur, 14px))}
.fdga-mist-near{filter:blur(var(--fdga-mist-blur, 8px))}
.fdga-mist-sheet-svg svg{display:block;width:100%;height:100%;overflow:visible}
.fdga-mist-veil{display:none !important}
.fdga-mist-debug .fdga-mist-sheet{
  filter:none !important;
  mix-blend-mode:normal !important;
}
.fdga-mist-measure-box{
  position:absolute;
  border:2px dashed rgba(0,220,180,.85);
  color:#9fffe8;
  font:11px/1.2 ui-monospace,monospace;
  padding:2px 4px;
  pointer-events:none;
  z-index:20;
  background:rgba(0,40,30,.25);
  text-shadow:0 1px 2px #000;
}
.fdga-mist-measure-photo{border-color:rgba(255,180,40,.9);color:#ffd080}
.fdga-mist-measure-white{border-color:rgba(120,200,255,.9);color:#b8e0ff}

/* Mist travel 1.2.11 — primary motion is JS continuous cross; no CSS ping-pong */
.fdga-mist-traveler{
  animation:none !important;
  left:0;
}
.fdga-mist-inner{
  width:100%;
  height:100%;
  transform-origin:center center;
  will-change:transform;
}
/* Legacy local-oscillation keyframes kept unused (no sheet references them) */
@keyframes fdgaMistFarA{
  0%{transform:translate(-3%,0.4%) scale(1.28)}
  100%{transform:translate(5%,-0.8%) scale(1.34)}
}
@keyframes fdgaMistMidA{
  0%{transform:translate(-5%,1.2%) scale(1.05)}
  100%{transform:translate(8%,-1.5%) scale(0.98)}
}
@keyframes fdgaMistMidB{
  0%{transform:translate(4%,-0.8%) scale(0.96)}
  100%{transform:translate(-7%,1.8%) scale(1.04)}
}
@keyframes fdgaMistNearA{
  0%{transform:translate(-4%,1.5%) scale(0.88)}
  50%{transform:translate(6%,-2%) scale(0.94)}
  100%{transform:translate(10%,0.5%) scale(0.86)}
}
@keyframes fdgaMistNearB{
  0%{transform:translate(3%,-1%) scale(0.82)}
  50%{transform:translate(-8%,2.2%) scale(0.88)}
  100%{transform:translate(-12%,-0.4%) scale(0.8)}
}
@keyframes fdgaMistBankA{
  0%{transform:translate(-4%,1%) scale(1)}
  100%{transform:translate(8%,-1.5%) scale(1.04)}
}
@keyframes fdgaMistBankB{
  0%{transform:translate(4%,-0.8%) scale(1)}
  100%{transform:translate(-8%,1.5%) scale(0.96)}
}
@keyframes fdgaMistBankC{
  0%{transform:translate(-3%,1.2%) scale(0.98)}
  100%{transform:translate(6%,-1%) scale(1.05)}
}
@keyframes fdgaMistDriftDebug{
  from{transform:translate(-6%,1%)}
  to{transform:translate(8%,-2%)}
}
.fdga-mist-host[data-intensity="strong"] .fdga-mist-near{opacity:1}
.fdga-mist-host[data-intensity="medium"] .fdga-mist-near{opacity:1}
.fdga-mist-depth-debug .fdga-mist-far{outline:2px solid #33aaff !important;outline-offset:2px}
.fdga-mist-depth-debug .fdga-mist-mid{outline:2px solid #33cc66 !important;outline-offset:2px}
.fdga-mist-depth-debug .fdga-mist-near{outline:2px solid #ff4444 !important;outline-offset:2px}
.fdga-zone-grid{
  pointer-events:none;
  position:fixed;
  inset:0;
  z-index:1038;
  display:grid;
  grid-template-columns:repeat(4,1fr);
}
.fdga-zone-cell{
  border-right:1px dashed rgba(100,200,255,.35);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  padding-top:.5rem;
  background:rgba(0,80,120,.04);
}
.fdga-zone-label,.fdga-zone-count{
  font:11px/1.2 ui-monospace,monospace;
  color:#9fdfff;
  text-shadow:0 1px 2px #000;
}
@media (prefers-reduced-motion: reduce){
  .fdga-mist-sheet,.fdga-mist-traveler{animation:none!important}
  .fdga-particle:not(.fdga-snow):not(.fdga-frost){/* frost kept via staticPreferred */}
  .fdga-particle{display:none !important}
}
.fdga-is-hidden .fdga-layer{display:none}
.fdga-is-hidden .fdga-zone-grid{display:none}
