/* ============================================================
   ローディング画面
   ============================================================ */

/* 共通スタイル */
.c-loader {
  position: fixed;
  top: 0;
  left: 0;
  width: 100dvw;
  height: 100dvh;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--color-primary-900);
  transition: opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1), visibility 0.8s;
}

.c-loader.loaded {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

/* フロントページ: UMINARI文字 (SVG) */
.c-loader--front .c-loader__svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.c-loader--front .c-loader__text {
  /* p-hero__mask-svg text と完全に同一のフォント設定 */
  font-family: var(--font-family-en);
  font-size: var(--size-large-100);
  font-weight: 600;
  letter-spacing: 0.15em;
  fill: #fff;
  /* Safari/iPhone対策: CSS初期値 + GPUレイヤー事前確保 */
  opacity: 0;
  filter: blur(60px);
  will-change: opacity, filter;
}

/* レスポンシブ: 960px未満 */
@media (width < 960px) {
  .c-loader--front .c-loader__text {
    font-size: var(--size-large-90);
  }
}

/* レスポンシブ: 600px未満 */
@media (width < 600px) {
  .c-loader--front .c-loader__text {
    font-size: var(--size-large-80);
  }
}
