/* splash.css — Textfall PWA 起動演出オーバーレイ */
.tf-splash {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  background: #f7f4ee;
  font-family: "Hina Mincho","Noto Serif JP","Yu Mincho",serif;
  -webkit-tap-highlight-color: transparent;
  transition: opacity 0.9s ease;
}
.tf-splash.is-dismiss {
  opacity: 0;
  pointer-events: none;
}
.tf-splash__canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  filter: blur(.5px);
}
.tf-splash__mist {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  background:
    radial-gradient(46% 34% at 50% 50%, rgba(255,255,255,.96), rgba(255,255,255,0) 72%),
    radial-gradient(74% 52% at 50% 52%, rgba(226,234,241,.82), rgba(226,234,241,0) 74%),
    radial-gradient(120% 80% at 50% 50%, rgba(236,240,245,.45), rgba(236,240,245,0) 80%);
  filter: blur(13px);
  transition: opacity .8s ease;
}
.tf-splash__mist.is-in  { opacity: 1; }
.tf-splash__mist.is-fade { opacity: 0; transition: opacity 1.2s ease; }
.tf-splash__logo {
  position: absolute;
  width: min(86vw, 560px);
  opacity: 0;
  transform: translateY(8px) scale(.94);
  filter: blur(7px);
  transition: opacity 1s ease, transform 1.1s cubic-bezier(.2,.7,.2,1), filter 1s ease;
  will-change: opacity, transform, filter;
}
.tf-splash__logo.is-in {
  opacity: 1;
  transform: translateY(0) scale(1);
  filter: blur(0);
}
