/* v2.2.2: logo-safe layout and five additional loading logo motions. */
.site-intro--drift.is-loaded .site-intro__logo { animation: chisou-intro-drift 920ms cubic-bezier(.16, .86, .24, 1) .08s forwards; }
.site-intro--halo.is-loaded .site-intro__logo { animation: chisou-intro-halo 1020ms cubic-bezier(.2, .8, .22, 1) .08s forwards; }
.site-intro--halo .site-intro__motif span:nth-child(2) { inset: 17%; display: block; border: 1px solid rgba(211, 185, 111, .7); border-radius: 50%; opacity: 0; }
.site-intro--halo.is-loaded .site-intro__motif span:nth-child(2) { animation: chisou-intro-halo-ring 1060ms ease-out .08s forwards; }
.site-intro--sweep.is-loaded .site-intro__logo { animation: chisou-intro-sweep 900ms cubic-bezier(.2, .8, .22, 1) .08s forwards; }
.site-intro--fold.is-loaded .site-intro__logo { transform-origin: 50% 100%; animation: chisou-intro-fold 900ms cubic-bezier(.18, .82, .22, 1) .08s forwards; }
.site-intro--spark.is-loaded .site-intro__logo { animation: chisou-intro-spark 1000ms cubic-bezier(.2, .8, .22, 1) .08s forwards; }

@keyframes chisou-intro-drift { from { opacity: 0; transform: translate3d(-84px, 0, 0) rotate(-5deg) scale(.9); } to { opacity: 1; transform: translate3d(0, 0, 0) rotate(0) scale(1); } }
@keyframes chisou-intro-halo { from { opacity: 0; filter: brightness(2); transform: scale(.58); } 64% { opacity: 1; filter: brightness(1.35); transform: scale(1.05); } to { opacity: 1; filter: brightness(1); transform: scale(1); } }
@keyframes chisou-intro-halo-ring { from { opacity: .86; transform: scale(.42); } to { opacity: 0; transform: scale(1.72); } }
@keyframes chisou-intro-sweep { from { opacity: 0; clip-path: inset(0 100% 0 0); transform: translate3d(-18px, 0, 0); } to { opacity: 1; clip-path: inset(0 0 0 0); transform: translate3d(0, 0, 0); } }
@keyframes chisou-intro-fold { from { opacity: 0; transform: perspective(900px) rotateX(-74deg) scale(.84); } to { opacity: 1; transform: perspective(900px) rotateX(0) scale(1); } }
@keyframes chisou-intro-spark { from { opacity: 0; filter: brightness(2.5) drop-shadow(0 0 0 rgba(222, 193, 110, 0)); transform: scale(.8); } 55% { opacity: 1; filter: brightness(1.3) drop-shadow(0 0 20px rgba(222, 193, 110, .65)); transform: scale(1.04); } to { opacity: 1; filter: brightness(1) drop-shadow(0 0 0 rgba(222, 193, 110, 0)); transform: scale(1); } }

/* The official mark is vertical. Never crop it to a square. */
.site-brand { width: 62px; height: 64px; overflow: visible; }
.site-brand img { width: 58px; height: 58px; display: block; object-fit: contain; object-position: center; }
.site-footer__brand img { width: auto; height: 92px; display: block; object-fit: contain; object-position: center; }

@media (max-width: 900px) {
  .site-brand { width: 52px; height: 58px; }
  .site-brand img { width: 50px; height: 50px; }
}

@media (max-width: 767px) {
  .contact-band h2 { font-size: 28px; line-height: 1.35; }
  .contact-band__inner > p:not(.section-label) { max-width: calc(100% - 12px); font-size: 14px; line-height: 1.75; }
}

@media (prefers-reduced-motion: reduce) {
  .site-intro--drift.is-loaded .site-intro__logo,
  .site-intro--halo.is-loaded .site-intro__logo,
  .site-intro--sweep.is-loaded .site-intro__logo,
  .site-intro--fold.is-loaded .site-intro__logo,
  .site-intro--spark.is-loaded .site-intro__logo { animation: none !important; opacity: 1; filter: none; transform: none; }
}
