/*!
Theme Name: Ohio-Child
Theme URI: http://ohio.colabr.io/
Author: Colabrio
Author URI: http://colabr.io/
Description: Ohio is a WordPress theme bundled with premium plugins to build a modern and functional website.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Template: ohio
Text Domain: ohio-child
Tags: ajax, customizer, ecommerce, portfolio, minimal, page builder, responsive, multipurpose, shop, store, woocommerce, wpml

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned with others.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal http://necolas.github.com/normalize.css/
*/
/* 背景層（z-index: -2） */
/* 背景層 */
#grid-mask {
  position: fixed;
  z-index: 1000;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  display: grid;
  grid-template-columns: repeat(30, 1fr);
  grid-template-rows: repeat(20, 1fr);
  pointer-events: auto;
  pointer-events: none;
}

.mask-tile {
  background-color:rgba(255,255,255,0.9);
  transition: opacity 0.6s ease;
  will-change: opacity;
  opacity: 1;
  cursor: pointer;
  border: 0.5px solid rgba(240,240,240,0.1);
}

.mask-tile.faded {
  pointer-events: none;
}

.mask-tile.permanent-transparent {
  opacity: 0 !important;
}
.mask-tile.clicked {
  opacity: 0 !important;
}



#vanishing-layer {
  position: fixed;
  z-index: -2;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  pointer-events: none;
  overflow: hidden;
  background-color: #656f71;
}

/* 前景遮罩層 */
#vanishing-overlay {
  position: fixed;
  z-index: 500;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  pointer-events: none;
  background: transparent;
  opacity: 1;
  transition: opacity 1s ease;
  overflow: hidden;
}

/* 共用字母樣式 */
.v-letter {
  position: absolute;
  font-weight: 400;
  opacity: 0;
  animation: floatFade 12s ease-in-out infinite;
  filter: blur(1.2px);
  transition: transform 0.4s ease, filter 0.4s ease;
  will-change: transform, opacity, filter;
  white-space: pre;
  pointer-events: none;
}

/* 前景大字 */
#vanishing-overlay .v-letter {
  font-size: clamp(5rem, 10vw, 12rem);
}

/* 背景小字 */
#vanishing-layer .v-letter {
  font-size: clamp(2rem, 4vw, 6rem);
}

/* 浮動動畫 */
@keyframes floatFade {
  0% {
    opacity: 0;
    transform: translateY(40px) scale(1);
  }
  30% {
    opacity: 1;
    transform: translateY(0px) scale(1.05);
  }
  70% {
    opacity: 1;
    transform: translateY(0px) scale(1.05);
  }
  100% {
    opacity: 0;
    transform: translateY(-30px) scale(1);
  }
}

/* 圖片樣式與動畫 */
.v-image {
  position: absolute;
  width: clamp(60px, 15vw, 180px);
  opacity: 0;
  animation: floatFadeImg 14s ease-in-out infinite;
  transition: transform 0.4s ease, filter 0.4s ease;
  will-change: transform, opacity;
  pointer-events: none;
}

@keyframes floatFadeImg {
  0% {
    opacity: 0;
    transform: translateY(50px) scale(1);
  }
  30% {
    opacity: 1;
    transform: translateY(0px) scale(1.05);
  }
  70% {
    opacity: 1;
    transform: translateY(0px) scale(1.05);
  }
  100% {
    opacity: 0;
    transform: translateY(-40px) scale(1);
  }
}
