/* ReStandard テキスト演出 - 競合に勝つ高優先度実装 */
:root {
  --rs-reveal-duration: 900ms;
  --rs-reveal-delay: 60ms;
  --rs-reveal-ease: cubic-bezier(.22,.61,.36,1);
  --rs-reveal-shift: 14px;
}

/* 初期状態：JavaScriptが読み込まれる前は通常表示 */
.rs-reveal[data-reveal] {
  opacity: 1 !important;
  transform: translateX(0) !important;
  will-change: opacity, transform, clip-path, mask-position, mask-size;
}

/* JavaScript適用後の初期状態：不可視（rs-revealクラスが2回適用された場合のみ） */
.rs-reveal.rs-reveal.rs-reveal[data-reveal] {
  opacity: 0 !important;
  transform: translateX(var(--rs-reveal-shift)) !important;
}

/* "見える"状態 */
.rs-reveal.is-visible[data-reveal] {
  opacity: 1 !important;
  transform: translateX(0) !important;
}

/* Wipe（左→右） */
.rs-reveal[data-reveal="wipe"] {
  -webkit-mask-image: linear-gradient(#000 0 0) !important;
          mask-image: linear-gradient(#000 0 0) !important;
  -webkit-mask-size: 0% 100% !important;
          mask-size: 0% 100% !important;
  -webkit-mask-repeat: no-repeat !important;
          mask-repeat: no-repeat !important;
  -webkit-mask-position: left center !important;
          mask-position: left center !important;
  transition: -webkit-mask-size var(--rs-reveal-duration) var(--rs-reveal-ease),
              mask-size var(--rs-reveal-duration) var(--rs-reveal-ease),
              opacity var(--rs-reveal-duration) var(--rs-reveal-ease) !important;
}
.rs-reveal.is-visible[data-reveal="wipe"] {
  -webkit-mask-size: 100% 100% !important;
          mask-size: 100% 100% !important;
}

/* Char（文字ごと） */
.rs-reveal[data-reveal="char"] .rs-char {
  display: inline-block !important;
  opacity: 0 !important;
  transform: translateX(var(--rs-reveal-shift)) !important;
  transition: transform var(--rs-reveal-duration) var(--rs-reveal-ease),
              opacity var(--rs-reveal-duration) var(--rs-reveal-ease) !important;
}
.rs-reveal.is-visible[data-reveal="char"] .rs-char {
  opacity: 1 !important;
  transform: translateX(0) !important;
}
.rs-reveal[data-reveal="char"] .rs-char {
  transition-delay: calc(var(--i) * var(--rs-reveal-delay)) !important;
}

/* Line（行ごと） */
.rs-reveal[data-reveal="line"] > .rs-line {
  display: block !important;
  opacity: 0 !important;
  transform: translateX(var(--rs-reveal-shift)) !important;
  transition: transform var(--rs-reveal-duration) var(--rs-reveal-ease),
              opacity var(--rs-reveal-duration) var(--rs-reveal-ease) !important;
}
.rs-reveal.is-visible[data-reveal="line"] > .rs-line {
  opacity: 1 !important;
  transform: translateX(0) !important;
}
.rs-reveal.is-visible[data-reveal="line"] > .rs-line {
  transition-delay: calc(var(--i) * var(--rs-reveal-delay)) !important;
}

/* reduced motion 対応（アニメ無効化） */
@media (prefers-reduced-motion: reduce) {
  .rs-reveal, .rs-reveal * {
    transition: none !important;
    animation: none !important;
  }
  .rs-reveal,
  .rs-reveal .rs-line,
  .rs-reveal .rs-char {
    opacity: 1 !important;
    transform: none !important;
    -webkit-mask-size: 100% 100% !important;
            mask-size: 100% 100% !important;
  }
}

/* --- 強制可視: about / brands 内の reveal を全解除 --- */
#about .rs-reveal[data-reveal],
#brands .rs-reveal[data-reveal] {
  opacity: 1 !important;
  transform: none !important;
  -webkit-mask-size: 100% 100% !important;
          mask-size: 100% 100% !important;
  transition: none !important; /* 一旦アニメも停止 */
}

/* 過度な表示強制削除 - 必要な場合のみ個別対応 */

/* z-index/重なり対策（header等が覆っている場合の保険） */
#about, #brands { 
  position: relative; 
  z-index: 0; 
} 
