/* リッチ演出レイヤー(10-05 追加)。既存の polish-motion(登場フェード・ピン留めループ)はそのまま、上に重ねる。
   トリガーは polish.js が付ける .pb-entered(入場済) / .pb-active(表示中) を共用。遅延は rich.js が --rich-i(要素の順番) を付与 */
.rich-ready .pb-page .pb-title { --rich-i: 0; }

/* 見出し: 下線が左→右に伸びる(帯と同じ茶/緑)。文字はわずかなブラーから結像 */
/* 10-05: メインキャッチは素直なフェードイン(位置は動かさない・ぼかしなし) */
.rich-ready .pb-page .pb-title { position: relative; opacity: 0; transform: none; filter: none; transition: opacity 1.4s ease var(--pb-delay, 0ms); }
.rich-ready .pb-entered .pb-title { opacity: 1; transform: none; }
.rich-ready .pb-page:not(.pb-entered) .pb-title { transition: none; }
.rich-ready .pb-page .pb-title::after { content: ""; position: absolute; left: 0; bottom: -.18em; width: 100%; height: .14em; border-radius: 999px; background: currentColor; opacity: .55; transform: scaleX(0); transform-origin: left center; transition: transform 1s cubic-bezier(.65, 0, .35, 1) calc(var(--pb-delay, 0ms) + 500ms); }
.rich-ready .pb-entered .pb-title::after { transform: scaleX(1); }

/* 本文: 行ごとにわずかに遅れて浮き上がる(既存の data-pb-reveal の上に、文字間が締まる動き) */
.rich-ready .pb-page .pb-copy { letter-spacing: .2em; transition: letter-spacing 1.2s cubic-bezier(.2, .7, .2, 1) var(--pb-delay, 0ms), opacity var(--pb-reveal, 1500ms) var(--pb-ease, ease) var(--pb-delay, 0ms), transform var(--pb-reveal, 1500ms) var(--pb-ease, ease) var(--pb-delay, 0ms); }
.rich-ready .pb-entered .pb-copy { letter-spacing: .05em; }

/* イラスト: 弾んで登場(縮小+少し回転→戻る) + 表示中はゆっくり浮遊 */
.rich-ready .pb-page .pb-art { transform-origin: 50% 90%; }
.rich-ready .pb-page [data-pb-reveal] > .pb-art { animation: none; }
.rich-ready .pb-entered .pb-worker .pb-art, .rich-ready .pb-entered .pb-mentor .pb-art, .rich-ready .pb-entered .pb-travel .pb-art, .rich-ready .pb-entered .pb-message-art .pb-art { animation: richPop 1.1s cubic-bezier(.2, 1.4, .3, 1) calc(var(--pb-delay, 0ms) + 200ms) both; }
.rich-ready .pb-active .pb-worker .pb-art, .rich-ready .pb-active .pb-mentor .pb-art, .rich-ready .pb-active .pb-message-art .pb-art { animation: richPop 1.1s cubic-bezier(.2, 1.4, .3, 1) calc(var(--pb-delay, 0ms) + 200ms) both, richFloat 4.2s ease-in-out 1.4s infinite alternate; }
.rich-ready .pb-active .pb-travel .pb-art { animation: richPop 1.1s cubic-bezier(.2, 1.4, .3, 1) calc(var(--pb-delay, 0ms) + 200ms) both, richWalk 1.1s ease-in-out 1.4s infinite alternate; }
@keyframes richPop { 0% { transform: scale(.82) rotate(-4deg); opacity: 0; } 60% { opacity: 1; } 100% { transform: scale(1) rotate(0); opacity: 1; } }
@keyframes richFloat { from { transform: translateY(0) rotate(0); } to { transform: translateY(-7px) rotate(1.2deg); } }
@keyframes richWalk { from { transform: translateY(0) rotate(-.8deg); } to { transform: translateY(-5px) rotate(.8deg); } }

/* 共感: 悩み3行が左から順に差し込まれ、最後に「要調査！」がスタンプのように押される */
.rich-ready .pb-check .pb-worries p { transform: translateX(-18px); }
.rich-ready .pb-entered.pb-check .pb-worries p { transform: translateX(0); }
.rich-ready .pb-check .pb-check-end { transform: scale(1.06) rotate(-3deg); transition-timing-function: cubic-bezier(.2, 1.6, .3, 1); transition-delay: 1100ms; }
.rich-ready .pb-entered.pb-check .pb-check-end { transform: scale(1) rotate(0); }
.rich-ready .pb-check .pb-check-end { letter-spacing: .1em; }
.rich-ready .pb-entered.pb-check .pb-check-end { letter-spacing: .02em; }

/* 核心: 地層が下から順に積み上がり、土のキャラが乗る */
.rich-ready .pb-concept .pb-stratum { transform: scaleY(0); transform-origin: bottom; transition: transform .9s cubic-bezier(.65, 0, .35, 1); }
.rich-ready .pb-entered.pb-concept .pb-stratum.s3 { transform: scaleY(1); transition-delay: .3s; }
.rich-ready .pb-entered.pb-concept .pb-stratum.s2 { transform: scaleY(1); transition-delay: .6s; }
.rich-ready .pb-entered.pb-concept .pb-stratum.s1 { transform: scaleY(1); transition-delay: .9s; }
.rich-ready .pb-entered.pb-concept .pb-soil .pb-art { animation: richDrop 1s cubic-bezier(.2, 1.3, .3, 1) 1.1s both; }
@keyframes richDrop { 0% { transform: translateY(-40px) scale(.9); opacity: 0; } 100% { transform: translateY(0) scale(1); opacity: 1; } }

