@charset "UTF-8";
/* ==========================================================================
   AH 26 mid summer LOOK BOOK  -  animation CSS
   ・.js-anim を JS(GSAP有効時)が付与したときだけ初期状態を隠す
   ・GSAP未読込/prefers-reduced-motion/?static のときは .js-anim が付かず常に可視
   ========================================================================== */

.ah26ms.js-anim [data-anim] {
  will-change: transform, opacity;
}
.ah26ms.js-anim figure {
  overflow: hidden;
}
.ah26ms.js-anim figure > img {
  transform-origin: center center;
}

/* 本文（下からスライド） */
.ah26ms.js-anim [data-anim="txt"] {
  opacity: 0;
  transform: translateY(28px);
}
/* FV テキスト（下から順番に）: ラベル2行(ln)＋A Touch of Ease */
.ah26ms.js-anim .contents00_02 .contents00_02_ln,
.ah26ms.js-anim .contents00_03 .text01 {
  opacity: 0;
  transform: translateY(24px);
}

/* 見出し・本文キャプション（1行ずつ下から見切れて出す）: PC/SP共通で行マスク */
.ah26ms.js-anim [data-anim="lines"] > span,
.ah26ms.js-anim [data-anim="ttl"] > span,
.ah26ms.js-anim [data-anim="slidelines"] > span {
  overflow: hidden;
}
/* slidelines: ボックス自体を最初に隠してスライドイン（PC/SP共通） */
.ah26ms.js-anim [data-anim="slidelines"] {
  opacity: 0;
}
/* 見出しもフォント確定→行リビール準備までは隠す（フラッシュ防止。JSがopacity:1に） */
.ah26ms.js-anim [data-anim="ttl"],
.ah26ms.js-anim [data-anim="lines"] {
  opacity: 0;
}
/* SP: JSが生成する自然行マスク（1行ずつ見切れて出す）。SPのspan{display:inline}を上書きするため2クラス指定で優先 */
.ah26ms .ah26ms-ln-mask {
  display: block;
  overflow: hidden;
}
