/* ---- ロゴ（kit/logos/bdfull.html v2：ハートを2画で線でなぞる→文字が輪郭から塗りへ。全ページ・1回の訪問で最初のページだけ） ---- */
.site-logo svg.bf-heart, .bf2-logo svg.bf-heart { display: block; overflow: visible; flex-shrink: 0; }
.bf-s1, .bf-s2 { stroke-dasharray: 1 2; }
.cn-logo-play .bf-s1 { stroke-dashoffset: 1; animation: bfDraw .6s cubic-bezier(.65, 0, .35, 1) both; }
.cn-logo-play .bf-s2 { stroke-dashoffset: 1; animation: bfDraw .65s cubic-bezier(.65, 0, .35, 1) .5s both; }
@keyframes bfDraw { to { stroke-dashoffset: 0; } }
.cn-logo-play .site-logo [data-cn-ch], .cn-logo-play .bf2-logo [data-cn-ch] { display: inline-block; }
.cn-logo-play .site-logo { --f: var(--color-secondary, #1A1A2E); --cn-io: cubic-bezier(.65, 0, .35, 1); }
.cn-logo-play .bf2-logo { --f: var(--bf-ink, #1A1A2E); --cn-io: cubic-bezier(.65, 0, .35, 1); }
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  .cn-logo-play .site-logo [data-cn-ch], .cn-logo-play .bf2-logo [data-cn-ch] {
    color: transparent; -webkit-text-stroke: 1px var(--f);
    background: linear-gradient(var(--f), var(--f)) no-repeat 0 100% / 100% 0; -webkit-background-clip: text; background-clip: text;
    animation: cnFill .45s var(--cn-io) calc(.75s + var(--i) * .1s) both, cnStroke .25s linear calc(1.2s + var(--i) * .1s) both, cnDone 0s linear calc(1.45s + var(--i) * .1s) forwards;
  }
  .cn-logo-play .site-logo [data-cn-ch]:nth-child(even), .cn-logo-play .bf2-logo [data-cn-ch]:nth-child(even) { background-position: 0 0; }
}
@keyframes cnFill { to { background-size: 100% 100%; } }
@keyframes cnStroke { to { -webkit-text-stroke-color: transparent; } }
/* 描き終わり（各字の最後の動きが終わった時刻）に、元の文字と同じ描き方へ戻す（濃さ・字幅を静止版と同じに。動きは変えない） */
@keyframes cnDone { to { display: inline; color: var(--f); background: none; -webkit-background-clip: border-box; background-clip: border-box; -webkit-text-stroke: 0; } }
