:root 
{
  --scaleXValue : 5;
  --glitchBefore : #00ffff;
  --glitchAfter : #ff00ff;
  --glitchBeforeInvert : #ff00ff;
  --glitchAfterInvert : #00ffff;
}


.MaskdisplayImage {
    top: 12%;
    left: 58%;
    height: 86%;
    width: 40%;
    background: #171717;
    display: flex;
    justify-content: center;
    align-items: center;
    box-shadow: 0px 0px 3px 1px #00000088;
    cursor: pointer;
    position: absolute;
    overflow: hidden;
    border-radius: 10px;
    z-index: 1;
    display: none;
  }
  .MaskdisplayImage.displayInfo
  {
    display: block;
  }
  
  .MaskdisplayImage .content {
    border-radius: 10px;
    left: 50%;
    top: 50%;
    transform: translateX(-50%) translateY(-50%);
    background: #171717;
   width: 92%;
    height: 92%;
    z-index: 1;
    padding: 20px;
    color: white;
    display: block;
    justify-content: center;
    align-items: center;
    position: absolute;
    cursor: auto;
  }
  

  

  .MaskdisplayImage::before {
    opacity: 1;
    content: "";
    top: -10%;
    left: -10%;
    position: absolute;
    display: block;
    width: 60%;
    height: 60%;
    border-radius: 50%;
    background: linear-gradient(90deg, #ff2288, transparent);

  }
  .MaskdisplayImage::after {
    opacity: 1;
    content: "";
    top: 55%;
    left: 50%;
    position: absolute;
    display: block;
    width: 60%;
    height: 60%;
    border-radius: 50%;
    background: linear-gradient(90deg, transparent, #2268ff);

  }
  
 
  .imageShowCase.square {
    width: 70%;
    height: 70%;
    left: 50%;
    transform: translateX(-50%);
    position: relative;
    overflow: hidden;
    border-radius: 10px;
  }
  
  .imageShowCase.square img {
    max-width: 100%;    /* Limit the width to the container */
    max-height: 87%;   /* Limit the height to the container */
    width: auto;        /* Use 100% width by default */
    height: auto;       /* Adjust height based on the aspect ratio */
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    transition: 0.5s;
  }
  
  .imageShowCase.square canvas {
    max-width: 100%;    /* Limit the width to the container */
    max-height: 87%;   /* Limit the height to the container */
    width: 100%;        /* Use 100% width by default */
    height: auto;       /* Adjust height based on the aspect ratio */
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
  }
  

  .downloadGalleryImage 
  {
    font-family: "VT323", monospace;
    font-size: 2em;
  }
  .downloadGalleryImage,button::after {
    top: 83%;
    left: 50%;
    transform: translateX(-50%) scale(1.2);
    padding: 10px 50px;
    border: none;
    border-radius: 5px;
    color: white;
    background-color: transparent;
    position: absolute;
    border: 3px solid rgb(41, 41, 41);
    cursor: pointer;
  }
  
  .downloadGalleryImage::after {
    --move1: inset(50% 50% 50% 50%);
    --move2: inset(31% 0 40% 0);
    --move3: inset(39% 0 15% 0);
    --move4: inset(45% 0 40% 0);
    --move5: inset(45% 0 6% 0);
    --move6: inset(14% 0 61% 0);
    clip-path: var(--move1);
    content: 'Download';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: block;
  }
  
  .downloadGalleryImage:hover::after {
    animation: glitch_4011 1s;
    text-shadow: 10 10px 10px black;
    animation-timing-function: steps(2, end);
    text-shadow: -3px -3px 0px #1df2f0, 3px 3px 0px #E94BE8;
    background-color: transparent;
  }
  
  .downloadGalleryImage:hover {
    text-shadow: -1px -1px 0px #1df2f0, 1px 1px 0px #E94BE8;
  }
  
  .downloadGalleryImage:hover {
    background-color: transparent;
    border: 1px solid #2268ff;
    box-shadow: 0px 10px 10px -10px #2268ff
  }
  
 
  
  .userCredits
  {
    position: absolute;
    top: 73%;
    width: 100%;
    height: 5%;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    left: 0;
    

  }
  .userCredits span 
  {
    font-family: "VT323", monospace;
    color: #888;
    font-size: 1.7em;
  }


  .postShare {
    position: absolute;
    width: 50px;
    height: 50px;
    transition: .3s;
    top: 28%;
    color: rgb(13, 238, 133);
    cursor: pointer;
  }
  
  

  .aspectRatioTile
  {
    position: absolute;
    top: 40%;
    height: 60px;
    width: 60px;
    background: transparent;
    border: 1px solid #888;
    border-radius: 5px;
    justify-content: center;
    align-items: center;
    transition: 0.25s;
  }
 .next
 {
    position: absolute;
    left: 85%;
    top: 35%;
    font-size: 4em;
    font-weight: 700;
    cursor: pointer;
 }
  .aspectRatioTile span
  {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
    font-family: "VT323", monospace;
    font-size: 2em;
    color: #7f95f5;
  }

  .aspectRatioTile:hover
  {
    background: #ffffff;
    border: 1px solid #888;
  }
  
  .promtEngineeringSection
  {
    position: absolute;
    height: 30px;
    width: 100%;
    background: #1f1f1f;
    top: 96%;
    border-top-right-radius: 50px;
    border-top-left-radius: 50px;
    left: 0;
    box-shadow: -2px 0px 50px #888888;
    display: flex;
    transition: 0.25s;
  }
  .promtEngineeringSection:hover 
  {
    box-shadow: -2px 0px 50px #9000ff;
  }
  .promtEngineeringSection span 
  {
    font-family: "VT323", monospace;
    font-size: 1.5em;
    color: #888;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
  }
  .promtEngineeringSection ion-icon
  {
    position: absolute;
    top: 50%;
    left: 100%;
    transform: translateY(-50%);
    font-size: 1em;
    color: #888;
    font-family: "VT323", monospace;
  }


 


.fade-out {
    opacity: 0;
}


  @keyframes glitch_4011 {
    0% {
      clip-path: var(--move1);
      transform: translate(0px,-10px);
    }
  
    10% {
      clip-path: var(--move2);
      transform: translate(-10px,10px);
    }
  
    20% {
      clip-path: var(--move3);
      transform: translate(10px,0px);
    }
  
    30% {
      clip-path: var(--move4);
      transform: translate(-10px,10px);
    }
  
    40% {
      clip-path: var(--move5);
      transform: translate(10px,-10px);
    }
  
    50% {
      clip-path: var(--move6);
      transform: translate(-10px,10px);
    }
  
    60% {
      clip-path: var(--move1);
      transform: translate(10px,-10px);
    }
  
    70% {
      clip-path: var(--move3);
      transform: translate(-10px,10px);
    }
  
    80% {
      clip-path: var(--move2);
      transform: translate(10px,-10px);
    }
  
    90% {
      clip-path: var(--move4);
      transform: translate(-10px,10px);
    }
  
    100% {
      clip-path: var(--move1);
      transform: translate(0);
    }
  }


  @keyframes keyframes-svg-filled {
    0% {
      transform: scale(0);
    }
  
    25% {
      transform: scale(1.2);
    }
  
    50% {
      transform: scale(1);
      filter: brightness(1.5);
    }
  }
  
  @keyframes keyframes-svg-celebrate {
    0% {
      transform: scale(0);
    }
  
    50% {
      opacity: 1;
      filter: brightness(1.5);
    }
  
    100% {
      transform: scale(1.4);
      opacity: 0;
      display: none;
    }
  }



  #glitchEffect {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    overflow: hidden;
    background: #111111d9;
  }
  
  #glitchEffect::before
  {
    content: "";
    position: absolute;
    top: -25%;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--glitchBefore);
    clip-path: inset(50% 50% 50% 50%);
    pointer-events: none;
    transform: scale(1.5);
    animation-play-state: reverse;
  }
  #glitchEffect::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--glitchAfter);
    clip-path: inset(50% 50% 50% 50%);
    pointer-events: none;
  }
  
  #glitchEffect::before {
    animation: glitch-anim-1 0.6s infinite linear;
  }
  
  #glitchEffect::after {
    animation: glitch-anim-2 0.8s infinite linear;
  }


  
  #glitchEffectInvert {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    overflow: hidden;
    filter: invert(1);
    
  }
  
  #glitchEffectInvert::before
  {
    content: "";
    position: absolute;
    top: -55%;
    left: -25%;
    width: 100%;
    height: 100%;
    background: var(--glitchBeforeInvert);
    clip-path: inset(50% 50% 50% 50%);
    pointer-events: none;
    animation-play-state: reverse;
  }
  #glitchEffectInvert::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 25%;
    width: 100%;
    height: 100%;
    background: var(--glitchAfterInvert);
    clip-path: inset(50% 50% 50% 50%);
    pointer-events: none;
  }
  
  #glitchEffectInvert::before {
    animation: glitch-anim-1 0.9s infinite linear;
  }
  
  #glitchEffectInvert::after {
    animation: glitch-anim-2 0.4s infinite linear;
  }
  
   @keyframes glitch-anim-1 {
    0% {
      clip-path: inset(50% 50% 50% 50%);
      transform: translateX(-20px) scaleX(var(--scaleXValue));
    }
    10% {
      clip-path: inset(40% 60% 30% 40%);
      transform: translateX(20px) scaleX(var(--scaleXValue));
    }
    20% {
      clip-path: inset(60% 40% 40% 30%);
      transform: translateX(-15px) scaleX(var(--scaleXValue));
    }
    30% {
      clip-path: inset(30% 50% 20% 40%);
      transform: translateX(30px) scaleX(var(--scaleXValue));
    }
    40% {
      clip-path: inset(50% 30% 50% 30%);
      transform: translateX(-20px) scaleX(var(--scaleXValue));
    }
    50% {
      clip-path: inset(70% 20% 30% 40%);
      transform: translateX(25px) scaleX(var(--scaleXValue));
    }
    60% {
      clip-path: inset(40% 60% 30% 30%);
      transform: translateX(-30px) scaleX(var(--scaleXValue));
    }
    70% {
      clip-path: inset(60% 30% 40% 20%);
      transform: translateX(20px) scaleX(var(--scaleXValue));
    }
    80% {
      clip-path: inset(30% 50% 20% 40%);
      transform: translateX(-25px) scaleX(var(--scaleXValue));
    }
    90% {
      clip-path: inset(50% 40% 30% 30%);
      transform: translateX(15px) scaleX(var(--scaleXValue));
    }
    100% {
      clip-path: inset(50% 50% 50% 50%);
      transform: translateX(0) scaleX(var(--scaleXValue));
    }
    }
    
    @keyframes glitch-anim-2 {
    0% {
      clip-path: inset(50% 50% 50% 50%);
      transform: translateX(20px) scaleX(var(--scaleXValue));
    }
    10% {
      clip-path: inset(30% 70% 20% 10%);
      transform: translateX(-20px) scaleX(var(--scaleXValue));
    }
    20% {
      clip-path: inset(60% 30% 10% 20%);
      transform: translateX(15px) scaleX(var(--scaleXValue));
    }
    30% {
      clip-path: inset(40% 50% 30% 30%);
      transform: translateX(-30px) scaleX(var(--scaleXValue));
    }
    40% {
      clip-path: inset(50% 20% 40% 40%);
      transform: translateX(20px) scaleX(var(--scaleXValue));
    }
    50% {
      clip-path: inset(30% 60% 20% 20%);
      transform: translateX(-15px) scaleX(var(--scaleXValue));
    }
    60% {
      clip-path: inset(70% 30% 10% 30%);
      transform: translateX(25px) scaleX(var(--scaleXValue));
    }
    70% {
      clip-path: inset(40% 50% 30% 20%);
      transform: translateX(-25px) scaleX(var(--scaleXValue));
    }
    80% {
      clip-path: inset(60% 20% 40% 30%);
      transform: translateX(15px) scaleX(var(--scaleXValue));
    }
    90% {
      clip-path: inset(50% 40% 20% 30%);
      transform: translateX(-20px) scaleX(var(--scaleXValue));
    }
    100% {
      clip-path: inset(50% 50% 50% 50%);
      transform: translateX(0) scaleX(var(--scaleXValue));
    }
    }

  .glitch
  {
    opacity: 0;
  }
  .glitch.loading
  {
    opacity: 1;
  }

  .rgbKineticSlider {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    overflow: hidden;
    width: 100%;
    height: 100%;
    background: #a9d7ff;
}

canvas {
  position: absolute;
  display : block;
  top:0;
  left : 0;
  background: #00ffff;
}


.js .loading::before,
.js .loading::after {
	content: '';
	position: fixed;
	z-index: 1000;
}

.js .loading::before {
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: var(--color-bg);
}

.js .loading::after {
	top: 50%;
	left: 50%;
	width: 60px;
	height: 60px;
	margin: -30px 0 0 -30px;
	border-radius: 50%;
	opacity: 0.4;
	background: var(--color-link);
	animation: loaderAnim 0.7s linear infinite alternate forwards;

}

@keyframes loaderAnim {
	to {
		opacity: 1;
		transform: scale3d(0.5,0.5,1);
	}
}

.promptEngineering
{
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background: #1f1f1fcb;
  backdrop-filter: blur(15px);
  display: none;
  justify-content: center;
  align-items: center;
  transition: 0.25s;
}
.promptEngineering.hidden 
{
  display: none;
}