/* ============ Izanhia — animation d'ouverture ============ */
/* Voile bleu nuit : le glyphe 座 (siège des étoiles) se dessine dans un ensō doré,
   puis l'étoile 4 branches pulse, le mot izanhia apparaît, et le voile s'ouvre. */

.iz-boot {
  position: fixed; inset: 0; z-index: 9000;
  background: radial-gradient(120% 120% at 50% 40%, #0a1128 0%, #04081a 65%, #02040d 100%);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  transition: opacity .9s ease, visibility .9s ease;
  overflow: hidden;
}
.iz-boot.gone { opacity: 0; visibility: hidden; pointer-events: none; }

/* étoiles scintillantes du voile */
.iz-boot .bs {
  position: absolute; border-radius: 50%;
  background: #dfe6ff;
  animation: bs-tw var(--d, 3s) ease-in-out infinite alternate;
}
@keyframes bs-tw { from { opacity: .12; } to { opacity: .85; } }

/* ensō : cercle tracé (stroke-dasharray animé) */
.iz-enso, .iz-enso2 { position: absolute; inset: 0; width: 100%; height: 100%; }
.iz-enso circle {
  fill: none; stroke: #d6b25e; stroke-width: 5; stroke-linecap: round;
  transform: rotate(-88deg); transform-origin: center;
  stroke-dasharray: 754; stroke-dashoffset: 754;
}
.iz-enso2 circle {
  fill: none; stroke: #f0d391; stroke-width: 1.6; stroke-linecap: round;
  transform: rotate(-88deg); transform-origin: center;
  stroke-dasharray: 754; stroke-dashoffset: 754;
}
@keyframes iz-draw { to { stroke-dashoffset: 0; } }

/* glyphe 座 : apparaît avec respiration lumineuse */
.iz-glyph {
  font-family: "Noto Serif JP", "Noto Serif CJK JP", serif;
  font-size: clamp(88px, 18vmin, 180px);
  color: #faf8f2;
  text-shadow: 0 0 34px rgba(214, 178, 94, .45), 0 2px 4px rgba(0,0,0,.6);
  opacity: 0; transform: scale(.8);
  animation: iz-glyph-in 1.1s .55s cubic-bezier(.2,.9,.3,1.2) forwards;
}
@keyframes iz-glyph-in { to { opacity: 1; transform: scale(1); } }

/* étoile 4 branches */
.iz-star {
  position: absolute; top: 16%; left: 50%;
  width: 46px; height: 46px; margin-left: -23px;
  opacity: 0;
  animation: iz-star-in .8s 1.5s ease forwards, iz-star-pulse 2.6s 2.3s ease-in-out infinite;
}
.iz-star::before, .iz-star::after {
  content: ""; position: absolute; background: #f0d391;
  box-shadow: 0 0 16px rgba(240, 211, 145, .8);
}
.iz-star::before { left: 50%; top: 0; width: 2px; height: 100%; margin-left: -1px; clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%); width: 46px; clip-path: polygon(50% 0, 60% 42%, 100% 50%, 60% 58%, 50% 100%, 40% 58%, 0 50%, 40% 42%); background: transparent; }
.iz-star::after { display: none; }
.iz-star {
  background:
    linear-gradient(#f0d391, #f0d391) center/100% 100% no-repeat;
  clip-path: polygon(50% 0, 60% 42%, 100% 50%, 60% 58%, 50% 100%, 40% 58%, 0 50%, 40% 42%);
}
@keyframes iz-star-in { to { opacity: 1; } }
@keyframes iz-star-pulse { 0%,100% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.22) rotate(45deg); } }

/* wordmark */
.iz-word {
  font-family: "Noto Serif JP", "Cormorant Garamond", serif;
  font-size: clamp(22px, 4.6vmin, 42px);
  letter-spacing: .35em; text-transform: lowercase;
  color: #f0d391; margin-top: 34px;
  opacity: 0; letter-spacing: .1em;
  animation: iz-word-in 1.2s 1.9s ease forwards;
}
@keyframes iz-word-in { to { opacity: 1; letter-spacing: .35em; } }

/* sous-ligne */
.iz-sub {
  font-family: "Outfit", sans-serif;
  font-size: clamp(11px, 1.7vmin, 14px);
  letter-spacing: .3em; text-transform: uppercase;
  color: rgba(169, 179, 205, .75); margin-top: 12px;
  opacity: 0;
  animation: iz-word-in 1.2s 2.2s ease forwards;
}

@media (prefers-reduced-motion: reduce) {
  .iz-boot .bs, .iz-star { animation: none; }
  .iz-enso circle, .iz-enso2 circle { animation: none; stroke-dashoffset: 0; }
  .iz-glyph, .iz-word, .iz-sub { animation: none; opacity: 1; transform: none; letter-spacing: .35em; }
}