.entrance { display:none; }
html[data-entrance] .entrance {
  position:fixed; inset:0; z-index:100; display:grid; place-items:center;
  background:#170f07; pointer-events:none;
  animation:entrance-failsafe .3s 2.7s forwards;
}
.entrance-signature { width:clamp(150px,16vw,210px); }
.entrance-signature img {
  display:block; width:100%; height:auto;
  animation:signature-in .65s cubic-bezier(.22,1,.36,1) both;
}
.entrance-lines { display:block; width:100%; height:28px; margin-top:24px; overflow:visible; }
.entrance-lines path {
  stroke-width:3; stroke-dasharray:240; stroke-dashoffset:240;
  animation:line-in .7s cubic-bezier(.65,0,.25,1) .12s forwards;
}
.entrance-lines path:nth-child(2) { animation-delay:.22s; }
.entrance-lines path:nth-child(3) { animation-delay:.32s; }
html[data-entrance="revealing"] .entrance { animation:entrance-out .7s cubic-bezier(.22,1,.36,1) forwards; }
html[data-entrance="revealing"] .entrance-signature { animation:signature-out .45s ease forwards; }
html[data-entrance="revealing"] .hero-heading-box,
html[data-entrance="revealing"] .hero-copy,
html[data-entrance="revealing"] .hero .button {
  animation:hero-arrive .85s cubic-bezier(.22,1,.36,1) both;
}
html[data-entrance="revealing"] .hero-heading-box { animation-delay:.12s; }
html[data-entrance="revealing"] .hero-copy { animation-delay:.22s; }
html[data-entrance="revealing"] .hero .button { animation-delay:.32s; }
html[data-entrance-return] .entrance-signature { display:none; }
html[data-entrance-return][data-entrance="revealing"] .entrance { animation-duration:.4s; }
@keyframes signature-in { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
@keyframes line-in { to { stroke-dashoffset:0; } }
@keyframes signature-out { to { opacity:0; transform:translateY(-8px); } }
@keyframes entrance-out { to { opacity:0; visibility:hidden; } }
@keyframes entrance-failsafe { to { opacity:0; visibility:hidden; } }
@keyframes hero-arrive { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce) {
  html[data-entrance] .entrance { display:none; }
  html[data-entrance="revealing"] .hero-heading-box,
  html[data-entrance="revealing"] .hero-copy,
  html[data-entrance="revealing"] .hero .button { animation:none; }
}
