/* Maison Énife — Vormerken: the three wow moments (vault, gold dust, stamp). */

/* vault: a warm flash when the doors part, then the seal emerges in the hero */
.vault__glow { position: absolute; inset: 0; background: radial-gradient(ellipse 40% 45% at 50% 50%, rgba(255,226,160,0.55), rgba(201,169,106,0.18) 40%, transparent 70%); opacity: 0; pointer-events: none; }
.opener.is-open .vault__glow { animation: vault-flash 1.1s ease-out forwards; }
@keyframes vault-flash { 0% { opacity: 0; transform: scale(0.6); } 30% { opacity: 1; } 100% { opacity: 0; transform: scale(1.6); } }
.opener { cursor: pointer; }
.opener .vault__door { transition-duration: 1s; }

.k3-seal img { animation: seal-emerge 1.6s var(--ease-out) 0.2s both; }
@keyframes seal-emerge { from { opacity: 0; transform: scale(0.82); filter: blur(10px) drop-shadow(0 30px 60px rgba(0,0,0,0.8)); } to { opacity: 1; transform: none; filter: drop-shadow(0 30px 60px rgba(0,0,0,0.8)); } }
.opener-wait .k3-seal img, .opener-wait .k3-hero__title, .opener-wait .k3-hero__line { animation-play-state: paused; }
.k3-hero__title, .k3-hero__line { animation: rise 1.3s var(--ease-out) both; }
.k3-hero__title { animation-delay: 0.6s; }
.k3-hero__line { animation-delay: 0.8s; }
.k3-hero__title { font-size: clamp(2.6rem, 6.5vw, 4.8rem); }
.k3-hero__line { margin-top: 0.6rem; }

/* gold dust behind the seal */
.wow-hero { position: relative; overflow: hidden; isolation: isolate; }
.dust { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; pointer-events: none; }

/* who we are: a little tighter than the chapter version */
.wow-about { padding-top: clamp(4rem, 9vw, 7rem); padding-bottom: clamp(4rem, 9vw, 7rem); }
.wow-about .k3-story__lines span:nth-child(2) { color: var(--ivory); }

/* the stamp */
.stamp { position: fixed; inset: 0; z-index: 80; display: grid; place-content: center; justify-items: center; gap: 1.2rem; padding: 0 24px; text-align: center; pointer-events: none; opacity: 0; background: #050505 radial-gradient(ellipse 55% 45% at 50% 46%, rgba(90,62,24,0.38), rgba(5,5,5,0) 70%); }
.stamp.is-on { opacity: 1; pointer-events: auto; transition: opacity 0.25s; }
.stamp.is-off { opacity: 0; transition: opacity 0.8s ease; }
.stamp__burst { position: absolute; inset: 0; width: 100%; height: 100%; }
.stamp__seal { position: relative; width: min(60vw, 340px); height: auto; filter: drop-shadow(0 30px 60px rgba(0,0,0,0.85)) drop-shadow(0 0 50px rgba(201,169,106,0.35)); opacity: 0; }
.stamp.is-on .stamp__seal { animation: stamp-down 0.55s cubic-bezier(0.5, 0, 0.75, 0) forwards, stamp-settle 0.5s var(--ease-out) 0.55s forwards; }
@keyframes stamp-down { from { opacity: 0; transform: scale(2.6) rotate(-14deg); } to { opacity: 1; transform: scale(0.94) rotate(0deg); } }
@keyframes stamp-settle { from { transform: scale(0.94); } to { transform: scale(1); } }
.stamp__text { position: relative; font-family: var(--font-display); font-style: italic; font-weight: 300; font-size: clamp(1.8rem, 4.4vw, 2.8rem); color: var(--ivory); opacity: 0; text-shadow: 0 4px 30px rgba(0,0,0,0.8); }
.stamp.is-on .stamp__text { animation: rise 0.9s var(--ease-out) 0.7s forwards; }
.stamp__eyebrow { position: relative; margin: 0 0 0.6rem; font-family: var(--font-label, inherit); font-size: 0.78rem; letter-spacing: 0.42em; text-transform: uppercase; color: var(--gold); opacity: 0; }
.stamp__line { position: relative; display: flex; align-items: center; gap: 0.8rem; opacity: 0; }
.stamp__line i { display: block; width: 56px; height: 1px; background: linear-gradient(to right, transparent, rgba(201,169,106,0.7)); }
.stamp__line i:last-child { background: linear-gradient(to left, transparent, rgba(201,169,106,0.7)); }
.stamp__line b { display: block; width: 6px; height: 6px; background: var(--gold); transform: rotate(45deg); box-shadow: 0 0 10px rgba(201,169,106,0.6); }
.stamp__sub { position: relative; margin: 0; max-width: 34ch; text-wrap: balance; font-family: var(--font-display); font-size: clamp(1.05rem, 2.2vw, 1.25rem); color: var(--ivory-dim); opacity: 0; }
.stamp.is-on .stamp__eyebrow { animation: rise 0.8s var(--ease-out) 0.15s forwards; }
.stamp.is-on .stamp__line { animation: rise 0.8s var(--ease-out) 1.0s forwards; }
.stamp.is-on .stamp__sub { animation: rise 0.9s var(--ease-out) 1.15s forwards; }
.is-shaking { animation: page-shake 0.32s linear 0.55s; }
@keyframes page-shake { 20% { transform: translate(-6px, 3px); } 40% { transform: translate(5px, -4px); } 60% { transform: translate(-3px, 2px); } 80% { transform: translate(2px, -1px); } }

/* Listen-Button: Gold statt Smaragd (Schwarz-Gold-Linie) */
.button--solid { color: var(--bg); background: var(--gold); border-color: var(--gold); }
.button--solid:hover { color: var(--bg); background: #e2c48a; border-color: #e2c48a; box-shadow: 0 0 28px rgba(201,169,110,0.35); }

/* Optional first name: full row above e-mail + button (hero), quiet "(optional)" in the list form */
.heroform__input--name { flex-basis: 100%; }
.field__opt { font-family: var(--font-display); font-size: 1.15em; text-transform: none; letter-spacing: 0.02em; font-style: italic; opacity: 0.75; }

@media (prefers-reduced-motion: reduce) {
  .k3-seal img, .k3-hero__title, .k3-hero__line { animation: none; }
  .stamp.is-on .stamp__seal { animation: none; opacity: 1; }
  .stamp.is-on .stamp__text, .stamp.is-on .stamp__eyebrow, .stamp.is-on .stamp__line, .stamp.is-on .stamp__sub { animation: none; opacity: 1; }
  .is-shaking { animation: none; }
  .dust { display: none; }
}
