/* AIキッチン：Localトップ本文エリアの場面転換。 */
/* 色の面が切り替わり、巨大な英字が背後に敷かれ、写真は枠に収めて展示する。 */
/* 動きで魅せるのではなく、舞台の作りで場面を進める。下りは時間再生、上りは連続した巻き戻し。 */

/* ---- 舞台（準備完了クラスの有無にかかわらず成立する構図） ---- */

/* ---- FV：テーマの部品を降ろし、素材だけ受け取って自前で組む ---- */
/* SWELLのスライダー（Swiper・矢印・赤いボタン）は見せない。 */
/* 枠は一度も動かず、中身だけが下から捲れて入れ替わる。 */
#main_visual[data-aik-fv] .p-mainVisual__inner { display: none; }
#main_visual[data-aik-fv] {
  position: relative;
  height: auto;
  min-height: 0;
  /* palette で最も暗い面。写真の背景（木のテーブル・暖色）と同系色だと */
  /* 料理が面に溶ける。暗室にして料理だけを発光させる。 */
  background-color: #17100d;
  overflow: hidden;
}

.aik-fv {
  --fv-pad: clamp(16px, 5vw, 88px);
  --fv-ink: #fff;
  position: relative;
  box-sizing: border-box;
  height: clamp(420px, calc(100vh - var(--fv-head, 132px)), 840px);
  height: clamp(420px, calc(100svh - var(--fv-head, 132px)), 840px);
  display: grid;
  grid-template-columns: 1fr;
  justify-items: center;
  align-items: center;
  padding: clamp(28px, 4.5vh, 60px) var(--fv-pad) clamp(74px, 10vh, 96px);
  color: var(--fv-ink);
}

/* 面の背後に敷く巨大英字。左端から溢れさせる。 */
.aik-fv__type {
  position: absolute;
  left: calc(var(--fv-pad) * -0.6);
  top: 50%;
  z-index: 0;
  font-family: "Mochiy Pop P One", sans-serif;
  font-size: min(20vw, 230px);
  line-height: 1;
  letter-spacing: .01em;
  color: rgb(255 255 255 / 9%);
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
  translate: var(--fv-type-x, 0px) -50%;
}

.aik-fv__tag {
  position: absolute;
  left: var(--fv-pad);
  top: clamp(26px, 5vh, 52px);
  z-index: 3;
  font-family: "Mochiy Pop P One", sans-serif;
  font-size: 12px;
  letter-spacing: .22em;
  color: rgb(255 255 255 / 80%);
  translate: 0 var(--fv-rise, 0px);
  opacity: var(--fv-appear, 1);
}

