/* ---------- タイトル（お嬢様の手帳とマーカー） ---------- */
.title-screen { background: var(--paper); }
.title-screen .bg { animation: tsZoom 30s ease-in-out infinite alternate; transform-origin: 70% 60%; }
@keyframes tsZoom { from { transform: scale(1.0); } to { transform: scale(1.05); } }

/* ロゴ：背後に白の柔らかい楕円を敷いて背景の建物と分離。立ち絵群（x≈700〜）に寄せない */
.title-screen .logo-block { position: absolute; z-index: 1; left: 50px; top: 96px; width: 600px; text-align: center; padding: 30px 0 34px; }
.title-screen .logo-block::before {
  content: ''; position: absolute; left: -90px; right: -70px; top: -40px; bottom: -30px; z-index: -1;
  background: rgba(255,253,249,.9); border-radius: 50%;
}
.title-screen .logo-sub { font-weight: 600; color: var(--ink-2); letter-spacing: .5em; font-size: 22px; }
.title-screen .logo-main {
  font-family: var(--formal); font-weight: 700; font-size: 96px; line-height: 1.1; margin: 10px 0 12px;
  color: var(--ink); letter-spacing: .04em;
  text-shadow:
    3px 0 0 #fff, -3px 0 0 #fff, 0 3px 0 #fff, 0 -3px 0 #fff,
    2px 2px 0 #fff, -2px 2px 0 #fff, 2px -2px 0 #fff, -2px -2px 0 #fff,
    6px 7px 0 var(--pink);
}
.title-screen .logo-main .l2 { display: inline-block; white-space: nowrap; padding-left: .35em; }
.title-screen .logo-en { font-weight: 600; font-size: 34px; color: var(--accent-dk); letter-spacing: .06em; }
.title-screen .logo-en i { font-style: normal; color: var(--pink); margin: 0 14px; }
.title-screen .logo-tag { margin-top: 20px; font: 900 26px var(--round); color: var(--ink); letter-spacing: .22em; }
.title-screen .logo-tag span { padding: 0 14px; background: linear-gradient(transparent 58%, var(--lemon) 58% 92%, transparent 92%); }

.title-screen .title-menu { position: absolute; left: 160px; top: 590px; width: 380px; display: flex; flex-direction: column; align-items: stretch; gap: 20px; }
.title-screen .title-menu .btn { width: 100%; }
.title-screen .title-menu .btn.small { width: 78%; align-self: center; margin-top: 4px; }

.title-screen .title-foot { position: absolute; left: 36px; bottom: 22px; font-size: 19px; color: var(--ink-2); letter-spacing: .08em; }

/* 花びら：パステルのベタ塗り */
.title-screen .petals { position: absolute; inset: 0; pointer-events: none; }
.title-screen .petal {
  position: absolute; top: -40px; width: 18px; height: 14px; border-radius: 80% 0 80% 0; opacity: .85;
  box-shadow: 0 0 0 1.5px rgba(58,49,80,.18) inset; animation: tsFall linear infinite;
}
@keyframes tsFall {
  from { transform: translate(0, 0) rotate(0) scale(var(--s, 1)); }
  to { transform: translate(-260px, 1200px) rotate(720deg) scale(var(--s, 1)); }
}
