@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;1,300&family=Noto+Serif+JP:wght@300;400&family=Noto+Sans+JP:wght@300&display=swap");

#fv {
  position: relative;
  width: 100vw;
  height: 100vh;
  overflow: hidden;
  flex-shrink: 0;
}

/* WordPress管理バーがある場合の補正 */
.admin-bar #fv {
  height: calc(100vh - 32px);
}
@media screen and (max-width: 782px) {
  .admin-bar #fv {
    height: calc(100vh - 46px);
  }
}
/* spotlight: one photo at a time, centered, zooms to fullscreen */
.spotlight {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0.15);
  width: 100vw;
  height: 100vh;
  opacity: 0;
  will-change: transform, opacity;
  z-index: 5;
  pointer-events: none;
}
.spotlight .bg {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14vw;
}
/* mosaic cards — hidden initially */
.pc {
  position: absolute;
  overflow: hidden;
  opacity: 0;
  will-change: opacity;
  z-index: 6;
  margin: 0;
}
#mosaicStage {
  position: absolute;
  inset: 0;
}
.pc .bg {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3rem;
}
#vig {
  position: absolute;
  inset: 0;
  z-index: 10;
  pointer-events: none;
  background: rgba(0, 0, 0, 0.35);
  opacity: 0;
  transition: opacity 1s ease;
}
#vig.show {
  opacity: 1;
}
#logo {
  position: absolute;
  z-index: 20;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0.85);
  text-align: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 1.8s ease, transform 1.8s cubic-bezier(0.16, 1, 0.3, 1);
}
#logo.show {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}
.logo-sub-top {
  display: block;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 300;
  font-size: clamp(0.45rem, 0.8vw, 0.65rem);
  letter-spacing: 0.6em;
  color: #fff;
  margin-bottom: 0.7em;
}
.logo-icon {
  width: clamp(40px, 5.5vw, 65px);
  height: clamp(40px, 5.5vw, 65px);
  margin: 0 auto 0.5em;
  display: block;
}
.logo-kanji {
  display: block;
  font-family: "Noto Serif JP", serif;
  font-weight: 300;
  font-size: clamp(2.5rem, 7vw, 5.5rem);
  letter-spacing: 0.2em;
  color: #fff;
  line-height: 1;
}
.logo-line {
  display: block;
  width: 44px;
  height: 1px;
  background: #fff;
  margin: 0.8em auto;
}
.logo-roman {
  display: block;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 300;
  font-size: clamp(0.4rem, 0.7vw, 0.58rem);
  letter-spacing: 0.55em;
  color: #fff;
}
.logo-catch {
  display: block;
  font-family: "Noto Serif JP", serif;
  font-weight: 300;
  font-size: clamp(0.75rem, 1.6vw, 1.3rem);
  letter-spacing: 0.15em;
  white-space: nowrap;
  color: #fff;
  margin-top: 1.4em;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 1.4s ease 0.6s, transform 1.4s ease 0.6s;
}
#logo.show .logo-catch {
  opacity: 1;
  transform: translateY(0);
}
.slider-wrap::before,
.slider-wrap::after {
  width: 50px;
}

.pc img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