/* 展示：枠とキャプション帯と行き先。枠の寸法はここだけで決める。 */
.aik-fv__exhibit {
  position: relative;
  z-index: 2;
  justify-self: center;
  scale: var(--fv-frame-scale, 1);
}
/* 枠の高さは舞台の残りから決める。vh で決めると画面の形によって縦が溢れる。 */
/* 実寸は fvMeasure が入れる。JSが止まっても出る値を控えに置く。 */
.aik-fv__frame {
  position: relative;
  /* 高さは舞台の残り。同じ高さなら正方形が一番大きく見える。 */
  --fv-aspect: 1;
  height: var(--fv-frame-h, clamp(200px, 38vh, 400px));
  aspect-ratio: var(--fv-aspect);
  max-width: min(52vw, 560px);
  overflow: hidden;
  border: 2px solid rgb(255 255 255 / 88%);
  translate: var(--fv-bug-x, 0px) 0;
}
/* バグる：帯のずらし・RGBずれ・ちぎれたブロック・走査線を複製で重ねる。 */
/* 元の写真は出したまま、その上に壊れた切れ端だけを置く。 */
/* 元を隠して複製だけにすると、切れ端の外が空いて枠が抜ける。 */
.aik-fv__plate {
  position: absolute;
  inset: 0;
  /* 崩れている間だけ像をにぶらせ、抜けた瞬間に鮮明になる。 */
  filter: blur(var(--fv-blur, 0px)) contrast(var(--fv-con, 1)) saturate(var(--fv-sat, 1));
}
.aik-fv__ghost {
  position: absolute;
  inset: 0;
  z-index: 8;
  background-size: cover;
  background-repeat: no-repeat;
  opacity: var(--ghost-a, 0);
  pointer-events: none;
  clip-path: inset(var(--band-t, 100%) var(--band-r, 0%) var(--band-b, 0%) var(--band-l, 0%));
  translate: var(--gx, 0px) var(--gy, 0px);
}
/* 色ズレの2枚だけ、背景色と乗算で1チャンネルに落とし、スクリーンで元へ戻す。 */
/* ずれていなければ元通りに見える。 */
.aik-fv__ghost[data-ch] {
  background-blend-mode: multiply;
  mix-blend-mode: screen;
}
.aik-fv__ghost[data-ch="r"] { background-color: #f00; }
.aik-fv__ghost[data-ch="g"] { background-color: #0f0; }
.aik-fv__ghost[data-ch="b"] { background-color: #00f; }

/* 走査線。1本の明るい帯が上から下へ流れる。 */
.aik-fv__scan {
  position: absolute;
  left: 0;
  right: 0;
  z-index: 9;
  height: var(--scan-h, 3px);
  top: var(--scan, 0%);
  background: #fff;
  opacity: var(--scan-a, 0);
  mix-blend-mode: screen;
  pointer-events: none;
}
.aik-fv__flash {
  position: absolute;
  inset: 0;
  z-index: 9;
  background: #fff;
  opacity: var(--fv-flash, 0);
  pointer-events: none;
}

/* 写真は重ねて置き、現役の1枚だけが下から捲れて出る。 */
.aik-fv__shot {
  position: absolute;
  inset: 0;
  margin: 0;
  clip-path: inset(calc((1 - var(--shot, 0)) * 100%) 0 0 0);
}
.aik-fv__shot img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  /* 沼：沈んだ位置から、粘って上がってくる。 */
  translate: 0 calc(var(--sink, 0) * 6%);
}

/* キャプション帯は枠の中の下辺。外に積むとそのぶん写真が小さくなる。 */
.aik-fv__caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 10;
  overflow: hidden;
  height: 32px;
  background: rgb(255 255 255 / 92%);
}
.aik-fv__line {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-inline: 12px;
  box-sizing: border-box;
  color: #33271f;
  font-size: clamp(11px, 1.05vw, 13px);
  letter-spacing: .06em;
  white-space: nowrap;
  translate: 0 calc((1 - var(--slot, 0)) * 100%);
}

.aik-fv__link {
  margin-left: auto;
  padding: 6px 15px;
  border: 1px solid rgb(255 255 255 / 55%);
  color: #fff;
  font-size: 13px;
  letter-spacing: .1em;
  text-decoration: none;
  transition: background-color 200ms ease, border-color 200ms ease;
  translate: 0 var(--fv-rise, 0px);
  opacity: var(--fv-appear, 1);
}
.aik-fv__link:hover { background: rgb(255 255 255 / 14%); border-color: #fff; color: #fff; }
.aik-fv__link[hidden] { visibility: hidden; display: block; }

/* 縦組みのキャッチ。短冊が入れ替わるように、枠の中で上下に抜ける。 */
.aik-fv__catches {
  position: absolute;
  z-index: 2;
  right: var(--fv-pad);
  top: clamp(56px, 11vh, 120px);
  width: var(--fv-catch-w, clamp(50px, 7vw, 92px));
  height: var(--fv-catch-h, min(44vh, 380px));
  /* 短冊の出入りを切るのは天地だけ。左右は切らない。 */
  /* overflow:hidden だと横も切れるので、列が増えたとき左端の列が欠ける。 */
  /* 幅は fvMeasure が実測して与えるが、測り損ねても横は絶対に欠けない。 */
  overflow: visible;
  clip-path: inset(0 -50vw);
}
/* 帯の高さを自分の高さにする。短冊が帯より短いと、待機中の1枚が下から覗く。 */
.aik-fv__catch {
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
  margin: 0;
  writing-mode: vertical-rl;
  font-family: "Mochiy Pop P One", sans-serif;
  font-size: clamp(20px, 2.1vw, 30px);
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: .1em;
  /* 折り返しを止めると長い料理名が帯からはみ出して切れる。 */
  /* 列が増えたぶんの幅は fvMeasure が実測して与える。 */
  /* 行頭に長音符や小書き文字が来ないようにする。 */
  line-break: strict;
  translate: 0 calc((1 - var(--slot, 0)) * 110%);
}

/* 下辺の連番。現役の番号の下に、次へ移るまでの線が伸びる。 */
.aik-fv__rail {
  position: absolute;
  left: var(--fv-pad);
  right: var(--fv-pad);
  bottom: clamp(22px, 3.6vh, 42px);
  z-index: 3;
  display: flex;
  align-items: flex-end;
  gap: 18px;
  translate: 0 var(--fv-rise, 0px);
  opacity: var(--fv-appear, 1);
}
.aik-fv__step {
  position: relative;
  padding: 0 0 7px;
  border: 0;
  background: transparent;
  color: rgb(255 255 255 / 52%);
  font-family: "Mochiy Pop P One", sans-serif;
  font-size: 15px;
  letter-spacing: .12em;
  cursor: pointer;
  transition: color 240ms ease;
}
.aik-fv__step::before,
.aik-fv__step::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
}
.aik-fv__step::before { background: rgb(255 255 255 / 26%); }
.aik-fv__step::after {
  background: #fff;
  transform: scaleX(var(--step, 0));
  transform-origin: 0 50%;
}
.aik-fv__step[aria-current="true"] { color: #fff; font-size: 26px; }

.aik-fv__hold {
  margin-left: 12px;
  padding: 5px 14px;
  border: 1px solid rgb(255 255 255 / 55%);
  border-radius: 999px;
  background: transparent;
  color: #fff;
  font-size: 12px;
  letter-spacing: .1em;
  cursor: pointer;
  transition: background-color 200ms ease, border-color 200ms ease;
}
.aik-fv__hold:hover { background: rgb(255 255 255 / 14%); border-color: #fff; }

/* テーマのスクロール誘導はそのまま借りるが、見た目だけ合わせる。 */
#main_visual[data-aik-fv] .p-mainVisual__scroll {
  position: absolute;
  left: 50%;
  bottom: 10px;
  z-index: 3;
  translate: -50% 0;
  opacity: calc(var(--fv-appear, 1) * .8);
}

@media (max-width: 767px) {
  .aik-fv {
    height: clamp(400px, calc(100vh - var(--fv-head, 116px)), 760px);
    height: clamp(400px, calc(100svh - var(--fv-head, 116px)), 760px);
    /* 料理名を上に置くぶん、写真の天を下げる。 */
    padding-top: clamp(126px, 18vh, 156px);
  }
  /* 幅が足りないので、写真は横いっぱいまで使う。 */
  .aik-fv__frame { --fv-aspect: 0.8; max-width: calc(100vw - 2 * var(--fv-pad)); }
  /* 縦組みは幅を食って写真を痩せさせるので、スマホだけ上で横組みにする。 */
  .aik-fv__catches {
    left: var(--fv-pad);
    right: var(--fv-pad);
    top: clamp(50px, 8vh, 78px);
    width: auto;
    height: clamp(54px, 8.5vh, 72px);
  }
  .aik-fv__catch {
    left: 0;
    right: auto;
    height: 100%;
    writing-mode: horizontal-tb;
    white-space: normal;
    font-size: clamp(18px, 4.8vw, 24px);
    letter-spacing: .04em;
  }
  .aik-fv__type { font-size: min(26vw, 150px); }
  .aik-fv__tag { top: clamp(18px, 3.5vh, 34px); }
  .aik-fv__rail { gap: 13px; }
  .aik-fv__link { font-size: 12px; padding: 5px 12px; }
}

/* ---- 開幕の幕 ---- */
/* 読み込み直後、全画面の面が一拍おいて上へ持ち上がる。JSが作ったときだけ存在する。 */
.aik-opening {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  background-color: #8c4223;
  transform: scaleY(var(--aik-open, 1));
  transform-origin: 50% 0;
  pointer-events: none;
}
.aik-opening__mark {
  grid-area: 1 / 1;            /* 3つの言葉を同じ位置に重ねる */
  text-align: center;
  /* Mochiy Pop P One は全角「！」の実体を持たず空白になるため、本文書体を使う。 */
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 700;
  font-size: clamp(28px, 5.5vw, 64px);
  letter-spacing: .14em;
  color: #fff;
  translate: 0 var(--aik-open-y, 0px);
  scale: var(--aik-open-scale, 1);
  opacity: var(--aik-open-mark, 1);
}
/* 各語をタイプ表示。表示中の語だけ、末尾のカーソルを穏やかに点滅させる。 */
/* 全角1字＝1em、字間.14emなので1字あたり1.14emずつ開く。 */
.aik-opening__mark[data-typed] {
  display: inline-block;
  width: var(--aik-type-w, 0px);
  overflow: hidden;
  white-space: nowrap;
  text-align: left;
  border-right: .06em solid transparent;
}
.aik-opening__mark[data-typing] {
  border-right-color: currentColor;
  /* 短い語でもカーソルが消失しないよう、明暗だけをゆっくり往復する。 */
  animation: aik-opening-blink .9s ease-in-out infinite;
}
@keyframes aik-opening-blink {
  0%, 100% { border-right-color: currentColor; }
  50% { border-right-color: color-mix(in srgb, currentColor 28%, transparent); }
}
@media (prefers-reduced-motion: reduce) {
  .aik-opening { display: none !important; }
}

/* 最後の面をフッターに接させる。テーマ既定の .l-content の下余白96pxを消す。 */
/* 面が全幅で切り替わる構図では、この余白が白い帯として残ってしまうため。 */
.l-content:has(.aik-home-main) {
  margin-bottom: 0;
}

/* 区画は面と背景英字を抱える器になる。英字がはみ出しても横スクロールを出さない。 */
.aik-home-main [data-aik-scene] {
  position: relative;
  overflow: hidden;
}
.aik-home-main [data-aik-scene] > * {
  position: relative;
  z-index: 2;
}

/* 面の背後に敷く巨大な英字。読み上げ対象にも操作対象にもしない。 */
.aik-home-main .aik-scene-type {
  position: absolute;
  top: 50%;
  z-index: 1;
  font-family: "Mochiy Pop P One", sans-serif;
  font-size: min(21vw, 230px);
  line-height: 1;
  letter-spacing: .01em;
  color: rgb(134 96 62 / 7%);
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
  translate: var(--aik-type-x, 0px) -50%;
}
.aik-home-main .aik-scene-type[data-side="left"] { left: -3vw; }
.aik-home-main .aik-scene-type[data-side="right"] { right: -3vw; }

/* 見出しの上に置く小さなブラケットラベル。英字はここだけに残す。 */
.aik-home-main .aik-scene-tag {
  display: block;
  font-family: "Mochiy Pop P One", sans-serif;
  font-size: 12px;
  letter-spacing: .22em;
  line-height: 1;
  color: rgb(140 66 35 / 72%);
  margin-bottom: 14px;
}

/* 区画の外縁に立てる縦組みの見出し。狭い画面では出さない。 */
.aik-home-main .aik-scene-rail {
  position: absolute;
  top: 78px;
  z-index: 1;
  writing-mode: vertical-rl;
  font-size: 12px;
  letter-spacing: .3em;
  line-height: 1;
  color: rgb(51 39 31 / 38%);
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
  translate: 0 var(--aik-rail-y, 0px);
  opacity: var(--aik-appear, 1);
}
.aik-home-main .aik-scene-rail[data-side="left"] { left: 30px; }
.aik-home-main .aik-scene-rail[data-side="right"] { right: 30px; }
@media (max-width: 1099px) {
  .aik-home-main .aik-scene-rail { display: none; }
}

/* 写真を「展示」する。細い枠と、下辺のキャプション帯。 */
.aik-home-main #aik-home-latest .aik-post-card { position: relative; }
.aik-home-main .aik-photo-frame {
  position: absolute;
  left: 9px;
  right: 9px;
  top: 9px;
  height: calc(var(--aik-photo-h, 231px) - 18px);
  z-index: 3;
  border: 1px solid rgb(255 255 255 / 72%);
  pointer-events: none;
  opacity: var(--aik-appear, 1);
}
.aik-home-main .aik-photo-caption {
  position: absolute;
  left: 9px;
  top: calc(var(--aik-photo-h, 231px) - 40px);
  z-index: 3;
  padding: 3px 10px;
  background: rgb(255 255 255 / 88%);
  color: #53351f;
  font-size: 11px;
  letter-spacing: .08em;
  line-height: 1.4;
  pointer-events: none;
  opacity: var(--aik-appear, 1);
}
/* 話数はアウトラインの大きな数字で写真に重ねる。 */
.aik-home-main .aik-ep-number {
  position: absolute;
  right: 14px;
  top: 10px;
  z-index: 3;
  font-family: "Mochiy Pop P One", sans-serif;
  font-size: 68px;
  line-height: .85;
  letter-spacing: .02em;
  color: transparent;
  -webkit-text-stroke: 2px rgb(255 255 255 / 82%);
  pointer-events: none;
  user-select: none;
  translate: var(--aik-number-x, 0px) var(--aik-rise, 0px);
  scale: var(--aik-number-scale, 1);
  transform-origin: 50% 50%;
  opacity: var(--aik-appear, 1);
}

@media (max-width: 599px) {
  .aik-home-main .aik-scene-type { font-size: min(30vw, 150px); }
  /* 横並びの小さいカードでは写真が左にあるので、話数も左へ寄せて写真の上に置く。 */
  .aik-home-main .aik-ep-number {
    font-size: 46px;
    right: auto;
    left: 14px;
    top: 8px;
    -webkit-text-stroke-width: 1.5px;
  }
}

/* ---- 動き（JSの準備完了クラスがあるときだけ） ---- */
@media (prefers-reduced-motion: no-preference) {

  /* 生成りの区画は、自分の色の面が上辺から下へ開いて現れる。 */
  .aik-home-main.aik-home-motion-ready [data-aik-field] {
    background-color: transparent !important;
  }
  .aik-home-main.aik-home-motion-ready [data-aik-field]::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background-color: var(--aik-field-color, #f8f3eb);
    /* 縦に開く区画と横に掃く区画を交互にして、場面の変わり方に抑揚を付ける。 */
    /* 動かす軸だけ --aik-axis-* を1にすれば、進行は --aik-field 一本で足りる。 */
    transform: scale(
      calc(1 - (1 - var(--aik-field, 0)) * var(--aik-axis-x, 0)),
      calc(1 - (1 - var(--aik-field, 0)) * var(--aik-axis-y, 1))
    );
    transform-origin: var(--aik-field-origin, 50% 0);
  }

  /* 深い面の区画だけ、面の上に直接乗る文字を白抜きにする。 */
  /* カードは白い面を持ったままなので、その中の文字色は触らない。 */
  /* 枠線は面の開き具合に連動。文字は末尾の実座標グラデーションで塗り分ける。 */
  /* 25%で枠線の色を白へ。文字色の判定にはこの割合を使わない。 */
  .aik-home-main.aik-home-motion-ready [data-aik-invert] {
    --aik-invert-mix: calc(min(1, var(--aik-field, 1) * 4) * 100%);
  }
  .aik-home-main.aik-home-motion-ready [data-aik-invert] .aik-home-section__title,
  .aik-home-main.aik-home-motion-ready [data-aik-invert] .aik-home-section__copy {
    color: color-mix(in srgb, #fff var(--aik-invert-mix, 100%), #33271f);
  }
  .aik-home-main.aik-home-motion-ready [data-aik-invert] .aik-scene-tag {
    color: color-mix(in srgb, #fff var(--aik-invert-mix, 100%), #8c4223);
  }
  .aik-home-main.aik-home-motion-ready [data-aik-invert] .aik-scene-type {
    color: rgb(255 255 255 / 12%);
  }
  .aik-home-main.aik-home-motion-ready [data-aik-invert] .aik-scene-rail {
    color: rgb(255 255 255 / 52%);
  }
  .aik-home-main.aik-home-motion-ready [data-aik-invert] .aik-home-button--secondary {
    color: color-mix(in srgb, #fff var(--aik-invert-mix, 100%), #33271f);
    background-color: transparent;
    border-color: color-mix(in srgb, rgb(255 255 255 / 72%) var(--aik-invert-mix, 100%), #8c4223);
  }
  .aik-home-main.aik-home-motion-ready [data-aik-invert] .aik-home-button--secondary:hover {
    color: #fff;
    background-color: rgb(255 255 255 / 14%);
    border-color: #fff;
    box-shadow: none;
  }

  /* 面の中身。文字は不透明度を触らず、わずかに上がって止まるだけ。 */
  .aik-home-main.aik-home-motion-ready [data-aik-rise] {
    translate: 0 var(--aik-rise, 0px);
    scale: var(--aik-rise-scale, 1);
  }
  /* 話数は共通のriseより専用の横移動・拡大率を優先する。 */
  .aik-home-main.aik-home-motion-ready .aik-ep-number[data-aik-rise] {
    translate: var(--aik-number-x, 0px) var(--aik-rise, 0px);
    scale: var(--aik-number-scale, 1);
  }
  .aik-home-main.aik-home-motion-ready [data-aik-appear] {
    opacity: var(--aik-appear, 1);
  }

  /* 見出しの中の英字は、巨大な背景英字とブラケットラベルに役を渡して退く。 */
  .aik-home-main.aik-home-motion-ready .aik-home-section__title::before,
  .aik-home-main.aik-home-motion-ready .aik-home-intro__title::before {
    content: none;
  }

  /* ---- 触れたときの反応（JSに依存しない） ---- */
  @media (hover: hover) and (pointer: fine) {
    .aik-home-main #aik-home-latest .aik-post-card,
    .aik-home-main #aik-home-comments .aik-comment-card,
    .aik-home-main #aik-home-extras .aik-extra-card,
    .aik-home-main #aik-home-popular .aik-ranking-item,
    .aik-home-main #aik-home-characters .aik-character-card,
    .aik-home-main #aik-home-topics .aik-topic-link,
    .aik-home-main .aik-home-button {
      transition: transform 200ms cubic-bezier(.22,1,.36,1), box-shadow 200ms cubic-bezier(.22,1,.36,1), border-color 180ms ease;
    }
    .aik-home-main #aik-home-latest .aik-post-card:hover,
    .aik-home-main #aik-home-comments .aik-comment-card:hover,
    .aik-home-main #aik-home-extras .aik-extra-card:hover,
    .aik-home-main #aik-home-characters .aik-character-card:hover,
    .aik-home-main #aik-home-topics .aik-topic-link:hover {
      transform: translate3d(0, -3px, 0);
      border-color: var(--aik-accent);
      box-shadow: 0 8px 22px rgb(83 53 32 / 12%);
    }
    .aik-home-main #aik-home-popular .aik-ranking-item:hover {
      transform: translate3d(0, -2px, 0);
      box-shadow: 0 6px 16px rgb(83 53 32 / 10%);
    }
    .aik-home-main .aik-home-button:hover {
      transform: translate3d(0, -2px, 0);
      box-shadow: 0 6px 16px rgb(83 53 32 / 14%);
    }
    .aik-home-main #aik-home-latest .aik-post-card:active,
    .aik-home-main #aik-home-comments .aik-comment-card:active,
    .aik-home-main #aik-home-extras .aik-extra-card:active,
    .aik-home-main #aik-home-characters .aik-character-card:active,
    .aik-home-main #aik-home-topics .aik-topic-link:active,
    .aik-home-main #aik-home-popular .aik-ranking-item:active,
    .aik-home-main .aik-home-button:active {
      transform: translate3d(0, 0, 0);
      transition-duration: 90ms;
    }
  }
}

/* 減動作：構図はそのまま、動きだけ止める。面は最初から開いた状態。 */
@media (prefers-reduced-motion: reduce) {
  .aik-home-main [data-aik-field]::after { content: none !important; }
  .aik-home-main [data-aik-rise],
  .aik-home-main [data-aik-appear],
  .aik-home-main .aik-scene-type,
  .aik-home-main .aik-ep-number,
  .aik-home-main .aik-home-section__title::before,
  .aik-home-main .aik-home-intro__title::before,
  .aik-home-main .aik-character-card,
  .aik-home-main .aik-topic-link,
  .aik-home-main .aik-post-card,
  .aik-home-main .aik-comment-card,
  .aik-home-main .aik-extra-card,
  .aik-home-main .aik-ranking-item,
  .aik-home-main .aik-home-button {
    transform: none !important;
    transition: none !important;
    opacity: 1 !important;
  }
  .aik-home-main [data-aik-rise],
  .aik-home-main .aik-ep-number,
  .aik-home-main .aik-scene-rail { translate: none !important; }
  .aik-home-main .aik-scene-type { translate: 0 -50% !important; }
}

/* Mochiy Pop P Oneの縦組み代替字形では左画が極端に細くなる3字だけ元字形を使う。 */
.aik-fv__horizontal-glyph { font-feature-settings: "vert" 0, "vrt2" 0; }
@media (prefers-reduced-motion: no-preference) {
  /* 面の実際の左右境界で文字を塗り分ける。逆行途中も白地には濃色。 */
  .aik-home-main.aik-home-motion-ready [data-aik-invert] :is(.aik-home-section__title,.aik-home-section__copy,.aik-scene-tag,.aik-scene-rail,.aik-home-button--secondary) {
    background-image: linear-gradient(to right, var(--aik-ink-left,#33271f) var(--aik-ink-edge,0px), var(--aik-ink-right,#33271f) var(--aik-ink-edge,0px));
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
  }
}
