/* Loaded only by the top-page preview. */
.topSiteMap {
  position: relative;
  overflow: hidden;
  padding: clamp(42px, 6vw, 90px) 0 clamp(30px, 4vw, 60px);
  color: #fff;
  background: radial-gradient(ellipse at 90% 5%, #447fc4 0%, transparent 55%), linear-gradient(135deg, #073c83, #19569f 65%, #103e80);
  font-family: var(--font-gothic);
}
.topSiteMap::before, .topSiteMap::after {
  position: absolute;
  width: 110%; height: 65%;
  border: 1px solid #e8cd872a;
  border-radius: 50%;
  transform: rotate(-20deg);
  content: '';
  pointer-events: none;
}
.topSiteMap::before { top: -30%; right: -40%; box-shadow: 0 0 0 22px #ffffff04, 0 0 0 44px #ffffff04, 0 0 0 66px #ffffff03; }
.topSiteMap::after { bottom: -50%; left: -20%; width: 145%; }
.topSiteMap__inner {
  position: relative;
  z-index: 1;
  width: min(1440px, calc(100% - 5vw));
  margin-inline: auto;
}
.topSiteMap__heading { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin: 0 0 38px; }
.topSiteMap__heading > div > p:first-child { color: #f1d396; font-size: 12px; font-weight: 700; letter-spacing: .18em; }
.topSiteMap__heading h2 { margin-top: 16px; font-size: clamp(30px, 3.6vw, 54px); font-weight: 800; line-height: 1.35; letter-spacing: .05em; }
.topSiteMap__heading em { color: #f1d396; font-family: inherit; font-weight: inherit; font-style: normal; }
.topSiteMap__guide { padding-bottom: 5px; }
.topSiteMap__guide > span { font-family: var(--font-display); font-size: clamp(32px, 4.5vw, 68px); line-height: 1; letter-spacing: .03em; }
.topSiteMap__guide i { color: #f1d396; font-style: normal; }
.topSiteMap__guide > p { margin-top: 18px; font-size: 13px; line-height: 1.9; color: #e0edf9; }
.topSiteMap .gpFooterCard { border-color: #ffffff85; box-shadow: 0 10px 25px #03275720; transition: transform .3s, box-shadow .3s, border-color .3s; }
.topSiteMap .gpFooterCard.is-open { border-color: #e5c780; background: linear-gradient(135deg, #fffefa, #fff 60%, #f1f6ff); }
@media (hover: hover) and (pointer: fine) {
  .topSiteMap a.gpFooterCard:hover { transform: translateY(-6px); box-shadow: 0 18px 32px #03275755; border-color: #f4d697; }
  .topSiteMap a.gpFooterCard:hover img { transform: translateY(-3px) rotate(-3deg); }
}
.topSiteMap .gpFooterCard img { transition: transform .35s; }
.topSiteMap a.gpFooterCard:focus-visible { outline: 3px solid #f1d396; outline-offset: 4px; }
.topSiteMap__caption { display: flex; justify-content: space-between; gap: 16px; margin-top: 32px; padding-top: 18px; border-top: 1px solid #ffffff30; color: #d6e5f6; font-size: 11px; letter-spacing: .12em; }
.topPreviewFooter .gpFooter__inner {
  display: block;
}
.topPreviewFooter .gpFooter__brand {
  max-width: 680px;
  margin-inline: auto;
  justify-items: center;
  text-align: center;
}
.topPreviewFooter .gpFooter__snsList {
  justify-content: center;
}
.topPreviewFooter .gpFooter { background: radial-gradient(ellipse at 90% 100%, #2563ac 0%, transparent 65%), #0d3b79; }
.topPreviewFooter .gpFooter__bottom { border-top-color: #ffffff30; }
.topFooterSignature { position: relative; overflow: hidden; padding: 50px 4vw 28px; }
.topFooterSignature::before { position: absolute; top: 10%; left: -15%; width: 130%; height: 90%; border: 1px solid #e3c78730; border-radius: 50%; transform: rotate(-12deg); content: ''; pointer-events: none; box-shadow: 0 0 0 18px #ffffff03, 0 0 0 36px #ffffff03; }
.topFooterSignature__meta, .topFooterSignature__caption { position: relative; display: flex; justify-content: space-between; gap: 15px; font-size: 11px; letter-spacing: .13em; line-height: 1.6; color: #d4e3f4; }
.topFooterSignature__meta { padding-bottom: 30px; border-top: 1px solid #ffffff30; padding-top: 18px; }
.topFooterSignature__type { position: relative; display: grid; grid-template-columns: 1fr auto; align-items: end; line-height: .9; }
.topFooterSignature__keirin { grid-column: 1 / -1; font-family: Georgia, 'Times New Roman', serif; font-style: italic; font-size: clamp(70px, 17.7vw, 280px); letter-spacing: -.055em; color: #fffaf0; transform-origin: bottom left; }
.topFooterSignature__grand { display: flex; align-items: baseline; white-space: nowrap; font-family: var(--font-display); font-size: clamp(38px, 9.2vw, 150px); letter-spacing: -.015em; margin-top: 14px; }
.topFooterSignature__dot { width: .14em; height: .14em; margin-left: .12em; border-radius: 50%; background: #ebc779; }
.topFooterSignature__year { font-family: var(--font-display); font-size: clamp(40px, 11vw, 180px); color: #efd394; letter-spacing: -.035em; }
.topFooterSignature__caption { margin-top: 32px; color: #efd394; }
.topFooterSignature.has-motion .topFooterSignature__keirin,
.topFooterSignature.has-motion .topFooterSignature__grand,
.topFooterSignature.has-motion .topFooterSignature__year { opacity: 0; transform: translateY(35px); transition: opacity 1s, transform 1.2s cubic-bezier(.2,.7,.2,1); }
.topFooterSignature.is-visible .topFooterSignature__keirin,
.topFooterSignature.is-visible .topFooterSignature__grand,
.topFooterSignature.is-visible .topFooterSignature__year { opacity: 1; transform: translateY(0); }
.topFooterSignature__grand { transition-delay: .12s !important; }
.topFooterSignature__year { transition-delay: .24s !important; }
.topFooterSignature.is-visible .topFooterSignature__dot { animation: gpSignaturePulse 3s ease-in-out infinite; }
@keyframes gpSignaturePulse { 50% { box-shadow: 0 0 0 .08em #ebc77920; } }
@media (min-width: 900px) {
  .topPreviewFooter .gpFooter__brand { max-width: 1440px; grid-template-columns: 1.1fr 1fr auto; gap: 40px; align-items: center; justify-items: start; text-align: left; }
  .topPreviewFooter .gpFooter__snsList { justify-content: start; }
}
@media (max-width: 599px) {
  .topSiteMap__heading { align-items: start; flex-direction: column; gap: 20px; margin-bottom: 28px; }
  .topSiteMap__guide { display: flex; align-items: center; gap: 18px; width: 100%; }
  .topSiteMap__guide > span { font-size: 30px; }
  .topSiteMap__guide > p { margin: 0; font-size: 11px; }
  .topSiteMap__caption { font-size: 9px; letter-spacing: .03em; }
  .topFooterSignature { padding-top: 20px; }
  .topFooterSignature__meta, .topFooterSignature__caption { font-size: 9px; letter-spacing: .04em; }
  .topFooterSignature__grand { font-size: 10vw; }
  .topFooterSignature__keirin { font-size: 20vw; }
  .topFooterSignature__year { font-size: 12vw; }
}
@media (prefers-reduced-motion: reduce) {
  .topSiteMap .gpFooterCard, .topSiteMap .gpFooterCard img,
  .topFooterSignature.has-motion .topFooterSignature__keirin,
  .topFooterSignature.has-motion .topFooterSignature__grand,
  .topFooterSignature.has-motion .topFooterSignature__year { transition: none; opacity: 1; transform: none; }
  .topFooterSignature.is-visible .topFooterSignature__dot { animation: none; }
}
