/* 161（2026-10-08）モーション層。JSが html.mo161 を付けたときだけ有効（JSなし・reduced motion では常に表示） */
html.mo161 .mo161-head>*{opacity:0;transform:translateY(18px);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1)}
html.mo161 .mo161-head.is-in>*{opacity:1;transform:none}
html.mo161 .mo161-head.is-in>*:nth-child(2){transition-delay:.12s}
html.mo161 .mo161-head.is-in>*:nth-child(3){transition-delay:.24s}
html.mo161 .mo161-head h2::after{transform:scaleX(0);transform-origin:left;transition:transform .8s .35s cubic-bezier(.22,1,.36,1)}
html.mo161 .mo161-head.is-in h2::after{transform:scaleX(1)}
html.mo161 .mo161-head[data-chapter111]::before{transform:scale(.4);opacity:0;transition:transform .6s cubic-bezier(.34,1.56,.64,1),opacity .4s}
html.mo161 .mo161-head.is-in[data-chapter111]::before{transform:none;opacity:1}

html.mo161 .mo161-stagger>*{opacity:0;transform:translateY(22px) scale(.985);transition:opacity .65s cubic-bezier(.22,1,.36,1),transform .65s cubic-bezier(.22,1,.36,1);transition-delay:calc(var(--i,0) * 70ms)}
html.mo161 .mo161-stagger.is-in>*{opacity:1;transform:none}

/* グラフ・積み木：見えてから伸びる */
html.mo161 .mo161-grow :is(.cf154-bar,.grow152-bar,.ak150-stack i){animation-play-state:paused!important}
html.mo161 .mo161-grow.is-in :is(.cf154-bar,.grow152-bar,.ak150-stack i){animation-play-state:running!important}
html.mo161 .cf154-line{clip-path:inset(-10px 100% -10px 0);transition:clip-path 1.6s .4s cubic-bezier(.22,1,.36,1)}
html.mo161 .mo161-grow.is-in .cf154-line{clip-path:inset(-10px -10px -10px 0)}
html.mo161 .cf154-dot,html.mo161 .cf154-art{opacity:0;transition:opacity .4s}
html.mo161 .mo161-grow.is-in :is(.cf154-dot,.cf154-art){opacity:1;transition-delay:1.2s}
html.mo161 .ak150-stack i:nth-child(n){animation-delay:calc(var(--d,0) * 1ms)}

/* マーカー：左から引く */
html.mo161 .mo161-mark{background-size:0% 100%!important;background-repeat:no-repeat!important;transition:background-size 1s .25s cubic-bezier(.22,1,.36,1)}
html.mo161 .mo161-mark.is-in{background-size:100% 100%!important}

/* Before/After：散らばった線が点滅→AIKATA側はつながる線が伸びる */
html.mo161 .v151-ba .v151-lines{animation:mo161blink 2.4s ease-in-out infinite}
@keyframes mo161blink{0%,100%{opacity:.9}50%{opacity:.35}}
html.mo161 .v151-ba .v151-node{animation:mo161float 4s ease-in-out infinite}
html.mo161 .v151-ba .v151-node.n1{animation-delay:-1s}html.mo161 .v151-ba .v151-node.n2{animation-delay:-2s}html.mo161 .v151-ba .v151-node.n3{animation-delay:-3s}html.mo161 .v151-ba .v151-node.n4{animation-delay:-1.5s}
@keyframes mo161float{0%,100%{translate:0 0}50%{translate:0 -6px}}
html.mo161 .v151-line{transform:scaleX(0);transform-origin:left;transition:transform .7s .5s cubic-bezier(.22,1,.36,1)}
html.mo161 .v151-ba.is-in .v151-line{transform:none}
html.mo161 .v151-core{transition:box-shadow .6s}
html.mo161 .v151-ba.is-in .v151-core{animation:mo161pulse 2.8s 1.2s ease-in-out infinite}
@keyframes mo161pulse{0%,100%{outline:0 solid rgba(143,125,255,.0)}50%{outline:8px solid rgba(143,125,255,.18)}}

/* FV・ステージ：スクロールで少し奥行き */
html.mo161 section.hero::before,html.mo161 section.hero110 .wind-ribbons110{translate:0 calc(var(--py,0) * -40px)}
html.mo161 section.hero::after{translate:0 calc(var(--py,0) * 30px)}

/* ボタン：触れると矢印が進む（全ボタン共通の小さな手ざわり） */
@media(hover:hover){
  html.mo161 :is(.more155-link,.more150-link,.bk155-add){transition:transform .2s,background-color .2s,color .2s,border-color .2s}
  html.mo161 :is(.more155-link,.more150-link):hover{transform:translateY(-2px)}
  html.mo161 .bk155-add:hover{transform:translateY(-2px)}
  html.mo161 .b158-card{transition:transform .3s cubic-bezier(.22,1,.36,1),border-color .3s}
  html.mo161 .b158-card:hover{transform:translateY(-4px);border-color:#2448d8}
  html.mo161 .ak150-case{transition:transform .3s cubic-bezier(.22,1,.36,1),border-color .3s}
  html.mo161 .ak150-case:hover{transform:translateY(-4px);border-color:#4b3bd0}
}
