header { text-align: center; margin-bottom: 44px; }
.header-deco {
  display: flex; align-items: center; justify-content: center;
  gap: 18px; margin-bottom: 20px;
}
.deco-line {
  width: 60px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold-dim), transparent);
  opacity: 0; animation: fi .8s ease .6s forwards;
}
header .title {
  font-family: var(--font-display);
  font-size: clamp(3.6rem, 9vw, 5.4rem) !important;
  font-weight: 400; letter-spacing: .22em;
  text-shadow: 0 2px 12px rgba(0, 0, 0, .25);
}
.tc {
  display: inline-block; opacity: 0;
  animation: cr .8s ease forwards;
}
.tc:nth-child(1) { animation-delay: .3s; }
.tc:nth-child(2) { animation-delay: .5s; }
.tc:nth-child(3) { animation-delay: .7s; }
.tc:nth-child(4) { animation-delay: .9s; }
@keyframes cr {
  from { opacity: 0; transform: translateY(14px); filter: blur(6px); }
  to { opacity: 1; transform: none; filter: none; }
}
header .subtitle {
  font-family: var(--font-display);
  font-weight: 400; font-size: 1.32rem !important;
  color: var(--text-sec); letter-spacing: .4em;
  opacity: 0; animation: fi 1s ease 1.2s forwards;
}
.seal {
  display: inline-block; margin-top: 16px;
  border: 1.5px solid var(--vermillion);
  color: var(--vermillion); padding: 4px 10px;
  font-family: var(--font-display); font-size: .85rem;
  transform: rotate(-4deg); letter-spacing: 4px;
  opacity: 0; animation: sealIn .6s ease 1.8s forwards;
  position: relative;
}
.seal::before {
  content: ''; position: absolute; inset: 2px;
  border: 1px solid var(--vermillion-soft); border-radius: 1px;
}
@keyframes sealIn {
  from { opacity: 0; transform: rotate(-4deg) scale(.8); }
  to { opacity: 1; transform: rotate(-4deg) scale(1); }
}
@keyframes fi { to { opacity: 1; } }
