@charset "UTF-8";
/* 背景と配置 */
#loader {
  position: fixed;
  inset: 0;
  background: #fff;
  /* ご指定どおり */
  display: grid;
  place-items: center;
  z-index: 9999;
  overflow: hidden;
  transition: opacity 0.35s ease;
}

#loader.hide {
  opacity: 0;
  pointer-events: none;
}

.loader-inner {
  display: grid;
  place-items: center;
  gap: 10px;
}

/* 線の基本スタイル：dasharray/offset は JS で“1値”を強制セット */
#loader-line path {
  fill: none;
  stroke: #1f1f1f;
  stroke-width: 6;
  stroke-linecap: butt;
  /* 右端丸めない */
  stroke-linejoin: round;
}

/* 往復（yoyo）の基礎アニメ。from=始点→to=終点。 */
#loader-line.run path {
  -webkit-animation: drawYoyo 1.2s ease-in-out 0s infinite alternate;
          animation: drawYoyo 1.2s ease-in-out 0s infinite alternate;
}

/* 収束フェーズ：JSで transition 時間を都度セットするので !important */
#loader-line.finish path {
  -webkit-animation: none !important;
          animation: none !important;
  transition-property: stroke-dashoffset !important;
  transition-timing-function: cubic-bezier(0.2, 0.8, 0.2, 1) !important;
}

@-webkit-keyframes drawYoyo {
  from {
    stroke-dashoffset: var(--len, 1000);
  }
  /* 始点側から */
  to {
    stroke-dashoffset: 0;
  }
  /* 終点まで */
}

@keyframes drawYoyo {
  from {
    stroke-dashoffset: var(--len, 1000);
  }
  /* 始点側から */
  to {
    stroke-dashoffset: 0;
  }
  /* 終点まで */
}
/* テキスト（消えていた原因は opacity:0 のまま＝CSS未適用だった可能性。
   ここで確実にフェードインさせます） */
.brand {
  margin-top: 6px;
  font: 600 18px/1.2 system-ui, -apple-system, "M PLUS 1", sans-serif;
  letter-spacing: 0.08em;
  color: #111;
  opacity: 0;
  transform: translateY(4px);
  -webkit-animation: brandIn 0.45s ease-out 0.4s forwards;
          animation: brandIn 0.45s ease-out 0.4s forwards;
}

@-webkit-keyframes brandIn {
  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes brandIn {
  to {
    opacity: 1;
    transform: none;
  }
}
/* ローディング中のスクロール抑止（保険） */
html.loading,
body.loading {
  overflow: hidden;
  height: 100%;
}