/*
 * cursor.css — オーガニックカーソル
 * ブロブのスタイルはJS側で直接制御。
 * タッチデバイスでは @media (hover: hover) により無効化。
 */

@media (hover: hover) {

  /* タグ バウンス回転 */
  .tag,
  .bounce-tag,
  .news-filter__btn,
  .texts-filter__btn {
    transition:
      transform .4s cubic-bezier(.34,1.56,.64,1),
      background .2s,
      color .2s,
      border-color .2s;
  }
  .tag:hover,
  .bounce-tag:hover,
  .news-filter__btn:hover:not(.is-active),
  .texts-filter__btn:hover:not(.is-active) {
    transform: rotate(-7deg) scale(1.06);
  }

  /* テキストリンク 下線入れ替わり */
  .text-article__body a,
  .texts-row__title a {
    color: var(--color-ink);
    text-decoration: none;
    position: relative;
  }
  .text-article__body a::before,
  .texts-row__title a::before {
    content: '';
    position: absolute;
    bottom: -1px; left: 0; right: 0;
    height: 1px;
    background: var(--color-ink);
    transform-origin: right;
    transform: scaleX(1);
    transition: transform .3s ease;
  }
  .text-article__body a:hover::before,
  .texts-row__title a:hover::before {
    transform-origin: left;
    transform: scaleX(0);
  }
  .text-article__body a::after,
  .texts-row__title a::after {
    content: '';
    position: absolute;
    bottom: -1px; left: 0; right: 0;
    height: 1px;
    background: var(--color-ink);
    transform-origin: left;
    transform: scaleX(0);
    transition: transform .3s ease .04s;
  }
  .text-article__body a:hover::after,
  .texts-row__title a:hover::after {
    transform: scaleX(1);
  }

  /* ナビリンク アンダーラインスライドイン */
  .site-nav a {
    position: relative;
    padding-bottom: 2px;
  }
  .site-nav a::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0;
    width: 100%; height: 1px;
    background: var(--color-ink);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .25s ease;
  }
  .site-nav a:hover::after,
  .site-nav a.current::after { transform: scaleX(1); }

  /* 矢印スライド */
  .works-list-mobile__arr,
  .texts-row__arr,
  .news-row__arr {
    transition: transform .2s ease, color .2s;
  }
  .works-list-mobile__item:hover .works-list-mobile__arr,
  .texts-row:hover .texts-row__arr,
  .news-row:hover .news-row__arr {
    transform: translateX(4px);
    color: var(--color-ink);
  }
}

@media print {
  * { cursor: auto !important; }
  .ch-cursor-wrap,
  .ch-cursor-particles { display: none !important; }
}
