@charset "UTF-8";
html body main {
  /* ----------------------------------
  こだわり
  ---------------------------------- */
}
html body main .feature,
html body main #sec-2 {
  /* -----------  アニメ付きフレーム ----------- */
  /* ─── アニメ定義 ─── */
}
html body main .feature .gallery,
html body main #sec-2 .gallery {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  /* 折り返して 2 段目へ */
  gap: 30px;
  width: 1400px;
  max-width: 100%;
  /* アイテム間の余白 */
  position: relative;
  z-index: 10;
}
@media screen and (max-width: 767px) {
  html body main .feature .gallery,
  html body main #sec-2 .gallery {
    gap: 0;
  }
}
html body main .feature .frame,
html body main #sec-2 .frame {
  position: relative;
  width: 350px;
  height: 350px;
  /* SVG 線 path の初期状態（非表示） */
  /* ロゴ画像の初期状態 */
  /* .is-visible が付いた瞬間にだけ走らせる */
}
@media screen and (max-width: 1199px) {
  html body main .feature .frame,
  html body main #sec-2 .frame {
    width: 240px;
    height: 240px;
  }
}
@media screen and (max-width: 767px) {
  html body main .feature .frame,
  html body main #sec-2 .frame {
    width: 280px;
    height: 280px;
    margin: 10px auto;
  }
}
@media screen and (max-width: 1199px) {
  html body main .feature .frame svg,
  html body main #sec-2 .frame svg {
    width: 240px;
    height: 240px;
  }
}
@media screen and (max-width: 575px) {
  html body main .feature .frame svg,
  html body main #sec-2 .frame svg {
    width: 280px;
    height: auto;
    margin: 0 auto;
  }
}
html body main .feature .frame.xs-only,
html body main #sec-2 .frame.xs-only {
  width: 100%;
  height: 180px;
}
html body main .feature .frame.xs-only svg,
html body main #sec-2 .frame.xs-only svg {
  width: 100%;
  margin: 0 auto;
}
html body main .feature .frame .line,
html body main #sec-2 .frame .line {
  stroke: #fff;
  stroke-width: 1;
  stroke-linejoin: round;
  fill: none;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  opacity: 0;
  /* ←ここで隠す */
  /* アニメーションはここに書かない */
}
html body main .feature .frame img,
html body main #sec-2 .frame img {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  opacity: 0;
  max-height: 70%;
  /* アニメーションはここに書かない */
}
@media screen and (min-width: 768px) and (max-width: 1200px) {
  html body main .feature .frame img,
  html body main #sec-2 .frame img {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0);
    margin: auto;
    top: 30px;
    bottom: 0;
    left: 0;
    right: 0;
  }
}
@media screen and (max-width: 767px) {
  html body main .feature .frame img,
  html body main #sec-2 .frame img {
    top: 49%;
    left: 43%;
  }
}
@media screen and (max-width: 575px) {
  html body main .feature .frame img,
  html body main #sec-2 .frame img {
    top: 34%;
    left: 50%;
  }
}
html body main .feature .frame.is-visible,
html body main #sec-2 .frame.is-visible {
  /* １本目の線 */
  /* ２本目の線は delay＋1s */
  /* 線が終わったあとロゴをフェードイン */
}
html body main .feature .frame.is-visible .line.top,
html body main #sec-2 .frame.is-visible .line.top {
  opacity: 1;
  -webkit-animation: draw 1s ease-out forwards var(--delay);
          animation: draw 1s ease-out forwards var(--delay);
}
html body main .feature .frame.is-visible .line.bottom,
html body main #sec-2 .frame.is-visible .line.bottom {
  opacity: 1;
  -webkit-animation: draw 1s ease-out forwards calc(var(--delay) + 1s);
          animation: draw 1s ease-out forwards calc(var(--delay) + 1s);
}
html body main .feature .frame.is-visible img,
html body main #sec-2 .frame.is-visible img {
  opacity: 0;
  -webkit-animation: fade 0.8s ease-out forwards calc(var(--delay) + 2s);
          animation: fade 0.8s ease-out forwards calc(var(--delay) + 2s);
}
@-webkit-keyframes draw {
  0% {
    stroke-dashoffset: 1;
    opacity: 1;
  }
  80% {
    stroke-dashoffset: 0;
    opacity: 1;
  }
  100% {
    stroke-dashoffset: 0;
    opacity: 1;
  }
}
@keyframes draw {
  0% {
    stroke-dashoffset: 1;
    opacity: 1;
  }
  80% {
    stroke-dashoffset: 0;
    opacity: 1;
  }
  100% {
    stroke-dashoffset: 0;
    opacity: 1;
  }
}
@-webkit-keyframes fade {
  to {
    opacity: 1;
  }
}
@keyframes fade {
  to {
    opacity: 1;
  }
}/*# sourceMappingURL=animation.css.map */