#sec-finale {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  isolation: isolate;
  background: #E9E3CC;
  background-size: 340px;
  color: #26201b;
}
#sec-finale #sz-scene {
  position: absolute;
  inset: 0;
  isolation: isolate;
  background-size: 340px;
  opacity: 0;
}
#sec-finale #sz-canvas {
  display: block;
  width: 100%;
  height: 100%;
  opacity: 0;
}

#sec-finale #sz-carousel {
  position: absolute;
  top: var(--sz-photo-top);
  left: 12%;
  width: 76%;
  opacity: 0;
  touch-action: pan-y pinch-zoom;
}
#sec-finale #sz-photos {
  position: relative;
  height: var(--sz-photo-height);
}
#sec-finale .sz-slide {
  position: absolute;
  top: 0;
  left: 50%;
  height: 100%;
  width: auto;
  aspect-ratio: var(--sz-aspect);
  margin: 0;
  padding: 0;
  border: 2px solid #fffaf0;
  box-sizing: border-box;
  background: #fffaf0;
  box-shadow: 0 3px 9px #46362b30;
  transform: translateX(-50%) rotate(var(--sz-tilt));
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
#sec-finale .sz-slide[hidden] { display: none; }
#sec-finale .sz-photo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  pointer-events: none;
  user-select: none;
}
#sec-finale #sz-dots {
  display: flex;
  justify-content: center;
  align-items: center;
  height: var(--sz-dots-height);
}
#sec-finale .sz-dot {
  display: grid;
  place-items: center;
  width: var(--sz-dot-hit);
  height: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}
#sec-finale .sz-dot::after {
  content: "";
  width: 4px;
  height: 4px;
  border: 1px solid #66584b;
  border-radius: 50%;
}
#sec-finale .sz-dot[aria-pressed="true"]::after { background: #66584b; }
#sec-finale .sz-slide:focus-visible,
#sec-finale .sz-dot:focus-visible { outline: 2px solid #66584b; outline-offset: 3px; }
#sec-finale #sz-thanks,
#sec-finale #sz-signature {
  position: absolute;
  left: 0;
  width: 100%;
  margin: 0;
  text-align: center;
  opacity: 0;
}
#sec-finale #sz-thanks {
  top: var(--sz-thanks-top);
  font: 400 var(--sz-thanks-size)/1.4 "WenKai", serif;
  letter-spacing: .04em;
}
#sec-finale #sz-signature { top: var(--sz-signature-top); }
#sec-finale #sz-names {
  margin: 0;
  color: #1d1a17;
  font: 400 var(--sz-signature-size)/1.2 "MaShan", cursive;
  white-space: nowrap;
}
#sec-finale #sz-date {
  margin: 0;
  font: 400 var(--sz-date-size)/1.4 "WenKai", serif;
  letter-spacing: .12em;
}

#sec-finale #sz-video { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