/* 仕事内容: 重機が右からスライドイン、地面の層が下から順に塗られる */
.rich-ready .pb-work .pb-ground > path:nth-child(-n+3) { transform: scaleY(0); transform-origin: bottom; transition: transform 1s cubic-bezier(.65, 0, .35, 1); transform-box: fill-box; }
.rich-ready .pb-entered.pb-work .pb-ground > path:nth-child(3) { transform: scaleY(1); transition-delay: .2s; }
.rich-ready .pb-entered.pb-work .pb-ground > path:nth-child(2) { transform: scaleY(1); transition-delay: .5s; }
.rich-ready .pb-entered.pb-work .pb-ground > path:nth-child(1) { transform: scaleY(1); transition-delay: .8s; }
.rich-ready .pb-entered.pb-work .pb-machine .pb-art { animation: richSlideIn 1.2s cubic-bezier(.2, .9, .2, 1) .9s both; }
@keyframes richSlideIn { 0% { transform: translateX(70px) rotate(2deg); opacity: 0; } 100% { transform: translateX(0) rotate(0); opacity: 1; } }

/* 未経験: 吹き出しがしっぽ側から膨らんで出る */
.rich-ready .pb-beginner .pb-support p { transform: scale(.6); transform-origin: left bottom; transition-timing-function: cubic-bezier(.2, 1.5, .3, 1); }
.rich-ready .pb-beginner .pb-support p:nth-child(2) { transform-origin: right bottom; }
.rich-ready .pb-entered.pb-beginner .pb-support p { transform: scale(1); }

/* キャリア: 番号が順に点灯(大きく出て定位置へ)、道が伸びる(既存) */
.rich-ready .pb-career .pb-career-steps li, .rich-ready .pb-career .pb-career-steps > * { opacity: 0; transform: translateY(14px) scale(.9); transition: opacity .6s ease calc(.4s + var(--rich-i, 0) * .18s), transform .7s cubic-bezier(.2, 1.4, .3, 1) calc(.4s + var(--rich-i, 0) * .18s); }
.rich-ready .pb-entered.pb-career .pb-career-steps li, .rich-ready .pb-entered.pb-career .pb-career-steps > * { opacity: 1; transform: none; }

/* 待遇: 「125」がカウントアップ(rich.js)、休日マークが順に点灯(既存)、土が後から覗く */
.rich-ready .pb-benefit .pb-days strong { display: inline-block; min-width: 2.2ch; text-align: right; font-variant-numeric: tabular-nums; }
.rich-ready .pb-benefit .pb-benefit-soil { transform: translateY(30px); opacity: 0; transition: transform 1s cubic-bezier(.2, 1.2, .3, 1) 1.2s, opacity .6s ease 1.2s; }
.rich-ready .pb-entered.pb-benefit .pb-benefit-soil { transform: none; opacity: 1; }

/* 育成思想: 署名が最後に手書き風に(ぼかし→結像 + 上から) */
.rich-ready .pb-message .pb-sign { filter: blur(4px); transition-delay: 1.3s !important; }
.rich-ready .pb-entered.pb-message .pb-sign { filter: blur(0); transition: filter .9s ease 1.3s, opacity var(--pb-reveal, 1500ms) ease 1.3s, transform var(--pb-reveal, 1500ms) ease 1.3s; }

/* 会社概要・募集要項・エントリー: 行が順に差し込まれる(rich.js が --rich-i を付与) */
.rich-ready .pb-page .top-shop__item, .rich-ready .pb-page .lp-dl > div, .rich-ready .pb-page .lp-field { opacity: 0; transform: translateY(12px); transition: opacity .6s ease calc(.25s + var(--rich-i, 0) * .09s), transform .7s cubic-bezier(.2, .9, .2, 1) calc(.25s + var(--rich-i, 0) * .09s); }
.rich-ready .pb-entered .top-shop__item, .rich-ready .pb-entered .lp-dl > div, .rich-ready .pb-entered .lp-field { opacity: 1; transform: none; }
.rich-ready .pb-page .top-shop { transform: scale(.96); transition: transform .9s cubic-bezier(.2, 1.3, .3, 1) .1s; }
.rich-ready .pb-entered .top-shop { transform: none; }

/* 帯の文字は入場後に色面から「浮き出る」(既存の opacity 遷移に加えてわずかに拡大) */
.rich-ready .lp-band text { transform-box: fill-box; }

@media (prefers-reduced-motion: reduce) {
  .rich-ready .pb-page .pb-title, .rich-ready .pb-page .pb-copy, .rich-ready .pb-message .pb-sign { filter: none; letter-spacing: inherit; transition: none; opacity: 1; }
  .rich-ready .pb-page .pb-title::after { transform: none; transition: none; }
  .rich-ready .pb-page .pb-art, .rich-ready .pb-page [data-pb-reveal] > .pb-art { animation: none !important; }
  .rich-ready .pb-page .pb-stratum, .rich-ready .pb-work .pb-ground > path, .rich-ready .pb-beginner .pb-support p, .rich-ready .pb-check .pb-worries p, .rich-ready .pb-check .pb-check-end, .rich-ready .pb-career .pb-career-steps > *, .rich-ready .pb-page .top-shop__item, .rich-ready .pb-page .lp-dl > div, .rich-ready .pb-page .lp-field, .rich-ready .pb-page .top-shop, .rich-ready .pb-benefit .pb-benefit-soil { opacity: 1; transform: none; transition: none; }
}

/* 核心: 結びの一文を大きく */
.rich-ready .pb-concept .pb-concept-end { font-size: 20px; font-weight: 700; line-height: 1.6; letter-spacing: .04em; padding: 18px 14px 26px; }
